めもめも

このブログに記載の内容は個人の見解であり、必ずしも所属組織の立場、戦略、意見を代表するものではありません。

OpenStackユーザーのためのGoogle Cloud Platform入門(パート1)

前置き

これは、GCPの公式文書ではありません。公式ドキュメントについては、公式ホームページを参照ください。

Google Cloud Platform

実際に試してみたい方は、60日の無料トライアルをお試しください。(クレジットカードの登録が必要ですが、トライアル終了後は明示的に課金設定を行わない限り、勝手に課金されることはありませんので、ご安心ください。)

cloud.google.com

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
https://cloud.google.com/compute/images/zones_diagram.svg
同一のリージョンに属するゾーンは専用線による高速ネットワークで接続されており、ゾーン間とゾーン内でほぼ同等の帯域・遅延を実現しています。したがって、クラスター型のアプリケーションを複数ゾーンにまたがってデプロイすることも可能で、複数の故障区域にまたがった高可用性を実現できます。
参考:
www.apps-gcp.com

また、2016年後半には、東京リージョンの運用が開始される予定になっています。

Google Cloud Platform に 2 つの新リージョンが追加、今後 10 リージョンがさらに追加予定

BigtableやCloud Storageなどのマネージドサービスについては、リージョンを指定して利用する(自動的に複数ゾーンで負荷分散する)方法とゾーンを指定して利用する(特定ゾーンのリソースのみを使用する)方法があり、指定可能な方法は、サービスによって異なります。詳しくは、下記のドキュメントを参照してください。

cloud.google.com

次回予告

パート2では、NeutronとNetworkingの比較を行います。

enakai00.hatenablog.com