静的外部 IP アドレスの予約
静的外部 IP アドレスを予約できます。予約した静的外部 IP アドレスを一覧取得して解放することもできます。仮想マシン(VM)インスタンスに静的外部 IP アドレスを割り当てるには、静的外部 IP アドレスを構成するをご覧ください。
外部 IP アドレスには、静的なものとエフェメラルなものがあります。変更されない固定外部 IP アドレスが VM に必要な場合、静的外部 IP アドレスを取得できます。新しい外部 IP アドレスを予約することも、既存のエフェメラル外部 IP アドレスを昇格させることもできます。
静的内部 IP アドレスが必要な場合は、静的内部 IP アドレスを予約するをご覧ください。
始める前に
- IP アドレスの詳細をご覧ください。
- 静的外部 IP アドレスの割り当てと上限をご覧ください。
- 外部 IP アドレスの料金をご覧ください。
- まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のように認証を行います。
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Terraform
ローカル開発環境でこのページの Terraform サンプルを使用するには、gcloud CLI をインストールして初期化し、ユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定します。
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
詳細については、Google Cloud の認証に関するドキュメントのローカル開発環境の認証の設定をご覧ください。
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
詳細については、Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。
必要なロール
静的 IP アドレスの予約と管理に必要な権限を取得するには、プロジェクトに対する Compute ネットワーク管理者(
roles/compute.networkAdmin
)の IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。この事前定義ロールには、静的 IP アドレスの予約と管理に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
静的 IP アドレスの予約と管理には、次の権限が必要です。
-
IP アドレスに対する
compute.addresses.create
-
IP アドレスに対する
compute.addresses.createInternal
- ネットワークに対する
compute.networks.list
- サブネットに対する
compute.subnetworks.use
- サブネットに対する
compute.subnetworks.list
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
静的外部 IP アドレスについて
静的外部 IP アドレスはプロジェクト用に予約される IP アドレスであり、解放するまで予約されたままになります。お客様やユーザーがサービスにアクセスする際に利用する IP アドレスがある場合、該当リソースでのみ使用できるようにその IP アドレスを予約できます。また、エフェメラル外部 IP アドレスを静的外部 IP アドレスに昇格させることもできます。
詳細については、IP アドレスをご覧ください。
次の表に、Google Cloud でサポートされている静的外部 IP アドレスを示します。
IP アドレスの種類 リソース IP 範囲 ソース 関連付け リージョン外部 IPv4 アドレス VM とリージョン ロードバランサ /32
Google の外部 IP アドレスのプール プロジェクト リージョン外部 IPv6 アドレス VM とサポートされているリージョン ロードバランサ /96
サブネットの外部 IPv6 アドレス範囲 サブネット グローバル外部 IPv4 アドレス グローバル ロードバランサ /32
Google の外部 IP アドレスのプール プロジェクト グローバル外部 IPv6 アドレス グローバル ロードバランサ /64
Google の外部 IP アドレスのプール プロジェクト リージョン ロードバランサとグローバル ロードバランサの一覧については、ロードバランサ タイプのサマリーをご覧ください。
制限事項
一度に複数のリソースが同じ静的外部 IP アドレスを使用することはできません。
IP アドレスをリソースに割り当てた後に、その IP アドレスが静的であるかエフェメラルであるかを確認する方法はありません。IP アドレスと、そのプロジェクトに予約されている静的外部 IP アドレスのリストを比較することは可能です。プロジェクトで使用可能な静的外部 IP アドレスのリストを表示するには、
gcloud compute addresses list
サブコマンドを使用します。各 VM は複数のネットワーク インターフェースを持つことができ、各インターフェースには次の IP アドレスを割り振ることができます。
- 内部 IPv4 アドレス(必須)
- 外部 IPv4 アドレス
/96
IPv6 アドレス範囲(内部または外部のどちらか一方)
静的 IP アドレスの名前は変更できません。
割り当てられた外部 IP アドレスは、VM と同じ物理ホストに存在し、すべての用途(ルーティング、レイテンシ、料金設定など)の VM と同じリージョンに存在します。これは、インターネットの位置情報に関する検索情報に関係なく当てはまります。
注: ネットワーク インターフェースは複数の転送ルールからトラフィックを受信できますが、ルールの中には他の外部 IP アドレスを対象とするものもあります。これらの転送ルールによって任意の数の外部 IP アドレスがネットワーク インターフェースを参照できますが、各ネットワーク インターフェースには、外部 IPv4 アドレスを 1 つと、外部の
/96
IPv6 アドレス範囲を 1 つだけ割り振ることができます。ロード バランシングと転送ルールの詳細については、ロード バランシングのドキュメントをご覧ください。
新しい静的外部 IP アドレスを予約する
アドレスを予約した後、予約したアドレスを作成中の新しい VM または既存の VM に割り当てます。
コンソール
- Google Cloud コンソールで、[IP アドレス] ページに移動します。
- [静的外部 IP アドレスを予約] をクリックします。
- [名前] フィールドに IP アドレス名を入力します。
- ネットワーク サービス ティアがプレミアムかスタンダードかを指定します。IPv6 静的アドレス予約は、プレミアム ティアでのみサポートされます。
- IPv4 アドレスか IPv6 アドレスかを指定します。
- この IP アドレスがリージョン アドレスかグローバル アドレスかを指定します。
- グローバル ロードバランサに静的 IP アドレスを予約する場合は、[グローバル] を選択して [予約] をクリックします。
- VM またはリージョン ロードバランサ用に静的 IP アドレスを予約する場合は、[リージョン] を選択し、アドレスを作成するリージョンを選択します。
リージョン外部 IPv6 アドレスを予約する場合は、以下も選択します。
- ネットワーク: VPC ネットワーク
- サブネットワーク: 静的リージョン IPv6 アドレスを割り当てるサブネット
- エンドポイントのタイプ: [VM インスタンス] または [ネットワーク ロードバランサ] を選択します
(省略可)VM インスタンス用の静的外部 IP アドレスを予約する場合は、[割り当て先] リストで IP アドレスを割り当てる VM インスタンスを選択します。
[予約] をクリックして IP アドレスを予約します。
gcloud
静的外部 IP アドレスを予約するには、
gcloud compute addresses create
コマンドを使用します。静的外部 IPv4 アドレスまたは静的外部 IPv6 アドレスを予約するには、次の手順を使用します。
グローバル IP アドレス
グローバル IP アドレスを予約するには:gcloud compute addresses create ADDRESS_NAME \ --global \ --ip-version [IPV4 | IPV6]
リージョン外部 IPv4 アドレス
リージョン外部 IPv4 アドレスを予約するには:gcloud compute addresses create ADDRESS_NAME \ --region=REGION
リージョン外部 IPv6 アドレス
リージョン外部 IPv6 アドレスを予約するには:gcloud compute addresses create ADDRESS_NAME \ --region=REGION \ --subnet=SUBNET_NAME \ --ip-version=IPV6 \ --endpoint-type=[VM | NETLB]
次のように置き換えます。
ADDRESS_NAME
: このアドレスに関連付ける名前。REGION
: リージョン外部 IP アドレスの場合は、このアドレスを予約するリージョンを指定します。これは、IP アドレスを割り振るリソースと同じリージョンにする必要があります。SUBNET_NAME
: リージョン外部 IPv6 アドレスの場合は、静的リージョン IPv6 アドレスの割り振り元のサブネットを指定します。サブネットには、割り当てられた外部 IPv6 アドレス範囲が必要です。[IPV4 | IPV6]
: グローバル IP アドレスの場合は、IP バージョン(IPv4 または IPv6)を指定します。リージョン外部 IPv6 アドレスの場合は、IPv6 を指定します。/96
IPv6 範囲は、指定されたサブネットから割り当てられます。VM | NETLB
: リージョン外部 IPv6 アドレスの場合は、エンドポイント タイプ(VM またはネットワーク ロードバランサ)を指定します。
結果を表示するには、
gcloud compute addresses describe
コマンドを使用します。gcloud compute addresses describe ADDRESS_NAME
Terraform
google_compute_address
リソースを使用して、リージョン外部 IP アドレスを作成できます。次のサンプルは、
google_compute_global_address
リソースを使用してグローバル外部 IPv6 アドレスを作成する方法を示しています。API
リージョン IPv4 アドレスを作成するには、リージョン
addresses.insert
メソッドを呼び出します。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/addresses
リクエスト本文は次のようにします。
{ "name": "ADDRESS_NAME" }
次のように置き換えます。
PROJECT_ID
: このリクエストのプロジェクト IDREGION
: このリクエストのリージョン名ADDRESS_NAME
: アドレスに関連付ける名前
グローバル静的 IPv4 アドレスの場合は、
globalAddresses.insert
メソッドを呼び出します。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/addresses
リクエスト本文は次のようにします。
{ "name": "ADDRESS_NAME" }
グローバル静的 IPv6 アドレスの場合は、
globalAddresses.insert
メソッドを呼び出します。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/addresses
リクエスト本文は次のようにします。
{ "name": "ADDRESS_NAME", "ipVersion": "IPV6" }
結果を表示するには、
addresses.get
メソッドを使用します。リージョン静的 IPv6 アドレスの場合は、
addresses.insert
メソッドを呼び出します。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/addresses
リクエスト本文は次のようにします。
{ "name": "ADDRESS_NAME", "ipVersion": "IPV6", "ipv6EndpointType": "VM|LB", "networkTier": "PREMIUM", "subnetwork": "SUBNET" }
SUBNET
は、このプロジェクトのサブネットに置き換えます。結果を表示するには、
addresses.get
メソッドを使用します。
Go
Java
Python
エフェメラル外部 IP アドレスを昇格させる
VM にエフェメラル外部 IP アドレスがあり、その IP アドレスを永続的にプロジェクトに割り当てる必要がある場合は、エフェメラル外部 IP アドレスを静的外部 IP アドレスに昇格させます。エフェメラル外部 IP アドレスを予約済みに昇格しても、Google Cloud では VM に送信されたパケットは破棄されません。これは、VM に直接送信されたパケットとロードバランサによって送信されたパケットの両方について該当します。
コンソール
- [IP アドレス] ページに移動します。
- [外部 IP アドレス] をクリックします。
- (省略可)[フィルタ] フィールドで、昇格するエフェメラル IP アドレスを検索します。
- 昇格させる IP アドレスの [その他の操作] メニュー( )で、[静的 IP アドレスに昇格] を選択します。
- 新しい静的 IP アドレスの名前を入力し、[予約] をクリックします。
gcloud
静的外部 IPv4 アドレスまたは静的外部 IPv6 アドレスを昇格させるには、次の手順を使用します。
エフェメラル外部 IPv4 アドレスを静的外部 IPv4 アドレスに昇格させるには、
compute addresses create
コマンドで--addresses
フラグを使用してエフェメラル外部 IP アドレスを指定します。エフェメラル リージョン IP アドレスを昇格させる場合はregion
フラグ、エフェメラル グローバル IP アドレスを昇格させる場合はglobal
フラグを使用します。gcloud compute addresses create ADDRESS_NAME --addresses=IP_ADDRESS \ [--region=REGION | --global]
次のように置き換えます。
ADDRESS_NAME
: このアドレスに関連付ける名前。IP_ADDRESS
: 昇格させる IP アドレス。REGION
: リージョン IP アドレスが属するリージョン。
エフェメラル リージョン外部 IPv6 アドレスを静的リージョン外部 IPv6 アドレスに昇格させるには、
gcloud compute addresses create
コマンドで--addresses
フラグを使用してエフェメラル外部 IP アドレスを指定します。gcloud compute addresses create ADDRESS_NAME \ --region=REGION \ --addresses=IPV6_ADDRESS \ --prefix-length=96
次のように置き換えます。
ADDRESS_NAME
: IP アドレス リソースの名前。REGION
: IPv6 アドレス リソースのリージョン。IPV6_ADDRESS
: 昇格させる IPv6 アドレス。
API
エフェメラル リージョン IP アドレスを昇格させるには、
addresses.insert
メソッドを呼び出します。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/addresses
エフェメラル グローバル IP アドレスを昇格させるには、次の URI に
POST
リクエストを送信します。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/addresses
リクエスト本文の必須項目の値を指定します。
IPv4 アドレスの場合、リクエスト本文には次の項目を含める必要があります。
{ "name": "ADDRESS_NAME", "address": "IPV4_ADDRESS" "addressType": "EXTERNAL" }
IPv6 アドレスの場合、リクエスト本文には次の項目を含める必要があります。
{ "name": "ADDRESS_NAME", "address": "IPV6_ADDRESS" "prefixLength": 96 "addressType": "EXTERNAL" }
次のように置き換えます。
ADDRESS_NAME
: このアドレスに関連付ける名前IPV4_ADDRESS|IPV6_ADDRESS
: 昇格させる IPv4 アドレスまたは IPv6 アドレスREGION
: IPv4 アドレスまたは IPv6 アドレスが属するリージョンPROJECT_ID
: このリクエストのプロジェクト ID
Go
Java
Python
外部 IP アドレスは静的外部 IP アドレスに昇格した後も、VM に接続された状態を保持します。新しく昇格した静的外部 IP アドレスを別のリソースに割り当てる必要がある場合は、既存の VM から静的外部 IP アドレスを割り当て解除します。
静的外部 IP アドレスを一覧取得する
プロジェクト用に予約した静的外部 IP アドレスを一覧表示するには、次の手順に沿います。
コンソール
Google Cloud コンソールで、[IP アドレス] ページに移動します。
[外部 IP アドレス] をクリックします。
gcloud
gcloud compute addresses list
コマンドを実行します。すべての IP アドレスのリストを取得するには、次のコマンドを使用します。
gcloud compute addresses list
すべてのグローバル IP アドレスを一覧取得するには、次のコマンドを使用します。
gcloud compute addresses list --global
特定のリージョンのすべてのリージョン IP アドレスのリストを取得するには、次のコマンドを使用します。
gcloud compute addresses list \ --regions=REGION
REGION
は、アドレスのリストを取得するリージョンに置き換えます。カンマ区切りでリージョン名を指定すると、複数のリージョンのアドレスのリストを取得できます。gcloud compute addresses list \ --regions=REGION1,REGION2,..REGION_n_
API
リージョン IPv4 アドレスまたはリージョン IPv6 アドレスのリストを取得するには、
addresses.list
メソッドを呼び出します。GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/addresses
次のように置き換えます。
PROJECT_ID
: このリクエストのプロジェクト IDREGION
: このリクエストのリージョン名
すべてのリージョンのアドレスのリストを取得するには、
addresses.aggregatedList
メソッドを呼び出します。GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/addresses
グローバル IPv4 アドレスまたはグローバル IPv6 アドレスのリストを取得示するには、
globalAddresses.list
メソッドを呼び出します。GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/addresses
次のように置き換えます。
PROJECT_ID
: このリクエストのプロジェクト ID
Go
Java
Python
静的外部 IP アドレスを取得する
静的外部 IP アドレスに関する情報を取得する手順は次のとおりです。
コンソール
Google Cloud コンソールで、[IP アドレス] ページに移動します。
[外部 IP アドレス] をクリックします。
詳細情報を取得する IP アドレスをクリックします。
gcloud
gcloud compute addresses describe
コマンドを使用します。ADDRESS_NAME
は、記述する外部 IP アドレスの名前に置き換えます。グローバル IPv4 アドレスまたはグローバル IPv6 アドレスの場合は、次のコマンドを使用します。
gcloud compute addresses describe ADDRESS_NAME --global
リージョン IPv4 アドレスまたはリージョン IPv6 アドレスの場合は、次のコマンドを使用します。
gcloud compute addresses describe ADDRESS_NAME --region=REGION
API
リージョン IPv4 アドレスまたはリージョン IPv6 アドレスを記述するには、
addresses.get
メソッドを呼び出します。GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/addresses/ADDRESS_NAME
次のように置き換えます。
PROJECT_ID
: リクエストのプロジェクト IDREGION
: このリクエストのリージョン名ADDRESS_NAME
: IP アドレスの名前
グローバル IPv4 アドレスまたはグローバル IPv6 アドレスを記述するには、
globalAddresses.get
メソッドを呼び出します。GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/addresses/ADDRESS_NAME
次のように置き換えます。
PROJECT_ID
: リクエストのプロジェクト IDADDRESS_NAME
: IP アドレスの名前
Go
Java
Python
静的外部 IP アドレスを解放する
静的外部 IPv4 アドレスや静的外部 IPv6 アドレスが不要になったら、IP アドレス リソースを削除して IP アドレスを解放できます。
Google Cloud コンソールを使用している場合は、静的 IP アドレスを解放できるのは、別のリソースで使用されていない場合に限られます。
gcloud CLI または API を使用している場合は、別のリソースで使用されているかどうかにかかわらず、IP アドレスを解放できます。
IP アドレスがリソースで使用されていない場合、その IP アドレスは使用可能な外部 IP アドレスのプールに返却されます。
リソースで使用されている IP アドレスは、削除されるまでそのリソースに接続されたままになります。
コンソール
Google Cloud コンソールで、[IP アドレス] ページに移動します。
[外部 IP アドレス] をクリックします。
省略可: [フィルタ] フィールドに「
static
」と入力し、プルダウン リストから [静的: タイプ] を選択します。解放する静的外部 IP アドレスを選択します。
[静的アドレスを解放] をクリックします。
このオプションが表示されない場合は、上部のメニューバーにある [その他の操作] メニュー(
)をクリックし、リストから [静的アドレスを解放] を選択します。
gcloud
compute addresses delete
コマンドを実行します。gcloud compute addresses delete ADDRESS_NAME
ADDRESS_NAME
は、解放する IPv4 アドレスまたは IPv6 アドレスの名前に置き換えます。API
リージョン IPv4 アドレスまたはリージョン IPv6 アドレスを解放するには、
addresses.delete
メソッドを呼び出します。DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/addresses/ADDRESS_NAME
次のように置き換えます。
PROJECT_ID
: このリクエストのプロジェクト IDREGION
: このリクエストのリージョン名ADDRESS_NAME
: IP アドレスの名前
グローバル IPv4 アドレスまたはグローバル IPv6 アドレスを解放するには、
globalAddresses.delete
メソッドを呼び出します。DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/addresses/ADDRESS_NAME
次のように置き換えます。
ADDRESS_NAME
: IP アドレスの名前PROJECT_ID
: このリクエストのプロジェクト ID
Go
Java
Python
次のステップ
- 新しい VM または既存の VM の静的外部 IP アドレスを構成する方法を学習する。
- 転送ルールの IP アドレスの仕様と転送ルールを使用する方法については、「転送ルールの概要」をご覧ください。
- IP アドレスについて学習する。
- VPC の料金を確認する
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2024-11-20 UTC。