本書に興味を持っていただきありがとうございます。みなさんクラウドサービス使っていますか。便利すぎて一度使うと離れられませんよね。
ところで、どこのクラウドで何のサービス使われていますか。AWSでEC2にインスタンスを立ててレンタルサーバとして使ったり、Herokuでアプリケーション動かしたりといろいろなパターンがあります。
本書はGoogleが提供するクラウドサービスのGoogle Cloud Platformについて学ぶ本です。筆者がGoogle Cloud Platformの認定資格であるProfessional Cloud Architectを取得する際に勉強した内容を詰め込んであります。Google Cloud Platformを網羅的に知るついでに認定資格も取得してしまおうという欲張りな一冊になっております。
資格を取得したい方にはもちろんのこと、どんなサービスを使ってるかわかっていない方にも読んでいただきたいと筆者は考えています。AWSとAzureは知ってるけどGoogle Cloud Platformは触れたことがない方にもお勧めです。
本書を機にGoogle Cloud Platformへ挑戦してみましょう。
合格への勉強を始める前にやることがあります。孫子曰く「彼を知り己を知れば百戦殆からず」と。敵をよく知って、自分をしっかり理解すれば負けることはないという格言です。ここでいう敵はProfessional Cloud Architect認定のための試験です。試験の内容がどんなものかをきちんと確認しておきましょう。これだけだと勝率は半分です。今の段階で自分がどれくらいGoogle Cloud Platform(以下、GCP)を理解しているかを知り、対策を立てることで勝率が100%に近づきます。本章でProfessional Cloud Architect認定がどういうものなのかを知り、GCPがどれくらい理解できているかを確認していきましょう。
初めに、Professional Cloud Architect認定がどういうものなのかを知りましょう。Google公式サイト*1を確認します。
[*1] https://cloud.google.com/certification/cloud-architect?hl=ja
以下は抜粋した文言です。
Professional Cloud Architectは、Google Cloudの技術を組織が活用するために必要なクラウドアーキテクチャとGCPに関する専門的な知識を活かして、ビジネス目標を推進するスケーラブルで高可用性を備えた堅牢かつ安全な動的ソリューションを設計、開発、管理するスキルを持ったアーキテクトです。
GCPを使ってビジネスを推進できるアーキテクチャであることを認定するものということです。具体的には以下の6項目を身につける必要があります。(公式サイトより抜粋)
費用やセキュリティを意識した設計/アプリケーションのデプロイを素早くできる環境の用意/ミスの無い運用オペレーションの実装をできるようになる必要があり、幅広いスキルが要求されていることがわかります。
では、その認定する試験について確認しましょう。
項目 | 要項 |
---|---|
時間 | 2時間 |
試験料 | 200ドル |
言語 | 英語、日本語 |
形式 | 選択式 |
場所 | テストセンター、オンライン |
試験の申し込みはウェブサイトから申し込みを行います。試験料がドル払いなのでドルで支払えるクレジットカードが必要になります。試験会場はテストセンターだけでなく、2020年からオンラインでも受験ができるようになりました。テストセンターは都市部にあることが多いので、利用が難しい方はオンライン受験を積極的に利用しましょう。筆者はテストセンターで受験しました。オンラインで受験する場合は静かで照明が明るい部屋やカメラが必要になりますので事前に要件を確認しておいてください。
テストセンターで受験する場合も、オンラインで受験する場合も試験の日付と時間を指定する必要があります。すでに埋まってる時間は受験できないので1カ月前には受験を申し込みましょう。
選択式の試験になります。問題数や合格基準は公開されていません。2時間あり問題をじっくり考えるのに十分な時間があります。筆者の経験的にも時間が足りなくなることはありませんでした。
残念ながら試験で不合格になった場合、2週間は再受験できません。2回目も不合格になった場合は60日再受験できないので気を付けてください。
認定試験がどんなものかがわかったら、次に現時点でのあなたがどれほどGoogle Cloudの知識を持っているかを確認していきましょう。チェックリストを用意しました。少し項目が多いですが、素直な気持ちでやってみてください。
項目 | 理解度チェック(〇/×) |
---|---|
GCPのプロジェクトについて理解している | |
課金体系について理解している | |
リージョンとゾーンについて理解している | |
各サービスとやり取りする方法を理解している |
サービス名 | どのようなサービスかを知っている(〇/×) | サービスを使ったことがある(〇/×) |
---|---|---|
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 |
いかがでしたでしょうか。サービスの数多いですよね。今の時点でほとんど知らなくても問題ありません。スタート地点が理解できただけです。これから全ての項目を〇にできるように共に学んでいきましょう。
さて、ここからはGCPにはどのようなサービスがあるのかを学んでいきましょう。いろいろなサービスを学ぶ前に、この章ではGCPの課金方法やプロジェクトと呼ばれるサービスを管理する単位、リージョンやゾーンといった基礎的な概念を学びましょう。
GCPにおいてはプロジェクトと呼ばれる管理単位があります。
GCPのサービスを利用する際はプロジェクトに必ず紐づけなければいけません。サービスは必ずプロジェクトに所属する必要があり、必ず1つである必要があります。
解りづらいので図解しましょう。以下の図を見てください。
プロジェクトAとプロジェクトBの両方に「サーバ1」というサービス(この図ではCloud Compute Engine)がありますが、この2つは名前が同じだけで異なるサーバです。「サーバ2」・「サーバ3」も同様です。このようにサービスはプロジェクト単位で管理されます。「プロジェクトAのサーバ1」がプロジェクトBにも管理されるといったことはありません。プロジェクトがサービスの上位の管理概念になります。
プロジェクトの概念について理解できたら、もう1つ理解してほしいことがあります。プロジェクトの識別方法についてです。プロジェクトを作成すると、名付けた名前とは別の識別する2つの名前が与えられます。
種類 | 内容 |
---|---|
プロジェクト名 | プロジェクトの名前。自由につけることが可能で後から変更もできます。一意である必要はないので、自由に名前をつけることができます。 |
プロジェクトID | コマンドやAPIで使用するプロジェクトの名称。プロジェクト名とは違い機械が解釈しやすいIDになっています。世界中で一意である必要があります。プロジェクト名からデフォルトの値が付与されますが、プロジェクト作成時にのみ自分で変更することができます。小文字、数字、ハイフンだけが使用できます。 |
プロジェクト番号 | プロジェクト作成時に自動で付与される番号。世界中で一意な番号です。 |
少しややこしいですが、人が呼ぶときはプロジェクト名、コマンドやプログラムで識別されるのはプロジェクトIDだと覚えておけば大丈夫です。プロジェクト番号はほとんどの場合、使われません。
GCPのサービスを使用するためには課金の設定が必要です。具体的にはクレジットカードの登録です。個人で使う場合にはプロジェクトを管理するのも支払いを管理するのも自分です。料金は使用したサービスの分を支払います。サービス毎に料金の計算方法が異なり、少し複雑です。この次の章ではサービスを解説しつつ何に課金が発生するかも学びます。
なおGCPでは、プロジェクトを管理するアカウントと課金を管理するアカウントを別にできます。請求先アカウントと呼ばれる支払の管理だけができるアカウント(GCPの操作はできないアカウント)を作成できるため、企業で使う場合に「請求先アカウントは経理部に」といった使い方ができます。
前項で少し触れた、企業でのGCPの使用について少し詳しく学びましょう。請求先アカウントだけではなく、プロジェクトそのものを階層化して管理できる仕組みも用意されています。それがフォルダです。フォルダはプロジェクトをグループする概念で、Resource Managerを使うことでフォルダを作成しプロジェクトを階層管理できます。具体的な例として、以下の図をご覧ください。
例えば、先ほどの図の場合「モバイル事業部」の管理層には「プロダクトA・B・Cプロジェクト」の管理権限を付与し、「EC事業部」の管理層には「プロダクトD・E・Fプロジェクト」の管理権限を付与するようにできます。ただし、フォルダ管理を利用するためには組織リソースというフォルダ階層のルートノードを作成する必要があり、組織リソースはG-Suite(「16.1 G-Suite」)かCloud Identityを使用している必要があります。それ以外のGoogleアカウントでは利用できません。
この節ではGCPを使う上で重要になるリージョンとゾーンについて学びます。非常にシンプルです。
リージョンは各サービスが実装されている物理的な場所です。サービスが動いているデータセンターと思ってもらって間違いありません。例えば、リージョン「asia-northeast1」は東京にありますし、リージョン「us-east1」はサウスカロライナに存在します。利用者のネットワーク的な距離や、災害等のリスクを鑑みて使用するリージョンを決める必要があります。リージョンごとに提供しているサービスが違うので、使用したいサービスがどのリージョンに存在するかは利用前に調べる必要があります。
2020年8月現在20以上のリージョンがあり、日本には東京と大阪リージョンが存在します。
ゾーンはリージョンの中のサーバのクラスタです。同じリージョンの中でもサーバの筐体・電源・冷却システムを別にしたクラスタです。GCPの障害によって1つのゾーンが使用不能になった場合でも他のゾーンは利用可能です。リスク分散を考えてゾーンを複数に分けてサービスを利用すると障害耐性が上がります。
リージョンとゾーンのイメージ図を以下に示します。それぞれの「zone-a」は別々のリージョンにあるので同じ名前ですが、異なるゾーンです。
GCPを管理するためのツールにです。gcloud・gsutil・bq等のコマンドで構成されており、WindowsをはじめmacOSやLinux等主要なOSにインストールできます。コマンドでGCPのサービスの作成や削除ができ、慣れてくるとウェブコンソールより早く操作できるようになります。GCPではブラウザで操作できる無料のLinuxコンソール(Cloud Shell)が用意されておます。これには予めGoogle Cloud SDKがインストールされているので、ブラウザがあればすぐに使用できます。
本書では解説にCloud Shellを使用し、Google Cloud SDKを用いたサービスの作成方法を学びます。