静的内部 IP アドレスを予約する


このページでは、Virtual Private Cloud(VPC)ネットワークで静的内部 IPv4 または IPv6 アドレスを構成して管理する方法について説明します。

変更されない固定内部 IP アドレスが仮想マシン(VM)インスタンスに必要な場合、次のいずれかのオプションを使用して VM の静的内部 IP アドレスを取得できます。

セカンダリ内部 IP アドレスの管理方法については、エイリアス IP 範囲をご覧ください。

Compute Engine では、各 VM インスタンスが複数のネットワーク インターフェースを持つことができます。各インターフェースには、1 つの外部 IP アドレス、1 つのプライマリ内部 IP アドレス、および 1 つまたは複数のセカンダリ内部 IP アドレスを設定できます。転送ルールには、外部ロード バランシングのための外部 IP アドレスや、内部ロード バランシングのための内部アドレスを指定できます。IP アドレスの詳細については、IP アドレスのドキュメントをご覧ください。

静的内部 IP アドレスを使用すると、サブネットに構成された IP アドレス範囲から内部 IP アドレスを予約し、必要に応じてリソースに割り当てることができます。内部 IP アドレスを予約すると、そのアドレスが動的割り当てプールから取り出され、自動割り当てには使用されなくなります。静的内部 IP アドレスを予約するには特定の Identity and Access Management(IAM)権限が必要であり、許可されたユーザーだけが静的内部 IP アドレスを予約できます。

静的内部 IP アドレスの予約機能を使用することで、リソースを削除して作成し直す必要がある場合でも、また同じ IP アドレスを使用できます。

内部 IP アドレスではなく静的外部 IP アドレスを予約するには、静的外部 IP アドレスを予約するをご覧ください。

始める前に

権限

静的内部 IP アドレスを予約して管理するには、compute.networkAdmin ロール、または次の 1 つ以上の権限が付与されている必要があります。

  • IP アドレスに対する compute.addresses.create
  • IP アドレスに対する compute.addresses.createInternal
  • VM インスタンスに対する compute.instances.update
  • サブネットワークに対する compute.subnetworks.use

制限事項

  • 既存のリソースの内部 IPv4 アドレスの割り当てを解除したり、変更することはできません。たとえば、実行中または停止している VM インスタンスに新しい静的内部 IP アドレスを割り当てることはできません。ただし、リソースのエフェメラル内部 IP アドレスを静的内部 IP に昇格させることは可能で、その場合はリソースが削除された後もアドレスの予約状態は継続されます。

  • 予約できる静的内部 IP アドレスの数は、プロジェクトの割り当てを超えることはできません。詳細は、VPC ドキュメントの、プロジェクトごとの割り当てをご覧ください。

  • 一度に複数のリソースが同じ静的内部 IP アドレスを使用することはできません。

  • 静的内部 IP アドレスの予約は VPC ネットワークでのみサポートされています。レガシーモードのネットワークではサポートされていません。

  • リソースを削除しても静的内部 IP アドレスは自動的に解放されません。静的内部 IP アドレスが不要になったら手動で解放する必要があります。

  • 静的 IP アドレスの名前は変更できません。

  • 静的内部 IP アドレスはリージョン アドレスです。つまり、静的内部 IP アドレスを予約したリージョンに制限されます。たとえば、us-east4 リージョンで静的内部 IP アドレスを予約した場合、us-east4 の IP アドレスのみを使用できます。

静的内部 IP アドレスを予約する方法

静的内部 IP アドレスを予約してから、そのアドレスに関連付けるリソースを作成します。または、エフェメラル内部 IP アドレスを指定してリソースを作成してから、そのエフェメラル IP アドレスを静的内部 IP アドレスに昇格させることもできます。

静的内部 IP アドレスを使用するには、プロジェクトに VPC ネットワークが存在している必要があります。VPC ネットワークの作成方法については、VPC ネットワークの作成と管理をご覧ください。

静的内部 IPv4 アドレスまたは IPv6 アドレスを予約して特定のリソースに関連付ける

このシナリオでは、静的内部 IP アドレスを予約してからリソースに割り当てます。

  1. VPC ネットワークにサブネットを作成します。IPv6 アドレスの場合は、デュアルスタック サブネットを作成します。

  2. サブネットのプライマリ IP 範囲から内部 IP アドレスを予約します。このステップでは、特定の内部 IP アドレスを含む内部 IP アドレス リソースを作成します。この手順により、Google Cloud がそのアドレスを自動的にエフェメラル アドレスとして割り振られることもなくなります。

  3. 予約済みの内部 IP アドレスは、VM またはロードバランサ リソースの作成時に VM インスタンスまたは内部ロードバランサに関連付けて使用します。

リソースのエフェメラル内部 IPv4 または IPv6 アドレスを指定して昇格させる

このシナリオでは、リソースに接続されているエフェメラル内部 IPv4 アドレスまたは IPv6 アドレスを昇格させます。

  1. VPC ネットワークにサブネットを作成します。IPv6 アドレスの場合は、デュアルスタック サブネットを作成します。

  2. 自動的に割り振られたエフェメラル IPv4 アドレスまたは IPv6 アドレスを使用するか、特定の IPv4 アドレスを指定して VM インスタンスまたは内部ロードバランサを作成します。

図 1 に、この 2 つの方法の概要を示します。

内部 IP アドレスの予約状態。
図 1. 内部 IP アドレスの予約状態(クリックして拡大)

静的内部アドレスの構成と管理

VM インターフェースには、接続先のサブネットから IP アドレスが割り当てられます。各 VM インターフェースには、サブネットのプライマリ IPv4 の範囲から割り当てられた 1 つのプライマリ内部 IPv4 アドレスがあります。VM が内部 IPv6 範囲を持つデュアルスタック サブネットに接続されている場合、各ネットワーク インターフェースに内部 IPv6 アドレスを割り当てることができます。

内部 IPv4 アドレスは、次の方法で割り当てることができます。

  • Compute Engine は、プライマリ IPv4 サブネット範囲から単一の IPv4 アドレスを自動的に割り当てます。
  • VM インスタンスの作成時に特定の内部 IPv4 アドレスを割り当てることができます。または、プロジェクトに静的内部 IPv4 アドレスを予約し、そのアドレスを VM のネットワーク インターフェースに割り当てることもできます。

内部 IPv6 アドレスは、次の方法で割り当てることができます。

  • Compute Engine は、IPv6 サブネット範囲から単一の /96 範囲を自動的に割り当てます。
  • サブネットの内部 IPv6 範囲から静的内部 IPv6 アドレス範囲を予約して、VM ネットワーク インターフェースに割り当てることができます。

静的内部 IP アドレスを構成して管理するには、次の操作を行います。

新しい静的内部 IPv4 または IPv6 アドレスを予約する

新しい静的内部 IP アドレスを予約する前に、サブネットを持つ VPC ネットワークを作成する必要があります。

新しい静的内部 IPv6 アドレスを予約する場合は、VPC ネットワークで ULA の内部 IPv6 範囲が有効になっている必要があります。また、INTERNAL IPv6 アクセスタイプのデュアルスタック サブネットが必要です。

スタンドアロンの内部 IP アドレスを予約するには、次の手順を完了します。

コンソール

  1. Google Cloud コンソールで、[IP アドレス] ページに移動します。

    [IP アドレス] に移動

  2. [内部静的 IP アドレスの予約] をクリックします。
  3. [名前] フィールドに IP アドレス名を入力します。
  4. [IP バージョン] リストで、必要な IP バージョンを選択します。
    • 静的内部 IPv4 アドレスを予約するには、[IPv4] を選択します。
    • 静的内部 IPv6 アドレスを予約するには、[IPv6] を選択します。
  5. [ネットワーク] リストと [サブネットワーク] リストで、VPC ネットワークとサブネットをそれぞれ選択します。
  6. IP アドレスの予約方法を指定します。
    • IPv4 アドレスの場合、予約する静的内部 IPv4 アドレスを指定するには、[静的 IP アドレス] で、[ユーザー指定] を選択し、カスタム IP アドレスを入力します。それ以外の場合、サブネットの静的内部 IPv4 アドレスはシステムによって自動的に割り当てられます。
    • IPv6 アドレスの場合、静的内部 IPv6 アドレスはサブネットの内部 IPv6 アドレス範囲から自動的に割り当てられます。
  7. 省略可: 異なるフロントエンドで静的内部 IPv4 アドレスを共有する場合は、[目的] リストで [共有] を選択します。デフォルトでは、[共有しない] が選択されています。

  8. [予約] をクリックします。

gcloud

  • 内部 IPv4 アドレスを予約するには、compute addresses create コマンドを使用します。

    gcloud compute addresses create ADDRESS_NAMES \
        --region REGION --subnet SUBNETWORK \
        --addresses IP_ADDRESS
    

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

    • ADDRESS_NAMES: 作成する 1 つ以上の [--purpose=SHARED_LOADBALANCER_VIP] アドレスの名前。複数のアドレスの場合は、各アドレスをスペースで区切ったリストで指定します(例: example-address-1 example-address-2 example-address-3)。
    • REGION: このリクエストのリージョン。
    • SUBNETWORK: この内部 IP アドレスのサブネット。
    • IP_ADDRESS: 予約する IP アドレス。サブネットのプライマリ IP 範囲内になければなりません。指定しない場合、サブネットから IP アドレスが自動的に割り振られます。
  • 内部 IPv6 アドレスを予約するには、compute addresses create コマンドを使用します。--ip-version の値として IPV6 を指定します。

    gcloud compute addresses create ADDRESS_NAMES \
        --region REGION --subnet SUBNETWORK \
        --ip-version IPV6
    

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

    • ADDRESS_NAMES: 予約する 1 つ以上のアドレスの名前。複数のアドレスの場合は、各アドレスをスペースで区切ったリストで指定します(例: example-address-1 example-address-2 example-address-3)。
    • REGION: このリクエストのリージョン。
    • SUBNETWORK: この内部 IPv6 アドレスのサブネット。

    内部 IPv4 の予約とは異なり、内部 IPv6 の予約では、サブネットワークからの特定の IP アドレスの予約をサポートしていません。代わりに、/96 の内部 IPv6 アドレスは、サブネットの /64 の内部 IPv6 アドレス範囲から自動的に割り振られます。

  • サブネットから自動的に割り振られた内部 IPv4 アドレスを予約する場合:

    gcloud compute addresses create example-address-1 \
        --region us-central1 \
        --subnet subnet-1
    
  • サブネットから特定の内部 IPv4 アドレスを予約する場合:

    gcloud compute addresses create example-address-1 \
        --region us-central1 \
        --subnet subnet-1 \
        --addresses 10.128.0.12
    
  • サブネットから静的内部 IPv6 アドレスを予約する場合:

    gcloud compute addresses create example-address-1 \
        --region us-central1 \
        --subnet subnet-1 \
        --ip-version IPV6
    
  • 複数の IPv4 アドレス名を渡すことで、複数の IPv4 アドレスを作成し、すべてのアドレスが同じサブネットで予約されるようにする場合:

    gcloud compute addresses create example-address-1 example-address-2 \
        --region us-central1 \
        --subnet subnet-1 \
        --addresses 10.128.0.12,10.128.0.13
    

Terraform

Terraform モジュールを使用して内部 IP アドレスを作成できます。

次の例では、Terraform の引数に変更可能なサンプル値が含まれています。この例では、2 つの内部 IP アドレスを作成します。

module "address" {
  source     = "terraform-google-modules/address/google"
  version    = "~> 3.1"
  project_id = var.project_id # Replace this with your project ID in quotes
  region     = "asia-east1"
  subnetwork = "my-subnet"
  names      = ["internal-address1", "internal-address2"]
  addresses  = ["10.0.0.3", "10.0.0.4"]
}

次の例では、動的に割り振られる 2 つの内部 IP アドレスを作成します。

module "address" {
  source     = "terraform-google-modules/address/google"
  version    = "~> 3.1"
  project_id = var.project_id # Replace this with your project ID in quotes
  region     = "asia-east1"
  subnetwork = "my-subnet"
  names      = ["internal-address1", "internal-address2"]
}

REST

addresses.insert メソッドを使用します。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/addresses

IPv4 アドレスと IPv6 アドレスのいずれの場合でも、リクエストの本文には addressType フィールド(INTERNAL)、IP アドレスの namesubnetwork を含める必要があります。リクエストの本文には、必要に応じて内部 IP アドレスの purpose を含めることができます。

内部 IPv4 アドレスの場合は、システムによって IP アドレスが自動的に割り振られるようにすることも、address を使用して内部 IPv4 アドレスを指定することもできます。IPv4 アドレスは、サブネットのプライマリ IP 範囲内になければなりません。

{
  "addressType": "INTERNAL",
  "name": "IPV4_ADDRESS_NAME",
  "subnetwork": "regions/REGION/subnetworks/SUBNETWORK",
  "address": "IPV4_ADDRESS"
  "purpose": "GCE_ENDPOINT"
}

次に例を示します。

POST https://compute.googleapis.com/compute/v1/projects/example-project/regions/us-central1/addresses
{
  "addressType": "INTERNAL",
  "name": "example-ipv4-address-1",
  "subnetwork": "regions/us-central1/subnetworks/my-custom-subnet",
  "address": "10.128.0.12"
  "purpose": "GCE_ENDPOINT"
}

内部 IPv6 アドレスの場合は、ipVersionIPV6 として指定する必要があります。サブネットの内部 IPv6 アドレス範囲から、静的内部 IPv6 アドレスが自動的に割り当てられます。

{
  "addressType": "INTERNAL",
  "name": "IPV6_ADDRESS_NAME",
  "ipVersion": "IPV6",
  "subnetwork": "regions/REGION/subnetworks/SUBNETWORK",
  "purpose": "GCE_ENDPOINT"
}

次に例を示します。

POST https://compute.googleapis.com/compute/v1/projects/example-project/regions/us-central1/addresses
{
  "addressType": "INTERNAL",
  "name": "example-ipv6-address-1",
  "ipVersion": "IPV6"
  "subnetwork": "regions/us-central1/subnetworks/my-custom-subnet",
  "purpose": "GCE_ENDPOINT"
}

Cloud Interconnect を介した HA VPN 用に静的内部 IP アドレス範囲を予約する

Cloud Interconnect を介した HA VPN で使用する静的内部 IP アドレス範囲を予約できます。

静的内部 IP アドレスを作成するときに、フラグ --purpose=IPSEC_INTERCONNECT とプレフィックス長(--prefix-length)を 26~29 の間で指定する必要があります。

予約したリージョン内部 IPv4 アドレスは、Cloud Interconnect で使用される HA VPN ゲートウェイに適用されます。

詳細については、HA VPN ゲートウェイに内部 IP アドレス範囲を割り当てるをご覧ください。

内部 IPv4 アドレスまたは IPv6 アドレスがエフェメラルか静的かを判別する

静的内部 IP アドレスとエフェメラル内部 IP アドレスは、ほとんどのコンテキストで同じように動作します。アドレスが静的かエフェメラルかを判別するには、次のようにします。

  1. Google Cloud コンソールで、[IP アドレス] ページに移動します。

    [IP アドレス] に移動

  2. リストからアドレスを探し、[タイプ] 列で IP アドレスのタイプを確認します。

使用中のエフェメラル内部 IPv4 アドレスまたは IPv6 アドレスを静的アドレスに昇格させる

使用中のエフェメラル内部 IP アドレスがある場合、それを静的内部 IP アドレスに昇格させると、削除するまでプロジェクトで使用し続けることができます。

エフェメラル内部 IP アドレスを静的内部 IP アドレスに昇格させるには、次の手順を完了します。

コンソール

  1. Google Cloud コンソールで、[IP アドレス] ページに移動します。

    [IP アドレス] に移動

  2. [内部 IP アドレス] をクリックします。
  3. (省略可)[フィルタ] フィールドで、昇格させるエフェメラル IP アドレスを検索します。
  4. 昇格させる IP アドレスの [その他の操作] メニュー()で、[静的 IP アドレスに昇格] を選択します。
  5. 新しい静的 IP アドレスの名前を入力し、[予約] をクリックします。

gcloud

  1. 既存のエフェメラル内部 IPv6 アドレスを昇格させる前に、その IP アドレスの値を確認する必要があります。Google Cloud CLI を使用してリソースに describe リクエストを行い、IP アドレス値を取得します。

    • IPv4 アドレスの場合は、次のコマンドを使用します。

      gcloud compute instances describe INSTANCE_NAME --zone ZONE | grep "networkIP"
      
    • IPv6 アドレスの場合は、次のコマンドを使用します。

      gcloud compute instances describe INSTANCE_NAME --zone ZONE | grep "ipv6Address"
      

    gcloud CLI から networkIP 値(IPv4 の場合)または ipv6Address 値(IPv6 の場合)が返されます。この値は、リソースで使用されている内部 IP アドレスです。

  2. アドレスを昇格させます。

    • 1 つまたは複数の既存の内部 IPv4 アドレスを昇格させるには、compute addresses create コマンドを使用し、昇格させる明示的な内部 IP アドレスを --addresses フラグに指定します。

      gcloud compute addresses create IPV4_ADDRESS_NAMES \
        --addresses IPV4_ADDRESSES \
        --region REGION \
        --prefix-length PREFIX_LENGTH \
        --subnet SUBNETWORK
      

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

      • IPV4_ADDRESS_NAMES: IPv4 アドレスの名前。複数のアドレスを指定する場合は、アドレス名をスペースで区切ったリストで指定します(例: example-address-name-1 example-address-name-2 example-address-name-3)。IP アドレスの宣言と同じ順序で名前を宣言します。たとえば、アドレス名を example-address-name-1 example-address-name-2 example-address-name-3、IPv4 アドレスを 192.0.2.0 192.0.2.1 192.0.2.2 として指定したとします。このシナリオでは、Compute Engine は次の方法で名前とアドレスをマッピングします。

        • example-address-name-1: 192.0.2.0
        • example-address-name-2: 192.0.2.1
        • example-address-name-3: 192.0.2.2
      • IPV4_ADDRESSES: 昇格させる IPv4 アドレス。複数のアドレスの場合は、各アドレスをスペースで区切ったリストで指定します(例: 192.0.2.0 192.0.2.1 192.0.2.2)。

      • REGION: このアドレスを予約するリージョン。

      • PREFIX_LENGTH: 省略可。IPv4 アドレス範囲のプレフィックスの長さ。値には 7~31 の整数を指定してください。このフィールドは、アドレス範囲を指定する場合にのみ指定します。指定された IPv4 アドレスが単一の IP アドレスの場合は、このフィールドを除外します。

      • SUBNETWORK: このリクエストのサブネットワーク。

    • 1 つ以上の既存の内部 IPv6 アドレスを昇格させるには、compute addresses create コマンドを使用し、昇格させる内部 IPv6 アドレスを --addresses フラグに明示的に指定します。

      gcloud compute addresses create IPV6_ADDRESS_NAMES \
       --addresses IPV6_ADDRESSES \
       --region REGION \
       --prefix-length PREFIX_LENGTH \
       --subnet SUBNETWORK
      

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

      • IPV6_ADDRESS_NAMES: アドレスの名前。IPv6 アドレスの宣言と同じ順序で名前を宣言します。この場合、IPV6_ADDRESS_NAME_1IPV6_ADDRESS_1 に対応し、IPV6_ADDRESS_NAME_2IPV6_ADDRESS_2 に対応します。
      • IPV6_ADDRESS_1,[IPV6_ADDRESS_2,...]: 昇格させる IPv6 アドレス(CIDR 形式)。
      • PREFIX_LENGTH_1,[PREFIX_LENGTH_2,...]: IPv6 アドレスのプレフィックス長。
      • REGION: このアドレスを予約するリージョン。
      • SUBNETWORK: このリクエストのサブネットワーク。

      内部 IPv6 アドレスは、静的内部 IPv6 アドレスに昇格した後も、既存のインスタンスに割り振られたままになります。新しく昇格した静的内部 IPv6 アドレスを別のリソースに割り振る必要がある場合は、まず既存のインスタンスから静的内部 IPv6 アドレスの割り振りを解除します。

REST

addresses.insert メソッドを使用します。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/addresses

IPv4 アドレスと IPv6 アドレスのいずれの場合でも、リクエストの本文には、addressTypeINTERNAL)、アドレスの name、昇格させる address、IP アドレスが属する subnetwork を含める必要があります。IPv6 アドレスの場合は、さらに、リクエストの本文で値として 96 を持つ prefixLength を含める必要があります。

  • 内部 IPv4 アドレスを昇格させるリクエストの本文:

    {
    "name": "ADDRESS_NAME",
    "addressType": "INTERNAL",
    "address": "IP_ADDRESS",
    "subnetwork": "regions/REGION/subnetworks/SUBNETWORK"
    }
    

    次に例を示します。

    POST https://compute.googleapis.com/compute/v1/projects/example-project/regions/us-central1/addresses
    {
    "name": "example-IPv4-address-1",
    "addressType": "INTERNAL",
    "address": "10.128.0.2",
    "subnetwork": "regions/us-central1/subnetworks/my-custom-subnet"
    }
    
  • 内部 IPv6 アドレスを昇格させるリクエストの本文:

    {
    "name": "ADDRESS_NAME",
    "addressType": "INTERNAL",
    "address": "IP_ADDRESS",
    "subnetwork": "regions/REGION/subnetworks/SUBNETWORK"
    "prefixLength": 96
    }
    

    次に例を示します。

    POST https://compute.googleapis.com/compute/v1/projects/example-project/regions/us-central1/addresses
    {
    "name": "example-IPv6-address-1",
    "addressType": "INTERNAL",
    "address": "fd20:0:0::",
    "subnetwork": "regions/us-central1/subnetworks/my-custom-subnet"
    "prefixLength": 96
    }
    

予約済みの内部 IPv4 または IPv6 アドレスを使用して VM インスタンスを作成する

静的内部 IP アドレスを予約した後、そのアドレスをインスタンスの作成時に VM インスタンスに割り振ることができます。

予約済みの静的内部 IPv6 アドレスを指定せずに内部 IPv6 の範囲を持つデュアルスタック サブネットに接続された VM を作成すると、Compute Engine は、サブネットの IPv6 範囲からエフェメラル内部 IPv6 アドレスを VM に自動的に割り当てます。

コンソール

  1. Google Cloud コンソールで、[インスタンスの作成] ページに移動します。

    [インスタンスの作成] に移動

  2. [詳細オプション] セクションを開きます。

  3. [ネットワーキング] セクションを開きます。

  4. IPv4 アドレスを割り当てるには、次の操作を行います。

    1. ネットワークとサブネットワークを選択します。
    2. [プライマリ内部 IPv4 アドレス] リストから予約済みの内部 IPv4 アドレスを選択します。

    または、[静的内部 IP アドレスを予約] を選択して、新しい静的内部 IPv4 アドレスを予約します。

  5. IPv6 アドレスを割り当てるには、次の操作を行います。

    1. IPv6 サブネットを含むネットワークを選択します。
    2. [サブネットワーク] リストからデュアルスタック サブネットを選択します。サブネットには INTERNAL IPv6 アクセスタイプが必要です。
    3. [IP スタックタイプ] には、[IPv4 と IPv6(デュアルスタック)] を選択します。
    4. [プライマリ内部 IPv6 アドレス] リストから予約済みの内部 IPv6 アドレスを選択します。

    または、[静的内部 IPv6 アドレスを予約] を選択して、新しい静的内部 IPv6 アドレスを予約します。

  6. ネットワーク インターフェースの変更を終了するには、[完了] をクリックします。

  7. VM 作成プロセスを続行します。

  8. [作成] をクリックします。

gcloud

  • 予約済みの内部 IPv4 アドレスを持つインスタンスを作成するには、インスタンスを作成するときに --private-network-ip フラグを使用して予約済み内部 IPv4 アドレスを指定します。

    gcloud compute instances create VM_NAME
        --private-network-ip IP_ADDRESS
    

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

    • VM_NAME: 作成する VM の名前。
    • IP_ADDRESS: 割り当てる IP アドレス。

    カスタム サブネット モードのネットワークを使用している場合は、--subnet SUBNET パラメータを使用してサブネットも指定する必要があります。

  • 予約済みの内部 IPv6 アドレスを持つインスタンスを作成するには、インスタンスを作成するときに --internal-ipv6-address フラグを使用して予約済み内部 IPv6 アドレスを指定します。

    gcloud compute instances create VM_NAME
        --subnet SUBNETWORK
        --stack-type IPV4_IPV6
        --internal-ipv6-address INTERNAL_IPV6_ADDRESS
        --zone ZONE
    

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

    • VM_NAME: 作成する VM の名前。
    • SUBNETWORK: 内部 IPv6 アドレスのサブネット。
    • INTERNAL_IPV6_ADDRESS: /96 IPv6 アドレス、IP アドレス名、またはアドレス リソースの URI のいずれか。この IP アドレスは、使用する前に予約する必要があります。
    • ZONE: VM のゾーン。

REST

静的内部 IP アドレスを持つ VM インスタンスを作成するには、instances.insert メソッドを使用します。

  • 内部 IPv4 アドレスの場合は、VM に割り当てる内部 IPv4 アドレスを networkInterfaces[].networkIP プロパティに明示的に指定します。

    次に例を示します。

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
    
    {
    "name": "VM_NAME",
    "machineType": "zones/us-central1-f/machineTypes/e2-micro",
    "networkInterfaces": [{
      "accessConfigs": [{
        "type": "ONE_TO_ONE_NAT",
        "name": "External NAT",
      }],
      "network": "global/networks/default",
      "networkIP": "IPV4_ADDRESS"
    }],
    "disks": [{
      "autoDelete": "true",
      "boot": "true",
      "type": "PERSISTENT",
      "initializeParams": {
          "sourceImage": "projects/debian-cloud/global/images/v20150818"
      }
    }]
    }

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

    • PROJECT_ID: VM を作成するプロジェクトの ID。
    • ZONE: VM を作成するゾーン。
    • VM_NAME: 仮想マシンの名前。
    • IPV4_ADDRESS: VM に割り当てる IPv4 アドレス。
  • 内部 IPv6 アドレスの場合は、次のプロパティの値を明示的に指定します。

    • networkInterfaces[].stackType
    • networkInterfaces[].ipv6Address
    • networkInterfaces[].internalIpv6PrefixLength
    • networkInterfaces[].ipv6AccessType

    次に例を示します。

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
    {
    "name": "VM_NAME",
    "machineType": "zones/us-central1-f/machineTypes/e2-micro",
    "networkInterfaces": [{
      "accessConfigs": [{
        "type": "ONE_TO_ONE_NAT",
        "name": "External NAT",
      }],
      "network": "global/networks/default",
      "stackType": "IPV4_IPV6"
      "ipv6Address": ""IPV6_ADDRESS"",
      "internalIpv6PrefixLength": 96
      "ipv6AccessType": INTERNAL,
    }],
    "disks": [{
      "autoDelete": "true",
      "boot": "true",
      "type": "PERSISTENT",
      "initializeParams": {
          "sourceImage": "projects/debian-cloud/global/images/v20150818"
      }
    }]
    }

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

    • PROJECT_ID: VM を作成するプロジェクトの ID。
    • ZONE: VM を作成するゾーン。
    • VM_NAME: VM の名前。
    • IPV6_ADDRESS: VM に割り当てる内部 IPv6 アドレス。

指定した IP アドレスを持つインスタンスを削除すると、その IP アドレスは未割り振りのアドレスプールに戻ります。インスタンスの存続期間を超えてその内部 IP アドレスを保持する必要がある場合は、静的内部 IP アドレスを予約できます。

静的内部 IPv4 アドレスを使用して内部ロードバランサを作成する

静的内部 IPv4 アドレスを使用する内部ロードバランサを作成するには、以下をご覧ください。