Compute Engine で VM が実行されているかどうかを検出する


このドキュメントでは、メタデータ サーバーまたはオペレーティング システム ツールを使用して、Compute Engine で VM が実行されているかどうかを検出する方法について説明します。

メタデータ サーバーを使用して Compute Engine での VM の実行を検出する

VM のオペレーティング システムに応じて、次のいずれかの手順でメタデータ サーバーにリクエストを送信し、Compute Engine で VM が実行されているかどうかを検出します。

Linux VMWindows VM
  1. Linux VM から、次のコマンドを実行します。

    curl metadata.google.internal -i
    
  2. 次のように、出力に Metadata-Flavor: Google が含まれているかどうか確認します。

    HTTP/1.1 200 OK
    Metadata-Flavor: Google
    Content-Type: application/text
    Date: Tue, 23 Nov 2021 01:27:16 GMT
    Server: Metadata Server for VM
    Content-Length: 22
    X-XSS-Protection: 0
    X-Frame-Options: SAMEORIGIN
    
    0.1/
    computeMetadata/
    

    出力に Metadata-Flavor: Google が含まれている場合、Compute Engine VM がリクエストを送信しています。

  1. Windows VM から、次のコマンドを実行します。

    curl metadata.google.internal -i
    
  2. 次のように、出力に Metadata-Flavor: Google が含まれているかどうか確認します。

    HTTP/1.1 200 OK
    Metadata-Flavor: Google
    Content-Type: application/text
    Date: Tue, 23 Nov 2021 20:48:50 GMT
    Server: Metadata Server for VM
    Content-Length: 22
    X-XSS-Protection: 0
    X-Frame-Options: SAMEORIGIN
    
    0.1/
    computeMetadata/
    

    出力に Metadata-Flavor: Google が含まれている場合、Compute Engine VM がリクエストを送信しています。

オペレーティング システム ツールを使用して Compute Engine での VM の実行を検出する

VM のオペレーティング システムに応じて、次のいずれかの手順で VM のオペレーティング システムに固有のツールを使用して、Compute Engine で VM が実行されているかどうかを検出します。

Linux VM Windows VM
  1. Linux VM から、次の dmidecode コマンドを実行します。

    sudo dmidecode -s system-product-name | grep "Google Compute Engine"
    

    この dmidecode コマンドは、/proc/mem の System Management BIOS 情報に直接アクセスします。

  2. 出力に Google Compute Engine が含まれていることを確認します。

  1. Windows コマンド プロンプトで、WMI コマンドライン ユーティリティを実行します。

    wmic.exe computersystem get model,manufacturer
    
  2. System ManufacturerGoogle で、System ModelGoogle Compute Engine であることを確認します。

Compute Engine で Windows VM が実行されているかどうかをプログラムで確認する方法については、以下をご覧ください。