他の VPC ネットワークからサービスにアクセスできるようにする

このチュートリアルでは、Private Service Connect を使用して、ロード バランシングされたサービスを他の VPC ネットワークから利用できるようにする方法について説明します。

デフォルトでは、前のチュートリアルで作成した内部パススルー ネットワーク ロードバランサは、独自の VPC ネットワーク内でのみ使用できます。Private Service Connect を使用すると、サービスを公開して、他の VPC ネットワークのリソースで利用できるようにすることができます。

このチュートリアルは、クラウド アーキテクト、ネットワーク アーキテクト、ネットワーク管理者、IT 管理者を対象としています。

目標

  • 公開サービスを作成する
  • 公開サービス トラフィックのファイアウォール ルールを作成する
  • サービス アタッチメントの URI を取得する

費用

このドキュメントでは、課金対象である次のコンポーネントを使用します。 Google Cloud

料金計算ツールを使うと、予想使用量に基づいて費用の見積もりを生成できます。

新規の Google Cloud ユーザーは無料トライアルをご利用いただける場合があります。

このドキュメントに記載されているタスクの完了後、作成したリソースを削除すると、それ以上の請求は発生しません。詳細については、クリーンアップをご覧ください。

始める前に

  1. 前のチュートリアル「 ロード バランシングされたサービスを作成する」の手順を完了します。
  2. 前のチュートリアルで選択または作成したサービス プロデューサー プロジェクト(PRODUCER_PROJECT)を選択します。このチュートリアルの手順では、このプロジェクトを使用します。

公開サービスを作成する

他の VPC ネットワークからサービスを利用できるようにするには、サービスを公開します。サービスを公開するには、ロードバランサと同じネットワークとリージョンに次のリソースを作成します。

  • プロデューサー ネットワークとコンシューマ ネットワーク間のネットワーク アドレス変換(NAT)の IP アドレスを提供する Private Service Connect サブネット。
  • サービス アタッチメント。

この手順では、任意のプロジェクトからアクセスできる公開サービスを作成します。本番環境では、サービスにアクセスできるネットワークまたはプロジェクトを制限することをおすすめします。

コンソール

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

    [Private Service Connect] に移動

  2. [公開サービス] タブをクリックします。

  3. [サービスを公開] をクリックします。

  4. [ターゲットの詳細] セクションで、[ロードバランサ] を選択します。

  5. [内部パススルー ネットワーク ロードバランサ] を選択します。

  6. 作成した内部ロードバランサ service-lb を選択します。

  7. [**サービス名**] に published-service と入力します。

  8. NAT 用の Private Service Connect サブネットを作成します。

    1. [**サブネット**] をクリックし、[**新しいサブネットの予約**] をクリックします。
    2. [名前] に nat-subnet と入力します。
    3. [リージョン] で REGION を選択します。
    4. [IPv4 範囲] に 10.10.20.0/22 と入力します。
    5. [追加] をクリックします。
  9. [**接続の設定**] で、[**すべての接続を自動的に受け入れる**] を選択します。

  10. [サービスを追加] をクリックします。

gcloud

  1. gcloud compute networks subnets create コマンドを使用して、Private Service Connect サブネットを作成します。

    gcloud compute networks subnets create nat-subnet \
      --network=service-network \
      --region=REGION \
      --range=10.10.20.0/22 \
      --purpose=PRIVATE_SERVICE_CONNECT
    
  2. サービスを公開するには、gcloud compute service-attachments create コマンドを使用します。

    gcloud compute service-attachments create published-service \
      --region=REGION \
      --target-service=projects/PRODUCER_PROJECT/regions/REGION/forwardingRules/service-rule \
      --connection-preference=ACCEPT_AUTOMATIC \
      --nat-subnets=nat-subnet
    

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

    • PRODUCER_PROJECT: プロデューサー プロジェクトの ID。
    • REGION: サービス アタッチメントのリージョン。 これは、ターゲット転送ルールの IP アドレスと同じリージョンにする必要があります。

公開サービス トラフィックのファイアウォール ルールを作成する

Private Service Connect NAT サブネットからのトラフィックがロードバランサのバックエンド VM に到達できるようにするファイアウォール ルールを作成します。

コンソール

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

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

  2. Private Service Connect NAT サブネットからのトラフィックがロードバランサのバックエンド VM に到達できるようにするには、[ファイアウォール ルールを作成] をクリックして、次の設定を使用します。

    • [名前] に fw-allow-nat と入力します。
    • [ネットワーク] で service-network を選択します。
    • [**優先度**] に 1000 と入力します。
    • [**トラフィックの方向**] で [**上り(内向き)**] をオンにします。
    • [一致したときのアクション] で [許可] をオンにします。
    • [ターゲット] で [指定されたターゲットタグ] を選択します。
    • [ターゲットタグ] に allow-nat と入力します。
    • [**ソースフィルタ**] で [**IPv4 範囲**] を選択します。
    • [送信元 IPv4 範囲] に 10.10.20.0/22 と入力します。
    • [**プロトコルとポート**] で [**すべて許可**] を選択します。
  3. [作成] をクリックします。

gcloud

  1. Private Service Connect NAT サブネットから VM バックエンドへの通信を許可する fw-allow-nat ファイアウォール ルールを作成します。

    gcloud compute firewall-rules create fw-allow-nat \
        --network=service-network \
        --action=allow \
        --direction=ingress \
        --source-ranges=10.10.20.0/22 \
        --rules=tcp,udp,icmp
    

サービス アタッチメントの URI を取得する

サービス アタッチメントの URI は、次の チュートリアル「別の VPC ネットワークからサービスにアクセスする」でエンドポイントを構成するために使用します。

コンソール

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

    [Private Service Connect] に移動

  2. [公開サービス] タブをクリックします。

  3. 表示するサービスをクリックします。

    [サービス アタッチメント] フィールドには、サービス アタッチメントの URI が含まれています。

gcloud

  1. gcloud compute service-attachments describe コマンドを使用して、公開サービスの詳細を表示します。

    selfLink フィールドに、サービス アタッチメント URI が示されます。

    gcloud compute service-attachments describe \
        published-service --region=REGION
    

    REGION は、サービス アタッチメントを含むリージョンに置き換えます。

次のステップ