ネットワーク階層を設定する

このページでは、ワークロードのネットワーク階層を指定する方法について説明します。ネットワーク階層を手動で設定する前に、Network Service Tiers の概要をご確認ください。

仕様

Network Service Tiers は、有効な Google Cloud リソースでのみサポートされます。スタンダード ティアは一部のリージョンでのみご利用いただけますが、プレミアム ティアはすべての Google Cloud リージョンでご利用いただけます。

外部 IP アドレスプール

外部 IP アドレスがグローバルかリージョンか、またリージョンであればどのネットワーク階層かによって、IP アドレスの選択元になるプールが決まります。あるプール内の IP アドレスを、別のプールに移動することはできません。

スタンダード ティアでは、リージョンの外部 IP アドレスのプールはそれぞれのリージョンに固有で、有効なリソースのタイプではありません。たとえば、スタンダード ティアを使用する仮想マシン(VM)インスタンスと Google Cloud ロードバランサ(外部アプリケーション ロードバランサ、外部プロキシ ネットワーク ロードバランサ、外部パススルー ネットワーク ロードバランサ)はすべて、リージョンのスタンダード ティアのプールから選択した IP アドレスを使用します。

プレミアム ティアでは、外部アプリケーション ロードバランサと外部プロキシ ネットワーク ロードバランサはグローバル外部 IP アドレスを使用しますが、外部パススルー ネットワーク ロードバランサと VM インスタンスはリージョン外部 IP アドレスを使用します。各リージョンには、グローバル外部 IP アドレスのプールとは別に、プレミアム ティア用のリージョン外部 IP アドレスのプールがあります。

未割り当ての IP アドレス

スタンダード ティアで未使用のリージョン外部 IP アドレスは、プレミアム ティアで未使用の IP アドレスとは動作が異なります。

スタンダード ティアの IP アドレスは、有効なリソースに割り当てられていないときに、自動的にパーキング状態になります。IP アドレスがパーキング状態でも、ロードバランサはその IP アドレスに対する特定のリクエストに応答します。たとえば、スタンダード ティアのパーキング状態の IP アドレスに送信された HTTP リクエストは、Google がホストする HTTP 404(Not Found)ウェブページに送信されます。スタンダード ティアでパーキング状態の IP アドレスに送信されたトラフィックは、単に破棄されるわけではありません。さらに、スタンダード ティアの IP アドレスは、リソースへの割り当て処理を行う間、パーキング状態のように動作できます。

ライブ マイグレーションに 20 分以上かかると、VM インスタンスに割り当てられたスタンダード ティアの外部 IP アドレスが、パーキング状態に移行することがあります。VM に割り当てられたプレミアム ティアの外部 IP アドレスは、長時間のライブ マイグレーション中のトラフィックを破棄します。

プロジェクトにデフォルトのネットワーク階層を設定する

プロジェクトに、デフォルトのネットワーク階層を定義するには、次の手順に従います。リソース自体に階層を指定しなかった場合、プロジェクト内で新しく作成された有効なリソースではこの階層が使用されます。プロジェクトのデフォルトのネットワーク階層を変更しても既存のリソースの階層は変わりませんが、新しいリソースを作成する際にネットワークを指定しない場合、新しいリソースのネットワーク階層は変更されます。

コンソール

  1. Google Cloud Console で [Network Service Tiers] ページに移動します。

    [Network Service Tiers] ページに移動

  2. [階層を変更] をクリックします。

  3. [プレミアム] または [スタンダード] を選択して、[変更] をクリックします。

gcloud

gcloud compute project-info update \
    --default-network-tier NETWORK_TIER

NETWORK_TIER は、PREMIUM または STANDARD に置き換えます。デフォルトは PREMIUM です。

API

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/setNetworkTier
{
  "networkTier": "STANDARD"
}

PROJECT_ID を実際のプロジェクト ID に置き換えます。

Terraform

Terraform リソースを使用して、プロジェクトのネットワーク階層を設定できます。次の例では、階層を STANDARD に設定します。

resource "google_compute_project_default_network_tier" "project-tier" {
  project      = var.project_id # Replace this with your project ID in quotes
  network_tier = "STANDARD"
}

リソースに指定したネットワーク階層は常に、プロジェクトに定義したデフォルトのネットワーク階層よりも優先されます。たとえば、プロジェクトのデフォルト ネットワーク階層がプレミアムでも、スタンダード ティアにインスタンスまたはロードバランサを作成できます。

階層構成レベル。
階層構成レベル(クリックして拡大)

静的外部 IP アドレスの作成

静的リージョン外部 IP アドレスを作成する場合、ネットワーク階層には PREMIUMSTANDARD を指定できます。ネットワーク階層を指定しない場合、プロジェクトのデフォルト階層を使用してアドレスが作成されます。

スタンダード ティアを使用する静的リージョン外部 IP アドレスを予約するには、次の手順に従います。

コンソール

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

    [外部 IP アドレス] ページに移動

  2. [静的アドレスを予約] をクリックします。

  3. [タイプ] で、[リージョン] を選択し、スタンダード ティアをサポートするリージョンを選択します。

  4. [ネットワーク サービス階層] で [スタンダード] を選択します。

  5. 必要に応じて他のフィールドに値を入力します。

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

gcloud

gcloud compute addresses create my-standard-tier-ip-address \
     --region REGION \
     --network-tier STANDARD

REGION は、リージョン IP アドレスを作成するリージョンに置き換えます。

他のコマンドライン フラグについては、gcloud compute アドレスをご覧ください。

API

  POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/addresses
{
  "name": "my-standard-tier-ip-address",
  "networkTier": "STANDARD"
}

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

  • PROJECT_ID: プロジェクト ID
  • REGION: 転送ルールを作成するリージョン

Terraform

Terraform リソースを使用して、リージョン外部 IP アドレスのネットワーク階層を設定できます。次の例では、階層を STANDARD に設定します。

resource "google_compute_address" "ip-address" {
  project      = var.project_id # Replace this with your project ID in quotes
  name         = "my-standard-tier-ip-address"
  region       = "us-central1"
  network_tier = "STANDARD"
}

転送ルールの作成

新しい転送ルールを作成するときに、ネットワーク階層を指定できます。有効な値は PREMIUM(デフォルト)と STANDARD です。ネットワーク階層を指定しない場合、プロジェクトのデフォルト階層を使用して転送ルールが作成されます。

  • --address フラグを使用して外部 IP アドレスを指定する場合は、その IP アドレスは転送ルールに指定した階層に存在している必要があります。
  • 転送ルールを作成するときに --address フラグを指定しない場合、Google Cloud は適切な階層のエフェメラル IP アドレスを割り振ります。

スタンダード ティアは、リージョン転送ルールでのみ使用できます。グローバル転送ルールは常にプレミアム ティアを使用します。

ロードバランサは、2 つの異なる転送ルールを階層ごとに 1 つずつ使用することで、プレミアム ティアとスタンダード ティアの両方を使用できます。この方法は、あるアプリケーションでプレミアム ティアの低レイテンシが求められ、別のアプリケーション(たとえば、静的コンテンツの提供など)では、高レイテンシが必要で、スタンダード ティアでの利用が可能な場合に役立ちます。

コンソール

Google Cloud コンソールでスタンダード ティアの転送ルールを作成するには、ロードバランサを作成するか、既存のロードバランサを更新する必要があります。ロードバランサで複数のリージョンのバックエンド サービスを使用する場合、スタンダード ティアは使用できません。ロードバランサの選択と作成方法については、ロード バランシングのドキュメントをご覧ください。

  1. Google Cloud コンソールで、[ロード バランシング] ページに移動します。

    [ロード バランシング] ページに移動

  2. 既存のロードバランサの名前をクリックして、編集)をクリックします。

  3. [フロントエンドの構成] をクリックします。

  4. [フロントエンド IP とポートの追加] をクリックします。

  5. [ネットワーク サービス階層] で [スタンダード] をクリックします。

  6. 必要に応じて他のフィールドに値を入力します。

  7. [完了]、[更新] の順にクリックします。

gcloud

gcloud compute forwarding-rules create my-standard-tier-regional-rule \
     --load-balancing-scheme=SCHEME \
     --network-tier STANDARD \
     --address my-standard-tier-ip-address \
     --region REGION \
     --ports PORTS \
     [--target-http-proxy=TARGET_HTTP_PROXY \
     | --target-https-proxy=TARGET_HTTPS_PROXY \
     | --target-ssl-proxy=TARGET_SSL_PROXY \
     | --target-tcp-proxy=TARGET_TCP_PROXY \
     | --target-pool=TARGET_POOL \
     | --target-instance=TARGET_INSTANCE]

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

  • SCHEME: ロードバランサのロード バランシング スキーム
  • REGION: 転送ルールを作成するリージョン
  • TARGET_HTTP_PROXYTARGET_HTTPS_PROXYTARGET_SSL_PROXYTARGET_TCP_PROXYTARGET_POOLTARGET_INSTANCE: 指定するターゲット フラグに応じて、それぞれルールのターゲットを指定します。

他のコマンドライン フラグについては、gcloud compute forwarding-rules をご覧ください。

API

  POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/forwardingRules
{
  "name": "my-standard-tier-regional-rule",
  "networkTier": "STANDARD",
    "IPAddress": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/addresses/my-standard-tier-ip-address",
  "IPProtocol": "tcp",
    "target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/targetPools/TARGET_POOL"
}

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

  • PROJECT_ID: プロジェクト ID
  • REGION: 転送ルールを作成するリージョン
  • TARGET_HTTP_PROXYTARGET_HTTPS_PROXYTARGET_SSL_PROXYTARGET_TCP_PROXYTARGET_POOLTARGET_INSTANCE: 指定するターゲット フラグに応じて、それぞれルールのターゲットを指定します。

Terraform

Terraform リソースを使用して転送ルールのネットワーク階層を設定できます。次の例では、ターゲット インスタンスを参照する転送ルール用として、階層を STANDARD に設定します。

resource "google_compute_forwarding_rule" "target-fr" {
  project      = var.project_id # Replace this with your project ID in quotes
  name         = "target-instance-forwarding-rule"
  region       = "us-east4"
  target       = google_compute_target_instance.target.id
  port_range   = "80"
  network_tier = "STANDARD"
}

VM インスタンス

VM インスタンスの作成

インターネットに直接接続するインスタンスを作成するときに、ネットワーク階層を指定できます。指定できる値は PREMIUM(デフォルト)と STANDARD です。ネットワーク階層を指定しない場合、プロジェクトのデフォルト階層を使用してアドレスが作成されます。ネットワーク階層は、インスタンスがリージョン IPv4 アドレスを使用してインターネットと直接通信する場合にのみ関係します。ロードバランサによって送信されたレスポンス トラフィックの場合、転送ルールのネットワーク階層が適用されます。

予約された IP アドレスを使用して静的外部 IP アドレスを割り当てる場合は、IP アドレスのネットワーク階層とインスタンスのネットワーク階層が一致する必要があります。エフェメラル外部 IP アドレスを割り当てる場合は、インスタンスのネットワーク階層に対応するプールから IP アドレスが割り当てられます。

コンソール

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

    [VM インスタンス] ページに移動

  2. [インスタンスを作成] をクリックします。

  3. [管理、セキュリティ、ディスク、ネットワーク、単一テナンシー] をクリックします。

  4. [ネットワーキング] タブをクリックします。

  5. [ネットワーク インターフェース] で、デフォルトのネットワーク インターフェースの [編集]()をクリックします。

  6. [ネットワーク サービス階層] で [スタンダード] を選択します。

  7. 必要に応じて他のフィールドに値を入力します。

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

gcloud

gcloud compute instances create my-standard-tier-instance \
    --network-tier STANDARD

他のコマンドライン フラグについては、gcloud compute インスタンスをご覧ください。

API

  POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  "name": "my-standard-tier-instance",
  "networkInterfaces":[
   {
    "network": "global/networks/default",
    "name": "nic0",
    "accessConfigs": [
     {
     "name": "External NAT",
     "type":"ONE_TO_ONE_NAT",
     "networkTier":"STANDARD"
     }
    ]
   }
  ],
    "IPAddress": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/addresses/my-standard-tier-ip-address",
  ... other parameters
}

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

  • PROJECT_ID: プロジェクト ID
  • ZONE: インスタンスを作成するゾーン
  • REGION: リソースのリージョン

    このほかの必須パラメータと省略可能なパラメータのリストについては、REST リソース: インスタンスをご覧ください。

Terraform

Terraform リソースを使用して Compute Engine VM のネットワーク階層を設定できます。次の例では、階層を STANDARD に設定します。

resource "google_compute_address" "ip-address" {
  project      = var.project_id # Replace this with your project ID in quotes
  name         = "my-standard-tier-ip-address"
  region       = "us-central1"
  network_tier = "STANDARD"
}

インスタンスへのアクセス構成の追加

インスタンスのアクセス構成を作成するとき(エフェメラルまたは静的リージョン外部 IPv4 アドレスをインスタンスのネットワーク インターフェースに割り当てるとき)に、インスタンスのネットワーク インターフェースのネットワーク階層も指定できます。既存のリージョン外部 IPv4 アドレスを指定するか、新しいアドレスを作成するかにかかわらず、アドレスとインスタンスのネットワーク インターフェースは、一致するネットワーク サービス階層を使用する必要があります。指定できる値は PREMIUMSTANDARD です。ネットワーク階層と IP アドレスを指定しない場合、インスタンスのネットワーク インターフェースと新しいエフェメラル リージョン外部 IPv4 アドレスの両方で、プロジェクトのデフォルト階層が使用されます。ネットワーク階層を指定せずに IP アドレスを指定した場合、IP アドレスのネットワーク階層がプロジェクトのデフォルト階層と一致しないと Google Cloud からエラーが返されます。

gcloud

gcloud compute instances add-access-config INSTANCE_NAME \
    --network-interface INTERFACE_NAME; default="nic0" \
    --access-config-name=ACCESS_CONFIG_NAME; default="external-nat" \
    --address=IP_ADDRESS \
    --network-tier PREMIUM | STANDARD

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

  • INSTANCE_NAME: インスタンスの名前
  • INTERFACE_NAME: インターフェースの名前。デフォルトは nic0(インスタンス上のデフォルト インターフェースの名前)です。
  • ACCESS_CONFIG_NAME: インターフェースのアクセス構成の名前
  • IP_ADDRESS: IP アドレス リソースの URL(IP アドレスを指定する場合)

API

  POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/addAccessConfig?networkInterface=nic0
{
  "name": INSTANCE_NAME,
  "networkTier": "STANDARD",
  ... other parameters
}

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

  • PROJECT_ID: プロジェクト ID
  • ZONE: インスタンスのゾーン
  • INSTANCE_NAME: インスタンスの名前

このほかの必須パラメータと省略可能なパラメータのリストについては、REST リソース: インスタンスをご覧ください。

インスタンスのネットワーク階層の更新

インスタンスのネットワーク インターフェースのネットワーク階層は、update-access-config コマンドで変更できます。ネットワーク階層に指定できる値は PREMIUMSTANDARD です。インスタンスに既存のアクセス構成でリージョン外部 IPv4 アドレスが割り当てられている場合は、インターフェースのネットワーク階層を変更する前に、その外部 IP アドレスを削除する必要があります。リージョン外部 IPv4 アドレスのネットワーク階層と、インスタンスのネットワーク インターフェースのネットワーク階層がどのように一致させるかについては、インスタンスへのアクセス構成の追加をご覧ください。

コンソール

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

    [VM インスタンス] ページに移動

  2. インスタンスの名前をクリックします。

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

  4. [ネットワーク インターフェース] で、デフォルトのネットワーク インターフェースの [編集]()をクリックします。

  5. [ネットワーク サービス階層] で [スタンダード] を選択します。

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

gcloud

gcloud compute instances update-access-config INSTANCE_NAME \
    --network-interface nic0 \
    --network-tier STANDARD

INSTANCE_NAME は、インスタンス名で置き換えます。

API

  POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/updateAccessConfig?networkInterface=nic0
{
  "networkTier": "STANDARD",
  ... other parameters
}

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

  • PROJECT_ID: プロジェクト ID
  • ZONE: インスタンスのゾーン
  • INSTANCE_NAME: インスタンスの名前

スタンダード ティアを使用するインスタンス テンプレートの作成

インスタンス テンプレートの作成時にネットワーク階層を構成する手順は次のとおりです。

コンソール

  1. Google Cloud コンソールで、[インスタンス テンプレート] ページに移動します。

    [インスタンス テンプレート] ページに移動

  2. [インスタンス テンプレートを作成] をクリックします。

  3. [管理、セキュリティ、ディスク、ネットワーク、単一テナンシー] をクリックします。

  4. [ネットワーキング] タブをクリックします。

  5. [ネットワーク サービス階層] で [スタンダード] を選択します。

  6. 必要に応じて他のフィールドに値を入力します。

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

gcloud

gcloud compute instance-templates create my-standard-tier-instance-template \
    --network-tier STANDARD

他のコマンドライン フラグについては、gcloud compute instance-templates をご覧ください。

API

  POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceTemplates
{
  "name": "my-standard-tier-instance-template",
  "networkInterfaces[].accessConfigs[].networkTier": "STANDARD",
  ... other parameters
}

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

  • PROJECT_ID: プロジェクト ID
  • ZONE: インスタンス テンプレートのゾーン

このほかの必須パラメータと省略可能なパラメータのリストについては、REST リソース: instanceTemplates をご覧ください。

Terraform

Terraform リソースを使用して Compute Engine インスタンス テンプレートのネットワーク階層を設定できます。次の例では、階層を STANDARD に設定します。

resource "google_compute_instance_template" "template" {
  project      = var.project_id # Replace this with your project ID in quotes
  name         = "template"
  machine_type = "e2-medium"
  disk {
    source_image = "debian-cloud/debian-10"
    boot         = true
  }
  network_interface {
    network = "default"
    access_config {
      network_tier = "STANDARD"
    }
  }
}

特定のネットワーク階層の IP アドレスを使用して NAT を設定する

Cloud NAT ゲートウェイを作成する際、Google Cloud ではスタンダード ティアとプレミアム ティアの両方から IP アドレスを割り当てることができます。

詳細については、特定のネットワーク階層の IP アドレスを使用して NAT を設定するをご覧ください。