ゲスト エージェントについて


このドキュメントでは、ゲスト エージェントのアーキテクチャの概要について説明します。ゲスト エージェントは、ゲスト環境の重要なコンポーネントです。ゲスト環境には、Compute Engine でインスタンスを実行するために必要なスクリプト、デーモン、バイナリが含まれています。詳細については、ゲスト環境をご覧ください。

ゲスト エージェントは、サービスを設定し、スナップショット スクリプトの実行、Windows フェイルオーバー、OS Login、メタデータ ベースの SSH 認証などの機能の最小構成を定義します。ゲスト エージェントのコア機能の詳細については、ゲスト エージェントの機能をご覧ください。

ゲスト エージェントのアーキテクチャ

バージョン 20250901.00 以降、ゲスト エージェントのアーキテクチャは、モノリシック設計から最新のプラグインベースのシステムに更新されます。この進化により、柔軟性、信頼性、拡張性が向上します。

  • モノリシック アーキテクチャ: 20250901.00 より前のゲスト エージェントは、メタデータ サーバーのインスタンスの説明を中心とした単一の統合プロセスを備えています。メタデータ サーバーは、すべての Compute Engine インスタンスとともに実行されるインスタンスごとの HTTP サーバーです。メタデータ サーバーの詳細については、VM メタデータをご覧ください。

    ゲスト エージェントはメタデータ サーバーをロング ポーリングし、状態の変化に基づいてアクションを実行します。このアーキテクチャでは、エージェントの状態は SSH やネットワーク設定などのすべてのタスクで共有されます。このモノリシックなアプローチでは、インターフェースとコンポーネントの分離が欠けていました。エージェントの 1 つの領域での変更や機能の導入は、システム全体に同時に影響します。このパターンでは、機能の追加とテスト カバレッジが難しくなります。

  • プラグイン ベースのアーキテクチャ: バージョン 20250901.00 以降では、ゲスト エージェントは中央マネージャーによって管理される個別の独立したプラグインに分割されます。各プラグインはメタデータ サーバーとやり取りし、中央管理者の指示に従って必要に応じて変更を行います。このモジュール型のアプローチにより、1 つのプラグインのクラッシュがコア エージェントや他のプラグインに影響しないようになっています。

プラグイン ベースのアーキテクチャ

このアーキテクチャは、さまざまなプラグインを制御する中央マネージャーを中心に構築されており、コア機能とオプションのサービス固有のプラグインが分離されています。

主要コンポーネント

次の図は、ゲスト エージェントの主要コンポーネントとそのインタラクションを示しています。

中央のゲスト エージェント マネージャーが、コア プラグインとオプションのプラグインを制御します。ゲスト エージェント マネージャーは、Google のバックエンドにあるエージェント コントロール プレーンと通信して、オプションのプラグインを管理します。
図 1. ゲスト エージェントのアーキテクチャ
  • コア プラグイン: このプラグインは、元のゲスト エージェントの機能をカプセル化します。インスタンスが Google Cloudで実行するために必要なタスクを実行します。たとえば、次のようなタスクがあります。

    • ネットワーク構成: 通信を有効にするようにプライマリ ネットワーク インターフェースを設定します。
    • SSH アクセス: ユーザーの SSH 認証鍵を管理して、インスタンスへの安全な接続を許可します。
    • メタデータ アクセス: インスタンスがインスタンスとプロジェクトのメタデータにアクセスするためのパスを提供します。

    コアプラグインは無効にできません。

    ゲスト エージェントのコア機能の詳細については、ゲスト エージェントの機能をご覧ください。

  • オプションのプラグイン: これらのプラグインをプロビジョニングして、他のGoogle Cloud サービスと統合し、次のようなタスクを実行できます。

    • モニタリングとロギング: Ops エージェント プラグインを有効にして、Cloud Monitoring の指標とログを収集します。
    • ワークロード管理: Workload Manager プラグインを有効にして、ワークロードから構成情報とランタイム情報を収集し、分析します。
    • ワークロードの最適化: SAP エージェント プラグインを有効にして、 Google Cloudで実行される SAP ワークロードをサポートします。

    必要に応じて、オプションのプラグインを有効または無効にできます。

  • エージェント コントロール プレーン: このマネージド Google Cloud サービスは、Google のバックエンド インフラストラクチャで実行されます。コントロール プレーンは、インスタンス上のゲスト エージェント マネージャーと通信して、オプションのプラグインのライフサイクル(インストール、更新、構成など)を管理します。

  • ゲスト エージェント マネージャー: この中央プロセスは、すべてのプラグインのステータスを開始、停止、モニタリングします。ゲスト エージェント マネージャーは、コアプラグインとエージェント コントロール プレーン間の通信を容易にします。オプションのプラグインのライフサイクル管理には、次のものが含まれます。

    • インストールと更新: ゲスト エージェント マネージャーは、エージェント コントロール プレーンからの指示に基づいて、オプションのプラグインをインストール、起動、停止、構成します。
    • ヘルス モニタリング: ゲスト エージェント マネージャーは、CPU やメモリの使用量など、オプションのプラグインの健全性とステータスをモニタリングし、この情報をエージェント コントロール プレーンに報告します。
    • ポリシー管理: Compute Engine API を使用して、オプションのプラグインのインストールとバージョン管理を制御するポリシーを作成します。

利点

プラグイン ベースのアーキテクチャには、モノリシック設計に比べていくつかの利点があります。これには、次のような利点があります。

  • プラグインの分離: 各プラグインは個別のプロセスで実行されるため、1 つのプラグインでクラッシュが発生しても、コア エージェントや他のプラグインに影響しません。
  • リソース保護: ゲスト エージェントは OS レベルの機能を使用してプラグインにリソース上限を適用し、単一のプラグインが過剰な CPU やメモリを消費するのを防ぎます。
  • クラッシュからの自動復元: プラグインのクラッシュから自動的に復元します。プラグインを停止して再起動します。
  • 選択的な有効化: 不要なオプションのプラグインを無効にすることで、インスタンスを保護または最適化できます。
  • オプションのプラグインのオーバーヘッドの削減: ゲスト エージェント マネージャーがオプションのプラグインのインストールと更新を自動的に処理するため、最新の状態に保つために必要な手作業が軽減されます。

ゲスト エージェント バイナリの場所

次の表に、アーキテクチャに応じて、Linux インスタンスと Windows インスタンスのさまざまなゲスト エージェント バイナリのファイルパスを示します。

プラグイン ベースのエージェント バイナリ

次の表に、Linux インスタンスと Windows インスタンスのプラグイン ベースのゲスト エージェント バイナリのファイルパスを示します。

コンポーネント Linux のパス Windows のパス
ゲスト エージェント マネージャー /usr/bin/google_guest_agent_manager C:\ProgramData\Google\Compute Engine\google-guest-agent
コア プラグイン バイナリ /usr/lib/google/guest_agent/core_plugin C:\Program Files\Google\Compute Engine\agent\CorePlugin.exe
メタデータ スクリプト ランナー /usr/bin/gce_metadata_script_runner C:\Program Files\Google\Compute Engine\agent\GCEMetadataScriptRunner.exe

モノリシック エージェント バイナリ

次の表に、Linux インスタンスと Windows インスタンスのモノリシック ゲスト エージェント バイナリのファイルパスを示します。

コンポーネント Linux のパス Windows のパス
ゲスト エージェント /usr/bin/google_guest_agent C:\Program Files\Google\Compute Engine\google_guest_agent.exe
メタデータ スクリプト ランナー /usr/bin/google_metadata_script_runner C:\Program Files\Google\Compute Engine\metadata_scripts\GCEMetadataScripts.exe
承認済みキー 該当なし C:\Program Files\Google\Compute Engine\agent\GCEAuthorizedKeys.exe

下位互換性

以前のモノリシック ゲスト エージェントからプラグイン ベースのシステムへのスムーズな移行を確保するため、ゲスト エージェント パッケージには下位互換性を確保するために設計された複数のコンポーネントが含まれています。これらのコンポーネントはプラグイン ベースのアーキテクチャの一部ではなく、メタデータ属性 enable-guest-agent-core-pluginfalse に設定してモノリシック エージェントに戻すことを手動で選択した場合にのみ有効になります。

この互換性をサポートするコンポーネントは次のとおりです。

  • ゲスト エージェント互換性マネージャー: このパッケージは、プラグイン ベースのエージェントとモノリシック エージェント間の切り替えを管理します。
  • メタデータ スクリプト ランナー互換性マネージャー: このパッケージは、モノリシック エージェントとプラグイン ベースのエージェントのどちらがアクティブかによって、正しいスクリプト ランナーが使用されるようにします。
  • 承認済み鍵互換性マネージャー(Windows のみ): このパッケージは SSH 鍵を処理し、古いエージェントと新しいエージェントのどちらでも正しい鍵が使用されるようにします。
コンポーネント Linux のパス Windows のパス
ゲスト エージェント互換性マネージャー /usr/bin/google_guest_compat_manager C:\Program Files\Google\Compute Engine\agent\GCEWindowsCompatManager.exe
メタデータ スクリプト ランナーの互換性マネージャー /usr/bin/metadata_script_runner_compat C:\Program Files\Google\Compute Engine\metadata_scripts\GCECompatMetadataScripts.exe
承認済みキーの互換性マネージャー 該当なし C:\Program Files\Google\Compute Engine\agent\GCEWindowsAuthorizedKeysCompat.exe

次のステップ