前書き

本書に興味を持っていただきありがとうございます。みなさんクラウドサービス使っていますか。便利すぎて一度使うと離れられませんよね。

ところで、どこのクラウドで何のサービス使われていますか。AWSでEC2にインスタンスを立ててレンタルサーバとして使ったり、Herokuでアプリケーション動かしたりといろいろなパターンがあります。

本書はGoogleが提供するクラウドサービスのGoogle Cloud Platformについて学ぶ本です。筆者がGoogle Cloud Platformの認定資格であるProfessional Cloud Architectを取得する際に勉強した内容を詰め込んであります。Google Cloud Platformを網羅的に知るついでに認定資格も取得してしまおうという欲張りな一冊になっております。

資格を取得したい方にはもちろんのこと、どんなサービスを使ってるかわかっていない方にも読んでいただきたいと筆者は考えています。AWSとAzureは知ってるけどGoogle Cloud Platformは触れたことがない方にもお勧めです。

本書を機にGoogle Cloud Platformへ挑戦してみましょう。

免責事項

本書に記載された内容は、情報の提供のみを目的としています。したがって、本書を用いた開発、製作、運用は、必ずご自身の責任と判断によって行ってください。これらの情報による開発、製作、運用の結果について、著者はいかなる責任も負いません。

また、本書は2020年7月の情報を元に執筆しています。Google Cloud Platformのアップデートに伴い仕様が変更される場合もあるのでご容赦ください。

第1章 合格するために

合格への勉強を始める前にやることがあります。孫子曰く「彼を知り己を知れば百戦殆からず」と。敵をよく知って、自分をしっかり理解すれば負けることはないという格言です。ここでいう敵はProfessional Cloud Architect認定のための試験です。試験の内容がどんなものかをきちんと確認しておきましょう。これだけだと勝率は半分です。今の段階で自分がどれくらいGoogle Cloud Platform(以下、GCP)を理解しているかを知り、対策を立てることで勝率が100%に近づきます。本章でProfessional Cloud Architect認定がどういうものなのかを知り、GCPがどれくらい理解できているかを確認していきましょう。

1.1 彼を知る

初めに、Professional Cloud Architect認定がどういうものなのかを知りましょう。Google公式サイト*1を確認します。

[*1] https://cloud.google.com/certification/cloud-architect?hl=ja

以下は抜粋した文言です。

Professional Cloud Architectは、Google Cloudの技術を組織が活用するために必要なクラウドアーキテクチャとGCPに関する専門的な知識を活かして、ビジネス目標を推進するスケーラブルで高可用性を備えた堅牢かつ安全な動的ソリューションを設計、開発、管理するスキルを持ったアーキテクトです。

GCPを使ってビジネスを推進できるアーキテクチャであることを認定するものということです。具体的には以下の6項目を身につける必要があります。(公式サイトより抜粋)

  1. クラウドソリューションアーキテクチャの設計と計画
  2. クラウドソリューションインフラストラクチャの管理とプロビジョニング
  3. セキュリティとコンプライアンスに対応した設計
  4. 技術プロセスやビジネスプロセスの分析と最適化
  5. クラウドアーキテクチャの実装の管理
  6. ソリューションとオペレーションの信頼性の確保

費用やセキュリティを意識した設計/アプリケーションのデプロイを素早くできる環境の用意/ミスの無い運用オペレーションの実装をできるようになる必要があり、幅広いスキルが要求されていることがわかります。

1.1.1 認定試験について

では、その認定する試験について確認しましょう。

表1.1: 試験要項

項目 要項
時間 2時間
試験料 200ドル
言語 英語、日本語
形式 選択式
場所 テストセンター、オンライン
  • 試験場と申し込みの流れ

試験の申し込みはウェブサイトから申し込みを行います。試験料がドル払いなのでドルで支払えるクレジットカードが必要になります。試験会場はテストセンターだけでなく、2020年からオンラインでも受験ができるようになりました。テストセンターは都市部にあることが多いので、利用が難しい方はオンライン受験を積極的に利用しましょう。筆者はテストセンターで受験しました。オンラインで受験する場合は静かで照明が明るい部屋やカメラが必要になりますので事前に要件を確認しておいてください。

テストセンターで受験する場合も、オンラインで受験する場合も試験の日付と時間を指定する必要があります。すでに埋まってる時間は受験できないので1カ月前には受験を申し込みましょう。

  • 試験の内容

選択式の試験になります。問題数や合格基準は公開されていません。2時間あり問題をじっくり考えるのに十分な時間があります。筆者の経験的にも時間が足りなくなることはありませんでした。

  • 不合格になったとき

残念ながら試験で不合格になった場合、2週間は再受験できません。2回目も不合格になった場合は60日再受験できないので気を付けてください。

1.2 己を知る

認定試験がどんなものかがわかったら、次に現時点でのあなたがどれほどGoogle Cloudの知識を持っているかを確認していきましょう。チェックリストを用意しました。少し項目が多いですが、素直な気持ちでやってみてください。

1.2.1 チェックリスト

概要

表1.2: 概要チェックリスト

項目 理解度チェック(〇/×)
GCPのプロジェクトについて理解している
課金体系について理解している
リージョンとゾーンについて理解している
各サービスとやり取りする方法を理解している

各サービス

表1.3: サービスチェックリスト

サービス名 どのようなサービスかを知っている(〇/×) サービスを使ったことがある(〇/×)
Cloud Compute Engine
App Engine
Google Kubernetes Engine
Cloud Functions
Cloud Run
Virtual Private Cloud(VPC)
Cloud DNS
Cloud CDN
Cloud NAT
Cloud Armor
Cloud Storage
Cloud Firestore
Cloud Datastore
Cloud Filestore
Cloud BigTable
Cloud SQL
Cloud Spanner
Cloud MemoryStore
Cloud Data Transfer
Cloud Composer
Cloud Dataproc
Cloud Pub/Sub
Cloud Dataflow
Cloud Dataprep
Cloud Data Catalog
Cloud Data Fusion
Natural Language
Vision API
Cloud AutoML Vision
AI Platform
Cloud Shell
Cloud Source Repositories
Cloud Build
Cloud Container Registry
Cloud Scheduler

いかがでしたでしょうか。サービスの数多いですよね。今の時点でほとんど知らなくても問題ありません。スタート地点が理解できただけです。これから全ての項目を〇にできるように共に学んでいきましょう。

1.3 前提知識

学んでいく上でいくつか前提になる知識があります。以下の知識が必要になります。

  • ネットワークの基礎知識

「IPアドレス」や「VPN」等の用語がどんなものかが解れば問題ありません。

  • Linuxの基礎知識

SSHを使ってLinuxサーバにリモートログインしたことがあり、CLI(Command line interface)を使ったことがあれば問題ありません。

  • Dockerをはじめとするコンテナの知識

コンテナとコンテナイメージがどのように違うかを理解できていれば大丈夫です。

  • SQLの基礎知識

SELECT、INSERT、DELETE、UPDATE文が書ければ大丈夫です。

第2章 GCP概要

さて、ここからはGCPにはどのようなサービスがあるのかを学んでいきましょう。いろいろなサービスを学ぶ前に、この章ではGCPの課金方法やプロジェクトと呼ばれるサービスを管理する単位、リージョンやゾーンといった基礎的な概念を学びましょう。

2.1 プロジェクトについて

GCPにおいてはプロジェクトと呼ばれる管理単位があります。

GCPのサービスを利用する際はプロジェクトに必ず紐づけなければいけません。サービスは必ずプロジェクトに所属する必要があり、必ず1つである必要があります。

解りづらいので図解しましょう。以下の図を見てください。

プロジェクトとサービス

図2.1: プロジェクトとサービス

プロジェクトAとプロジェクトBの両方に「サーバ1」というサービス(この図ではCloud Compute Engine)がありますが、この2つは名前が同じだけで異なるサーバです。「サーバ2」・「サーバ3」も同様です。このようにサービスはプロジェクト単位で管理されます。「プロジェクトAのサーバ1」がプロジェクトBにも管理されるといったことはありません。プロジェクトがサービスの上位の管理概念になります。

プロジェクトの概念について理解できたら、もう1つ理解してほしいことがあります。プロジェクトの識別方法についてです。プロジェクトを作成すると、名付けた名前とは別の識別する2つの名前が与えられます。

表2.1: GCPのプロジェクトを識別するもの

種類 内容
プロジェクト名 プロジェクトの名前。自由につけることが可能で後から変更もできます。一意である必要はないので、自由に名前をつけることができます。
プロジェクトID コマンドやAPIで使用するプロジェクトの名称。プロジェクト名とは違い機械が解釈しやすいIDになっています。世界中で一意である必要があります。プロジェクト名からデフォルトの値が付与されますが、プロジェクト作成時にのみ自分で変更することができます。小文字、数字、ハイフンだけが使用できます。
プロジェクト番号 プロジェクト作成時に自動で付与される番号。世界中で一意な番号です。

少しややこしいですが、人が呼ぶときはプロジェクト名、コマンドやプログラムで識別されるのはプロジェクトIDだと覚えておけば大丈夫です。プロジェクト番号はほとんどの場合、使われません。

2.2 課金について

GCPのサービスを使用するためには課金の設定が必要です。具体的にはクレジットカードの登録です。個人で使う場合にはプロジェクトを管理するのも支払いを管理するのも自分です。料金は使用したサービスの分を支払います。サービス毎に料金の計算方法が異なり、少し複雑です。この次の章ではサービスを解説しつつ何に課金が発生するかも学びます。

なおGCPでは、プロジェクトを管理するアカウントと課金を管理するアカウントを別にできます。請求先アカウントと呼ばれる支払の管理だけができるアカウント(GCPの操作はできないアカウント)を作成できるため、企業で使う場合に「請求先アカウントは経理部に」といった使い方ができます。

2.3 企業で使用する場合について

前項で少し触れた、企業でのGCPの使用について少し詳しく学びましょう。請求先アカウントだけではなく、プロジェクトそのものを階層化して管理できる仕組みも用意されています。それがフォルダです。フォルダはプロジェクトをグループする概念で、Resource Managerを使うことでフォルダを作成しプロジェクトを階層管理できます。具体的な例として、以下の図をご覧ください。

プロジェクトの階層管理

図2.2: プロジェクトの階層管理

例えば、先ほどの図の場合「モバイル事業部」の管理層には「プロダクトA・B・Cプロジェクト」の管理権限を付与し、「EC事業部」の管理層には「プロダクトD・E・Fプロジェクト」の管理権限を付与するようにできます。ただし、フォルダ管理を利用するためには組織リソースというフォルダ階層のルートノードを作成する必要があり、組織リソースはG-Suite(「16.1 G-Suite」)かCloud Identityを使用している必要があります。それ以外のGoogleアカウントでは利用できません。

2.4 リージョンとゾーンについて

この節ではGCPを使う上で重要になるリージョンゾーンについて学びます。非常にシンプルです。

  • リージョン

リージョンは各サービスが実装されている物理的な場所です。サービスが動いているデータセンターと思ってもらって間違いありません。例えば、リージョン「asia-northeast1」は東京にありますし、リージョン「us-east1」はサウスカロライナに存在します。利用者のネットワーク的な距離や、災害等のリスクを鑑みて使用するリージョンを決める必要があります。リージョンごとに提供しているサービスが違うので、使用したいサービスがどのリージョンに存在するかは利用前に調べる必要があります。

2020年8月現在20以上のリージョンがあり、日本には東京と大阪リージョンが存在します。

  • ゾーン

ゾーンはリージョンの中のサーバのクラスタです。同じリージョンの中でもサーバの筐体・電源・冷却システムを別にしたクラスタです。GCPの障害によって1つのゾーンが使用不能になった場合でも他のゾーンは利用可能です。リスク分散を考えてゾーンを複数に分けてサービスを利用すると障害耐性が上がります。

リージョンとゾーンのイメージ図を以下に示します。それぞれの「zone-a」は別々のリージョンにあるので同じ名前ですが、異なるゾーンです。

リージョンとゾーン

図2.3: リージョンとゾーン

2.5 Google Cloud SDKについて

GCPを管理するためのツールにです。gcloud・gsutil・bq等のコマンドで構成されており、WindowsをはじめmacOSやLinux等主要なOSにインストールできます。コマンドでGCPのサービスの作成や削除ができ、慣れてくるとウェブコンソールより早く操作できるようになります。GCPではブラウザで操作できる無料のLinuxコンソール(Cloud Shell)が用意されておます。これには予めGoogle Cloud SDKがインストールされているので、ブラウザがあればすぐに使用できます。

本書では解説にCloud Shellを使用し、Google Cloud SDKを用いたサービスの作成方法を学びます。

試し読みはここまでです。
この続きは、製品版でお楽しみください。