インスタンス グループ

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

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

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

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

マネージド インスタンス グループ(MIG)は、ステートレスのサービス提供側のワークロード(ウェブサイト フロントエンドなど)や、高性能または高スループットのバッチ処理用コンピューティング ワークロード(キューからの画像処理など)に適しています。

MIG 内の各 VM インスタンスは、インスタンス テンプレートから作成されます。

利点

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

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

自動修復

マネージド インスタンス グループは、インスタンスを実行可能な状態(RUNNING 状態)にしておくことで、アプリケーションの高可用性を維持します。マネージド インスタンス グループでは、RUNNING 状態でないインスタンスは自動的に再作成されます。ただし、インスタンスの状態にのみ依存するのでは不十分な場合もあります。たとえばアプリケーションのフリーズ、クラッシュ、メモリ不足が発生した際に、インスタンスの再作成が必要なこともあります。

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

ヘルスチェック

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

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

詳細については、マネージド インスタンス グループのヘルスチェックと自動修復の設定をご覧ください。

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

次の 2 つのタイプのマネージド インスタンス グループを作成できます。

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

負荷分散

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

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

自動スケーリング

マネージド インスタンス グループがサポートする自動スケーリング機能は、負荷の増減に応じて、マネージド インスタンス グループを対象とする動的なインスタンスの追加または削除を行います。グループのスケーリング方法を具体的に指定するには、自動スケーリングを有効にし、自動スケーリング ポリシーを構成します。自動スケーリングのポリシーでは、CPU 使用率、負荷分散能力、Stackdriver Monitoring の指標や、Google Cloud Pub/Sub などのキューベースのワークロードに基づいたスケーリングを指定できます。

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

自動更新

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

マネージド インスタンス グループの更新をご覧ください。

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

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

コンテナ

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

ネットワーク

デフォルトでは、default ネットワークにグループのインスタンスが配置され、リージョンの範囲内の IP アドレスがランダムに割り当てられます。または、カスタムモード VPC ネットワークと狭い IP 範囲を使用するサブネットを作成し、インスタンス テンプレートでそのサブネットを指定すると、グループの IP 範囲を制限できます。

MIG 機能のデモ

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

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

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

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

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

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Compute Engine ドキュメント