VPC ネットワークを作成して管理する

このページでは、Virtual Private Cloud(VPC)ネットワークとサブネットワークを作成、変更、削除する方法について説明します。このページは、VPC ネットワークに記載された VPC ネットワークの特性についてよく理解していることを前提としています。Google Cloud では、ネットワークとサブネットは異なるリソースです。

サブネットで IPv6 範囲を有効にする場合は、IPv6 サブネットの範囲をご覧ください。

使ってみる

Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオでの VPC のパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。

VPC 無料トライアル

ネットワークを作成する

自動モード VPC ネットワークを作成するか、カスタムモード VPC ネットワークを作成するかを選択できます。新しく作成した各ネットワークには、同じプロジェクト内で一意の名前を付ける必要があります。

自動モード VPC ネットワークを作成する

自動モード VPC ネットワークを作成すると、Google Cloud リージョンごとに 1 つのサブネットが作成されます。新しいリージョンが利用可能になると、そのリージョンの新しいサブネットが、自動モードの VPC ネットワークに自動的に追加されます。自動的に作成されたサブネットの IPv4 範囲は、所定の範囲のセットから取得されます。自動モードの VPC ネットワークはすべて、同じ IPv4 範囲のセットを使用します。

IPv6 範囲のサブネットは、自動モードの VPC ネットワークでサポートされません。デュアル スタックのサブネットを作成する場合は、カスタムモードの VPC ネットワークを作成します。

自動モードの VPC ネットワークを作成する手順は次のとおりです。

コンソール

  1. Google Cloud コンソールの [VPC ネットワーク] ページに移動します。

    [VPC ネットワーク] に移動

  2. [VPC ネットワークを作成] をクリックします。

  3. ネットワークの名前を入力します。

  4. [サブネット作成モード] で [自動] を選択します。

  5. [ファイアウォール ルール] セクションで、0 個以上の事前定義されたファイアウォール ルールを選択します。このルールは、インスタンスへの接続の一般的なユースケースに対応します。

    事前定義ルールを選択するかどうかにかかわらず、ネットワークの作成後に独自のファイアウォール ルールを作成できます。

    事前定義ルールのそれぞれの名前は、作成する VPC ネットワークの名前 NETWORK で始まります。[IPv4 ファイアウォール ルール] タブで、NETWORK-allow-custom という事前定義の上り(内向き)ファイアウォール ルールを編集できます。デフォルトでは、ソース範囲 10.128.0.0/9 を指定します。ここには、自動モード ネットワークのサブネットの現在および将来の IPv4 範囲が含まれます。ルールを含む行の右側にある [編集] をクリックします。サブネットを選択して IPv4 範囲を追加し、プロトコルとポートを指定します。

  6. VPC ネットワークの [動的ルーティング モード] を選択します。

    詳細については、動的ルーティング モードをご覧ください。動的ルーティング モードは後で変更できます

  7. 最大伝送単位(MTU): ネットワークの MTU として 1460(デフォルト)、1500、または 8896 のいずれかを選択します。MTU を 1460 より大きい値に設定する前に、最大伝送単位を確認してください。

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

gcloud

networks create コマンドを使用します。

gcloud compute networks create NETWORK \
    --subnet-mode=auto \
    --bgp-routing-mode=DYNAMIC_ROUTING_MODE \
    --mtu=MTU

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

  • NETWORK: VPC ネットワークの名前。
  • DYNAMIC_ROUTING_MODE: ネットワーク内の Cloud Router の動作を制御します。globalregional のいずれかになります。デフォルト値は regional です。詳細については、動的ルーティング モードをご覧ください。
  • MTU: ネットワークの最大パケットサイズである最大伝送単位(MTU)。MTU は、1300 から 8896 までの任意の値に設定できます。デフォルト値は 1460 です。MTU を 1460 より大きい値に設定する前に、最大伝送単位を確認してください。

Terraform

google_compute_network Terraform リソースを使用します。

MTU は、ネットワークの最大伝送単位または最大パケットサイズです。MTU は、1300 から 8896 までの任意の値に設定できます。デフォルト値は 1460 です。MTU を 1460 より大きい値に設定する前に、最大伝送単位を確認してください。

resource "google_compute_network" "vpc_network" {
  project                 = var.project_id # Replace this with your project ID in quotes
  name                    = "my-auto-mode-network"
  auto_create_subnetworks = true
  mtu                     = 1460
}

Terraform 構成を適用または削除する方法については、基本的な Terraform コマンドをご覧ください。

API

networks.insert メソッドPOST リクエストを送信します。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks
{
  "autoCreateSubnetworks": true,
  "name": "auto-network1",
  "mtu": MTU
}

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

  • PROJECT_ID: VPC ネットワークが作成されているプロジェクトの ID。
  • MTU: ネットワークの最大パケットサイズである最大伝送単位(MTU)。MTU は、1300 から 8896 までの任意の値に設定できます。デフォルト値は 1460 です。MTU を 1460 より大きい値に設定する前に、最大伝送単位を確認してください。

VPC ネットワークの動的ルーティング モードを指定するには、routingConfig フィールドを使用します。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks
{
  "routingConfig": {
    "routingMode": "DYNAMIC_ROUTING_MODE"
  },
  "autoCreateSubnetworks": true,
  "name": "NETWORK",
  "mtu": MTU
}

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

  • PROJECT_ID: VPC ネットワークが作成されているプロジェクトの ID。
  • NETWORK: VPC ネットワークの名前。
  • DYNAMIC_ROUTING_MODE: ネットワーク内の Cloud Router の動作を制御します。GLOBALREGIONAL のいずれかになります。デフォルト値は REGIONAL です。詳細については、動的ルーティング モードをご覧ください。
  • MTU: ネットワークの最大パケットサイズである最大伝送単位(MTU)。MTU は、1300 から 8896 までの任意の値に設定できます。デフォルト値は 1460 です。MTU を 1460 より大きい値に設定する前に、最大伝送単位を確認してください。

IPv4 サブネットのみを持つカスタムモードの VPC ネットワークを作成する

カスタムモードの VPC ネットワークの場合、ネットワークを作成してから、リージョン内に必要なサブネットを作成します。この段階で、すべてのリージョンにサブネットを指定する必要はありません。まったく指定しなくてもかまいませんが、サブネットが定義されていないリージョンにインスタンスは作成できません。最後に、ネットワークのファイアウォール ルールを定義します。

IPv4 サブネットのみを持つカスタムモードの VPC ネットワークを作成する手順は次のとおりです。

コンソール

  1. Google Cloud コンソールの [VPC ネットワーク] ページに移動します。

    [VPC ネットワーク] に移動

  2. [VPC ネットワークを作成] をクリックします。

  3. ネットワークの名前を入力します。

  4. [サブネット作成モード] で [カスタム] を選択します。

  5. [新しいサブネット] セクションで、サブネットに次の構成パラメータを指定します。

    1. サブネットの名前を入力します。
    2. リージョンを選択します。
    3. IP アドレス範囲を入力します。これはサブネットのプライマリ IPv4 範囲です。

      RFC 1918 アドレス以外の範囲を選択した場合は、その範囲が既存の構成と競合していないことを確認します。詳細については、IPv4 サブネットの範囲をご覧ください。

    4. サブネットのセカンダリ範囲を定義するため、[セカンダリ IP 範囲を作成する] をクリックします。

      RFC 1918 アドレス以外の範囲を選択した場合は、その範囲が既存の構成と競合していないことを確認します。詳細については、IPv4 サブネットの範囲をご覧ください。

    5. 限定公開の Google アクセス: サブネットの限定公開の Google アクセスを、作成時に有効にするか、後で編集して有効にするかを選択します。

    6. フローログ: サブネットの VPC フローログを、作成時に有効にするか、後で編集して有効にするかを選択します。

    7. [完了] をクリックします。

  6. さらにサブネットを追加するには、[サブネットを追加] をクリックして前の手順を繰り返します。ネットワークを作成した後で、ネットワークにさらにサブネットを追加することもできます。

  7. [ファイアウォール ルール] セクションで、[IPv4 ファイアウォール ルール] から事前定義された 0 個以上のファイアウォール ルールを選択します。このルールは、インスタンスへの接続の一般的なユースケースに対応します。

    事前定義ルールを選択しない場合は、ネットワークの作成後に独自のファイアウォール ルールを作成できます。

    事前定義ルールのそれぞれの名前は、作成する VPC ネットワークの名前 NETWORK で始まります。[IPv4 ファイアウォール ルール] タブで、NETWORK-allow-custom という事前定義の上り(内向き)ファイアウォール ルールを編集できます。ルールを含む行の右側にある [編集] をクリックします。サブネットを選択して IPv4 範囲を追加し、プロトコルとポートを指定します。

    後でサブネットを追加しても、NETWORK-allow-custom ファイアウォール ルールは自動更新されません。新しいサブネットにファイアウォール ルールが必要な場合は、ファイアウォール構成を更新してルールを追加する必要があります。

  8. VPC ネットワークの動的ルーティング モードを選択します。

    詳細については、動的ルーティング モードをご覧ください。動的ルーティング モードは後で変更できます

  9. 最大伝送単位(MTU): ネットワークの MTU として 1460(デフォルト)、1500、または 8896 のいずれかを選択します。MTU を 1460 より大きい値に設定する前に、最大伝送単位を確認してください。

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

gcloud

networks create コマンドを使用します。

gcloud compute networks create NETWORK \
    --subnet-mode=custom \
    --bgp-routing-mode=DYNAMIC_ROUTING_MODE \
    --mtu=MTU

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

  • NETWORK: VPC ネットワークの名前。
  • DYNAMIC_ROUTING_MODE: ネットワーク内の Cloud Router の動作を制御します。globalregional のいずれかになります。デフォルト値は regional です。詳細については、動的ルーティング モードをご覧ください。
  • MTU: ネットワークの最大パケットサイズである最大伝送単位(MTU)。MTU は、1300 から 8896 までの任意の値に設定できます。デフォルト値は 1460 です。MTU を 1460 より大きい値に設定する前に、最大伝送単位を確認してください。

次に、ネットワークにサブネットを追加します。

Terraform

google_compute_network Terraform リソースを使用します。

MTU は、ネットワークの最大伝送単位または最大パケットサイズです。MTU は、1300 から 8896 までの任意の値に設定できます。デフォルト値は 1460 です。MTU を 1460 より大きい値に設定する前に、最大伝送単位を確認してください。

resource "google_compute_network" "vpc_network" {
  project                 = var.project_id # Replace this with your project ID in quotes
  name                    = "my-custom-mode-network"
  auto_create_subnetworks = false
  mtu                     = 1460
}

次に、ネットワークにサブネットを追加します。

Terraform 構成を適用または削除する方法については、基本的な Terraform コマンドをご覧ください。

API

networks.insert メソッドPOST リクエストを送信します。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks
{
  "autoCreateSubnetworks": false,
  "name": "NETWORK",
  "mtu": MTU,
  "routingConfig": {
    "routingMode": "DYNAMIC_ROUTING_MODE"
  }
}

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

  • PROJECT_ID: VPC ネットワークが作成されているプロジェクトの ID。
  • NETWORK: VPC ネットワークの名前。
  • DYNAMIC_ROUTING_MODE: ネットワーク内の Cloud Router の動作を制御します。GLOBALREGIONAL のいずれかになります。デフォルト値は REGIONAL です。詳細については、動的ルーティング モードをご覧ください。
  • MTU: ネットワークの最大パケットサイズである最大伝送単位(MTU)。MTU は、1300 から 8896 までの任意の値に設定できます。デフォルト値は 1460 です。MTU を 1460 より大きい値に設定する前に、最大伝送単位を確認してください。

次に、ネットワークにサブネットを追加します。

デュアルスタック サブネットを持つカスタムモードの VPC ネットワークを作成する

ネットワークの作成時にサブネットを作成することも、後で追加することもできます。

サブネットのプライマリ IP アドレス範囲には、次のいずれかの構成を含めることができます。

  • シングル スタック: 内部 IPv4 範囲のみ
  • デュアル スタック: 内部 IPv4 範囲と内部 IPv6 範囲
  • デュアル スタック: 内部 IPv4 範囲と外部 IPv6 範囲

VPC ネットワーク内の各サブネットは、異なる構成を設定できます。たとえば、すべてをデュアルスタックとして構成する必要はありません。

内部 IPv6 範囲を持つサブネットを構成するには、VPC ネットワーク ULA の内部 IPv6 範囲を有効にします。内部 IPv6 サブネット範囲は、この範囲から割り振られます。

デュアル スタックのサブネットを持つカスタムモードの VPC ネットワークを作成する手順は次のとおりです。

コンソール

  1. Google Cloud コンソールの [VPC ネットワーク] ページに移動します。

    [VPC ネットワーク] に移動

  2. [VPC ネットワークを作成] をクリックします。

  3. ネットワークの名前を入力します。

  4. このネットワークのサブネットで内部 IPv6 アドレス範囲を構成する場合は、次の手順を行います。

    1. [VPC ネットワーク ULA の内部 IPv6 範囲] で、[有効] を選択します。
    2. [内部 IPv6 範囲の割り当て] で、[自動] または [手動] を選択します。

      [手動] を選択した場合は、fd20::/20 の範囲内の /48 の範囲を入力します。範囲が使用されている場合は、別の範囲を指定するように求めるプロンプトが表示されます。

  5. [サブネット作成モード] で [カスタム] をクリックします。

  6. [新しいサブネット] セクションで、サブネットに次の構成パラメータを指定します。

    1. サブネットの名前を入力します。
    2. リージョンを選択します。
    3. デュアルスタック サブネットを作成するには、[IP スタックタイプ] で [IPv4 と IPv6(デュアルスタック)] を選択します。
    4. [IPv4 範囲] を入力します。これはサブネットのプライマリ IPv4 範囲です。

      RFC 1918 アドレス以外の範囲を選択した場合は、その範囲が既存の構成と競合していないことを確認します。詳細については、IPv4 サブネットの範囲をご覧ください。

    5. IPv6 アクセスタイプ外部または内部)を選択します。

    6. [完了] をクリックします。

  7. さらにサブネットを追加するには、[サブネットを追加] をクリックして前の手順を繰り返します。

    VPC ネットワーク内の各サブネットには、異なるスタックタイプと IPv6 アクセスタイプの構成を設定できます。特定のネットワーク内のすべてのサブネットをデュアル スタック サブネットとして構成する必要はありません。

    ネットワークを作成した後に、シングルスタックまたはデュアルスタックのサブネットをネットワークに追加することもできます。

  8. [ファイアウォール ルール] セクションの [IPv4 ファイアウォール ルール] と [IPv6 ファイアウォール ルール] タブで、事前定義された 0 個以上のファイアウォール ルールを選択します。このルールは、インスタンスへの接続の一般的なユースケースに対応します。

    事前定義ルールを選択しない場合は、ネットワークの作成後に独自のファイアウォール ルールを作成できます。

    事前定義ルールのそれぞれの名前は、作成する VPC ネットワークの名前 NETWORK で始まります。[IPv4 ファイアウォール ルール] タブと [IPv6 ファイアウォール ルール] タブのどちらにも、編集可能な事前定義の上り(内向き)ファイアウォール ルールがあります。IPv4 ルールの名前は NETWORK-allow-custom、IPv6 ルールの名前は NETWORK-allow-ipv6-custom です。ルールを含む行の右側にある [編集] をクリックします。サブネットを選択して IP 範囲を追加し、プロトコルとポートを指定します。

    後でサブネットを追加しても、NETWORK-allow-customNETWORK-allow-ipv6-custom のファイアウォール ルールは自動更新されません。新しいサブネットにファイアウォール ルールが必要な場合は、ファイアウォール構成を更新してルールを追加する必要があります。

  9. VPC ネットワークの動的ルーティング モードを選択します。

    詳細については、動的ルーティング モードをご覧ください。動的ルーティング モードは後で変更できます

  10. 最大伝送単位(MTU): ネットワークの MTU として 1460(デフォルト)、1500、または 8896 のいずれかを選択します。MTU を 1460 より大きい値に設定する前に、最大伝送単位を確認してください。

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

gcloud

networks create コマンドを使用します。ネットワークを作成したら、IPv4 のみのサブネットデュアルスタック サブネットを追加できます。

このネットワークのサブネットで内部 IPv6 範囲を構成する場合は、--enable-ula-internal-ipv6 フラグを使用します。このオプションでは、Google が内部 IPv6 サブネット範囲に使用する fd20::/20 の範囲内の /48 ULA 接頭辞を割り当てます。割り当てられる /48 IPv6 範囲を選択する場合は、--internal-ipv6-range フラグを使用して範囲を指定します。

この VPC ネットワーク内のサブネットに外部 IPv6 のみを構成する場合は、両方のフラグを省略できます。

gcloud compute networks create NETWORK \
    --subnet-mode=custom \
    [ --enable-ula-internal-ipv6 [ --internal-ipv6-range=ULA_IPV6_RANGE ]] \
    --bgp-routing-mode=DYNAMIC_ROUTING_MODE \
    --mtu=MTU

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

  • NETWORK: VPC ネットワークの名前。

  • ULA_IPV6_RANGE: Google が内部 IPv6 サブネット範囲に使用する fd20::/20 範囲内の /48 接頭辞。--internal-ipv6-range フラグを使用しない場合は、Google によってネットワークの /48 接頭辞が選択されます。

  • DYNAMIC_ROUTING_MODE: ネットワーク内の Cloud Router の動作を制御します。globalregional のいずれかになります。デフォルト値は regional です。詳細については、動的ルーティング モードをご覧ください。

  • MTU: ネットワークの最大パケットサイズである最大伝送単位(MTU)。MTU は、1300 から 8896 までの任意の値に設定できます。デフォルト値は 1460 です。MTU を 1460 より大きい値に設定する前に、最大伝送単位を確認してください。

API

networks.insert メソッドPOST リクエストを送信します。ネットワークを作成したら、IPv4 のみのサブネットデュアルスタック サブネットを追加できます。

このネットワークのサブネットで内部 IPv6 範囲を構成する場合は、enableUlaInternalIpv6 を true に設定します。このオプションは、Google が内部 IPv6 サブネット範囲に使用する fd20::/20 範囲内から /48 範囲を割り当てます。割り当てる /48 IPv6 範囲を選択する場合は、internalIpv6Range フィールドを使用して範囲も指定します。

この VPC ネットワーク内のサブネットに外部 IPv6 のみを構成する場合は、両方のフィールドを省略できます。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks
{
  "autoCreateSubnetworks": false,
  "name": "NETWORK",
  "mtu": MTU,
  "enableUlaInternalIpv6": true,
  "internalIpv6Range": "ULA_IPV6_RANGE",
  "routingConfig": {
    "routingMode": "DYNAMIC_ROUTING_MODE"
  }
}

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

  • PROJECT_ID: VPC ネットワークが作成されているプロジェクトの ID。
  • NETWORK: VPC ネットワークの名前。
  • MTU: ネットワークの最大パケットサイズである最大伝送単位(MTU)。MTU は、1300 から 8896 までの任意の値に設定できます。デフォルト値は 1460 です。MTU を 1460 より大きい値に設定する前に、最大伝送単位を確認してください。
  • ULA_IPV6_RANGE: Google が内部 IPv6 サブネット範囲に使用する fd20::/20 範囲内の /48 接頭辞。internalIpv6Range の値を指定しない場合、Google はネットワークの /48 接頭辞を選択します。
  • DYNAMIC_ROUTING_MODE: ネットワーク内の Cloud Router の動作を制御します。GLOBALREGIONAL のいずれかになります。デフォルト値は REGIONAL です。詳細については、動的ルーティング モードをご覧ください。

ファイアウォール ルールの概要

ネットワークが作成できたら、VM インスタンス間の通信など、ネットワーク内のリソース間のトラフィックを許可または拒否するファイアウォール ルールを作成します。また、ファイアウォール ルールを使用して、どのトラフィックを VPC ネットワークからインターネットへ送信するか、またはどのトラフィックをインターネットから VPC ネットワークで受信するかを制御できます。

ネットワークの表示

プロジェクト内の VPC ネットワークとレガシー ネットワークを表示します。VPC ネットワークの場合、サブネットとサブネット作成モードに関する情報を表示できます。

コンソール

  1. Google Cloud コンソールの [VPC ネットワーク] ページに移動します。

    [VPC ネットワーク] に移動

    コンソールで VPC ネットワークとレガシー ネットワークがすべて一覧表示されます。

  2. VPC ネットワークを選択し、ピアリング接続やサブネットなどの詳細を表示します。

gcloud

  1. プロジェクト内のネットワークを一覧表示するには、networks list コマンドを使用します。

    gcloud compute networks list
    

    このコマンドで、VPC ネットワークとレガシー ネットワークがすべて一覧表示されます。レガシー ネットワークはサブネット作成モードに LEGACY が表示されますが、VPC ネットワークには AUTO または CUSTOM が表示されます。

    NAME             SUBNET_MODE  BGP_ROUTING_MODE  IPV4_RANGE     GATEWAY_IPV4
    custom-network   CUSTOM       REGIONAL
    default          AUTO         REGIONAL
    legacy-network1  LEGACY       REGIONAL          10.240.0.0/16  10.240.0.1
    
  2. ネットワークの説明を取得して、ピアリング接続やサブネットなどの詳細を確認するには、networks describe コマンドを使用します。

    gcloud compute networks describe NETWORK
    

    NETWORK は、ネットワークの名前に置き換えます。

API

  1. プロジェクト内のすべてのネットワークを一覧表示するには、networks.list メソッドGET リクエストを送信します。

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks
    

    PROJECT_ID は、一覧表示する VPC ネットワークを含むプロジェクトの ID に置き換えます。

  2. ネットワークとその詳細を表示するには、networks.get メソッドGET リクエストを送信します。

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/NETWORK
    

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

    • PROJECT_ID: VPC ネットワークを含むプロジェクトの ID。
    • NETWORK: 詳細を取得する VPC ネットワークの名前。

サブネットを使用する

サブネットを作成または編集するときは、次のルールに従う必要があります。

  • VPC ネットワークのメンバーでない限り、プロジェクト内でサブネットに VPC ネットワークと同じ名前を付けることはできません。プロジェクト内で、同じリージョンのサブネットには一意の名前を付ける必要があります。たとえば、production というネットワークで production という名前のサブネットを複数作成するには、それぞれ異なるリージョンに作成する必要があります。

  • サブネットの名前またはリージョンを作成後に変更することはできません。ただし、リソースによって使用されていないサブネットであれば、削除して置き換えることは可能です。

  • 各サブネットにはプライマリ IPv4 範囲が必要です。必要であれば、エイリアス IP 用に 1 つ以上のセカンダリ IPv4 範囲を設定できます。ネットワークごとの上限は、各サブネットに定義できるセカンダリ範囲の最大数を表します。プライマリ IPv4 範囲とセカンダリ IPv4 範囲は有効な範囲である必要があります。

    • VPC ネットワーク内で、プライマリとセカンダリの IPv4 範囲はすべて一意でなければなりませんが、連続している必要はありません。たとえば、サブネットのプライマリ範囲を 10.0.0.0/24 に、同じネットワーク内の別のサブネットのプライマリ範囲を 192.168.0.0/16 にできます。

    • サブネットを作成した後で、サブネットのプライマリ IPv4 範囲の拡張は可能ですが、置き換えや縮小はできません。

    • ただし、インスタンスによって使用されていないサブネットのセカンダリ IPv4 アドレス範囲であれば、それを削除して置き換えることは可能です。

    • プライマリ範囲やセカンダリ範囲の最少サイズは、IPv4 アドレス 8 つです。つまり、使用できる最長のサブネット マスクは /29 です。

    • 使用できる最短のサブネット マスクは /4 です。ただし、ほとんどの /4 IP アドレス範囲では、追加の検証でこのサイズのサブネットを作成できなくなります。たとえば、サブネット範囲をプライベート IPv4 範囲または他の予約済み範囲と重複させることはできません。無効なサブネット範囲を選択する可能性を最小限に抑えるため、サブネットの最大サイズを /8 に制限することをおすすめします。

      有効な範囲については、有効な IPv4 範囲をご覧ください。

  • サブネットのプライマリ範囲とセカンダリ範囲は、すでに割り振られている範囲、同じネットワーク内の別のサブネットのプライマリ範囲やセカンダリ範囲、ピアリングされたネットワーク内のサブネットの IPv4 範囲と重複できません

  • Google Cloud は、プライマリとセカンダリの両方の IP 範囲に対応するサブネット ルートを作成します。サブネット ルート、つまりサブネット IP 範囲には、定義上最も範囲の狭い IP 範囲が必要です。

    • Cloud VPNDedicated Interconnect、Partner Interconnect を使用して VPC ネットワークを別のネットワークに接続している場合は、プライマリとセカンダリの範囲がオンプレミスの IP 範囲と競合しないようにします。

    • サブネットの IPv4 範囲はすべて、VPC ネットワーク ピアリングで相互に接続している VPC ネットワーク間で一意でなければなりません。

    • サブネット IPv4 範囲は、静的ルートの宛先と競合してはいけません。

    • サブネットのプライマリまたはセカンダリ IPv4 範囲に、10.128.0.0/9 ブロックの IPv4 アドレスを使用しないでください。このブロックの IPv4 アドレスは、自動モードの VPC ネットワークで自動的に作成されたサブネットが使用します。10.128.0.0/9 ブロックの IP アドレスを使用すると、VPC ピアリングまたは Cloud VPN トンネルでネットワークを自動モードの VPC ネットワークに接続できなくなります。

サブネットを一覧表示する

プロジェクトに存在するすべてのサブネットを確認できます。

コンソール

  1. Google Cloud コンソールの [VPC ネットワーク] ページに移動します。

    [VPC ネットワーク] に移動

  2. サブネットを表示するには、次のいずれかを行います。

    • ネットワークの名前をクリックし、[VPC ネットワークの詳細] ページの [サブネット] タブをクリックします。

      このビューでは、選択した 1 つのネットワークに対して、新しいサブネットの追加や他の構成変更を行うことができます。

    • [現在のプロジェクトのサブネット] タブをクリックし、[VPC ネットワーク] リストから 1 つ以上のネットワークを選択します。

      このビューでは、複数のネットワークのサブネットを一覧表示できます。

gcloud

プロジェクト内のすべてのネットワークのすべてのサブネットを一覧表示することも、特定のネットワークまたはリージョンのサブネットだけを表示することもできます。次の例は、subnets list コマンドの使用方法を示しています。

  • すべての VPC ネットワーク内のすべてのサブネットを一覧表示するには、次のコマンドを使用します。

    gcloud compute networks subnets list
    
  • 特定の VPC ネットワーク内のすべてのサブネットを一覧表示するには、次のコマンドを使用します。

    gcloud compute networks subnets list \
       --network=NETWORK
    

    NETWORK は、ネットワークの名前に置き換えます。

  • 特定のリージョンのすべてのサブネットを一覧表示するには、次のコマンドを使用します。

    gcloud compute networks subnets list \
       --filter="region:( REGION … )"
    

    REGION は、リージョンの名前で置き換えます。

API

プロジェクト内のすべてのサブネットを一覧表示するには、subnetworks.aggregatedList メソッドGET リクエストを送信します。

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/subnetworks

PROJECT_ID は、一覧表示するサブネットを含むプロジェクトの ID に置き換えます。

サブネットの情報を取得する

このセクションの手順に沿って操作すると、既存のサブネットの詳細(プライマリ IPv4 範囲、セカンダリ IP 範囲、IPv6 範囲、リージョンなど)を表示できます。

コンソール

  1. Google Cloud コンソールの [VPC ネットワーク] ページに移動します。

    [VPC ネットワーク] に移動

    プロジェクト内のすべてのネットワークとサブネットは階層的に表示され、サブネットはネットワーク内のエントリとして表示されます。

  2. 特定のネットワークのサブネットに絞り込むため、ネットワークの名前をクリックします。[VPC ネットワークの詳細] ページで、[サブネット] タブのサブネット名をクリックして [サブネットの詳細] ページを表示します。

gcloud

  1. サブネットを一覧表示して、プロジェクト内の既存のサブネットの名前とリージョンを確認します。

  2. subnets describe コマンドを使用します。

    gcloud compute networks subnets describe SUBNET \
        --region=REGION
    

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

    • SUBNET: 詳細を取得するサブネット
    • REGION: 詳細を取得するサブネットのリージョン

API

  1. 特定のリージョンのサブネットを一覧表示してサブネットの名前を確認するには、subnetworks.list メソッドGET リクエストを送信します。

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks
    

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

    • PROJECT_ID: 一覧表示するサブネットを含むプロジェクトの ID。
    • REGION: 一覧表示するサブネットを含む Google Cloud リージョンの名前。
  2. subnetworks.get メソッドGET リクエストを送信します。

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET
    

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

    • PROJECT_ID: 詳細を取得するサブネットを含むプロジェクトの ID。
    • REGION: 詳細を取得するサブネットを含む Google Cloud リージョンの名前。
    • SUBNET: 詳細を取得するサブネットの名前。

IPv4 のみのサブネットを追加する

サブネットを作成するときは、サブネット ルールに従って、名前、リージョン、少なくとも 1 つのプライマリ IPv4 アドレス範囲を設定します。IPv4 専用のサブネットを作成する手順は次のとおりです。

コンソール

  1. Google Cloud コンソールの [VPC ネットワーク] ページに移動します。

    [VPC ネットワーク] に移動

  2. VPC ネットワークの名前をクリックして、[VPC ネットワークの詳細] ページを表示します。

  3. [サブネットを追加] をクリックします。表示されるパネルで、次の手順を実施します。

    1. 名前を入力します。
    2. リージョンを選択します。
    3. IP アドレス範囲を入力します。これはサブネットのプライマリ IPv4 範囲です。

      RFC 1918 アドレス以外の範囲を選択した場合は、その範囲が既存の構成と競合していないことを確認します。詳細については、IPv4 サブネットの範囲をご覧ください。

    4. サブネットのセカンダリ範囲を定義するため、[セカンダリ IP 範囲を作成する] をクリックします。

      RFC 1918 アドレス以外の範囲を選択した場合は、その範囲が既存の構成と競合していないことを確認します。詳細については、IPv4 サブネットの範囲をご覧ください。

    5. 限定公開の Google アクセス: 作成時にサブネットの限定公開の Google アクセスを有効にできます。後で編集して有効にすることもできます。

    6. フローログ: 作成時にサブネットの VPC フローログを有効にできます。後で編集して有効にすることもできます。

    7. [追加] をクリックします。

gcloud

subnets create コマンドを使用します。

gcloud compute networks subnets create SUBNET \
    --network=NETWORK \
    --range=PRIMARY_RANGE \
    --region=REGION

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

  • SUBNET: 新しいサブネットの名前。
  • NETWORK: 新しいサブネットを含む VPC ネットワークの名前。
  • PRIMARY_RANGE: 新しいサブネットのプライマリ IPv4 範囲(CIDR 表記)。詳細については、IPv4 サブネットの範囲をご覧ください。
  • REGION: 新しいサブネットが作成される Google Cloud リージョン。

次のオプションのフラグを使用すると、前のコマンドを変更できます。

  • --secondary-range=SECONDARY_RANGE_NAME=SECONDARY_RANGE: SECONDARY_RANGE_NAME は、セカンダリ範囲の名前に置き換えます。SECONDARY_RANGE は、CIDR 表記のセカンダリ範囲に置き換えます。ネットワークあたりの上限は、サブネットごとに定義できるセカンダリ範囲の最大数を表します。
  • --enable-flow-logs: 作成時にサブネットの VPC フローログを有効にします。
  • --enable-private-ip-google-access: 作成時にサブネットの限定公開の Google アクセスを有効にします。
  • --purpose: サブネットの目的を指定できます。
  • --role: プロキシ専用サブネットのロール(アクティブまたはバックアップ)を指定できます。

次に、ファイアウォール ルールを作成します。

Terraform

Terraform モジュールを使用します。

MTU は、ネットワークの最大伝送単位または最大パケットサイズです。MTU は、1300 から 8896 までの任意の値に設定できます。デフォルト値は 1460 です。MTU を 1460 より大きい値に設定する前に、最大伝送単位を確認してください。

module "test-vpc-module" {
  source       = "terraform-google-modules/network/google"
  version      = "~> 9.0"
  project_id   = var.project_id # Replace this with your project ID in quotes
  network_name = "my-custom-mode-network"
  mtu          = 1460

  subnets = [
    {
      subnet_name   = "subnet-01"
      subnet_ip     = "10.10.10.0/24"
      subnet_region = "us-west1"
    },
    {
      subnet_name           = "subnet-02"
      subnet_ip             = "10.10.20.0/24"
      subnet_region         = "us-west1"
      subnet_private_access = "true"
      subnet_flow_logs      = "true"
    },
    {
      subnet_name               = "subnet-03"
      subnet_ip                 = "10.10.30.0/24"
      subnet_region             = "us-west1"
      subnet_flow_logs          = "true"
      subnet_flow_logs_interval = "INTERVAL_10_MIN"
      subnet_flow_logs_sampling = 0.7
      subnet_flow_logs_metadata = "INCLUDE_ALL_METADATA"
      subnet_flow_logs_filter   = "false"
    }
  ]
}

次に、ファイアウォール ルールを作成します。

API

subnetworks.insert メソッドPOST リクエストを送信します。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks
{
  "ipCidrRange": "IP_RANGE",
  "network": "NETWORK_URL",
  "name": "SUBNET"
}

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

  • PROJECT_ID: 変更する VPC ネットワークを含むプロジェクトの ID。
  • REGION: サブネットが追加される Google Cloud リージョンの名前。
  • IP_RANGE: サブネットのプライマリ IPv4 アドレス範囲。詳細については、IPv4 サブネットの範囲をご覧ください。
  • NETWORK_URL: サブネットを追加する VPC ネットワークの URL。
  • SUBNET: サブネットの名前。

次に、ファイアウォール ルールを作成します。

デュアルスタック サブネットを追加する

デュアルスタック サブネットには、IPv4 アドレス範囲と IPv6 アドレス範囲の両方が存在します。

外部または内部 IPv6 アドレスを有効にしてサブネットを作成できます。サブネットに IPv6 範囲を構成しても、そのサブネットに接続する VM に IPv6 は構成されません。VM での IPv6 の構成の詳細については、VM で IPv6 アドレスを構成するをご覧ください。

デュアル スタックのサブネットを作成する手順は次のとおりです。

コンソール

  1. Google Cloud コンソールの [VPC ネットワーク] ページに移動します。

    [VPC ネットワーク] に移動

  2. VPC ネットワークの名前をクリックして、[VPC ネットワークの詳細] ページを表示します。

  3. [サブネットを追加] をクリックします。表示されるパネルで、次の手順を実施します。

    1. 名前を入力します。
    2. リージョンを選択します。
    3. [IP スタックタイプ] には、[IPv4 と IPv6(デュアルスタック)] を選択します。
    4. [IPv4 範囲] を入力します。これはサブネットのプライマリ IPv4 範囲です。

      RFC 1918 アドレス以外の範囲を選択した場合は、その範囲が既存の構成と競合していないことを確認します。詳細については、IPv4 サブネットの範囲をご覧ください。

    5. [IPv6 アクセスタイプ] には [内部] または [外部] を選択します。

      アクセスタイプを [内部] に設定する必要があるが、[内部] オプションを使用できない場合は、ネットワークで内部 IPv6 範囲が割り当てられていることを確認してください。

    6. [追加] をクリックします。

gcloud

subnets create コマンドを使用します。

gcloud compute networks subnets create SUBNET \
    --network=NETWORK \
    --range=PRIMARY_IPv4_RANGE \
    --stack-type=IPV4_IPV6 \
    --ipv6-access-type=IPv6_ACCESS_TYPE \
    --region=REGION

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

  • SUBNET: 新しいサブネットの名前。
  • NETWORK: 新しいサブネットが追加される VPC ネットワークの名前。
  • PRIMARY_IPv4_RANGE: 新しいサブネットのプライマリ IPv4 範囲(CIDR 表記)。詳細については、IPv4 サブネットの範囲をご覧ください。
  • IPv6_ACCESS_TYPE: IPv6 アクセスタイプ。EXTERNAL または INTERNAL のいずれかです。
  • REGION: 新しいサブネットが作成される Google Cloud リージョン。

API

subnetworks.insert メソッドPOST リクエストを送信します。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks
{
  "ipCidrRange": "IP_RANGE",
  "network": "NETWORK_URL",
  "name": "SUBNET"
  "stackType": IPV4_IPV6,
  "ipv6AccessType": IPv6_ACCESS_TYPE
}

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

  • PROJECT_ID: 変更する VPC ネットワークを含むプロジェクトの ID。
  • REGION: サブネットが追加される Google Cloud リージョンの名前。
  • IP_RANGE: サブネットのプライマリ IPv4 アドレス範囲。詳細については、IPv4 サブネットの範囲をご覧ください。
  • NETWORK_URL: サブネットを追加する VPC ネットワークの URL。
  • SUBNET: サブネットの名前。
  • IPv6_ACCESS_TYPE: IPv6 アクセスタイプ。EXTERNAL または INTERNAL のいずれかです。

サブネットのスタックタイプをデュアルスタックに変更する

デュアルスタック サブネットには、IPv4 と IPv6 の両方のサブネット範囲が設定されています。内部 IPv6 サブネット範囲または外部 IPv6 サブネット範囲を、カスタムモード VPC ネットワーク内の既存の IPv4 のみのサブネットに追加できます。詳細については、IPv6 サブネットの範囲をご覧ください。

IPv6 サブネット範囲をサブネットに追加しても、接続された VM に IPv6 は構成されません。VM の構成については、VM での IPv6 の構成をご覧ください。

サブネットのスタックタイプをデュアルスタックに変更する次の手順は次のとおりです。

コンソール

  1. Google Cloud コンソールの [VPC ネットワーク] ページに移動します。

    [VPC ネットワーク] に移動

  2. ネットワークの名前をクリックして、[VPC ネットワークの詳細] ページを表示します。

  3. [サブネット] タブで、変更するサブネットの名前をクリックします。

  4. [サブネットの詳細] ページで、[編集] をクリックします。

  5. [IP スタックタイプ] には、[IPv4 と IPv6(デュアルスタック)] を選択します。

  6. [IPv6 アクセスタイプ] には [内部] または [外部] を選択します。

    アクセスタイプを [内部] に設定する必要があるが、[内部] オプションを使用できない場合は、ネットワークで内部 IPv6 範囲が割り当てられていることを確認してください。

  7. [保存] をクリックします。

gcloud

subnets update コマンドを使用します。

gcloud compute networks subnets update SUBNET \
    --stack-type=IPV4_IPV6 \
    --ipv6-access-type=IPv6_ACCESS_TYPE \
    --region=REGION

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

  • SUBNET: サブネットの名前。
  • REGION: サブネットのリージョン。
  • IPv6_ACCESS_TYPE: サブネットの IPv6 アクセスタイプ。EXTERNAL または INTERNAL のいずれかです。

API

subnetworks.patch メソッドPATCH リクエストを送信します。

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET
{
  "stackType": IPV4_IPV6,
  "ipv6AccessType": IPv6_ACCESS_TYPE
}

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

  • PROJECT_ID: 変更する VPC ネットワークを含むプロジェクトの ID。
  • REGION: サブネットのリージョン。
  • SUBNET: サブネットの名前。
  • IPv6_ACCESS_TYPE: IPv6 アクセスタイプ。EXTERNAL または INTERNAL のいずれかです。

サブネットのスタックタイプを IPv4 のみに変更する

IPv6 アクセスタイプが外部の場合、サブネットのスタックタイプを IPv4 と IPv6(デュアル スタック)から IPv4 のみ(シングル スタック)に変更できます。

この変更を行うと、そのサブネットに接続されている新しいデュアル スタック VM は作成できなくなります。ただし、既存のデュアル スタック VM は影響を受けません。VM のスタックタイプを IPv4 のみに変更する必要がある場合は、VM のスタックタイプを変更するをご覧ください。

この変更は Google Cloud CLI と API でのみサポートされています。

IPv6 アクセスタイプが内部の場合は、スタックタイプを IPv4 と IPv6(デュアルスタック)から IPv4 のみ(シングルスタック)に変更することはできません。

サブネットのスタックタイプを IPv4 のみに変更する手順は次のとおりです。

gcloud

subnets update コマンドを使用します。

gcloud compute networks subnets update SUBNET \
    --stack-type=IPV4_ONLY \
    --region=REGION

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

  • SUBNET: サブネットの名前。
  • REGION: サブネットの Google Cloud リージョン

API

subnetworks.patch メソッドPATCH リクエストを送信します。

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET
{
  "stackType": IPV4_ONLY,
}

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

  • PROJECT_ID: 変更する VPC ネットワークを含むプロジェクトの ID。
  • REGION: サブネットの Google Cloud リージョン。
  • SUBNET: サブネットの名前。

サブネットを削除する

手動で作成したサブネットを削除するには、次の手順を使用します。サブネットを削除する前に、そのサブネットを使用しているすべてのリソースを削除する必要があります。たとえば、サブネットを使用している VM を削除しなければならず、ほかにも予約済み内部 IP アドレス、内部転送ルール、Cloud NAT ゲートウェイを削除する必要があります。

サブネットを削除するには、次のようにします。

コンソール

  1. Google Cloud コンソールの [VPC ネットワーク] ページに移動します。

    [VPC ネットワーク] に移動

    プロジェクト内のすべてのネットワークとサブネットは階層的に表示され、サブネットはネットワーク内のエントリとして表示されます。

  2. 特定のネットワークを表示するには、ネットワークの名前をクリックします。[VPC ネットワークの詳細] ページで、[サブネット] タブのサブネット名をクリックして [サブネットの詳細] ページを表示します。

  3. [サブネットを削除] をクリックします。

  4. 表示されたメッセージで、[削除] をクリックして確定します。

gcloud

subnets delete コマンドを使用します。

gcloud compute networks subnets delete SUBNET \
    --region=REGION

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

  • SUBNET: 削除するサブネットの名前。
  • REGION: 削除するサブネットのリージョン。

API

subnetworks.delete メソッドDELETE リクエストを送信します。

DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET

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

  • PROJECT_ID: 削除するサブネットを含むプロジェクトの ID。
  • REGION: 削除するサブネットを含む Google Cloud リージョンの名前。
  • SUBNET: 削除するサブネットの名前。

プライマリ IPv4 範囲を拡張する

サブネット マスクを変更し、接頭辞の長さをより小さな数に設定することで、既存のサブネットのプライマリ IPv4 範囲を拡張できます。予定しているサブネットの新しいプライマリ IPv4 範囲は、サブネット ルールに従う必要があります。

自動モードの VPC ネットワーク(または、以前は自動モードの VPC ネットワークだったカスタムモードの VPC ネットワーク)で自動的に作成されたサブネットの IPv4 範囲を拡張する場合、使用できる最も広い接頭辞(サブネット マスク)は /16 です。接頭辞が /16 よりも広いと、自動的に作成された他のサブネットのプライマリ IPv4 範囲と競合します。

ロードバランサ プロキシ専用に使用されるサブネットは拡張できません。詳細については、ロードバランサのプロキシのみのサブネットをご覧ください。

サブネットのプライマリ IPv4 範囲の拡張は、完了までに数分かかることがあります。拡張中、サブネット内のトラフィックは中断されません。

サブネットのプライマリ IPv4 範囲を拡張する場合は、この IP アドレス範囲を想定している他の構成の変更が必要になる可能性があります。

サブネットのプライマリ IPv4 範囲を拡張する手順は次のとおり。

コンソール

  1. Google Cloud コンソールの [VPC ネットワーク] ページに移動します。

    [VPC ネットワーク] に移動

    プロジェクト内のすべてのネットワークとサブネットは階層的に表示され、サブネットはネットワーク内のエントリとして表示されます。

  2. 特定のネットワークのサブネットに絞り込むため、ネットワークの名前をクリックします。[VPC ネットワークの詳細] ページで、[サブネット] タブのサブネット名をクリックして [サブネットの詳細] ページを表示します。

  3. [編集] をクリックします。

  4. [IP アドレス範囲] フィールドに、新しい、より広い CIDR ブロックを入力します。

    有効な範囲については、IPv4 サブネットの範囲をご覧ください。

  5. [保存] をクリックします。

gcloud

subnets expand-ip-range コマンドを使用します。

gcloud compute networks subnets expand-ip-range SUBNET \
  --region=REGION \
  --prefix-length=PREFIX_LENGTH

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

  • SUBNET: サブネットの名前。
  • REGION: サブネットが配置されているリージョン。
  • PREFIX_LENGTH: サブネット マスクサイズ(ビット単位)。プライマリ IPv4 範囲が 10.1.2.0/24 の場合、20 を指定するとサブネット マスクを 20 ビットに減らせます。これにより、プライマリ IPv4 範囲は 10.1.2.0/20 に変更されます。有効な範囲については、IPv4 サブネットの範囲をご覧ください。

API

subnetworks.expandIpCidrRange メソッドPOST リクエストを送信します。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET/expandIpCidrRange
{
  "ipCidrRange": "IP_RANGE"
}

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

  • PROJECT_ID: 変更するサブネットを含むプロジェクトの ID。
  • REGION: 変更するサブネットを含む Google Cloud リージョンの名前。
  • SUBNET: 変更するサブネットの名前。
  • IP_RANGE: サブネットの展開された IPv4 アドレス範囲。有効な範囲については、IPv4 サブネットの範囲をご覧ください。

セカンダリ IPv4 範囲を編集する

サブネットにセカンダリ IPv4 範囲を追加できます。また、IP アドレスを使用しているリソースがない場合に限り、セカンダリ IPv4 範囲を削除できます。

gcloud

サブネットに新しいセカンダリ IPv4 範囲を追加するには、subnets update コマンドを使用します。

gcloud compute networks subnets update SUBNET \
  --region=REGION \
  --add-secondary-ranges=SECONDARY_RANGE_NAME=SECONDARY_RANGE

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

  • SUBNET: サブネットの名前。
  • REGION: サブネットが配置されているリージョン。
  • SECONDARY_RANGE_NAME: セカンダリ範囲の名前。
  • SECONDARY_RANGE: CIDR 表記のセカンダリ IPv4 範囲。有効な範囲については、IPv4 サブネットの範囲をご覧ください。

サブネットからセカンダリ IPv4 範囲を削除するには、subnets update コマンドを使用します。

gcloud compute networks subnets update SUBNET \
  --region=REGION \
  --remove-secondary-ranges=SECONDARY_RANGE_NAME

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

  • SUBNET: サブネットの名前。
  • REGION: サブネットが配置されているリージョン。
  • SECONDARY_RANGE_NAME: 削除するセカンダリ範囲の名前。

API

既存のサブネットのセカンダリ IPv4 アドレス範囲を変更するには、subnetworks.patch メソッドPATCH リクエストを送信します。

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET
{
  "secondaryIpRanges": [
  {
    "rangeName": "SECONDARY_RANGE_NAME",
    "ipCidrRange": "IP_RANGE"
  },
  {
    "rangeName": "SECONDARY_RANGE_NAME",
    "ipCidrRange": "IP_RANGE"
  }],
  "fingerprint": "SUBNETWORK_FINGERPRINT"
}

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

  • PROJECT_ID: 変更するサブネットを含むプロジェクトの ID。
  • REGION: 変更するサブネットを含む Google Cloud リージョンの名前。
  • SUBNET: 変更するサブネットの名前。
  • SECONDARY_RANGE_NAME: セカンダリ IPv4 アドレス範囲の名前。
  • IP_RANGE: サブネットの展開された IPv4 アドレス範囲。有効な範囲については、IPv4 サブネットの範囲をご覧ください。
  • SUBNET_FINGERPRINT: 既存のサブネットのフィンガー プリント ID。サブネットの詳細を取得するときに指定します。

ネットワークを変更する

自動モード VPC ネットワークをカスタムモードに変換する

この手順を使用すると、自動モードの VPC ネットワークをカスタムモードの VPC ネットワークに変換できます。変換を実施したほうが良い場合の理由については、自動モードの VPC ネットワークに関する考慮事項をご覧ください。

自動モードの VPC ネットワークをカスタムモードの VPC ネットワークに変換しても、自動的に作成されたサブネットと追加したサブネットはすべて保持されます。サブネット名と IP 範囲は変更されません。

自動モードの VPC ネットワークをカスタムモードに変換した後は、ネットワークが自動モードだった間に自動的に作成されたサブネットを参照するすべての API 呼び出しと gcloud CLI コマンドを、明示されていないものも含めて確認する必要があります。API 呼び出しとコマンドは、サブネットを明示的に参照するように変更する必要があります。サブネット指定フラグ(--subnet)が設定されている gcloud CLI コマンドの場合、カスタムモードの VPC ネットワーク内のサブネットを参照するには、このフラグが必要です。

自動モードの VPC ネットワークをカスタムモードの VPC ネットワークに変換する手順は次のとおりです。

コンソール

  1. Google Cloud コンソールの [VPC ネットワーク] ページに移動します。

    [VPC ネットワーク] に移動

  2. VPC ネットワークの名前をクリックして、[VPC ネットワークの詳細] ページを表示します。

  3. [編集] をクリックします。

  4. [サブネット作成モード] で [カスタム] を選択します。

  5. [保存] をクリックします。

gcloud

networks update コマンドを使用します。

gcloud compute networks update NETWORK \
    --switch-to-custom-subnet-mode

NETWORK は、更新するネットワークの名前に置き換えます。

API

networks.switchToCustomMode メソッドPOST リクエストを送信します。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/NETWORK/switchToCustomMode

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

  • PROJECT_ID: 変換する VPC ネットワークを含むプロジェクトの ID。
  • NETWORK: 変換する VPC ネットワークの名前。

ネットワークに内部 IPv6 範囲を割り振る

サブネットで内部 IPv6 アドレスを構成する場合は、まず VPC ネットワークで内部 IPv6 アドレスを有効にする必要があります。内部 IPv6 を有効にすると、/48 の一意のローカル アドレス(ULA)範囲がネットワークに割り当てられます。

VPC ネットワークの内部 IPv6 範囲を有効にすると、デュアルスタック サブネットを追加したり、IPv4 サブネットをデュアル スタック サブネットに変換できるようになります。

ネットワークに内部 IPv6 範囲を割り当てる手順は次のとおりです。

コンソール

  1. Google Cloud コンソールの [VPC ネットワーク] ページに移動します。

    [VPC ネットワーク] に移動

  2. VPC ネットワークの名前をクリックして、[VPC ネットワークの詳細] ページを表示します。

  3. [編集] をクリックします。

  4. [VPC ネットワーク ULA の内部 IPv6 範囲] で、[有効] を選択します。

  5. (省略可)内部 IPv6 範囲に使用する接頭辞を指定できます。

    1. [ULA の内部 IPv6 範囲を割り当てる] で [手動] をクリックします。
    2. fd20::/20 範囲内の /48 範囲を入力します。

      範囲が使用されている場合は、別の範囲を入力するように求めるプロンプトが表示されます。

  6. [保存] をクリックします。

gcloud

networks update コマンドを使用します。

--enable-ula-internal-ipv6 フラグは、Google が内部 IPv6 サブネット範囲に使用する fd20::/20 範囲内の /48 接頭辞を割り当てます。割り当てられる /48 IPv6 範囲を選択する場合は、--internal-ipv6-range フラグを使用して範囲を指定します。

gcloud compute networks update NAME \
    --enable-ula-internal-ipv6 \
    [ --internal-ipv6-range=ULA_IPV6_RANGE ]

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

  • NAME: VPC ネットワークの名前。
  • ULA_IPV6_RANGE: ULA 接頭辞を割り当てる必要がある IPv6 アドレスの範囲。

API

networks.insert メソッドPATCH リクエストを送信します。

enableUlaInternalIpv6 を true に設定すると、Google が内部 IPv6 サブネット範囲に使用する fd20::/20 範囲内から /48 範囲が割り当てられます。割り当てる /48 IPv6 範囲を選択する場合は、internalIpv6Range フィールドを使用して範囲も指定します。

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/networksa/NETWORK
{
  "enableUlaInternalIpv6": true,
  "internalIpv6Range": "ULA_IPV6_RANGE",
}

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

  • PROJECT_ID: VPC ネットワークが作成されているプロジェクトの ID。
  • NETWORK: VPC ネットワークの名前。
  • ULA_IPV6_RANGE: Google が内部 IPv6 サブネット範囲に使用する fd20::/20 範囲内の /48 接頭辞。internalIpv6Range の値を指定しない場合、Google はネットワークの /48 接頭辞を選択します。

動的ルーティング モードを変更する

各 VPC ネットワークには関連付けられた動的ルーティング モードがあり、これによってネットワーク内の Cloud Router の動作が制御されます。Cloud Router によるルートの共有と学習したルートの適用に対し、各モードがどのように影響するかの詳細については、VPC ネットワークの動的ルーティング モード セクションをご覧ください。

VPC ネットワークの動的ルーティング モードを変更する手順は次のとおりです。

コンソール

  1. Google Cloud コンソールの [VPC ネットワーク] ページに移動します。

    [VPC ネットワーク] に移動

  2. VPC ネットワークの名前をクリックして、[VPC ネットワークの詳細] ページを表示します。

  3. [編集] をクリックします。

  4. [動的ルーティング モード] セクションで、[グローバル] または [リージョン] を選択します。

  5. [保存] をクリックします。

gcloud

networks update コマンドを使用します。

gcloud compute networks update NETWORK \
    --bgp-routing-mode=DYNAMIC_ROUTING_MODE

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

  • NETWORK: 更新する VPC ネットワークの名前。
  • DYNAMIC_ROUTING_MODE: ネットワーク内の Cloud Router の動作を制御します。globalregional のいずれかになります。デフォルト値は regional です。詳細については、動的ルーティング モードをご覧ください。

API

subnetworks.patch メソッドPATCH リクエストを送信します。

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/NETWORK
{
  "routingConfig": {
    "routingMode": "ROUTING_MODE"
  }
}

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

  • PROJECT_ID: 変更する VPC ネットワークを含むプロジェクトの ID。
  • NETWORK: 変更する VPC ネットワークの名前。
  • ROUTING_MODE: ネットワーク内の Cloud Router の動作を制御します。GLOBALREGIONAL のいずれかになります。デフォルト値は REGIONAL です。詳細については、動的ルーティング モードをご覧ください。

ネットワークの MTU を変更する

VPC ネットワークの MTU の変更については、VPC ネットワークの MTU 設定を変更するをご覧ください。

ネットワークを削除する

ネットワークが使用されていない場合は削除できます。ネットワークを削除する前に、すべてのサブネット内のすべてのリソースと、ネットワークを参照しているすべてのリソースを削除する必要があります。ネットワークを参照するリソースには、Cloud VPN ゲートウェイ、Cloud Router、サーバーレス VPC アクセス コネクタとそれらに接続されたサービス、ファイアウォール ルール、カスタム静的ルートが含まれます。

VPC ネットワークを削除する手順は次のとおりです。

コンソール

  1. Google Cloud コンソールの [VPC ネットワーク] ページに移動します。

    [VPC ネットワーク] に移動

  2. VPC ネットワークの名前をクリックして、[VPC ネットワークの詳細] ページを表示します。

  3. [VPC ネットワークを削除] をクリックします。

  4. 表示されたメッセージで、[削除] をクリックして確定します。

gcloud

networks delete コマンドを使用します。

gcloud compute networks delete NETWORK

NETWORK は、削除するネットワークの名前に置き換えます。

API

networks.delete メソッドDELETE リクエストを送信します。

DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/NETWORK

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

  • PROJECT_ID: 削除する VPC ネットワークを含むプロジェクトの ID。
  • NETWORK: 削除する VPC ネットワークの名前。

VPC ネットワークをモニタリングする

VM との間のネットワーク フローのロギングを有効にできます。手順については、VPC フローログの使用をご覧ください。

ファイアウォール ルールのロギングを有効にすると、どのルールがどのトラフィックを許可またはブロックしているかを確認できます。詳しくは、ファイアウォール ルール ロギングの使用をご覧ください。

VM を移行する

特定のプロジェクト内で、仮想マシン(VM)インスタンスをあるネットワークから別のネットワークに移行できます。手順については、ネットワーク間の VM の移行をご覧ください。

トラブルシューティング

エラー: Constraint constraints/compute.requireVpcFlowLogs violated

このエラーは、次の両方の条件に該当する場合に発生します。

  • VPC フローログの構成が必要な組織のポリシーの制約が設定されている。

  • サブネットを作成するか、既存のサブネットの VPC フローログ構成を更新すると、その構成はポリシーの要件を満たしません。

この制約の詳細、およびサブネットの作成と更新に対する影響については、VPC フローログの組織のポリシーに関する制約をご覧ください。

リソースが見つからないエラー

VPC ネットワークを削除すると、次のようなメッセージが表示されることがあります。The resource "aet-uscentral1-subnet--1-egrfw" was not found.

このエラーとその解決方法については、VPC ファイアウォール ルールのドキュメントのリソースが見つからないエラーをご覧ください。

次のステップ

使ってみる

Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオでの VPC のパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。

VPC 無料トライアル