Compute Engine

**Compute Engine**（GCE）は、Google 検索、Gmail、YouTubeなどのサービスを支えるグローバルなインフラストラクチャ上に構築された、Google CloudのIaaS（Infrastructure as a Service）コンポーネントである。Google Compute Engineを使用することで、ユーザーは（OAuth 2.0に基づく認証を利用して）オンデマンドで仮想マシン（VM）を起動できる。仮想マシンは、標準イメージまたはユーザーが作成したカスタムイメージから起動可能である。Google Compute Engineへは、デベロッパーコンソール、RESTful API、またはコマンドラインインターフェース（CLI）を介してアクセスできる。

## 歴史
Googleは2012年6月28日、Google I/O 2012において限定プレビューモードでCompute Engineを発表した。

2013年4月、GCEはゴールドサポートパッケージを契約している顧客に提供された。

2013年2月25日、GoogleはRightScaleが同社初の再販業者になったことを発表した。Google I/O 2013では、1時間未満の課金、共有コアインスタンスタイプ、より大きな永続ディスク、強化されたSDNベースのネットワーク機能、ISO/IEC 27001認証など、多くの機能が発表された。

2013年5月15日、GCEは一般公開された。

2013年8月7日にはレイヤー3ロードバランサーが導入された。

2013年12月2日、Googleは最終的にGCEの一般提供（GA）開始を発表した。また、OSサポートの拡大、VMのライブマイグレーションの有効化、16コアインスタンス、より高速な永続ディスクの導入、および標準インスタンスの値下げが行われた。

2014年3月25日に開催されたイベント「Google Cloud Platform Live」にて、テクニカルインフラストラクチャ担当シニアVPであるUrs Hölzleは、継続利用割引、Microsoft Windows Server 2008 R2のサポート、Cloud DNS、Cloud Deployment Managerを発表した。

2014年5月28日、GoogleはLXCコンテナの最適化と、VMインスタンス群全体におけるDockerコンテナの動的スケジューリングを発表した。

## Google Compute Engine Unit
Google Compute Engine Unit（GCEU）は「GQ」と発音され、コンピューティングリソースを抽象化した単位である。Googleによると、2.75 GCEUは、Sandy Bridgeプラットフォームに基づく1つの論理コア（ハードウェアのハイパースレッド）の最小性能を表している。GCEUは、Googleが提供する仮想マシンのパフォーマンスを比較する必要性からAnthony F. Voellmによって考案された。これは、多くのクラウドプロバイダーと提携してGoogleが作成したオープンソースのベンチマークであるPerfKitBenchmarkerの一部として実行される、Coremark(TM)ベンチマークによって近似される。

## 永続ディスク
すべてのGoogle Compute Engineインスタンスは、永続ディスクと呼ばれるディスクリソースから開始される。永続ディスクはインスタンスにディスクスペースを提供し、インスタンスが起動するルートファイルシステムを含んでいる。永続ディスクは、生のブロックデバイスとして使用できる。デフォルトでは、Google Compute Engineは永続ディスクの接続にSCSIを使用する。永続ディスクは、一貫性があり信頼性の高いストレージを一貫性のある価格で提供するため、個別のローカルエフェメラルディスクの必要性を排除する。永続ディスクは、インスタンスを起動する前に作成する必要がある。インスタンスに接続された後は、ネイティブのファイルシステムでフォーマットできる。1つの永続ディスクを、読み取り専用モードで複数のインスタンスに接続可能である。各永続ディスクのサイズは最大10 TBまで設定できる。Google Compute Engineは、AES-128-CBで永続ディスクを暗号化しており、この暗号化はデータが仮想マシンモニタを離れてディスクに書き込まれる前に適用される。暗号化は常に有効であり、ユーザーに対して透過的に行われる。永続ディスクの整合性はHMACスキームを介して維持される。

2014年6月18日、GoogleはSSD永続ディスクのサポートを発表した。これらのディスクは、1 GBあたり最大30 IOPSを提供し、これは標準の永続ディスクと比較して書き込みIOPSで20倍、読み取りIOPSで100倍の性能向上となる。

## イメージ
イメージとは、インスタンスの起動に必要なオペレーティングシステムとルートファイルシステムを含む永続ディスクのことである。インスタンスの作成時、またはルート永続ディスクの作成時にイメージを選択する必要がある。デフォルトでは、イメージによって定義されたルートファイルシステムがルート永続ディスクにインストールされる。Google Compute Engineは、標準のLinuxイメージとしてCentOSおよびDebianを提供している。Red Hat Enterprise Linux（RHEL）およびMicrosoft Windows Server 2008 R2のイメージは、追加料金で利用可能なプレミアムオペレーティングシステムイメージの一部である。ChromiumOSをベースとした軽量Linux OSであるContainer Linux（旧CoreOS）も、Google Compute Engineでサポートされている。

## マシンタイプ
Google Compute EngineはKVMをハイパーバイザとして使用し、64ビットx86アーキテクチャに基づく仮想マシンを起動するために使用されるLinuxおよびMicrosoft Windowsを実行するゲストイメージをサポートしている。

## マシンタイプの比較
Googleは以下の特定のマシンタイプを提供している。

* 標準マシン：仮想CPUあたり3.75 GBのRAM
* ハイメモリマシン：仮想CPUあたり6.5 GBのRAM
* ハイCPUマシン：仮想CPUあたり0.9 GBのRAM
* 共有マシン：CPUとRAMが顧客間で共有される
* メモリ最適化マシン：vCPUあたり14 GB以上のRAM

以下に示す価格は、標準的なDebianまたはCentOS Linux仮想マシン（VM）の実行に基づいている。プロプライエタリなオペレーティングシステムを実行するVMには、追加料金が発生する。

## リソース
Compute Engineは、デプロイメントの一部となる「リソース」と呼ばれるさまざまなエンティティを接続する。各リソースは異なる機能を実行する。仮想マシンインスタンスが起動されると、ディスクリソース、ネットワークリソース、イメージリソースなどの他のリソースを使用するインスタンスリソースが作成される。たとえば、ディスクリソースは物理ハードドライブと同様に仮想マシンのデータストレージとして機能し、ネットワークリソースはインスタンスとの間のトラフィックの調整を支援する。

### イメージ
イメージリソースには、インスタンスの起動に必要なオペレーティングシステムとルートファイルシステムが含まれている。Googleは、すぐに使用できるイメージを管理・提供しているほか、ユーザーがイメージをカスタマイズして、インスタンス作成用の任意のイメージとして使用することもできる。必要に応じて、イメージを永続ディスクに適用し、その永続ディスクをルートファイルシステムとして使用することも可能である。

### マシンタイプ
インスタンスのマシンタイプは、インスタンスがサポートするコア数、メモリ、およびI/O操作の数を決定する。

### ディスク
永続ディスクは仮想マシンから独立しており、インスタンスの寿命を超えて存続する。永続ディスクに保存されるすべての情報は、物理メディアに書き込まれる前に暗号化され、キーはGoogleによって厳密に管理されている。

各インスタンスには、合計永続ディスク容量（ほとんどのインスタンスで最大64 TBまで）および個別の永続ディスク数（ほとんどのインスタンスで最大16個の独立した永続ディスクを接続可能）に制限がある。

リージョン永続ディスクは、可用性を高めるために、リージョン内の2つのゾーン間で複製できる。

### スナップショット
永続ディスクスナップショットを使用すると、既存の永続ディスクからデータをコピーし、新しい永続ディスクに適用できる。これは、予期しない障害やゾーンのメンテナンスイベントが発生した場合の、永続ディスクデータのバックアップ作成に特に役立つ。

### インスタンス
Google Compute Engineインスタンスは、LinuxまたはMicrosoft Windows構成で実行される仮想マシンである。ユーザーは、ハードウェア、OS、ディスク、その他の構成オプションのカスタマイズを含め、インスタンスを変更できる。

### ネットワーク
ネットワークは、接続されているすべてのインスタンスのアドレス範囲とゲートウェイアドレスを定義する。また、インスタンス同士、他のネットワーク、および外部世界とどのように通信するかを定義する。各インスタンスは単一のネットワークに属し、異なるネットワーク内のインスタンス間の通信はパブリックIPアドレスを介して行う必要がある。

Cloud Platformコンソールのプロジェクトには複数のネットワークを含めることができ、各ネットワークには複数のインスタンスを接続できる。ネットワークを使用すると、ユーザーはゲートウェイIPと、そのネットワークに接続されているインスタンスのネットワーク範囲を定義できる。デフォルトでは、すべてのプロジェクトにプリセット構成とファイアウォールルールを備えたデフォルトネットワークが提供されている。ユーザーは、ルールの追加や削除によってデフォルトネットワークをカスタマイズしたり、プロジェクト内に新しいネットワークを作成したりできる。一般的に、ほとんどのユーザーは1つのネットワークのみを必要とするが、デフォルトでプロジェクトあたり最大5つのネットワークを持つことができる。

ネットワークは1つのプロジェクトにのみ属し、各インスタンスは1つのネットワークにのみ属することができる。すべてのCompute EngineネットワークはIPv4プロトコルを使用する。Compute Engineは現在IPv6をサポートしていない。しかし、GoogleはIPv6の主要な推進者であり、それは重要な将来の方向性である。

### アドレス
インスタンスが作成されると、デフォルトでエフェメラル（一時的）外部IPアドレスが自動的に割り当てられる。このアドレスはインスタンスの存続期間中インスタンスに関連付けられ、インスタンスが終了すると解放される。GCEは、静的IPを予約してVMにアタッチするメカニズムも提供している。エフェメラルIPアドレスは、静的IPアドレスに昇格させることができる。

### ファイアウォール
ファイアウォールリソースには、インスタンスへの接続を許可する1つ以上のルールが含まれている。すべてのファイアウォールリソースは、ただ1つのネットワークに関連付けられる。1つのファイアウォールを複数のネットワークに関連付けることはできない。ファイアウォールリソースがネットワークトラフィックを許可しない限り、同じネットワーク上のインスタンス間であっても、インスタンスへの通信は許可されない。

### ルート
Google Compute Engineは、特定のIP範囲宛てのトラフィックをどのようにルーティングすべきかを管理するルーティングテーブルを提供している。ローカルエリアネットワークの物理ルーターと同様に、すべての送信トラフィックはルートテーブルと比較され、送信パケットがルートテーブルのいずれかのルールに一致する場合、適切に転送される。

## リージョンとゾーン
リージョンとは、Googleのインフラストラクチャ施設の地理的な場所を指す。ユーザーは、要件に基づいて利用可能なリージョンのいずれかにリソースをデプロイすることを選択できる。2014年6月1日時点で、Google Compute Engineは米国中部リージョン、西欧リージョン、東アジアリージョンで利用可能である。

ゾーンは、リージョン内の隔離された場所である。ゾーンは、同じリージョン内の他のゾーンに対して広帯域幅で低遅延のネットワーク接続を備えている。高い可用性を持つ耐障害性の高いアプリケーションをデプロイするために、Googleはアプリケーションをリージョン内の複数のゾーンにデプロイすることを推奨している。これにより、単一ゾーンを含むコンポーネントの予期しない障害から保護できる。2014年8月5日時点で、米国中部および東アジアに各3つ、西欧に2つの合計8つのゾーンが存在する。

## リソースのスコープ
GCE内のすべてのリソースは、グローバル、リージョン、またはゾーンのいずれかのプレーン（平面）に属している。グローバルリソースは、すべてのリージョンおよびゾーンからアクセス可能である。たとえば、イメージはグローバルリソースであるため、ユーザーはグローバルイメージに基づいて任意のリージョンでVMを起動できる。しかし、アドレスはリージョンリソースであり、同じリージョン内のいずれかのゾーンで起動されたインスタンスのみが利用可能である。インスタンスは特定のゾーンで起動されるため、そのインスタンスへのすべてのリクエストにゾーンの指定が必要となる。

以下の表に、GCEリソースのスコープをまとめる。

## 機能

### 課金と価格モデル
GoogleはVMに対して最低10分間の課金を行う。10分経過後は、1分単位で課金され、端数は切り上げられる。継続利用割引は、月間の利用率に基づいて顧客に割引を適用する。ユーザーは、通常のオンデマンド価格に対して割引を受けるために、事前にコミットメント料金を支払う必要はない。

### VMのパフォーマンス
Compute EngineのVMは30秒以内に起動し、これは競合他社よりも4〜10倍高速であると考えられている。

### ディスクのパフォーマンス
Compute Engineの永続ディスクは、一貫して高いIOPSを提供する。プロビジョニングされたIOPSのコストはストレージコストに含まれているため、ユーザーはIOPSに対して別途支払う必要はない。

### イメージとスナップショットのグローバルスコープ
イメージとディスクスナップショットはグローバルスコープに属しており、これはGoogle Cloud Platformのすべてのリージョンおよびゾーンで暗黙的に利用可能であることを意味する。これにより、リージョン間でイメージやスナップショットをエクスポートおよびインポートする必要がなくなる。

### 透過的なメンテナンス
Googleデータセンターの計画メンテナンス中、Compute Engineはユーザーの操作を必要とせずに、VMをあるホストから別のホストへ自動的に移行できる。これにより、アプリケーションの稼働率が向上する。

## 脚注

## 外部リンク

* 
*