プライベート サービス アクセスを設定する

プライベート サービス アクセスは、Virtual Private Cloud(VPC)ネットワークと VMware Engine のネットワーク間のプライベート接続です。このページでは、Google Cloud VMware Engine へのプライベート サービス アクセスを設定し、VPC ネットワークをプライベート クラウドに接続する方法について説明します。

プライベート サービス アクセスにより、次のことが可能になります。

  • VPC ネットワーク内の仮想マシン(VM)インスタンスと VMware VM の内部 IP アドレスによる排他的通信。VM インスタンスは、インターネット アクセスまたは外部 IP アドレスがなくても、プライベート サービス アクセスを介してサービスにアクセスできます。
  • VMware VM と、内部 IP アドレスを使用したプライベート サービス アクセスをサポートする Google Cloud のサポート サービスの間の通信。
  • Cloud VPN または Cloud Interconnect を使用して VPC ネットワークに接続しているオンプレミス接続がある場合、既存のオンプレミス接続を使用して VMware Engine プライベート クラウドに接続します。

プライベート サービス アクセスは、VMware Engine のプライベート クラウドの作成とは別に設定できます。プライベート接続は、VPC ネットワークを接続するプライベート クラウドの作成前か作成後に作れます。

  1. Make sure that you have the following role or roles on the project: Compute > Network Admin

    Check for the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

    4. For all rows that specify or include you, check the Role colunn to see whether the list of roles includes the required roles.

    Grant the roles

    1. In the Google Cloud console, go to the IAM page.

      [IAM] に移動
    2. プロジェクトを選択します。
    3. [ アクセスを許可] をクリックします。
    4. [新しいプリンシパル] フィールドに、ユーザー ID を入力します。 これは通常、Google アカウントのメールアドレスです。

    5. [ロールを選択] リストでロールを選択します。
    6. 追加のロールを付与するには、 [別のロールを追加] をクリックして各ロールを追加します。
    7. [保存] をクリックします。

    始める前に

    1. 次の手順を行って、VPC ネットワークのピアリングされたプロジェクト ID を見つけます。
      1. Google Cloud コンソールで、[VPC ネットワーク ピアリング] に移動します。servicenetworking-googleapis-com という名前の VPC ネットワーク ピアリング接続がピアリング テーブルに表示されます。
      2. ピアリングされたプロジェクト ID をコピーして、VMware Engine ポータルでプライベート接続を設定するときに使用できるようにします。
    2. 利用可能なオプションから、プライベート サービス アクセスに接続する VPC ネットワークを選択します。
      • オンプレミス接続に Cloud VPN を使用する場合: Cloud VPN セッションに接続されている VPC ネットワークを選択します。
      • オンプレミス接続に Cloud Interconnect を使用する場合: Cloud Interconnect VLAN アタッチメントを終了する VPC ネットワークを選択します。
    3. プロジェクトで Service Networking API [サービス ネットワーキング スタートガイド]を有効にします。
    4. プロジェクト オーナーと Compute ネットワーク管理者のロールroles/compute.networkAdmin)を持つ IAM プリンシパルが、割り振られた IP 範囲を作成し、プライベート接続を管理できます。
    5. プライベート サービス接続、プライベート クラウド管理、ワークロードのネットワーク セグメントに使用するアドレス範囲を入力します。これにより、VPC ネットワークのサブネットと VMware Engine で使用する IP アドレスの間で IP アドレスの競合が発生することを防げます。

    マルチ VPC 接続

    VMware Engine では、Google Cloud にデプロイされている既存の VPC アーキテクチャを変更しなくても、複数の異なる VPC ネットワークから同じプライベート クラウドにアクセスできます。この方法(マルチ VPC 接続)は、テストと開発用に別々の VPC ネットワークがある場合などに便利です。

    この状況では、VPC ネットワークは、同じプライベート クラウドまたは複数のプライベート クラウドに存在する別々の vSphere リソース グループにある VMware VM や他の宛先アドレスと通信する必要があります。

    デフォルトでは、リージョンごとに 3 つの VPC ネットワークをピアリングできます。このピアリング上限には、インターネット アクセス ネットワーク サービスで使用される VPC ピアリングが含まれます。この上限を引き上げる場合は、Cloud カスタマーケアまでお問い合わせください

    共有 VPC

    共有 VPC を使用する場合は、ホスト プロジェクトで割り振られた IP 範囲とプライベート接続を作成します。通常、ホスト プロジェクトのネットワーク管理者がこれらの作業を行う必要があります。サービス プロジェクトの VM インスタンスでは、ホスト プロジェクトの設定後にプライベート接続を使用できます。

    プライベート接続を作成する

    プライベート接続を作成するには、まず Compute Engine VPC とプライベート サービス アクセス接続を作成する必要があります。これを行うには、Google Cloud CLI を使用します。

    Google Cloud CLI を使用して、Compute Engine VPC とプライベート サービス アクセス接続を作成します。

    Google Cloud CLI を使用して Compute Engine VPC とプライベート サービス アクセス接続を作成する手順は次のとおりです。

    1. gcloud compute networks create コマンドを実行して VPC を作成します。

      gcloud compute networks create NETWORK_ID-vpc \
          --subnet-mode=custom

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

      • NETWORK_ID: このリクエストのネットワーク ID。
    2. gcloud compute addresses create コマンドを実行して、予約済みの範囲を作成します。

      gcloud compute instances create VM_NAME \
        [--image=IMAGE | --image-family=IMAGE_FAMILY] \
        --image-project=IMAGE_PROJECT \
        --machine-type=MACHINE_TYPE
      gcloud compute addresses create RESERVED_RANGE_ID-range \
          --global \
          --purpose=VPC_PEERING \
          --prefix-length=24 \
          --description="DESCRIPTION" \
          --network=RESERVED_RANGE_ID-vpc

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

      • RESERVED_RANGE_ID: このリクエストの予約済み範囲の ID。
      • DESCRIPTION: この予約済み範囲の説明。
    3. 省略可: プライベート接続用にサービス ネットワーキングのテナント プロジェクト(SNTP)と VPC を抽出する場合は、gcloud compute networks peerings list コマンドを実行します。

      gcloud compute networks peerings list \
         --network=NETWORK_ID

      SNTP は PEER_PROJECT 列で確認し、SNVPC は PEER_NETWORK で確認します。

    Google Cloud CLI または VMware Engine API によって、PRIVATE_SERVICE_ACCESS タイプと GLOBAL ルーティング モードを使用するプライベート接続を作成します。

    gcloud

    1. gcloud vmware private-connections create コマンドを実行して、プライベート接続を作成します。

      gcloud vmware private-connections create PRIVATE_CONNECTION_ID \
        --location=REGION\
        --description="" \
        --vmware-engine-network=REGION-default \
        --service-project=SERVICE_NETWORKING_TENANT_PROJECT\
        --type=PRIVATE_SERVICE_ACCESS \
        --routing-mode=GLOBAL
      

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

      • PRIVATE_CONNECTION_ID: このリクエストのプライベート接続 ID。
      • REGION: このネットワークを作成するリージョン。
      • SERVICE_NETWORKING_TENANT_PROJECT: このサービス ネットワーキングのテナント VPC のプロジェクト名。SNTP はピアリング名 servicenetworking-googleapis-comPEER_PROJECT 列で確認できます。
    2. 省略可: プライベート接続を一覧表示するには、gcloud vmware private-connections create コマンドを実行します。

        gcloud vmware private-connections list \
          --location=REGION

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

      • REGION: 一覧表示するネットワークのリージョン。

    API

    VMware Engine API を使用して Compute Engine VPC とプライベート サービス アクセス接続を作成する手順は次のとおりです。

    1. POST リクエストを行ってプライベート接続を作成します。

      POST "https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/privateConnections?private_connection_id=PRIVATE_CONNECTION_ID"
      -d '{
        "description": "My first private connection",
        "vmware_engine_network":
      "projects/PROJECT_ID/locations/REGION/vmwareEngineNetworks/REGION
      -default",
        "type": "PRIVATE_SERVICE_ACCESS",
        "routing_mode": "GLOBAL",
        "service_network":
      "projects/SERVICE_NETWORKING_TENANT_PROJECT/global/networks/servicenetworking"
      }'
      

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

      • PRIVATE_CONNECTION_ID: このリクエストのプライベート接続 ID。
      • REGION: このプライベート接続を作成するリージョン。
      • SERVICE_NETWORKING_TENANT_PROJECT: このサービス ネットワーキングのテナント VPC のプロジェクト名。SNTP はピアリング名 servicenetworking-googleapis-comPEER_PROJECT 列で確認できます。
    2. 省略可: プライベート接続を一覧表示するには、GET リクエストを行います。

        GET "https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/privateConnections"
        

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

    • PROJECT_ID: このリクエストのプロジェクト名。
    • REGION: プライベート接続を一覧表示するリージョン。

    プライベート接続を編集する

    プライベート接続を編集するには、Google Cloud CLI または VMware Engine API を使用します。次の例では、説明を変更し、ルーティング モードを REGIONAL に更新します。

    gcloud

    gcloud vmware private-connections update コマンドを実行して、プライベート接続を編集します。

      gcloud vmware private-connections update PRIVATE_CONNECTION_ID \
        --location=REGION \
        --description="Updated description for the private connection" \
        --routing-mode=REGIONAL
    

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

    • PROJECT_ID: このリクエストのプロジェクト名。
    • REGION: このプライベート接続を更新するリージョン。
    • PRIVATE_CONNECTION_ID: このリクエストのプライベート接続 ID。

    API

    VMware Engine API を使用してプライベート接続を編集するには、PATCH リクエストを行います。

    PATCH "https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/privateConnections/PRIVATE_CONNECTION_ID?update_mask=description, routing_mode" -d '{
      "description": "Updated description for the private connection",
      "routing_mode": "REGIONAL"
    }'
    

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

    • PROJECT_ID: このリクエストのプロジェクト名。
    • REGION: このプライベート接続を更新するリージョン。
    • PRIVATE_CONNECTION_ID: このリクエストのプライベート接続 ID。

    プライベート接続の説明を取得する

    Google Cloud CLI または VMware Engine API によってプライベート接続の説明を取得するには、次の手順を実施します。

    gcloud

    gcloud vmware private-connections describe コマンドを実行して、プライベート接続の説明を取得します。

      gcloud vmware private-connections describe PRIVATE_CONNECTION_ID \
        --location=REGION
    

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

    • PRIVATE_CONNECTION_ID: このリクエストのプライベート接続 ID。
    • REGION: プライベート接続のリージョン。

    API

    VMware Engine API を使用してプライベート接続の説明を取得するには、GET リクエストを行います。

    GET "https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/privateConnections/PRIVATE_CONNECTION_ID"
    

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

    • PROJECT_ID: このリクエストのプロジェクト名。
    • PRIVATE_CONNECTION_ID: このリクエストのプライベート接続 ID。
    • REGION: プライベート接続のリージョン。

    プライベート接続のピアリング ルートを一覧表示する

    Google Cloud CLI または VMware Engine API を使用して、プライベート接続用に交換されたピアリング ルートを一覧表示するには、次の手順を実施します。

    gcloud

    gcloud vmware private-connections routes list コマンドを実行して、プライベート接続用に交換されたピアリング ルートを一覧表示します。

      gcloud vmware private-connections routes list \
        --private-connection=PRIVATE_CONNECTION_ID \
        --location=REGION
    

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

    • PRIVATE_CONNECTION_ID: このリクエストのプライベート接続 ID。
    • REGION: プライベート接続のリージョン。

    API

    VMware Engine API を使用してプライベート接続用に交換されたピアリング ルートを一覧表示するには、GET リクエストを行います。

    GET "https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/privateConnections/PRIVATE_CONNECTION_ID/peeringRoutes"
    

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

    • PROJECT_ID: このリクエストのプロジェクト名。
    • REGION: プライベート接続のリージョン。
    • PRIVATE_CONNECTION_ID: このリクエストのプライベート接続 ID。

    ルーティングの上限

    プライベート クラウドが受信できるルートの最大数は 200 です。受信できるルートには、オンプレミス ネットワーク、ピアリングした VPC ネットワーク、同じ VPC ネットワーク内の他のプライベート クラウドからのルートなどがあります。このルートの上限は、BGP セッション制限ごとの Cloud Router カスタムルート アドバタイズの最大数に対応します。

    特定のリージョンでは、プライベート サービス アクセスを使用して、VMware Engine から VPC ネットワークへの一意のルートを最大で 100 までアドバタイズできます。たとえば、これらの一意のルートには、プライベート クラウド管理 IP アドレス範囲、NSX-T ワークロード ネットワーク セグメント、HCX ネットワーク IP アドレス範囲が含まれます。このルートの上限は、リージョン内のすべてのプライベート クラウドを含み、Cloud Router の学習したルートの上限に対応します。

    ルーティングの上限については、Cloud Router の割り当てと上限をご覧ください。

    トラブルシューティング

    次の動画では、Google Cloud VPC と Google Cloud VMware Engine の間のピアリング接続の問題を検証してトラブルシューティングする方法について説明します。

    次のステップ