デフォルトでは、Compute Engine インスタンスは IPv4 アドレスで作成されます。必要に応じて、IPv6 アドレスを使用する Compute インスタンスを作成できます。IPv4 と IPv6 の両方の構成を持つコンピューティング インスタンスは、デュアルスタック インスタンスと呼ばれます。IPv6 アドレスは、ネットワーク インターフェースで構成されている IPv4 アドレスに追加で構成されます。
インスタンスが接続されているサブネットに IPv6 範囲が構成されている場合は、Compute Engine インスタンスに IPv6 アドレスを構成できます。
コンピューティング インスタンスの任意のネットワーク インターフェースに IPv6 アドレスを構成できます。複数のネットワーク インターフェースの構成の詳細については、複数のネットワーク インターフェースをご覧ください。
インスタンスのネットワーク インターフェースのスタックタイプによって、接続できるサブネットのタイプが決まります。
- IPv4 専用ネットワーク インターフェースは、デュアルスタック サブネットと IPv4 専用サブネットに接続できます。
- デュアルスタック ネットワーク インターフェースは、デュアルスタック サブネットに接続できます。
- IPv6 専用ネットワーク インターフェースは、デュアルスタック サブネットと IPv6 専用サブネット(プレビュー)に接続できます。
また、サブネットの IPv6 アクセスタイプの構成により、サブネットに内部 IPv6 範囲と外部 IPv6 範囲のどちらが存在するかが決まります。接続されたインスタンスは、サブネットから IPv6 アクセスタイプを継承します。
IPv6 アドレスの詳細については、IPv6 の概要をご覧ください。
制限事項
- IPv6 のみのインスタンス(プレビュー版)は、Ubuntu と Debian OS でのみサポートされます。
始める前に
- コンピューティング インスタンスを作成する前に、ネットワークとサブネットを作成する必要があります。
-
まだ設定していない場合は、認証を設定します。認証とは、サービスと API にアクセスするために ID を確認するプロセスです。 Google Cloud ローカル開発環境からコードまたはサンプルを実行するには、次のいずれかのオプションを選択して Compute Engine に対する認証を行います。
Select the tab for how you plan to use the samples on this page:
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
詳細については、 Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。
-
必要なロール
IPv6 アドレスを持つインスタンスを作成するために必要な権限を取得するには、プロジェクトに対する Compute インスタンス管理者(v1) (roles/compute.instanceAdmin.v1
)IAM ロールを付与するよう管理者に依頼します。ロールの付与については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
このタスクに必要な権限
このタスクを行うには、次の権限が必要です。
- プロジェクトに対する
compute.instances.create
- カスタム イメージを使用して VM を作成する: イメージに対する
compute.images.useReadOnly
- スナップショットを使用して VM を作成する: スナップショットに対する
compute.snapshots.useReadOnly
- インスタンス テンプレートを使用して VM を作成する: インスタンス テンプレートに対する
compute.instanceTemplates.useReadOnly
- レガシー ネットワークを VM に割り当てる: プロジェクトに対する
compute.networks.use
- VM の静的 IP アドレスを指定する: プロジェクトに対する
compute.addresses.use
- レガシー ネットワークの使用時に VM に外部 IP アドレスを割り当てる: プロジェクトに対する
compute.networks.useExternalIp
- VM のサブネットを指定する: プロジェクトまたは選択したサブネットに対する
compute.subnetworks.use
- VPC ネットワークの使用時に VM に外部 IP アドレスを割り当てる: プロジェクトまたは選択したサブネットに対する
compute.subnetworks.useExternalIp
- VM の VM インスタンス メタデータを設定する: プロジェクトに対する
compute.instances.setMetadata
- VM にタグを設定する: VM に対する
compute.instances.setTags
- VM にラベルを設定する: VM に対する
compute.instances.setLabels
- VM が使用するサービス アカウントを設定する: VM に対する
compute.instances.setServiceAccount
- VM に新しいディスクを作成する: プロジェクトに対する
compute.disks.create
- 既存のディスクを読み取り専用モードまたは読み取り / 書き込みモードでアタッチする: ディスクに対する
compute.disks.use
- 既存のディスクを読み取り専用モードでアタッチする: ディスクに対する
compute.disks.useReadOnly
デュアルスタック インスタンスを作成する
内部 IPv4 アドレスと外部 IPv6 アドレスを持つインスタンスを作成するには、コンピューティング インスタンスをデュアルスタック サブネットに接続します。
共有 VPC を使用していて、共有サブネットに接続するデュアルスタック インスタンスを作成する場合は、共有 VPC のドキュメントでインスタンスを作成するをご覧ください。
[インスタンスの作成] ページに移動します。
プロンプトが表示されたら、プロジェクトを選択して [続行] をクリックします。[インスタンスの作成] ページが表示され、[マシン構成] ペインが表示されます。
[マシンの構成] ペインで、次の操作を行います。
- [名前] フィールドに、インスタンスの名前を指定します。詳細については、リソースの命名をご覧ください。
- 省略可: [ゾーン] フィールドで、このインスタンスのゾーンを選択します。IPv6 範囲が構成されたサブネットを含むリージョン内のゾーンを選択します。
インスタンスのマシン ファミリーを選択します。選択したマシン ファミリーで使用可能なマシンシリーズが Google Cloud コンソールに表示されます。使用できるマシン ファミリー オプションは次のとおりです。
- 汎用
- コンピューティング最適化
- メモリ最適化
- ストレージ最適化
- GPU
[シリーズ] 列で、インスタンスのマシンシリーズを選択します。
[マシンタイプ] セクションで、インスタンスのマシンタイプを選択します。
ナビゲーション メニューで [ネットワーキング] をクリックします。表示された [ネットワーキング] ペインで、次の操作を行います。
[ネットワーク インターフェース] セクションで、ネットワーク インターフェースをクリックして開き、編集します。
[ネットワーク] と [サブネットワーク] で、IPv6 範囲が構成されているネットワークとサブネットワークを選択します。
[IP スタックタイプ] には、[IPv4 と IPv6(デュアルスタック)] を選択します。
[プライマリ内部 IPv4 アドレス] で次のいずれかを選択します。
- 新しいエフェメラル IPv4 内部アドレスを割り当てるには、[エフェメラル] を選択します。
- 既存の静的外部 IP アドレスを割り当てるには、リストから予約済み IPv4 アドレスの名前を選択します。
- 新しい静的内部 IPv4 アドレスを作成して割り当てるには、[静的内部 IPv4 アドレスを予約] を選択します。
省略可: [外部 IPv4 アドレス] で、次のいずれかを選択します。
- エフェメラル外部 IPv4 アドレスを割り当てるには、[エフェメラル] を選択します。
- 外部 IPv4 アドレスのないインスタンスを作成するには、[なし] を選択します。
- 既存の静的外部 IP アドレスを割り当てるには、リストから予約済み IPv4 アドレスの名前を選択します。
- 新しい静的外部 IPv4 アドレスを作成して割り当てるには、[静的外部 IPv4 アドレスを予約] を選択します。
省略可: 外部 IPv6 アドレスを構成するには、[外部 IPv6 アドレス] で次のいずれかを選択します。
- 新しいエフェメラル外部 IPv6 アドレスを割り当てるには、[自動割り当て] を選択します。
- 既存の静的外部 IP アドレスを割り当てるには、リストから予約済みの IPv6 アドレスの名前を選択します。
- 新しい静的外部 IPv6 アドレスを作成して割り当てるには、[静的外部 IPv6 アドレスを予約] を選択します。
ネットワーク インターフェースの変更を終了するには、[完了] をクリックします。
省略可: 追加のネットワーク インターフェースを構成するには、[ネットワーク インターフェースを追加] をクリックし、[ネットワーキング] ペインで前の手順を繰り返します。
省略可: その他の構成オプションを指定します。詳細については、インスタンス作成時の構成オプションをご覧ください。
インスタンスを作成して起動するには、[作成] をクリックします。
gcloud compute instances create
コマンドを使用してインスタンスを作成します。
gcloud compute instances createINSTANCE_NAME \ --subnet=SUBNET_NAME \ --zone=ZONE \ --stack-type=IPV4_IPV6
次のように置き換えます。
INSTANCE_NAME
: インスタンスの名前SUBNET_NAME
: インスタンスの接続先のサブネット。サブネットには IPv6 サブネット範囲が必要です。ZONE
: インスタンスをデプロイするゾーン
- イメージを選択します。イメージまたはイメージ ファミリーの名前と、イメージを含むプロジェクトの名前をメモしておきます。
instances.insert
メソッドを使用して、イメージ ファミリーまたは特定のバージョンの OS イメージからインスタンスを作成します。リクエストのデータを使用する前に、次のように置き換えます。
: インスタンスを作成するプロジェクトの ID。PROJECT_ID
: インスタンスを作成するゾーン。ZONE
: カスタム マシンタイプを使用する場合は、新しいインスタンスに使用するカスタム マシンタイプを含むゾーンを指定します。それ以外の場合は、インスタンスを作成するゾーンを指定します。MACHINE_TYPE_ZONE
: 新しいインスタンスのマシンタイプ(事前定義またはカスタム)(例:MACHINE_TYPE n4-standard-2
)
: 新しいインスタンスの名前INSTANCE_NAME
: サブネットを含むリージョンREGION
: デュアルスタック サブネットSUBNET
: 省略可。イメージを含むイメージ プロジェクトIMAGE_PROJECT
: 省略可。次のいずれかを指定します。IMAGE - OS イメージの特定のバージョン(例:
debian-12-bookworm-v20241009
) - イメージ ファミリー。
family/
の形式にする必要があります。これにより、非推奨ではない最新の OS イメージからインスタンスが作成されます。たとえば、IMAGE_FAMILY family/debian-12
を指定すると、Compute Engine は Debian 12 イメージ ファミリーの OS イメージの最新バージョンを使用してインスタンスを作成します。イメージ ファミリーの使用の詳細については、イメージ ファミリーのベスト プラクティスをご覧ください。
- OS イメージの特定のバージョン(例:
HTTP メソッドと URL:
POST https://compute.googleapis.com/compute/v1/projects/
PROJECT_ID /zones/ZONE /instancesリクエストの本文(JSON):
{ "machineType": "zones/
MACHINE_TYPE_ZONE /machineTypes/MACHINE_TYPE ", "name": "INSTANCE_NAME ", "networkInterfaces": [ { "subnetwork": "regions/REGION /subnetworks/SUBNET ", "stackType": "IPV4_IPV6" } ], "disks": [ { "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT /global/images/IMAGE " }, "boot": true } ], }リクエストを送信するには、次のいずれかのオプションを展開します。
curl(Linux、macOS、Cloud Shell)
リクエスト本文を
request.json
という名前のファイルに保存して、次のコマンドを実行します。curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://compute.googleapis.com/compute/v1/projects/PROJECT_ID /zones/ZONE /instances"PowerShell(Windows)
リクエスト本文を
request.json
という名前のファイルに保存して、次のコマンドを実行します。$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID /zones/ZONE /instances" | Select-Object -Expand Content次のような JSON レスポンスが返されます。
{ "kind": "compute#operation", "id": "9216044482154695709", "name": "operation-1739207409646-62dccc7d7bc58-d1350b42-64fdb7f7", "zone": "https://www.googleapis.com/compute/{api_version}/projects/`
PROJECT_ID `/zones/`ZONE `", "operationType": "insert", "targetLink": "https://www.googleapis.com/compute/{api_version}/projects/`PROJECT_ID `/zones/`ZONE `/instances/`INSTANCE_NAME `", "targetId": "2679381553616227357", "status": "RUNNING", "user": "USER_ID ", "progress": 0, "insertTime": "2025-02-10T09:10:10.551-08:00", "startTime": "2025-02-10T09:10:10.551-08:00", "selfLink": "https://www.googleapis.com/compute/{api_version}/projects/`PROJECT_ID `/zones/`ZONE `/operations/operation-1565289606387-58f9f62f5989c-e582f586-6d22f38" "kind": "compute#operation" }
IPv6 専用インスタンスを作成する
IPv6 専用インスタンスを作成するには、このセクションの手順を行います。
単一のネットワーク インターフェースを持つ Compute Engine インスタンスの場合、インターフェースが接続されているネットワークのアクセスタイプに応じて、内部 IPv6 アドレスまたは外部 IPv6 アドレスを指定できます。IPv6 アドレス範囲を持つサブネットを持つカスタムモードの Virtual Private Cloud(VPC)ネットワークを作成する必要があります。
内部 IPv6 アドレスと外部 IPv6 アドレスの両方を使用するマルチ NIC VM インスタンスを作成する前に、次のものを作成する必要があります。
- 内部ネットワークとサブネット: IPv6 ULA が有効になっているカスタムモードの VPC ネットワーク、IPv6 アドレス範囲を持つサブネット、アクセスタイプが
internal
に設定されているサブネット。 - 外部ネットワークとサブネット: 2 番目のカスタムモード VPC ネットワーク、IPv6 アドレス範囲を持つ 2 番目のサブネット、アクセスタイプが
external
に設定されている。
インスタンスを作成するときに、2 つのネットワーク インターフェースを構成します。1 つは内部 IPv6 アドレス範囲のサブネットに接続し、もう 1 つは外部アドレス範囲のサブネットに接続します。
共有 VPC を使用していて、共有サブネットに接続する IPv6 専用インスタンスを作成する場合は、共有 VPC のドキュメントでインスタンスを作成するをご覧ください。
[インスタンスの作成] ページに移動します。
プロンプトが表示されたら、プロジェクトを選択して [続行] をクリックします。[インスタンスの作成] ページが表示され、[マシン構成] ペインが表示されます。
[マシンの構成] ペインで、次の操作を行います。
- [名前] フィールドに、インスタンスの名前を指定します。詳細については、リソースの命名をご覧ください。
- 省略可: [ゾーン] フィールドで、このインスタンスのゾーンを選択します。IPv6 範囲が構成されたサブネットを含むリージョン内のゾーンを選択します。
インスタンスのマシン ファミリーを選択します。選択したマシン ファミリーで使用可能なマシンシリーズが Google Cloud コンソールに表示されます。使用できるマシン ファミリー オプションは次のとおりです。
- 汎用
- コンピューティング最適化
- メモリ最適化
- ストレージ最適化
- GPU
[シリーズ] 列で、インスタンスのマシンシリーズを選択します。
[マシンタイプ] セクションで、インスタンスのマシンタイプを選択します。
ナビゲーション メニューで [ネットワーキング] をクリックします。表示された [ネットワーキング] ペインで、次の操作を行います。
[ネットワーク インターフェース] セクションで、ネットワーク インターフェースをクリックして開き、編集します。
[ネットワーク] と [サブネットワーク] で、IPv6 範囲が構成されているネットワークとサブネットワークを選択します。
サブネットの IPv6 アクセスタイプによって、インスタンスが内部 IPv6 アドレスを受信するのか、外部 IPv6 アドレスを受信するのかが決まります。内部 IPv6 アドレスを割り当てるには、[Configure a ULA internal IPv6 range for this VPC Network] オプションで作成されたネットワークを選択する必要があります。それ以外の場合は、外部 IPv6 アドレスのみを構成できます。
[IP スタックタイプ] で [IPv6(シングルスタック)] を選択します。
アクセスタイプが
Internal
のサブネットを選択した場合は、[プライマリ内部 IPv6 アドレス] で次のいずれかを選択します。- 新しいエフェメラル IPv6 アドレスを割り当てるには、[自動割り当て(/96)] を選択します。
- 既存の静的内部 IP アドレスを割り当てるには、リストから予約済みの IPv6 アドレスの名前を選択します。
- 新しい静的内部 IPv6 アドレスを作成して割り当てるには、[静的内部 IPv6 アドレスを予約] を選択します。
アクセスタイプが
External
のサブネットを選択した場合は、[外部 IPv6 アドレス] で次のいずれかを選択します。- 新しいエフェメラル外部 IPv6 アドレスを割り当てるには、[自動割り当て] を選択します。
- 既存の静的外部 IP アドレスを割り当てるには、リストから予約済みの IPv6 アドレスの名前を選択します。
- 新しい静的外部 IPv6 アドレスを作成して割り当てるには、[静的外部 IPv6 アドレスを予約] を選択します。
ネットワーク インターフェースの変更を終了するには、[完了] をクリックします。
省略可: IPv6 アドレスを追加するには、次の操作を行います。
- [ネットワーク インターフェースを追加] を選択します。
- [Networking] ペインに対して、このタスクの前の手順を繰り返します。
省略可: その他の構成オプションを指定します。詳細については、インスタンス作成時の構成オプションをご覧ください。
インスタンスを作成して起動するには、[作成] をクリックします。
gcloud beta compute instances create
コマンドを使用してインスタンスを作成します。内部 IPv6 アドレスと外部 IPv6 アドレスの両方を割り当てるには、少なくとも 2 つのネットワーク インターフェースを持つインスタンスを作成する必要があります。
gcloud beta compute instances createINSTANCE_NAME \ --zoneZONE \ --machine-type=MACHINE_TYPE \ --create-disk=boot=yes,image='projects/IMAGE_PROJECT /global/images/IMAGE ',size=SIZE \ --network-interface=subnet=SUBNET_INTERNAL_NAME ,stack-type=IPV6_ONLY \ --network-interface=subnet=SUBNET_EXTERNAL_NAME ,stack-type=IPV6_ONLY,ipv6-network-tier=PREMIUM
次のように置き換えます。
INSTANCE_NAME
: インスタンスの名前ZONE
: インスタンスを作成するゾーン(europe-west1-b
など)。インスタンスのリージョンはこのゾーンから推測されます。MACHINE_TYPE
: 省略可。新しいインスタンスのマシンタイプ(事前定義またはカスタム)。例:n4-standard-2
。IMAGE_PROJECT
: 省略可。イメージを含むイメージ プロジェクトIMAGE
: 省略可。次のいずれかを指定します。- OS イメージの特定のバージョン。例:
debian-12-bookworm-v202410095
。 - イメージ ファミリー。
family/IMAGE_FAMILY
の形式にする必要があります。これにより、非推奨ではない最新の OS イメージからインスタンスが作成されます。たとえば、family/debian-12
を指定すると、Compute Engine は Debian 12 イメージ ファミリーの OS イメージの最新バージョンを使用してインスタンスを作成します。イメージ ファミリーの使用の詳細については、イメージ ファミリーのベスト プラクティスをご覧ください。
- OS イメージの特定のバージョン。例:
SIZE
: 省略可。新しいディスクのサイズ。この値は整数である必要があります。デフォルトの測定単位は GiB です。SUBNET_INTERNAL_NAME
: 内部 IP アドレスがインスタンスで使用するように構成されているサブネットの名前。SUBNET_EXTERNAL_NAME
: 外部 IP アドレスがインスタンスで使用するように構成されたサブネットの名前。
- イメージを選択します。イメージまたはイメージ ファミリーの名前と、イメージを含むプロジェクトの名前をメモしておきます。
instances.insert
メソッドを使用して、イメージ ファミリーまたは特定のバージョンの OS イメージからインスタンスを作成します。リクエストのデータを使用する前に、次のように置き換えます。
: インスタンスを作成するプロジェクトの ID。PROJECT_ID
: インスタンスを作成するゾーン。ZONE
: カスタム マシンタイプを使用する場合は、新しいインスタンスに使用するカスタム マシンタイプを含むゾーンを指定します。それ以外の場合は、インスタンスを作成するゾーンを指定します。MACHINE_TYPE_ZONE
: 新しいインスタンスのマシンタイプ(事前定義またはカスタム)(例:MACHINE_TYPE n4-standard-2
)。
: 新しいインスタンスの名前INSTANCE_NAME
: サブネットを含むリージョンREGION
: IPv6 専用サブネット。このサブネットのネットワークのアクセスタイプはSUBNET_INTERNAL INTERNAL
で、IPv6 ULA が有効になっている必要があります。
: IPv6 専用サブネット。このサブネットのネットワークのアクセスタイプはSUBNET_EXTERNAL INTERNAL
にする必要があります。
: 省略可。イメージを含むイメージ プロジェクトIMAGE_PROJECT
: 省略可。次のいずれかを指定します。IMAGE - OS イメージの特定のバージョン(例:
debian-12-bookworm-v20241009
) - イメージ ファミリー。
family/
の形式にする必要があります。これにより、非推奨ではない最新の OS イメージからインスタンスが作成されます。たとえば、IMAGE_FAMILY family/debian-12
を指定すると、Compute Engine は Debian 12 イメージ ファミリーの OS イメージの最新バージョンを使用してインスタンスを作成します。イメージ ファミリーの使用の詳細については、イメージ ファミリーのベスト プラクティスをご覧ください。
- OS イメージの特定のバージョン(例:
HTTP メソッドと URL:
POST https://compute.googleapis.com/compute/beta/projects/
PROJECT_ID /zones/ZONE /instancesリクエストの本文(JSON):
{ "machineType": "zones/
MACHINE_TYPE_ZONE /machineTypes/MACHINE_TYPE ", "name": "INSTANCE_NAME ", "networkInterfaces": [ { "subnetwork": "regions/REGION /subnetworks/SUBNET_INTERNAL ", "stackType": "IPV6_ONLY" }, { "subnetwork": "regions/REGION /subnetworks/SUBNET_EXTERNAL ", "stackType": "IPV6_ONLY" } ], "disks": [ { "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT /global/images/IMAGE " }, "boot": true } ] }リクエストを送信するには、次のいずれかのオプションを展開します。
curl(Linux、macOS、Cloud Shell)
リクエスト本文を
request.json
という名前のファイルに保存して、次のコマンドを実行します。curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://compute.googleapis.com/compute/beta/projects/PROJECT_ID /zones/ZONE /instances"PowerShell(Windows)
リクエスト本文を
request.json
という名前のファイルに保存して、次のコマンドを実行します。$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://compute.googleapis.com/compute/beta/projects/PROJECT_ID /zones/ZONE /instances" | Select-Object -Expand Content次のような JSON レスポンスが返されます。
{ "kind": "compute#operation", "id": "9216044482154695709", "name": "operation-1739207409646-62dccc7d7bc58-d1350b42-64fdb7f7", "zone": "https://www.googleapis.com/compute/beta/projects/`
PROJECT_ID `/zones/`ZONE `", "operationType": "insert", "targetLink": "https://www.googleapis.com/compute/beta/projects/`PROJECT_ID `/zones/`ZONE `/instances/`INSTANCE_NAME `", "targetId": "2679381553616227357", "status": "RUNNING", "user": "USER_ID ", "progress": 0, "insertTime": "2025-02-10T09:10:10.551-08:00", "startTime": "2025-02-10T09:10:10.551-08:00", "selfLink": "https://www.googleapis.com/compute/beta/projects/`PROJECT_ID `/zones/`ZONE `/operations/operation-1565289606387-58f9f62f5989c-e582f586-6d22f38" "kind": "compute#operation" }