前置き
これは、GCPの公式文書ではありません。公式ドキュメントについては、公式ホームページを参照ください。
実際に試してみたい方は、60日の無料トライアルをお試しください。(クレジットカードの登録が必要ですが、トライアル終了後は明示的に課金設定を行わない限り、勝手に課金されることはありませんので、ご安心ください。)
GCP(Google Cloud Platform)の基本的な整理
GCPは、Googleが提供する(Google Appsとして提供するSaaS製品を除く)クラウドサービスの総称で、「コンピュート」「ストレージ」「ビッグデータ」などのカテゴリー別にサービスが提供されています。たとえば、「コンピュート」と「ストレージ」のカテゴリには、次のようなサービスがあります。
コンピュート
サービス | 説明 |
---|---|
App Engine | スケールアウト型Webアプリケーションの実行環境 |
Compute Engine | 仮想マシンの実行環境 |
Container Engine | Kubernetesをベースとしたコンテナ実行環境 |
Cloud Functions | イベントドリブンの非同期処理の実行環境 |
Networking | 上記のサービスに共通のネットワークインフラを提供 |
ストレージ
サービス | 説明 |
---|---|
Bigtable | HBase互換の分散KVS |
Cloud SQL | フルマネージドサービス型のMySQL |
Cloud Datastore | 独自のNoSQLデータベース |
Cloud Storage | オブジェクトストレージ |
この他に各サービスに対して共通の認証&アクセス制御機能として、IAM(IDENTITY & ACCESS MANAGEMENT)が提供されています。また操作環境として、REST API、SDK(gcloudコマンドをはじめとするCLI)、Cloud Console(Webポータル)が利用できます。
OpenStackとの対比でいうと、ざっくり下記の対比となります。
OpenStack | GCP |
---|---|
Keystone | IAM |
Horizon | Cloud Console |
Nova, Glance, Cinder | Compute Engine |
Neutron | Networking |
Swift | Cloud Storage |
リージョンとゾーンの構成
OpenStackの場合
OpenStackでは、複数のロケーションにまたがるクラスターを構成する場合、1つのコントローラーが管理するクラスターを「リージョン」として定義します。また、1つのリージョン内に複数の「アベイラビリティゾーン」を定義して、コンピュートノードやストレージ装置などの物理的なリソースをグループ分けすることが可能です。アベイラビリティゾーンをどのように分けるかは、インフラの設計次第ですが、典型的には、ラック単位で分割する、データセンター単位で分割するなどがあります。
ただし、同じリージョンに属するアベイラビリティゾーン間は、ある程度のネットワーク帯域が確保されている必要があります。1つのコントローラーが管理するクラスターは、同一のデータセンターに配置するというのが現時点でのベストプラクティスとなります。
GCPの場合
GCPでも同様に、「リージョン」と「ゾーン」によってリソースの物理配置が決定されます。2016年7月時点では、全世界に4箇所のリージョンがあり、それぞれのリージョンに複数のゾーンが用意されています。
参考:
・Google Cloud Platform: Regions and Zones
同一のリージョンに属するゾーンは専用線による高速ネットワークで接続されており、ゾーン間とゾーン内でほぼ同等の帯域・遅延を実現しています。したがって、クラスター型のアプリケーションを複数ゾーンにまたがってデプロイすることも可能で、複数の故障区域にまたがった高可用性を実現できます。
参考:
www.apps-gcp.com
また、2016年後半には、東京リージョンの運用が開始される予定になっています。
・Google Cloud Platform に 2 つの新リージョンが追加、今後 10 リージョンがさらに追加予定
BigtableやCloud Storageなどのマネージドサービスについては、リージョンを指定して利用する(自動的に複数ゾーンで負荷分散する)方法とゾーンを指定して利用する(特定ゾーンのリソースのみを使用する)方法があり、指定可能な方法は、サービスによって異なります。詳しくは、下記のドキュメントを参照してください。