このページでは、Private Service Connect に関連するコンセプトについて説明します。Private Service Connect は、次の目的で使用できます。
- 異なるグループ、チーム、プロジェクト、組織に属する複数の VPC ネットワークから Cloud SQL インスタンスに接続する
- プライマリ インスタンスまたはそのリードレプリカのいずれかに接続する
Private Service Connect エンドポイント
Private Service Connect エンドポイントを使用すると、コンシューマ VPC ネットワークから Cloud SQL インスタンスにプライベート接続でアクセスできます。これらのエンドポイントは、Cloud SQL インスタンスのサービス アタッチメントを参照する転送ルールに関連付けられた内部 IP アドレスです。
エンドポイントは、Cloud SQL で自動的に作成することも、手動で作成することもできます。
Cloud SQL でエンドポイントを自動的に作成するには、次の操作を行います。
- VPC ネットワークにサービス接続ポリシーを作成します。
Private Service Connect が有効になっている Cloud SQL インスタンスを作成し、エンドポイントを自動的に作成するようにインスタンスを構成します。インスタンスを作成するときに、VPC ネットワークやプロジェクトなどの自動接続パラメータを指定します。
Cloud SQL は、これらのネットワークでサービス接続ポリシーを見つけ、インスタンスのサービス アタッチメントを指す Private Service Connect エンドポイントを作成します。
インスタンスを作成し、Cloud SQL がエンドポイントを作成すると、対応する VPC ネットワーク内のクライアントは、IP アドレスまたは DNS レコードを介してエンドポイントからインスタンスに接続できます。Cloud SQL でエンドポイントを自動的に作成するこの機能は、プレビュー版で利用できます。
エンドポイントを手動で作成する手順は次のとおりです。
- Private Service Connect が有効になっている Cloud SQL インスタンスを作成します。
- エンドポイントを手動で作成するために必要なサービス アタッチメント URI を取得します。
エンドポイント用に VPC ネットワーク内の内部 IP アドレスを予約し、そのアドレスでエンドポイントを作成します。
インスタンスを作成し、Cloud SQL がエンドポイントを作成すると、対応する VPC ネットワーク内のクライアントは、IP アドレスまたは DNS レコードを介してエンドポイントからインスタンスに接続できます。
サービス接続ポリシー
サービス接続ポリシーを使用すると、指定したサービスクラスに、VPC ネットワーク間の Private Service Connect 接続の作成を許可できます。これにより、Private Service Connect エンドポイントを自動的にプロビジョニングできます。これはプレビュー版で利用できます。
サービスクラス、リージョン、VPC ネットワークの組み合わせごとに作成できるポリシーは 1 つだけです。ポリシーは、特定の組み合わせに対するサービス接続の自動化を指示します。ポリシーを構成するときは、サブネットを選択します。サブネットは、ポリシーを介して作成するエンドポイントの IP アドレスを割り振るために使用されます。複数のサービス接続ポリシーが同じリージョンを共有している場合は、すべてのポリシーで同じサブネットを再利用できます。
たとえば、3 つの異なるリージョンで 2 つのサービスを使用してサービス接続の自動化を使用する場合は、6 つのポリシーを作成します。少なくとも 3 つのサブネットを使用できます(リージョンごとに 1 つ)。
サービス接続ポリシーを作成した後に更新できるのは、ポリシーのサブネットと接続上限のみです。他のフィールドを更新する必要がある場合は、次の操作を行います。
- ポリシーを使用する接続をすべて削除します。
- ポリシーを削除します。
- 新しいポリシーを作成します。
サービス アタッチメント
Cloud SQL インスタンスを作成し、Private Service Connect を使用するようにインスタンスを構成すると、Cloud SQL はインスタンスのサービス アタッチメントを自動的に作成します。サービス アタッチメントは、VPC ネットワークがインスタンスへのアクセスに使用するアタッチメント ポイントです。
VPC ネットワークがサービス アタッチメントに接続するために使用する Private Service Connect エンドポイントを作成します。これにより、ネットワークがインスタンスにアクセスできるようになります。
各 Cloud SQL インスタンスには、Private Service Connect エンドポイントが VPC ネットワーク経由で接続できるサービス アタッチメントが 1 つあります。複数のネットワークがある場合、各ネットワークには独自のエンドポイントがあります。
DNS 名とレコード
Private Service Connect が有効になっているインスタンスの場合は、DNS 名を使用することをおすすめします。これは、異なるネットワークが同じインスタンスに接続でき、各ネットワークの Private Service Connect エンドポイントが異なる IP アドレスを持つ可能性があるためです。また、Cloud SQL Auth Proxy がこれらのインスタンスに接続するには、DNS 名が必要です。
Cloud SQL では DNS レコードは自動的には作成されません。代わりに、インスタンスのルックアップ API レスポンスから推奨される DNS 名から提供されます。対応する VPC ネットワークの限定公開 DNS ゾーンに DNS レコードを作成することをおすすめします。これにより、異なるネットワークからでも一貫した方法で接続できます。
許可された Private Service Connect プロジェクト
許可されたプロジェクトは、VPC ネットワークに関連付けられており、各 Cloud SQL インスタンスに固有のものです。許可されたプロジェクトにインスタンスが含まれていない場合、インスタンスで Private Service Connect を有効にすることはできません。
これらのプロジェクトでは、インスタンスごとに Private Service Connect エンドポイントを作成できます。プロジェクトが明示的に許可されていない場合でも、プロジェクト内のインスタンスのエンドポイントを作成できますが、エンドポイントは PENDING
状態で保持されます。
Private Service Connect エンドポイントの伝播
デフォルトでは、Private Service Connect 接続はピアリングされた VPC ネットワークから推移的ではありません。Cloud SQL インスタンスに接続する必要がある各 VPC ネットワークに Private Service Connect エンドポイントを作成する必要があります。たとえば、インスタンスに接続する VPC ネットワークが 3 つある場合は、3 つの Private Service Connect エンドポイント(VPC ネットワークごとに 1 つのエンドポイント)を作成する必要があります。
ただし、Network Connectivity Center ハブを介して Private Service Connect エンドポイントを伝播すると、これらのエンドポイントは同じハブ内の他のスポーク VPC ネットワークから到達可能になります。ハブは、スポーク VPC ネットワークを Private Service Connect エンドポイントに相互接続するための一元化された接続管理モデルを提供します。
Network Connectivity Center の接続伝播機能は、Private Service Connect デプロイの次のユースケースで役立ちます。
共通サービス VPC ネットワークを使用して、複数の Private Service Connect エンドポイントを作成できます。1 つの共通サービス VPC ネットワークを Network Connectivity Center ハブに追加すると、VPC ネットワーク内のすべての Private Service Connect エンドポイントが、ハブを介して他のスポーク VPC ネットワークに推移的にアクセスできるようになります。この接続により、各 VPC ネットワーク内の Private Service Connect エンドポイントを個別に管理する必要がなくなります。
Network Connectivity Center ハブを使用して Private Service Connect エンドポイントをスポーク VPC ネットワークに伝播する方法については、Network Connectivity Center - Private Service Connect の伝播 Codelab をご覧ください。
次のステップ
- プライベート IP の詳細を確認する。
- Private Service Connect を使用してインスタンスに接続する方法を確認する。