内部 DNS を使用して VM にアクセスする


同じ Virtual Private Cloud ネットワーク内にある VM は、IP アドレスではなく内部 DNS 名を使用して相互にアクセスできます。

始める前に

  • まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のように Compute Engine に対する認証を行います。

    このページのサンプルをどのように使うかに応じて、タブを選択してください。

    コンソール

    Google Cloud コンソールを使用して Google Cloud サービスと API にアクセスする場合、認証を設定する必要はありません。

    gcloud

    1. Google Cloud CLI をインストールし、次のコマンドを実行して初期化します。

      gcloud init
    2. デフォルトのリージョンとゾーンを設定します

    REST

    このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。

      Google Cloud CLI をインストールし、次のコマンドを実行して初期化します。

      gcloud init

VM の内部 DNS 名を確認する

VM インスタンスに割り当てられた内部 DNS 名を読み取るには、次の操作を行います。内部 DNS 名を取得するには、hostname メタデータ エントリをクエリします。

  1. VM に接続します
  2. hostname メタデータに対してクエリを実行します。

    Linux VM

    curl "http://metadata.google.internal/computeMetadata/v1/instance/hostname" \
      -H "Metadata-Flavor: Google"
    

    Windows VM

    Invoke-RestMethod `
      -Headers @{"Metadata-Flavor" = "Google"} `
      -Uri "http://metadata.google.internal/computeMetadata/v1/instance/hostname"
    

メタデータ サーバーは、次のいずれかの形式で VM のホスト名を返し、VM が使用する内部 DNS 名のタイプを示します。

  • ゾーン DNS: VM_NAME.ZONE.c.PROJECT_ID.internal
  • グローバル DNS: VM_NAME.c.PROJECT_ID.internal

出力の中で:

  • VM_NAME: VM の名前
  • ZONE: VM を配置するゾーン
  • PROJECT_ID: VM が属するプロジェクト

内部 DNS 名で VM にアクセスする

VM にアクセスするには、IP アドレスの代わりに内部 DNS 名を使用します。

次の例では、ping を使用して、ゾーン DNS を使用する VM に接続します。この方法は、インスタンスへの受信 ICMP トラフィックを許可するファイアウォール ルールを作成した場合に機能します。

$ ping VM_NAME.ZONE.c.PROJECT_ID.internal -c 1

PING VM_NAME.ZONE.c.PROJECT_ID.internal (10.240.0.17) 56(84) bytes of data.
64 bytes from VM_NAME.ZONE.c.PROJECT_ID.internal (10.240.0.17): icmp_seq=1 ttl=64 time=0.136 ms

次のように置き換えます。

  • VM_NAME: VM の名前
  • ZONE: VM を配置するゾーン
  • PROJECT_ID: VM が属するプロジェクト

次のステップ