MIG のインスタンス分布をモニタリングする

このドキュメントでは、マネージド インスタンス グループ(MIG)での仮想マシン(VM)インスタンスの分布をモニタリングするメリット、ユースケース、手順について説明します。この手順では、Cloud Monitoring で GCE MIG インスタンス分布モニタリング ダッシュボードを表示、カスタマイズ、クエリする方法について説明します。

MIG がロケーションの柔軟性を使用して複数のゾーンにインスタンスを分散する場合、インスタンスの柔軟性を使用して複数の互換性のあるマシンタイプを指定する場合、またはその両方の場合、MIG はリアルタイムのリソースの可用性に基づいてインスタンスを動的に選択してプロビジョニングします。すべての MIG でこの動的な動作をランタイムで確認するには、GCE MIG インスタンス分布モニタリング ダッシュボードを使用します。この事前構成済みのダッシュボードでは、インスタンスがゾーンとマシンタイプに分散されている状況をリアルタイムで確認できます。ダッシュボードには、実行中(アクティブ)のインスタンスと実行中ではない(非アクティブ)のインスタンス、および期間中のインスタンスの合計数も表示されます。たとえば、ダッシュボードの指標を解釈して、容量の割り当て、ゾーンのバランス、フォールバック動作を診断できます。

MIG でインスタンスの分布をモニタリングするメリット

MIG がリージョン グループ内の複数のゾーンにインスタンスをデプロイする場合、またはインスタンスの柔軟性ポリシーで複数のマシンタイプとランクを指定する場合、ロケーションとマシンタイプの実際の分布は、リソースの可用性に応じて動的に変化します。

ランタイム インスタンスの分布をモニタリングすると、次のことが可能になります。

  • 取得可能性を改善し、容量制約を軽減する: スケールアウト時に MIG がリソースを正常に取得しているかどうかを確認します。フォールバック ランクでのインスタンスの作成は、インスタンスの柔軟性ポリシーが一時的な容量制約を効率的に緩和していることを示しています。ただし、これらのフォールバックにもかかわらず、グループが目標サイズに達しない場合は、許可されるマシンタイプを増やすか、ゾーンを追加して、将来のリソース可用性エラーの可能性を減らすことを検討してください。

  • ロケーションの柔軟性とゾーンのバランスを確認する: リージョン MIG が意図したとおりにゾーン間で容量のバランスを取っていること(EVEN または BALANCED)を確認するか、ANY または ANY_SINGLE_ZONE のターゲット分配形態を使用している場合にゾーン間で容量が動的にシフトする様子を観察します。

  • 費用とパフォーマンスのバランスを取る: インスタンスの柔軟性を備えた MIG に選択されているマシンタイプを追跡することで、費用とパフォーマンスをより深く理解し、改善の機会を探すことができます。たとえば、インスタンスがワークロードの要件よりも高いパフォーマンスを常に提供している場合は、ワークロードで低コストのオプションを優先できるかどうかを検討してください。また、パフォーマンスの問題が発生した場合は、入手可能性に基づいて、ワークロードを複数のマシンに分割するのではなく、高パフォーマンスのマシンタイプを優先することを検討してください。

モニタリング ダッシュボードがオブザーバビリティに関する質問にどのように役立つかについては、このドキュメントのダッシュボードを解釈するをご覧ください。

MIG インスタンスの分布をモニタリングする

MIG のインスタンス分布は、次のいずれかの方法でモニタリングできます。

  • Cloud Monitoring ダッシュボードを使用して、インスタンスの分布を視覚的に表示します。詳細については、このドキュメントのモニタリング ダッシュボードについてをご覧ください。

  • PromQL をコードベースの代替手段として使用して、基盤となる指標をプログラムでクエリします。これにより、インスタンス分布データをカスタム オブザーバビリティ ダッシュボードや外部モニタリング ツール(Grafana など)に統合できます。詳細については、このドキュメントの PromQL を使用してプログラムでクエリするをご覧ください。

モニタリング ダッシュボードについて

Cloud Monitoring には、[Google サービス] カテゴリに事前構成されたダッシュボードが用意されています。MIG の場合、GCE MIG インスタンス分布モニタリング ダッシュボードには、次の 4 つの専用グラフが表示されます。

  • ゾーン別のインスタンス分布: ゾーン別にグループ化されたインスタンス数を示すグラフ。リージョン間のロケーションの柔軟性とゾーン分布を示します。

  • マシンタイプ別のインスタンス分布: マシンタイプ別にグループ化されたインスタンス数を表示するグラフ。グループがさまざまなマシンタイプとサイズに容量を割り当てる方法を示します。

  • アクティブなインスタンスと非アクティブなインスタンス: アクティブなインスタンスと非アクティブなインスタンスの数を示すグラフ。アクティブなインスタンスは完全に動作しており、実行中です(RUNNING)。非アクティブなインスタンスは、実行されていないが削除されていないインスタンスです。これには、作成中(PROVISIONINGSTAGING)、一時停止中(SUSPENDED)、シャットダウン中(STOPPEDTERMINATED)のインスタンスが含まれます。

  • インスタンスの合計数: MIG 内のインスタンスの合計数を期間にわたって表示するグラフ。

デフォルトでは、ダッシュボードはプロジェクト内のすべての MIG のデータを集計します。単一の MIG を表示するには、MIG(instance_group)でフィルタできます。プロジェクトに複数のロケーションで同じ名前の MIG が含まれている場合は、リージョン(region)またはゾーン(zone)フィルタを適用して、特定の MIG をターゲットにします。

GCE MIG インスタンス分布モニタリング ダッシュボードのグラフは、compute.googleapis.com/instance/cpu/utilizationmetadata.system_labels.machine_type などの標準の Compute Engine システム メタデータ ラベルと指標に依存しています。これらのシステム指標とメタデータ ラベルは、すべての Compute Engine インスタンスに対して Cloud Monitoring によって自動的に収集されます。このダッシュボードでインスタンスの分布、ゾーン、マシンタイプ、状態のグラフを表示するために、Ops エージェントをインストールしたり、インスタンス内でカスタム ゲスト テレメトリーを構成したりする必要はありません。

必要なロール

ダッシュボードの表示とカスタマイズ

Cloud de Confiance コンソールから GCE MIG インスタンス分布モニタリング ダッシュボードを表示し、必要に応じてコピーしてカスタマイズし、特定のリージョン、ゾーン、MIG をモニタリングできます。

  1. 事前構成された GCE MIG インスタンス分布モニタリング ダッシュボードを表示する手順は次のとおりです。

    1. Cloud de Confiance コンソールで、[モニタリング] > [ダッシュボード] ページに移動します。

      ダッシュボードに移動する

    2. [フィルタ] で、[GCE MIG インスタンス分布モニタリング] ダッシュボードを検索して選択します。このダッシュボードは、[種類] メニュー > [Google サービス] カテゴリでも確認できます。

    ダッシュボードはそのまま使用することも、コピーしてさらにカスタマイズすることもできます。

  2. 省略可: ダッシュボードをカスタマイズするには、まずダッシュボードをコピーしてから、次のように編集する必要があります。

    1. コピーするには、[ダッシュボードをコピー] をクリックします。

    2. コピーしたダッシュボードを編集し、必要に応じて名前、グラフを変更し、フィルタを適用して、カスタム レイアウト構造を構成します。

    コピーまたはカスタマイズしたダッシュボードは、[タイプ] メニュー > [カスタム] カテゴリで確認できます。

ダッシュボードのカスタマイズの詳細については、Cloud Monitoring ドキュメントの次のページをご覧ください。

ダッシュボード フィルタを適用する

[GCE MIG Instance Distribution Monitoring] ダッシュボードには、MIG の特定のサブセットをドリルダウンできる組み込みのフィルタ変数があります。

  • リージョン(region: グラフをフィルタして、1 つ以上の特定のCloud de Confiance by S3NS リージョン内のインスタンスを表示します。

  • ゾーン(zone: グラフをフィルタしてゾーン分布を観察し、インスタンスが均等に分散されているか、特定のゾーン間で容量が移動しているかを確認します。

  • インスタンス グループ(instance_group: プロジェクトに複数の MIG が含まれている場合に、グラフをフィルタして単一の MIG を分離します。

Cloud de Confiance コンソールでフィルタを適用するには、コピーしたダッシュボードの上部にある [フィルタ] ボタンをクリックし、フィルタ プロパティ(regionzoneinstance_group など)を選択して、選択した値を選択します。

フィルタの使用方法の詳細については、Cloud Monitoring ドキュメントのカスタム ダッシュボードに一時的なフィルタを追加するをご覧ください。

イベント アノテーションを構成する

ゾーンとマシンタイプ間のインスタンス分布の変化を分析するときに、ライフサイクル イベントまたはデプロイの注釈を構成すると、容量の変化と特定の運用アクティビティを関連付けることができます。たとえば、グラフのタイムラインにアノテーションを追加して、次のようなイベントをハイライト表示できます。

  • ターゲット分配形態、instanceSelectionsrank の順序の変更など、MIG 構成の更新。

  • グループ内で開始されたローリング アップデートまたはインスタンスの修復。

  • シミュレートされたゾーン停止イベントまたは実際のゾーン停止イベント。

  • 自動スケーリングの決定。

使用可能なイベントタイプとアノテーションの追加方法の詳細については、Cloud Monitoring ドキュメントの次のページをご覧ください。

ダッシュボードの見方

MIG インスタンス分布ダッシュボードを表示するときは、次のガイダンスを使用して、一般的なオブザーバビリティの質問に答え、動的なロケーションとマシンタイプの動作を解釈します。

インスタンスが特定のゾーンで実行されている、またはゾーン間で移行しているのはなぜですか?

[ゾーン別のインスタンス分布] グラフに、リージョン MIG のゾーン間の分布が不均一であることや、ロケーション間の容量が急激に変化していることが示されている場合は、次のロケーションの柔軟性に関する要因を確認します。

  • ターゲット分配形態: 構成したターゲット分配形態を確認します。MIG が ANY または ANY_SINGLE_ZONE で構成されている場合、MIG はインスタンスを均等に分散するのではなく、容量または未使用の予約が最も利用可能なゾーンを優先します。MIG が BALANCED を使用している場合、グループはゾーン間でインスタンス数をバランスよく維持しようとしますが、特定のゾーンで一時的な容量不足が発生した場合は、インスタンスを一時的に別のゾーンに配置することがあります。

  • リージョン容量の再配布: 局所的なゾーンの停止などのイベントにより容量が一時的に不足した場合、高可用性用に構成されたリージョン MIG は、リージョン内の代替ゾーンで代替インスタンスを自動的に検索して割り当てます。ダッシュボードには、このロケーションの柔軟性が反映され、影響を受けるゾーンのインスタンス数が減少し、代替ゾーンのインスタンス数が対応して増加します。

MIG がフォールバック マシンタイプで実行されているのはなぜですか?

MIG がインスタンスの柔軟性を使用しており、[マシンタイプ別のインスタンス分布] グラフに、グループが優先度の低い(ランク値の高い)マシンタイプでインスタンスを積極的に作成して実行していることが示されている場合は、次の原因が考えられます。

  • 一時的なリソース制約: プライマリ マシンタイプの需要が高い場合や、一時的なリソース制約が発生した場合、MIG はセカンダリ選択に自動的にフォールバックして、ターゲット容量が確保されるようにします。優先マシンタイプが再び使用可能になっても、MIG はフォールバック マシンタイプを引き続き使用し、優先マシンタイプに積極的に切り替えることはありません。

  • 割り当ての制限: 選択したリージョンで、優先するマシンシリーズに十分な vCPU とリソースの割り当てが Cloud de Confiance by S3NS プロジェクトにあることを確認します。プライマリ マシンタイプの割り当てが上限に達すると、MIG は使用可能なセカンダリ選択からプロビジョニングします。

詳細については、MIG がマシンタイプを選択する方法をご覧ください。

PromQL を使用してプログラムでクエリする

MIG のインスタンス分布をモニタリングするには、Cloud Monitoring の PromQL を使用して、基盤となる指標をプログラムでクエリすることもできます。プログラムでクエリを実行すると、インスタンス分布データをカスタム オブザーバビリティ ダッシュボードや、Grafana などの外部モニタリング ツールに統合できます。PromQL を使用して、ゾーン別またはマシンタイプ別にインスタンスをクエリできます。

次のセクションで説明するように、コードエディタで PromQL クエリを実行します。

コードエディタにアクセスする

PromQL には、 Cloud de Confiance コンソールの次のページからアクセスできます。

  • Metrics Explorer
  • ウィジェットを追加(ダッシュボードの作成時)

Metrics Explorer の使用時にコードエディタを開くには、次の操作を行います。

  1. Cloud de Confiance コンソールで、[ Metrics Explorer] ページに移動します。

    [Metrics Explorer] に移動

    検索バーを使用してこのページを検索する場合は、小見出しが [Monitoring] である結果を選択します。

  2. クエリビルダー ペインのツールバーで、 [PromQL] ボタンを選択します。

  3. テキスト フィールドにクエリを入力し、[クエリを実行] をクリックします。以降のセクションでは、クエリの例を示します。

コードエディタの詳細については、Cloud Monitoring のドキュメントの PromQL のコードエディタを使用するをご覧ください。

ゾーン別にアクティブなインスタンスをクエリする

ゾーン別にアクティブなインスタンスをクエリするには、コードエディタで次のクエリを実行します。

count by (zone) (compute_googleapis_com:instance_cpu_utilization{metadata_system_instance_group="YOUR_MIG_NAME"})

YOUR_MIG_NAME は、MIG の名前に置き換えます。

マシンタイプ別にアクティブなインスタンスをクエリする

マシンタイプ別にアクティブなインスタンスをクエリするには、コードエディタで次のクエリを実行します。

count by (metadata_system_machine_type) (compute_googleapis_com:instance_cpu_utilization{metadata_system_instance_group="YOUR_MIG_NAME"})

YOUR_MIG_NAME は、MIG の名前に置き換えます。

次のステップ