このページでは、Distributed Cloud ゾーンで Google Distributed Cloud VPN 接続リソースを作成して管理する方法について説明します。
この機能は、Distributed Cloud ラックでのみ使用できます。 Distributed Cloud サーバーは、VPN 接続リソースをサポートしていません。
Distributed Cloud VPN 接続の詳細については、 Distributed Cloud の仕組みをご覧ください。
次の点にご注意ください。
Distributed Cloud VPN 接続に必要なトラフィックを 許可するように ネットワークを構成する必要があります。
Distributed Cloud VPN 接続を作成すると、Distributed Cloud は必要な Cloud VPN ゲートウェイと Cloud Router リソースを作成します。Cloud VPN ゲートウェイの名前には
anthos-mccという接頭辞が付きます。Cloud Router の名前にはgdceという接頭辞が付きます。これらのリソースを変更しないでください。変更すると、Distributed Cloud VPN 接続が機能しなくなる可能性があります。 誤ってこれらのリソースを変更した場合は、影響を受ける Distributed Cloud VPN 接続を削除して再作成する必要があります。Distributed Cloud は、プロジェクトとリージョンで最初の Distributed Cloud VPN 接続を作成するときに、プロジェクトとリージョンごとに 1 つの Cloud Router per Google Cloud を作成します。Google Cloud その後、 その Google Cloud プロジェクトとリージョンで作成されたすべての VPN 接続は、同じ Cloud Router リソースを再利用します。
Cloud Router リソースは、セカンダリ ネットワーク インターフェースが接続されていない場合にのみ削除できます。Distributed Cloud は、接続されている最後の VPN 接続を削除すると、Cloud Router を自動的に削除します。
Distributed Cloud VPN 接続は IPv4 アドレスのみをサポートしています。
Distributed Cloud クラスタごとに作成できる VPN 接続は 1 つだけです。
ローカル ネットワークで複数のネットワーク アドレス変換(NAT)ゲートウェイを使用する場合は、Distributed Cloud インストールが Virtual Private Cloud(VPC)ネットワークへの送信トラフィックに単一の IP アドレスを使用するように構成する必要があります。
デフォルトでは、Distributed Cloud は、2 つの VPN トンネル( エンドの HA VPN とも呼ばれます)を使用して Google Cloud に接続するように、単一ノードに単一の VPN クライアントを構成します。 Google Cloud
--high-availabilityフラグを使用すると、VPN 接続の可用性をさらに高めることができます。このフラグは、2 つの別々のノードに 2 つの VPN クライアントを構成して、合計 4 つの VPN トンネルを構成するように Distributed Cloud に指示します。構成を変更する場合は、VPN 接続を削除して再作成する必要があります。
VPN 接続は、Google Cloud CLI または Distributed Cloud Edge Container API を使用して管理できます。
VPN 接続を作成する
Distributed Cloud VPN 接続を作成するには、このセクションの手順を完了します。
このタスクを完了するには、 プロジェクトに対する
Edge Container 管理者ロール
(roles/edgecontainer.admin)が必要です。 Google Cloud
gcloud
gcloud edge-cloud container vpn-connections create コマンドを使用します。
gcloud edge-cloud container vpn-connections create VPN_CONNECTION_NAME \
--project=PROJECT_ID \
--location=REGION \
--cluster=CLUSTER_NAME \
--vpc-network=VPC_NETWORK_NAME \
--nat-gateway-ip=NAT_GATEWAY_IP \
--router=ROUTER_NAME \
--high-availability
次のように置き換えます。
VPN_CONNECTION_NAME: この VPN 接続を一意に識別する説明的な名前。PROJECT_ID: ターゲット Google Cloud プロジェクトの ID。REGION:ターゲット Distributed Cloud ゾーンが作成される Google Cloud リージョン。CLUSTER_NAME: ターゲット Distributed Cloud クラスタの名前。VPC_NETWORK_NAME: この VPN 接続が指すターゲット VPC ネットワークの名前。この ネットワークは、Distributed Cloud インストールと同じ Google Cloud プロジェクトに存在する必要があります。NAT_GATEWAY_IP: ターゲット クラスタの NAT ゲートウェイ IP アドレス。NAT を使用していない場合は、このフラグを省略します。ROUTER_NAME(省略可): この VPN 接続に使用する既存の Cloud Router リソースを指定します。それ以外の場合、 ターゲット プロジェクトとリージョンに Cloud Router がまだ存在しない場合は、 Distributed Cloud が Cloud Router を自動的に作成します。 Google Cloud--high-availability(省略可): 2 つの別々のノードで実行される 2 つの別々の VPN クライアントを設定して、クラスタ側で高可用性を実現するようにこの VPN 接続を構成します。高可用性を無効にするには、このフラグを省略します。
API
projects.locations.vpnConnections.create メソッドに POST リクエストを送信します。
POST /v1/PROJECT_ID/locations/REGION/vpnConnections?vpnConnectionId=VPN_CONNECTION_ID&requestId=REQUEST_ID
{
"name": string,
"labels": {
},
"natGatewayIp": NAT_GATEWAY,
"cluster": CLUSTER_PATH,
"vpc": VPC_NETWORK_ID
"enableHighAvailability": HA_ENABLE,
"router": ROUTER_NAME,
}
次のように置き換えます。
PROJECT_ID: ターゲット Google Cloud プロジェクトの ID。REGION: ターゲット Distributed Cloud ゾーンが作成される Google Cloud リージョン。VPN_CONNECTION_ID: このノードプール リソースを識別する一意のプログラム ID。REQUEST_ID: このリクエストを識別する一意のプログラム ID。VPN_CONNECTION_NAME: この VPN 接続を一意に識別する説明的な名前。NAT_GATEWAY: NAT ゲートウェイの IP アドレス。CLUSTER_PATH: ターゲット クラスタへの完全な正規パス。VPC_NETWORK_ID: ターゲット VPC ネットワークの ID。HA_ENABLE: クラスタ側で高可用性を実現するようにこの VPN 接続を構成するかどうかを示します。TRUEに設定すると、2 つの別々のノードで実行される 2 つの別々の VPN クライアントが構成されます。ROUTER_NAME(省略可): この VPN 接続に使用する既存の Cloud Router リソースを指定します。それ以外の場合、 ターゲット プロジェクトとリージョンに Cloud Router がまだ存在しない場合は、 Distributed Cloud が Cloud Router を自動的に作成します。Google Cloud
VPN 接続を一覧表示する
Distributed Cloud クラスタ用にプロビジョニングされた VPN 接続を一覧表示するには、このセクションの手順を完了します。
このタスクを完了するには、 プロジェクトに対する
Edge Container 閲覧者ロール
(roles/edgecontainer.viewer)が必要です。 Google Cloud
gcloud
gcloud edge-cloud container vpn-connections list コマンドを使用します。
gcloud edge-cloud container vpn-connections list \
--project=PROJECT_ID \
--location=REGION
次のように置き換えます。
PROJECT_ID: ターゲット Google Cloud プロジェクトの ID。REGION: ターゲット Distributed Cloud ゾーンが作成される Google Cloud リージョン。
API
projects.locations.vpnConnections.list メソッドに GET リクエストを送信します。
GET /v1/PROJECT_ID/locations/REGION/vpnConnections?filter=FILTER&pageSize=PAGE_SIZE&orderBy=SORT_BY&pageToken=PAGE_TOKEN
次のように置き換えます。
PROJECT_ID: ターゲット Google Cloud プロジェクトの ID。REGION: ターゲット Distributed Cloud ゾーンが作成される Google Cloud リージョン。FILTER: 返される結果を特定の値に制限する式。PAGE_SIZE: ページごとに返す結果の数SORT_BY: 返される結果の並べ替えの基準とするフィールド名のカンマ区切りリスト デフォルトの並べ替え順序は昇順です。降順で並べ替えるには、目的のフィールドの前に~を付けます。PAGE_TOKEN: レスポンスのnextPageTokenフィールドで最後のリスト リクエストのレスポンスとして受信したトークン。このトークンを送信して、結果のページを受信します。
VPN 接続に関する情報を取得する
Distributed Cloud VPN 接続に関する情報を取得するには、このセクションの手順を完了します。
このタスクを完了するには、 プロジェクトに対する
Edge Container 閲覧者ロール
(roles/edgecontainer.viewer)が必要です。 Google Cloud
gcloud
gcloud edge-cloud container vpn-connections describe コマンドを使用します。
gcloud edge-cloud container vpn-connections describe VPN_CONNECTION_NAME \
--project=PROJECT_ID \
--location=REGION
次のように置き換えます。
VPN_CONNECTION_NAME: ターゲット VPN 接続の名前。PROJECT_ID: ターゲット Google Cloud プロジェクトの ID。REGION: ターゲット Distributed Cloud ゾーンが作成される Google Cloud リージョン。
API
projects.locations.vpnConnections.get メソッドに GET リクエストを送信します。
GET /v1/PROJECT_ID/locations/REGION/vpnConnections/VPN_CONNECTION_NAME
次のように置き換えます。
PROJECT_ID: ターゲット Google Cloud プロジェクトの ID。REGION: ターゲット Distributed Cloud ゾーンが作成される Google Cloud リージョン。VPN_CONNECTION_NAME: ターゲット VPN 接続の名前。
VPN 接続を削除する
Distributed Cloud VPN 接続を削除するには、このセクションの手順を完了します。
Distributed Cloud が Google Cloud プロジェクトに作成した Cloud Router リソースに関連付けられている最後の VPN 接続を削除すると、VPN 接続を削除すると、関連付けられている Cloud Router リソースが自動的に削除されます。ただし、この状況で自動的に削除されるのは、Distributed Cloud によって自動的に作成された Cloud Router リソースのみです。Distributed Cloud は、--router フラグを使用して指定された既存の Cloud Router リソースを削除しません。
このタスクを完了するには、 プロジェクトに対する
Edge Container 管理者ロール
(roles/edgecontainer.admin)が必要です。 Google Cloud
gcloud
gcloud edge-cloud container vpn-connections delete コマンドを使用します。
gcloud edge-cloud container vpn-connections delete VPN_CONNECTION_NAME \
--location=REGION \
--project=PROJECT_ID
次のように置き換えます。
VPN_CONNECTION_NAME: この VPN 接続を一意に識別する説明的な名前。REGION:ターゲット Distributed Cloud ゾーンが作成される Google Cloud リージョン。PROJECT_ID: ターゲット Google Cloud プロジェクトの ID。
API
projects.locations.vpnConnections.delete メソッドに DELETE リクエストを送信します。
DELETE /v1/PROJECT_ID/locations/REGION/vpnConnections/VPN_CONNECTION_NAME?requestId=REQUEST_ID
次のように置き換えます。
PROJECT_ID: ターゲット Google Cloud プロジェクトの ID。REGION: ターゲット Distributed Cloud ゾーンが作成される Google Cloud リージョン。VPN_CONNECTION_NAME: ターゲット VPN 接続の名前。REQUEST_ID: このリクエストを識別する一意のプログラム ID。
プロジェクト間の VPN 接続を管理する
Distributed Cloud では、Distributed Cloud クラスタを含む Google Cloud プロジェクトとは異なる Google Cloud プロジェクトの VPC ネットワークへの VPN 接続を作成することもできます。
前提条件
プロジェクト間の VPN 接続を作成するには、このセクションの前提条件を満たす必要があります。
呼び出し元アカウントの権限
ターゲット VPC プロジェクトの呼び出し元ユーザー アカウントには、次の権限が必要です。これらの権限は、
プロジェクト IAM 管理者ロール
(roles/resourcemanager.projectIamAdmin)にカプセル化されています。
resourcemanager.projects.getresourcemanager.projects.getIamPolicyresourcemanager.projects.setIamPolicy
IAM ロールと権限の設定方法については、 プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。
Distributed Cloud サービス アカウントの権限
Distributed Cloud が、プロジェクト間の VPN 接続を有効にするターゲット
VPC プロジェクトに
Cloud Router リソースと Cloud VPN リソースを作成できるようにするには、Distributed Cloud クラスタの Distributed Cloud
サービス アカウントに
Compute ネットワーク管理者ロール
(roles/compute.networkAdmin)を付与する必要があります。
Compute ネットワーク管理者ロールを付与する手順は次のとおりです。
gcloud
gcloud projects add-iam-policy-binding コマンドを使用します。
gcloud projects add-iam-policy-binding VPC_PROJECT_ID \
--member="serviceAccount:service-PROJECT_NUM@gcp-sa-edgecontainer.iam.gserviceaccount.com" \
--role="roles/compute.networkAdmin" \
--project=VPC_PROJECT_ID
次のように置き換えます。
VPC_PROJECT_ID: ターゲット VPC プロジェクトの ID。PROJECT_NUM: ターゲット Distributed Cloud Google Cloud プロジェクトの番号。
プロジェクト間の VPN 接続を作成する
別のプロジェクトへの VPC ネットワークへの VPN 接続を作成するには、このセクションの手順を完了します。Google Cloud
gcloud
gcloud edge-cloud container vpn-connections create コマンドを使用します。
gcloud edge-cloud container vpn-connections create VPN_CONNECTION_NAME \
--project=PROJECT_ID \
--location=REGION \
--cluster=CLUSTER_NAME \
--vpc-project=VPC_PROJECT_ID \
--vpc-network=VPC_NETWORK_NAME \
--nat-gateway-ip=NAT_GATEWAY_IP \
--high-availability
次のように置き換えます。
VPN_CONNECTION_NAME: この VPN 接続を一意に識別する説明的な名前。PROJECT_ID: ターゲット Distributed Cloud クラスタ Google Cloud プロジェクトの ID。REGION: ターゲット Distributed Cloud ゾーンが作成される Google Cloud リージョン。CLUSTER_NAME: ターゲット Distributed Cloud クラスタの名前。VPC_PROJECT_ID: ターゲット VPC ネットワークを含むターゲット Google Cloud プロジェクトの ID。VPC_NETWORK_NAME: この VPN 接続が指すターゲット VPC ネットワークの名前。NAT_GATEWAY_IP: ターゲット クラスタの NAT ゲートウェイ IP アドレス。NAT を使用していない場合は、このフラグを省略します。--high-availability(省略可): 2 つの別々のノードで実行される 2 つの別々の VPN クライアントを設定して、クラスタ側で高可用性を実現するようにこの VPN 接続を構成します。高可用性を無効にするには、このフラグを省略します。
API
projects.locations.vpnConnections.create メソッドに POST リクエストを送信します。
POST /v1/PROJECT_ID/locations/REGION/vpnConnections?vpnConnectionId=VPN_CONNECTION_ID&requestId=REQUEST_ID
{
"name": string,
"labels": {
},
"natGatewayIp": NAT_GATEWAY,
"cluster": CLUSTER_PATH,
"vpc": VPC_NETWORK_ID,
"vpcProject": VPC_PROJECT_ID,
"vpcServiceAccount": var>VPC_PROJECT_SERVICE_ACCOUNT,
"enableHighAvailability": HA_ENABLE,
}
次のように置き換えます。
PROJECT_ID: ターゲット Google Cloud プロジェクトの ID。REGION: ターゲット Distributed Cloud ゾーンが作成される Google Cloud リージョン。VPN_CONNECTION_ID: このノードプール リソースを識別する一意のプログラム ID。REQUEST_ID: このリクエストを識別する一意のプログラム ID。VPN_CONNECTION_NAME: この VPN 接続を一意に識別する説明的な名前。NAT_GATEWAY: NAT ゲートウェイの IP アドレス。CLUSTER_PATH: ターゲット クラスタへの完全な正規パス。VPC_NETWORK_ID: ターゲット VPC ネットワークの ID。VPC_PROJECT_ID: ターゲット VPC ネットワークを含むターゲット Google Cloud プロジェクトの ID。HA_ENABLE: クラスタ側で高可用性を実現するようにこの VPN 接続を構成するかどうかを示します。TRUEに設定すると、2 つの別々のノードで実行される 2 つの別々の VPN クライアントが構成されます。
プロジェクト間の VPN 接続の Cloud Audit Logs
プロジェクト間の VPN 接続を作成すると、Cloud Audit Logs のログは次のように書き込まれます。
- Distributed Cloud クラスタの監査ログには、プロジェクト間の VPN 接続の長時間実行オペレーション、認証、認可に関する情報が記録されます。この情報には、作成オペレーションの呼び出し元と、呼び出し元に付与または拒否された権限が含まれます。
- ターゲット VPC プロジェクトの監査ログには、プロジェクト間の VPN
接続を有効にする
リソースに関する情報
(Cloud Router リソースや Cloud VPN
リソースなど)が記録されます。 Google Cloud これらのリソースにアクセスする呼び出し元は、
Edge Container サービス エージェント ロール(
roles/edgecontainer.serviceAgent)が付与されている Distributed Cloud サービス アカウントです。
VPN 接続の制限事項
特定の VPN 接続を作成したクラスタのノードプールを変更する場合は、その VPN 接続を削除して再作成する必要があります。そうしないと、次のような予期しない動作が発生する可能性があります。
- VPN 接続が断続的に失われる
- Distributed Cloud ゾーン内の他のクラスタで VPN 接続を作成できない
プロジェクト間の VPN 接続の制限事項
また、プロジェクト間の VPN 接続には次の制限があります。
- プロジェクト間の VPN 接続リソースは、Distributed Cloud クラスタにのみ存在します。
- ターゲット VPC プロジェクトの Distributed Cloud サービス アカウントの権限を変更すると、Distributed Cloud クラスタからプロジェクト間の VPN 接続を削除できなくなります。
次のステップ
- Google Distributed Cloud にワークロードをデプロイする
- ゾーンを管理する
- クラスタを作成して管理する
- ノードプールを作成して管理する
- 仮想マシンを管理する
- GPU ワークロードを管理する