インスタンス グループ


インスタンス グループとは、単一のエンティティとして管理できる仮想マシン(VM)インスタンスの集まりです。

Compute Engine には、マネージドと非マネージドの 2 種類の VM インスタンス グループがあります。

  • マネージド インスタンス グループ(MIG)では、複数の同一 VM でのアプリケーション操作が可能です。自動スケーリング、自動修復、リージョン(マルチゾーン)デプロイメント、自動更新などの自動化 MIG サービスを活用することで、スケーラブルで可用性に優れたワークロード処理を実現します。
  • 非マネージド インスタンス グループでは、ユーザー自身が管理する一連の VM 間での負荷分散が可能です。

使ってみる

Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオで Compute Engine のパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。

Compute Engine の無料トライアル

マネージド インスタンス グループ(MIG)

マネージド インスタンス グループ(MIG)は、次のような場合に使用します。

  • ステートレスのサービス提供側のワークロード(ウェブサイト フロントエンドなど)
  • 高性能または高スループットのステートレスなバッチ処理用コンピューティング ワークロード(キューからの画像処理など)
  • ステートフル アプリケーション(データベース、レガシー アプリケーション、チェックポインティングを使用した長時間実行バッチ計算など)

Compute Engine は、インスタンス テンプレートとオプションのステートフル構成で指定した構成に基づいて MIG の各マネージド インスタンスを維持します。

MIG の作成方法については、マネージド インスタンス グループの作成をご覧ください。

利点

MIG には次のような利点があります。

  • 高可用性
    • 障害が発生した VM の自動補修。グループ内の VM が停止、クラッシュ、プリエンプト(Spot VM)されるか、MIG が開始していないアクションによって削除された場合、MIG は、VM が作業を再開できるように、元の構成(同じ VM 名、同じテンプレート)に基づく VM を自動的に再作成します。
    • アプリケーション ベースの自動修復。アプリケーション ベースのヘルスチェックもセットアップできます。このヘルスチェックにより、MIG の各インスタンスでアプリケーションが意図したとおり応答していることを定期的に確認できます。アプリケーションが VM で応答しない場合、MIG により VM が自動的に再作成されます。アプリケーションが応答していることを確認するほうが、単に VM が起動して実行されていることを確認するよりも正確な結果を得られます。
    • リージョン(マルチゾーン)カバレッジ。リージョン MIG を使用すると、アプリの負荷を複数のゾーンに分散できます。このレプリケーション機能により、ゾーン障害から守られます。万が一、ゾーン障害が発生した場合でも、アプリケーションは同じリージョン内の他の利用可能なゾーンで実行されているインスタンスからトラフィックの処理を続行できます。
    • 負荷分散。MIG は負荷分散サービスと連携して、グループ内のすべてのインスタンスにトラフィックを分散します。
  • スケーラビリティ。アプリケーションに追加のコンピューティング リソースが必要な場合は、自動スケーリングされた MIG によってグループ内のインスタンス数を自動的に増やし、需要に応じることができます。需要が低下した場合、自動スケーリングされた MIG は自動的に縮小するため、コストを削減できます。
  • 自動更新。MIG の自動更新機能を使用すると、MIG 内のインスタンスに新しいバージョンのソフトウェアを安全にデプロイし、ローリング アップデートやカナリア更新など、あらゆるロールアウト シナリオに柔軟に対応できます。また、デプロイメントの速度と範囲にとどまらず、サービス中断のレベルまで自在に制御可能です。
  • ステートフル ワークロードのサポート。MIG では、可用性の高いデプロイメントを構築し、ステートフルデータまたは構成(データベース、DNS サーバー、従来のモノリシック アプリケーション、チェックポインティングを使用した長時間実行バッチ計算など)を使用するアプリケーションの操作を自動化できます。ステートフル MIG は、マシンの再起動、再作成、自動修復、更新イベントで各インスタンスの固有の状態(インスタンス名、アタッチされた永続ディスク、メタデータ)を保持します。
マネージド インスタンス グループを使用して、ステートレス サービス、ステートフル アプリケーション、バッチ ワークロードに高可用性のデプロイメントを構築します。
MIG の機能と一般的なワークロードの概要

自動修正と自動修復

マネージド インスタンス グループは、インスタンスを事前に利用できる状態にしておくことで、アプリケーションの高可用性を維持します。MIG では、障害が発生したインスタンスが再作成されて自動的に補修されます。

また、アプリケーションのフリーズ、クラッシュ、メモリ不足が発生した際に、インスタンスの補修が必要な場合もあります。アプリケーション ベースの自動修復は、フリーズ、クラッシュ、過負荷などのアプリケーション固有の問題を検出するヘルスチェック シグナルに依存して行われるため、アプリケーションの可用性の向上に役立ちます。ヘルスチェックにより VM でアプリケーションがエラーになっていると判断されると、その VM インスタンスは MIG により自動的に再作成されます。

詳細については、MIG の VM の補修についてをご覧ください。

ヘルスチェック

MIG をモニタリングするために使用されるヘルスチェックは、負荷分散のためのヘルスチェックと似ていますが、動作に多少の違いがあります。負荷分散のヘルスチェックは、応答していないインスタンスから正常なインスタンスにトラフィックを振り替えるのに役立ちます。これらのヘルスチェックによって Compute Engine でインスタンスが再作成されることはありません。一方、マネージド インスタンス グループのヘルスチェックでは、インスタンスが UNHEALTHY になった場合、インスタンスの削除と再作成を求める通知が事前に送信されます。

大半のシナリオでは、負荷分散と自動修復にそれぞれ別のヘルスチェックを使用します。負荷分散のヘルスチェックとは、インスタンスがユーザー トラフィックを受信しているかどうかの確認です。そのため、より積極的な実施が可能で、またそのように実施すべきです。サービスを期待しているお客様のために、応答していないインスタンスをすばやくキャッチし、必要に応じてトラフィックをリダイレクトできるようにします。対照的に、自動修復のヘルスチェックでは、障害が発生しているインスタンスが MIG によってプロアクティブに置き換えられるので、このヘルスチェックはロード バランシングのヘルスチェックより慎重に実施しなければなりません。

詳細については、アプリケーションのヘルスチェックと自動修復を設定するをご覧ください。

リージョン グループとゾーングループ

2 つのタイプの MIG を作成できます。

  • ゾーン MIG: インスタンスを単一のゾーンにデプロイします。
  • リージョン MIG: インスタンスを同じリージョン内の複数のゾーンにデプロイします。

どちらのタイプでも、MIG の利点のすべてを享受できます。リージョン MIG は、アプリケーション負荷を複数のゾーンに分散させることで高可用性を実現し、ゾーン障害からワークロードを守ります。また、リージョン MIG のほうが容量が大きく、リージョン グループあたりで 2,000 個までインスタンスを作成できます。

負荷分散

Google Cloud Load Balancing では、インスタンス グループを使用してトラフィックを処理します。このインスタンス グループは、選択したロードバランサのタイプに応じてターゲット プールやバックエンド サービスに追加できます。

詳細については、インスタンス グループをロードバランサに追加するをご覧ください。

自動スケーリング

MIG がサポートする自動スケーリング機能は、負荷の増減に応じて、グループに対して VM インスタンスの追加または削除を動的に行います。自動スケーリング ポリシーを構成して、グループのスケーリング方法を指定できます。自動スケーリング ポリシーで 1 つ以上のシグナルを設定して、CPU 使用率、負荷分散能力、Cloud Monitoring の指標、スケジュールに基づいてグループをスケーリングできます。ゾーン MIG の場合は、キューベースのワークロード(Pub/Sub など)を使用します。

詳細については、インスタンスのグループの自動スケーリングをご覧ください。

自動更新

MIG 内のインスタンスに新しいバージョンのソフトウェアを簡単かつ安全にデプロイできます。更新のロールアウトは、仕様に基づいて自動的に行われます。アプリケーションの中断を最小限に抑えるために、更新ロールアウトの速度と範囲を制御できます。部分的ロールアウトを実行して、カナリアテストを行うこともできます。

MIG の更新をご覧ください。

ステートフル ワークロードのサポート

ステートフル マネージド インスタンス グループ(ステートフル MIG)を使用すると、高可用性のステートフル ワークロードを VM にデプロイできます。ステートフル ワークロードには、ステートフルデータまたは構成を使用するアプリケーション(データベース、従来のモノリシック アプリケーション、チェックポインティングを使用した長時間実行バッチ計算など)が含まれます。

自動修復更新の管理マルチゾーン デプロイを行うことで、これらのアプリケーションの稼働率と復元力を向上させることができます。カスタマイズ可能なインスタンス名、永続ディスク、メタデータなどのインスタンスの固有の状態は保持できます。

詳細については、ステートフル MIG をご覧ください。

プリエンプティブル インスタンスのグループ

コストが最小限であることが実行速度よりも重要なワークロードの場合は、プリエンプティブル VM インスタンスをインスタンス グループで使用することでワークロードのコストを削減できます。プリエンプティブル インスタンスは最長 24 時間持続し、正常にプリエンプトされます。この場合、アプリケーションを 30 秒以内に終了する必要があります。プリエンプティブル インスタンスはいつでも削除される可能性がありますが、このインスタンスはプリエンプティブル容量が再び利用可能になった後、自動修復によって元に戻されます。

コンテナ

マネージド インスタンス グループ内のインスタンスにコンテナをデプロイすることによって、アプリケーションのデプロイを簡単にできます。インスタンス テンプレートでコンテナ イメージを指定し、そのテンプレートを使用してマネージド インスタンス グループを作成すると、各 VM が Container-Optimized OS(Docker を含む)とともに作成され、コンテナはグループ内の各 VM で自動的に起動します。VM と MIG へのコンテナのデプロイをご覧ください。

ネットワークとサブネット

マネージド インスタンス グループを作成するときは、既存のインスタンス テンプレートを参照する必要があります。このインスタンス テンプレートで、メンバー インスタンスで使用する VPC ネットワークとサブネットを定義します。自動モード VPC ネットワークの場合、サブネットを省略できます。これによって、Google Cloud ではテンプレートで指定したリージョンに自動的に作成されたサブネットが選択されます。VPC ネットワークを省略すると、Google Cloud は default という名前の VPC ネットワークを使用しようとします。

詳細については、ネットワークとサブネットをご覧ください。

MIG 機能のデモ

Google Cloud NEXT '18 の 45 分間の動画プレゼンテーションでは、Compute Engine MIG を使用してスケーラブルで可用性の高いデプロイメントを設定、実行、更新するためのデモとベスト プラクティスが紹介されています。

この動画では、コンテナを MIG にデプロイする方法、自動修復ポリシーの設定方法、リージョン グループを使用してゾーン障害から守る方法、CPU ターゲットとキューベースの需要を満たす自動スケーリングの構成方法、カナリア更新とローリング アップデートの管理方法について説明します。

非マネージド インスタンス グループ

非マネージド インスタンス グループには、グループで任意に追加、削除できる異種のインスタンスを含めることができます。非マネージド インスタンス グループでは自動スケーリング、自動修復、マルチゾーン サポート、ローリング アップデート、インスタンス テンプレートを利用できないため、可用性の高いスケーラブルなワークロードのデプロイメントには適しません。非マネージド インスタンス グループが適しているのは、異種のインスタンスのグループを負荷分散する場合や、ユーザー自身でインスタンスを管理する必要がある場合です。

非マネージド インスタンス グループを作成する必要がある場合は、非マネージド インスタンス グループをご覧ください。

料金

マネージド インスタンス グループまたは非マネージド インスタンス グループの使用に追加料金はかかりません。グループで使用するリソースに基づいて課金されます。Compute Engine の料金については、料金をご覧ください。

次のステップ