他の 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. fw-allow-nat ファイアウォール ルールを作成して、Private Service Connect NAT サブネットから VM バックエンドへの通信を許可します。

    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 は、サービス アタッチメントを含むリージョンに置き換えます。

次のステップ