ネットワーク階層を設定する
このページでは、ワークロードに対してネットワーク階層の 1 つを指定する方法を説明します。ネットワーク階層を手動で設定する前に、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 アドレスは、長時間のライブ マイグレーション中のトラフィックを破棄します。
プロジェクトにデフォルトのネットワーク階層を設定する
プロジェクトに、デフォルトのネットワーク階層を定義するには、次の手順に従います。リソース自体に階層を指定しなかった場合、プロジェクト内で新しく作成された有効なリソースではこの階層が使用されます。プロジェクトのデフォルトのネットワーク階層を変更しても既存のリソースの階層は変わりませんが、新しいリソースを作成する際にネットワークを指定しない場合、新しいリソースのネットワーク階層は変更されます。
コンソール
Google Cloud Console で [Network Service Tiers] ページに移動します。
[階層を変更] をクリックします。
[プレミアム] または [スタンダード] を選択して、[変更] をクリックします。
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
に設定します。
リソースに指定したネットワーク階層は常に、プロジェクトに定義したデフォルトのネットワーク階層よりも優先されます。たとえば、プロジェクトのデフォルト ネットワーク階層がプレミアムでも、スタンダード ティアにインスタンスまたはロードバランサを作成できます。
静的外部 IP アドレスの作成
静的リージョン外部 IP アドレスを作成する場合、ネットワーク階層には PREMIUM
か STANDARD
を指定できます。 ネットワーク階層を指定しない場合、プロジェクトのデフォルト階層を使用してアドレスが作成されます。
スタンダード ティアを使用する静的リージョン外部 IP アドレスを予約するには、次の手順に従います。
Console
Google Cloud コンソールで、[外部 IP アドレス] ページに移動します。
[静的アドレスを予約] をクリックします。
[タイプ] で、[リージョン] を選択し、スタンダード ティアをサポートするリージョンを選択します。
[ネットワーク サービス階層] で [スタンダード] を選択します。
必要に応じて他のフィールドに値を入力します。
[予約] をクリックします。
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
: プロジェクト IDREGION
: 転送ルールを作成するリージョン
Terraform
Terraform リソースを使用して、リージョン外部 IP アドレスのネットワーク階層を設定できます。次の例では、階層を STANDARD
に設定します。
転送ルールの作成
新しい転送ルールを作成するときに、ネットワーク階層を指定できます。有効な値は PREMIUM
(デフォルト)と STANDARD
です。ネットワーク階層を指定しない場合、プロジェクトのデフォルト階層を使用して転送ルールが作成されます。
--address
フラグを使用して外部 IP アドレスを指定する場合は、その IP アドレスは転送ルールに指定した階層に存在している必要があります。- 転送ルールを作成するときに
--address
フラグを指定しない場合、Google Cloud は適切な階層のエフェメラル IP アドレスを割り振ります。
スタンダード ティアは、リージョン転送ルールでのみ使用できます。グローバル転送ルールは常にプレミアム ティアを使用します。
ロードバランサは、2 つの異なる転送ルールを階層ごとに 1 つずつ使用することで、プレミアム ティアとスタンダード ティアの両方を使用できます。この方法は、あるアプリケーションでプレミアム ティアの低レイテンシが求められ、別のアプリケーション(たとえば、静的コンテンツの提供など)では、高レイテンシが必要で、スタンダード ティアでの利用が可能な場合に役立ちます。
Console
Google Cloud コンソールでスタンダード ティアの転送ルールを作成するには、ロードバランサを作成するか、既存のロードバランサを更新する必要があります。ロードバランサで複数のリージョンのバックエンド サービスを使用する場合、スタンダード ティアは使用できません。ロードバランサの選択と作成方法については、負荷分散のドキュメントをご覧ください。
Google Cloud コンソールで、[ロード バランシング] ページに移動します。
既存のロードバランサの名前をクリックして、編集(
)をクリックします。[フロントエンドの構成] をクリックします。
[フロントエンド IP とポートの追加] をクリックします。
[ネットワーク サービス階層] で [スタンダード] をクリックします。
必要に応じて他のフィールドに値を入力します。
[完了]、[更新] の順にクリックします。
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_PROXY
、TARGET_HTTPS_PROXY
、TARGET_SSL_PROXY
、TARGET_TCP_PROXY
、TARGET_POOL
、TARGET_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
: プロジェクト IDREGION
: 転送ルールを作成するリージョンTARGET_HTTP_PROXY
、TARGET_HTTPS_PROXY
、TARGET_SSL_PROXY
、TARGET_TCP_PROXY
、TARGET_POOL
、TARGET_INSTANCE
: 指定するターゲット フラグに応じて、それぞれルールのターゲットを指定します。
Terraform
Terraform リソースを使用して転送ルールのネットワーク階層を設定できます。次の例では、ターゲット インスタンスを参照する転送ルール用として、階層を STANDARD
に設定します。
VM インスタンス
VM インスタンスの作成
インターネットに直接接続するインスタンスを作成するときに、ネットワーク階層を指定できます。指定できる値は PREMIUM
(デフォルト)と STANDARD
です。ネットワーク階層を指定しない場合、プロジェクトのデフォルト階層を使用してアドレスが作成されます。ネットワーク階層は、インスタンスがリージョン IPv4 アドレスを使用してインターネットと直接通信する場合にのみ関係します。ロードバランサによって送信されたレスポンス トラフィックの場合、転送ルールのネットワーク階層が適用されます。
予約された IP アドレスを使用して静的外部 IP アドレスを割り当てる場合は、IP アドレスのネットワーク階層とインスタンスのネットワーク階層が一致する必要があります。エフェメラル外部 IP アドレスを割り当てる場合は、インスタンスのネットワーク階層に対応するプールから IP アドレスが割り当てられます。
Console
Google Cloud Console で、[VM インスタンス] ページに移動します。
[インスタンスを作成] をクリックします。
[管理、セキュリティ、ディスク、ネットワーク、単一テナンシー] をクリックします。
[ネットワーキング] タブをクリックします。
[ネットワーク インターフェース] で、デフォルトのネットワーク インターフェースの [編集](
)をクリックします。[ネットワーク サービス階層] で [スタンダード] を選択します。
必要に応じて他のフィールドに値を入力します。
[作成] をクリックします。
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
: プロジェクト IDZONE
: インスタンスを作成するゾーンREGION
: リソースのリージョンこのほかの必須パラメータと省略可能なパラメータのリストについては、REST リソース: インスタンスをご覧ください。
Terraform
Terraform リソースを使用して Compute Engine VM のネットワーク階層を設定できます。次の例では、階層を STANDARD
に設定します。
インスタンスへのアクセス構成の追加
インスタンスのアクセス構成を作成するとき(エフェメラルまたは静的リージョン外部 IPv4 アドレスをインスタンスのネットワーク インターフェースに割り当てるとき)に、インスタンスのネットワーク インターフェース のネットワーク階層も指定できます。既存のリージョン外部 IPv4 アドレスを指定するか、新しいアドレスを作成するかにかかわらず、アドレスとインスタンスのネットワーク インターフェースは、一致するネットワーク サービス階層を使用する必要があります。指定できる値は PREMIUM
と STANDARD
です。ネットワーク階層と 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
: プロジェクト IDZONE
: インスタンスのゾーンINSTANCE_NAME
: インスタンスの名前
このほかの必須パラメータと省略可能なパラメータのリストについては、REST リソース: インスタンスをご覧ください。
インスタンスのネットワーク階層の更新
インスタンスのネットワーク インターフェースのネットワーク階層は、update-access-config
コマンドを使用して変更できます。ネットワーク階層に指定できる値は PREMIUM
と STANDARD
です。インスタンスに既存のアクセス構成ですでにリージョン外部 IPv4 アドレスが割り当てられている場合は、まずインターフェースのネットワーク階層を変更する前に、その外部 IP アドレスを削除する必要があります。リージョン外部 IPv4 アドレスのネットワーク階層と、インスタンスのネットワーク インターフェースのネットワーク階層がどのように一致しなければならないかについては、インスタンスへのアクセス構成の追加をご覧ください。
コンソール
Google Cloud Console で、[VM インスタンス] ページに移動します。
インスタンスの名前をクリックします。
[編集]
をクリックします。[ネットワーク インターフェース] で、デフォルトのネットワーク インターフェースの [編集](
)をクリックします。[ネットワーク サービス階層] で [スタンダード] を選択します。
[保存] をクリックします。
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
: プロジェクト IDZONE
: インスタンスのゾーンINSTANCE_NAME
: インスタンスの名前
スタンダード ティアを使用するインスタンス テンプレートの作成
インスタンス テンプレートの作成時にネットワーク階層を構成する手順は次のとおりです。
Console
Google Cloud Console で、[インスタンス テンプレート] ページに移動します。
[インスタンス テンプレートを作成] をクリックします。
[管理、セキュリティ、ディスク、ネットワーク、単一テナンシー] をクリックします。
[ネットワーキング] タブをクリックします。
[ネットワーク サービス階層] で [スタンダード] を選択します。
必要に応じて他のフィールドに値を入力します。
[作成] をクリックします。
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
: プロジェクト IDZONE
: インスタンス テンプレートのゾーン
このほかの必須パラメータと省略可能なパラメータのリストについては、REST リソース: instanceTemplates をご覧ください。
Terraform
Terraform リソースを使用して Compute Engine インスタンス テンプレートのネットワーク階層を設定できます。次の例では、階層を STANDARD
に設定します。
特定のネットワーク階層の IP アドレスを使用して NAT を設定する
Cloud NAT ゲートウェイを作成する際、Google Cloud ではスタンダード ティアとプレミアム ティアの両方から IP アドレスを割り当てることができます。
詳細については、Cloud NAT ゲートウェイを作成するをご覧ください。