このドキュメントでは、プライベート サービス アクセスによって Cloud SQL にプライベート IP 接続が提供される仕組みについて説明します。また、IP アドレスの割り振り、ネットワークとセキュリティに関する考慮事項、複数の VPC への接続についても説明します。
プライベート サービス アクセス は、VPC ネットワーク ピアリング接続として、VPC ネットワークと、サービス提供者の VPC ネットワーク(Cloud SQL インスタンスが存在するネットワーク)との間に実装されます。このプライベート ネットワーク接続により、VPC ネットワーク内の VM インスタンスと Google Cloudアクセスするサービスは、プライベート IP アドレスを使用して Cloud SQL インスタンスと排他的に通信できます。VM インスタンスは、インターネット アクセスまたは外部 IP アドレスがなくても、プライベート サービス アクセスを介してサービスにアクセスできます。
IP アドレス
VPC ネットワークでプライベート サービス アクセスを使用するには、VPC で 1 つ以上の
IP アドレス範囲を使用できる必要があります
(IP アドレスの詳細については、IP アドレスをご覧ください)。
これらの範囲は、Cloud SQL と使用予定の他の Google Cloud
マネージド サービスに十分な大きさである必要があります。Cloud SQL と他の Google Cloud
サービスには、割り振られた範囲内にある専用の IP ブロックが必要です。
このようなブロックの最小サイズは 256 アドレス(プレフィックス長 /24)ですが、推奨サイズは 65,536
アドレス(プレフィックス長 /16)です。
複数のリージョンまたは別のデータベース タイプでインスタンスを作成する場合、各リージョンまたはデータベース タイプで使用可能な少なくとも /24 の IP アドレス範囲が必要です。これには、
Filestore や Memorystore などの他のアプリケーションが含まれます。
プライベート サービス アクセスを設定するときに、既存の範囲を選択するか、新しい範囲を割り振ることができます。次のセクションで説明するように、範囲の割り振りを Google Cloud に任せると、 Google Cloud はプレフィックス長 /24
の範囲を default-ip-rangeという名前で割り振ります。
個別の CIDR の範囲を使用する場合
Cloud SQL は IP 範囲の単位として /24 CIDR の範囲を使用するため、個別の /24 範囲が必要になる条件がいくつかあります。
- リージョン分離: 2 つの Cloud SQL インスタンスを 2 つの個別のリージョンに作成する場合は、少なくとも 2 つの 個別の /24 CIDR 範囲を割り当てる必要があります。各 IP 範囲の単位は、単一リージョン内の Cloud SQL インスタンスにのみ使用できます。
- ネットワーク アーキテクチャの分離の適用:
--enforce-new-sql-network-architectureフラグ(または同等の API フィールド)を使用して作成したインスタンスは、以前のネットワーク アーキテクチャを使用する同じプロジェクト内のインスタンスと、同じ IP 範囲の単位を共有できません。 新しいネットワーク アーキテクチャで作成するインスタンスには、 すべてのリージョンで専用の /24 範囲が必要です。
プライベート サービス アクセスの例
この例では、VPC ネットワークが Google Cloud サービスにアドレス
範囲 10.240.0.0/16 を割り振り、その範囲を使用してプライベート
接続を確立しています。各 Google Cloud サービス(
Cloud SQL など)は、割り振られたブロックからサブネットを作成し、Cloud SQL インスタンスなどの新しい
リソースを所定のリージョンにプロビジョニングします。
この図は、プライベート サービス アクセス構成の次の側面を示しています。
- プライベート接続には、
10.240.0.0/16割り当て範囲が割り当てられます。この割り振りを使用して Google Cloud 、サービスは新しいリソースがプロビジョニングされるサブネットを作成できます。 - は、プライベート接続の Google Cloud サービス側で Google Cloud お客様のプロジェクトを作成します。このプロジェクトは分離されて、他のお客様と共有されることはなく、費用はお客様がプロビジョニングしたリソースに対してのみ発生します。
- 各 Google Cloud サービスは、リソースをプロビジョニングするサブネットを作成します。
サブネットの IP アドレス範囲は通常、
/24クラスレス ドメイン間ルーティング(CIDR)ブロックです。これはサービスによって選択されるもので、割り振られた IP アドレス範囲から取得されます。サービス プロデューサーのサブネットは変更できません。 サービスは、そのサービスによって以前に作成された既存のリージョン サブネットに新しいリソースをプロビジョニングします。サブネットがいっぱいになると、サービスは同じリージョンに新しいサブネットを作成します。 - お客様のネットワーク内の VM インスタンスは、サービスがサポートしていれば、あらゆるリージョンのサービス リソースにアクセスできます。サービスによっては、リージョン間通信をサポートしていないものもあります。詳細については、関連するサービスのドキュメントをご覧ください。
- VM インスタンスが別のリージョンのリソースと通信する場合、 リージョン間トラフィックのアウトバウンド データ転送の費用が引き続き適用されます。
- Cloud SQL インスタンスには、IP アドレス
10.240.0.2が割り当てられます。お客様の VPC ネットワークで、宛先が10.240.0.2のリクエストは、サービス プロデューサーのネットワークを介してプライベート接続に転送されます。リクエストがサービス ネットワークに到達すると、サービス ネットワークにはリクエストを正しいリソースに送るルートがあります。 - VPC ネットワーク間のトラフィックは、パブリック インターネットではなく、 Google Cloud ネットワーク内で内部的に転送されます。
ネットワークに関する考慮事項
Cloud SQL は、リージョンごとにプライベート サービス アクセス IP 範囲から /24 サブネットを割り振ります。たとえば、MySQL インスタンスを 2 つのリージョンに配置するには、割り振られた IP アドレス範囲にサイズが /24 の利用可能なサブネットが少なくとも 2 つ含まれている必要があります。
プライベート IP アドレスを使用して Cloud SQL インスタンスへ接続すると、RFC 1918 アドレス範囲が自動的に承認されます。これにより、すべてのプライベート クライアントは、Cloud SQL Auth Proxy を経由せずにデータベースにアクセスできます。
Cloud SQL は、デフォルトでは VPC から RFC 1918 以外のサブネット ルートを学習しません。RFC 1918 以外のルートをエクスポートするには、Cloud SQL へのネットワーク ピアリングを更新する必要があります。
セキュリティ上の考慮事項
プライベート サービス アクセスを介したトラフィックでは、特定のレベルの暗号化が提供されています。詳細については、 Google Cloud 仮想ネットワークの暗号化と認証をご覧ください。
Cloud SQL Auth Proxy は、プライベート サービス アクセスを使用して接続するように構成できます。また、IAM 認証情報を使用して認証を行い、ローテーション SSL/TLS 証明書を使用してエンドツーエンドの暗号化を実施します。
セキュリティ要件で、ユーザーが管理するセルフマネージド SSL/TLS 証明書が必要とされる場合は、 SSL/TLS の構成方法をご覧ください。
プライベート IP アドレスを持つインスタンスごとに 1 つの VPC ネットワークを作成すると、すべてのインスタンスを「デフォルト」の VPC ネットワークに接続するよりも適切にネットワークが分離されます。
複数の VPC への接続
Cloud SQL では、 プライベート サービス アクセスによりプライベート IP アドレスがサポートされます。 Cloud SQL インスタンスを作成すると、Cloud SQL は Cloud SQL VPC という独自の VPC ネットワーク内にインスタンスを作成します。プライベート IP を有効にするには、Cloud SQL VPC と VPC ネットワークの間に ピアリング接続を設定する 必要があります。これにより、VPC ネットワーク内のリソースは、Cloud SQL VPC ネットワーク内の Cloud SQL リソースの内部 IP アドレスにアクセスできます。
Cloud SQL では、VPC ネットワーク ピアリングを使用してプライベート サービス アクセスを内部的に実装します。これにより、同じプロジェクトや組織に属しているかどうかにかかわらず、2 つの VPC ネットワーク間で内部 IP アドレスを接続できます。ただし、VPC ネットワーク ピアリングは推移的ではないため、ダイレクト ピアリングされている 2 つの VPC 間のルートのみをブロードキャストします。追加の VPC がある場合、元の VPC で設定された接続を使用して Cloud SQL リソースにアクセスすることはできません。
この制限を軽減し、プライベート IP アドレスを使用して Cloud SQL インスタンスを複数の VPC に接続するには、次の接続オプションを使用できます。
- カスタム アドバタイズ ルートを使用して接続する
- 中間プロキシ(SOCKS5)を使用して接続する
- Cloud SQL Auth Proxy をサービスとして使用して接続する
複数の VPC を接続する方法の詳細については、 インスタンスを複数の VPC ネットワークに接続するをご覧ください。
次のステップ
- IP アドレスについて学ぶ
- Cloud VPN の詳細を確認する。
- VPC ネットワークの詳細を確認する。
- VPC ネットワーク ピアリングの詳細を確認する。
- 共有 VPC の詳細を確認する。