VPC ネットワークを構成する

Google Cloud Managed Lustre インスタンスは、プライベート サービス アクセスを使用して Virtual Private Cloud(VPC)に接続する Google 管理のネットワークにプロビジョニングされます。

次のいずれかのネットワーク設定を使用して、Managed Lustre インスタンスをクライアント Compute Engine VM または Google Kubernetes Engine クラスタに接続できます。

  • 同じ VPC ネットワーク: クライアント リソースと Managed Lustre インスタンスを同じ VPC ネットワークに接続します。

  • 個別の VPC ネットワーク: クライアント リソースを個別の VPC ネットワークにデプロイし、Network Connectivity Center を使用して両方のネットワークを接続します。NCC の設定手順については、Network Connectivity Center のドキュメントをご覧ください。

どちらのセットアップでも、このページの手順に沿って、Managed Lustre インスタンスがプロビジョニングされる VPC ネットワークを構成します。個別の VPC ネットワークを使用している場合、手順にはクライアント VPC ネットワークに必要な手順を示すコールアウトが含まれています。

必要な権限

次の IAM 権限が必要です。

  • serviceusage.services.enable
  • compute.networks.create
  • compute.addresses.create
  • compute.addresses.get
  • compute.firewalls.create
  • servicenetworking.services.addPeering

これらの権限は、次の事前定義ロールをすべて追加することで付与できます。

または、特定の権限を含むカスタムロールを作成します。

ユーザーにロールを付与するには:

Google Cloud コンソール

  1. Google Cloud コンソールで、[IAM] ページに移動します。

    IAM に移動

  2. [アクセス権を付与] をクリックします。

  3. [新しいプリンシパル] フィールドに、ユーザーのメールアドレスを入力します。

  4. [ロールを選択] プルダウン メニューで、付与するロールを選択します。

  5. 複数のロールを付与するには、[別のロールを追加] をクリックして、次のロールを選択します。

  6. [保存] をクリックします。

gcloud

gcloud projects add-iam-policy-binding PROJECT_ID \
  --member="user:EMAIL_ADDRESS" \
  --role=ROLE

VPC を作成してピアリングする

VPC ネットワークを作成し、Managed Lustre のプライベート サービス アクセス接続を設定する手順は次のとおりです。

Google Cloud コンソール

  1. Service Networking API を有効にします。

    Service Networking API を有効にする

  2. カスタムモードで VPC ネットワークを作成します。

    1. Google Cloud コンソールで、[VPC ネットワーク] ページに移動します。

      [VPC ネットワーク] に移動

    2. [VPC ネットワークを作成] をクリックします。

    3. ネットワークの名前を入力します。

    4. [MTU を自動的に設定する] の選択を解除し、[最大伝送単位(MTU)] フィールドに 8896 を入力します。

    5. [サブネット作成モード] で [カスタム] を選択します。

  3. GKE または Compute Engine リソースのプライマリ サブネットを作成します。

    1. [新しいサブネット] セクションで、サブネットの名前を入力します。
    2. リージョンを選択します。
    3. [IPv4 範囲] フィールドに、プライマリ IPv4 範囲(10.128.0.0/20 など)を入力します。
    4. [完了] をクリックします。
    5. [作成] をクリックして VPC ネットワークを作成します。
  4. プライベート サービス アクセス用の IP 範囲を割り振ります。

    この内部 IP 範囲は、プライベート サービス アクセス接続に使用されます。この接続により、VPC ネットワークが Managed Lustre リソースがプロビジョニングされる Google 管理ネットワークとピアリングされます。この割り当てられた範囲は、Managed Lustre インスタンスに IP を提供するために使用されます。VPC ネットワーク内のサブネットと重複してはなりません。

    各 Managed Lustre インスタンスには、プレフィックス長が 23 以上の連続した CIDR ブロックが必要です。

    複数の Managed Lustre インスタンスの作成や他の Google Cloud サービスの利用を可能にするため、/20 の大きな IP 範囲を作成することをおすすめします。

    1. [VPC ネットワーク] ページで、VPC ネットワークの名前をクリックします。
    2. [プライベート サービス アクセス] タブを選択します。
    3. [サービスに割り当てられた IP 範囲] タブを選択します。
    4. [IP 範囲の割り当て] をクリックします。
    5. 割り当て範囲の [名前] と [説明] を入力します(例: Managed Lustre VPC Peering)。
    6. IP アドレス範囲を指定します。
    7. 利用可能な範囲を Google に選択させるには、[自動] を選択して接頭辞長 20 を入力します。
    8. 特定の範囲を指定するには、[カスタム] を選択し、プレフィックス長が /23 以上の CIDR ブロック(10.128.0.0/20 など)を入力します。
    9. [割り振り] をクリックします。
  5. 割り当てられた範囲に関連付けられている CIDR ブロックをメモします。

    [サービスに割り振られた IP 範囲] テーブルで、作成した範囲を見つけて、[内部 IP 範囲] 列の値(10.128.0.0/20 など)をメモします。次の手順で、この範囲を送信元として指定します。

  6. 作成した IP 範囲からの TCP トラフィックを許可するファイアウォール ルールを作成します。

    1. Google Cloud コンソールで、[ファイアウォール ポリシー] ページに移動します。

    [ファイアウォール ポリシー] に移動

    1. [ファイアウォール ルールを作成] をクリックします。
    2. ファイアウォール ルールの [名前] を入力します。
    3. [ネットワーク] フィールドで、VPC ネットワークを選択します。
    4. [トラフィックの方向] で [上り(内向き)] をオンにします。
    5. [一致したときのアクション] で [許可] をオンにします。
    6. [ターゲット] で [ネットワーク上のすべてのインスタンス] を選択します。
    7. [ソースフィルタ] で [IPv4 範囲] を選択します。
    8. [送信元 IPv4 範囲] フィールドに、前の手順でメモした割り当てられた範囲の CIDR ブロックを入力します。
    9. [プロトコルとポート] で [指定したプロトコルとポート] をオンにします。
    10. [TCP] チェックボックスをオンにして、[ポート] フィールドに「988, 6988」と入力します。
    11. [作成] をクリックします。

    個別の VPC ネットワークの場合: クライアント VM または GKE クラスタが Network Connectivity Center を介して接続された個別の VPC ネットワークに存在する場合は、両方の VPC ネットワークのファイアウォール ルールで、割り当てられた IP 範囲からのトラフィックを許可する必要があります。ファイアウォール ルールを作成する... の手順を繰り返して、割り当てられた CIDR ブロックからポート 9886988 で上り(内向き)TCP トラフィックを許可するファイアウォール ルールをクライアント VPC ネットワークに作成します。

  7. プライベート サービス アクセス接続を確立します。

    この接続は、Managed Lustre インスタンスがプロビジョニングされている VPC ネットワークでのみ必要です。

    1. [VPC ネットワーク] ページで、VPC ネットワークの名前をクリックします。
    2. [プライベート サービス アクセス] タブを選択します。
    3. [サービスへのプライベート接続] タブを選択します。
    4. [接続を作成] をクリックします。
    5. [割り当て] リストで、作成した割り振り済みの IP 範囲を選択します。
    6. [接続] をクリックします。

gcloud

  1. サービス ネットワーキングを有効にします。

    gcloud services enable servicenetworking.googleapis.com
    
  2. カスタムモードで VPC ネットワークを作成します。

    gcloud compute networks create NETWORK_NAME \
      --subnet-mode=custom \
      --mtu=8896
    
  3. GKE リソースまたは Compute Engine リソースのプライマリ サブネットを作成します。

    gcloud compute networks subnets create SUBNET_NAME \
      --network=NETWORK_NAME \
      --range=10.128.0.0/20 \
      --region=REGION
    
  4. プライベート サービス アクセス用の IP 範囲を割り振ります。

    この内部 IP 範囲は、プライベート サービス アクセス接続に使用されます。この接続により、VPC ネットワークが Managed Lustre リソースがプロビジョニングされる Google 管理ネットワークとピアリングされます。この割り当てられた範囲は、Managed Lustre インスタンスに IP を提供するために使用されます。VPC ネットワーク内のサブネットと重複してはなりません。

    各 Managed Lustre インスタンスには、プレフィックス長が 23 以上の連続した CIDR ブロックが必要です。

    複数の Managed Lustre インスタンスの作成や他の Google Cloud サービスの利用を可能にするため、/20 の大きな IP 範囲を作成することをおすすめします。

    gcloud compute addresses create IP_RANGE_NAME \
      --global \
      --purpose=VPC_PEERING \
      --prefix-length=20 \
      --description="Managed Lustre VPC Peering" \
      --network=NETWORK_NAME
    
  5. 前の手順で作成した範囲に関連付けられた CIDR ブロックを取得します。

    CIDR_BLOCK=$(
      gcloud compute addresses describe IP_RANGE_NAME \
        --global  \
        --format="value[separator=/](address, prefixLength)"
    )
    
  6. 作成した IP 範囲からの TCP トラフィックを許可するファイアウォール ルールを作成します。

    gcloud compute firewall-rules create FIREWALL_NAME \
      --allow=tcp:988,tcp:6988 \
      --network=NETWORK_NAME \
      --source-ranges=$CIDR_BLOCK
    

    個別の VPC ネットワークの場合: クライアント VM または GKE クラスタが Network Connectivity Center を介して接続された個別の VPC ネットワークに存在する場合は、両方の VPC ネットワークのファイアウォール ルールで、割り当てられた IP 範囲($CIDR_BLOCK)からのトラフィックを許可する必要があります。firewall-rules create コマンドをもう一度実行して、クライアント VPC ネットワークにファイアウォール ルールを作成します。

     gcloud compute firewall-rules create CLIENT_FIREWALL_NAME \
        --allow=tcp:988,tcp:6988 \
        --network=CLIENT_NETWORK_NAME \
        --source-ranges=$CIDR_BLOCK
     
  7. プライベート サービス アクセス接続を確立します。

    gcloud services vpc-peerings connect \
      --network=NETWORK_NAME \
      --ranges=IP_RANGE_NAME \
      --service=servicenetworking.googleapis.com
    

    この接続は、Managed Lustre インスタンスがプロビジョニングされている VPC ネットワークでのみ必要です。

マルチ NIC 用に追加のサブネットを作成する

複数のネットワーク インターフェース カード(マルチ NIC)を使用して帯域幅を集約する場合は、NIC ごとに VPC ネットワーク内に個別のサブネットを作成する必要があります。

マルチ NIC のメリットを活かすには、通常の VPC に接続された複数の物理 NIC を備えた Compute Engine マシンタイプを使用する必要があります。RDMA ネットワーク プロファイルを持つ VPC に接続する NIC は、一般的なネットワーキング帯域幅の増加には使用できません。詳細については、ネットワーキングと GPU マシンをご覧ください。

追加の物理 NIC のサブネットを作成するには:

Google Cloud コンソール

  1. Google Cloud コンソールで、[VPC ネットワーク] ページに移動します。

    [VPC ネットワーク] に移動

  2. VPC ネットワークの名前をクリックします。

  3. [サブネットを追加] をクリックします。

  4. [新しいサブネット] セクションで、次の操作を行います。

    1. サブネットの名前を入力します。
    2. リージョンを選択します。
    3. IP アドレス範囲を入力します(例: 10.130.0.0/20)。
    4. [追加] をクリックします。

gcloud

gcloud compute networks subnets create SUBNET_NAME_2 \
  --network=NETWORK_NAME \
  --range=10.130.0.0/20 \
  --region=REGION

追加する NIC ごとにこの手順を繰り返します。各サブネットの IP 範囲が重複していないことを確認します。

VPC Service Controls

Managed Lustre は、VPC Service Controls(VPC-SC)をサポートしています。詳細については、サービス境界を使用してインスタンスを保護するをご覧ください。

VPC の設定のトラブルシューティング

サービス servicenetworking.googleapis.com のピアリングを追加する権限が拒否されました

ERROR: (gcloud.services.vpc-peerings.connect) User [$(USER)] does not have
permission to access services instance [servicenetworking.googleapis.com]
(or it may not exist): Permission denied to add peering for service
'servicenetworking.googleapis.com'.

このエラーは、ユーザー アカウントに servicenetworking.services.addPeering IAM 権限がないことを意味します。

アカウントに次のいずれかのロールを追加する手順については、IAM を使用したアクセス制御をご覧ください。

  • roles/compute.networkAdmin または
  • roles/servicenetworking.networksAdmin

CreateConnection で割り振り範囲を変更できない

ERROR: (gcloud.services.vpc-peerings.connect) The operation
"operations/[operation_id]" resulted in a failure "Cannot modify allocated
ranges in CreateConnection. Please use UpdateConnection."

このエラーは、異なる IP 範囲でこのネットワークに VPC ピアリングがすでに作成されている場合に返されます。考えられる解決法は次の 2 つです。

既存の IP 範囲を置き換えます。

Google Cloud コンソール

  1. Google Cloud コンソールで、[VPC ネットワーク] ページに移動します。

    [VPC ネットワーク] に移動

  2. VPC ネットワークの名前をクリックします。

  3. [プライベート サービス アクセス] タブを選択します。

  4. [プライベート サービス アクセス] タブで、[サービスへのプライベート接続] タブを選択します。

  5. 接続名(servicenetworking-googleapis-com など)をクリックします。

  6. [割り当て] リストで、新しい割り当て範囲を選択し、置き換える割り当て範囲のチェックボックスをオフにします。

  7. [保存] をクリックします。

gcloud

gcloud services vpc-peerings update \
  --network=NETWORK_NAME \
  --ranges=IP_RANGE_NAME \
  --service=servicenetworking.googleapis.com \
  --force

または、新しい IP 範囲を既存の接続に追加します。

Google Cloud コンソール

  1. Google Cloud コンソールで、[VPC ネットワーク] ページに移動します。

    [VPC ネットワーク] に移動

  2. VPC ネットワークの名前をクリックします。

  3. [プライベート サービス アクセス] タブを選択します。

  4. [プライベート サービス アクセス] タブで、[サービスへのプライベート接続] タブを選択します。

  5. 接続名をクリックします。

  6. [割り当て] リストで、既存の割り振り範囲を選択したまま、新しい割り振り範囲を選択します。

  7. [保存] をクリックします。

gcloud

  1. ピアリングの既存の IP 範囲のリストを取得します。

    EXISTING_RANGES="$(
      gcloud services vpc-peerings list \
        --network=NETWORK_NAME \
        --service=servicenetworking.googleapis.com \
        --format="value(reservedPeeringRanges.list())" \
        --flatten=reservedPeeringRanges
    )
    
  2. 次に、新しい範囲をピアリングに追加します。

    gcloud services vpc-peerings update \
      --network=NETWORK_NAME \
      --ranges="${EXISTING_RANGES}",IP_RANGE_NAME \
      --service=servicenetworking.googleapis.com
    

次のステップ