このチュートリアルでは、Private Service Connect を使用して、ロード バランシングされたサービスを他の VPC ネットワークから利用できるようにする方法について説明します。
デフォルトでは、前のチュートリアルで作成した内部パススルー ネットワーク ロードバランサは、独自の VPC ネットワーク内でのみ使用できます。Private Service Connect を使用すると、サービスを公開して、他の VPC ネットワークのリソースで利用できるようにすることができます。
このチュートリアルは、クラウド アーキテクト、ネットワーク アーキテクト、ネットワーク管理者、IT 管理者を対象としています。
目標
- 公開サービスを作成する
- 公開サービス トラフィックのファイアウォール ルールを作成する
- サービス アタッチメントの URI を取得する
費用
このドキュメントでは、課金対象である次のコンポーネントを使用します。 Google Cloud
料金計算ツールを使うと、予想使用量に基づいて費用の見積もりを生成できます。
このドキュメントに記載されているタスクの完了後、作成したリソースを削除すると、それ以上の請求は発生しません。詳細については、クリーンアップをご覧ください。
始める前に
- 前のチュートリアル「 ロード バランシングされたサービスを作成する」の手順を完了します。
- 前のチュートリアルで選択または作成したサービス プロデューサー プロジェクト(
PRODUCER_PROJECT)を選択します。このチュートリアルの手順では、このプロジェクトを使用します。
公開サービスを作成する
他の VPC ネットワークからサービスを利用できるようにするには、サービスを公開します。サービスを公開するには、ロードバランサと同じネットワークとリージョンに次のリソースを作成します。
- プロデューサー ネットワークとコンシューマ ネットワーク間のネットワーク アドレス変換(NAT)の IP アドレスを提供する Private Service Connect サブネット。
- サービス アタッチメント。
この手順では、任意のプロジェクトからアクセスできる公開サービスを作成します。本番環境では、サービスにアクセスできるネットワークまたはプロジェクトを制限することをおすすめします。
コンソール
Google Cloud コンソールで、[Private Service Connect] ページに移動します。
[公開サービス] タブをクリックします。
[サービスを公開] をクリックします。
[ターゲットの詳細] セクションで、[ロードバランサ] を選択します。
[内部パススルー ネットワーク ロードバランサ] を選択します。
作成した内部ロードバランサ
service-lbを選択します。[**サービス名**] に
published-serviceと入力します。NAT 用の Private Service Connect サブネットを作成します。
- [**サブネット**] をクリックし、[**新しいサブネットの予約**] をクリックします。
- [名前] に
nat-subnetと入力します。 - [リージョン] で
REGIONを選択します。 - [IPv4 範囲] に
10.10.20.0/22と入力します。 - [追加] をクリックします。
[**接続の設定**] で、[**すべての接続を自動的に受け入れる**] を選択します。
[サービスを追加] をクリックします。
gcloud
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
サービスを公開するには、
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 に到達できるようにするファイアウォール ルールを作成します。
コンソール
コンソールで、[**ファイアウォール ポリシー**] ページに移動します。 Google Cloud
Private Service Connect NAT サブネットからのトラフィックがロードバランサのバックエンド VM に到達できるようにするには、[ファイアウォール ルールを作成] をクリックして、次の設定を使用します。
- [名前] に
fw-allow-natと入力します。 - [ネットワーク] で
service-networkを選択します。 - [**優先度**] に
1000と入力します。 - [**トラフィックの方向**] で [**上り(内向き)**] をオンにします。
- [一致したときのアクション] で [許可] をオンにします。
- [ターゲット] で [指定されたターゲットタグ] を選択します。
- [ターゲットタグ] に
allow-natと入力します。 - [**ソースフィルタ**] で [**IPv4 範囲**] を選択します。
- [送信元 IPv4 範囲] に
10.10.20.0/22と入力します。 - [**プロトコルとポート**] で [**すべて許可**] を選択します。
- [名前] に
[作成] をクリックします。
gcloud
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 ネットワークからサービスにアクセスする」でエンドポイントを構成するために使用します。
コンソール
Google Cloud コンソールで、[Private Service Connect] ページに移動します。
[公開サービス] タブをクリックします。
表示するサービスをクリックします。
[サービス アタッチメント] フィールドには、サービス アタッチメントの URI が含まれています。
gcloud
gcloud compute service-attachments describeコマンドを使用して、公開サービスの詳細を表示します。selfLinkフィールドに、サービス アタッチメント URI が示されます。gcloud compute service-attachments describe \ published-service --region=REGIONREGIONは、サービス アタッチメントを含むリージョンに置き換えます。