プライベート IP

このページでは、プライベート IP を使用して Cloud SQL インスタンスに接続する方法について説明します。プライベート IP を使用するようにインスタンスを構成する手順については、プライベート IP 接続の構成をご覧ください。

概要

プライベート IP を使用して Cloud SQL インスタンスにアクセスできるようにするには、プライベート サービス アクセスを使用します。プライベート サービス アクセスは、お客様の VPC ネットワークと、Cloud SQL インスタンスが存在する Google サービスの VPC ネットワークとの間の VPC ピアリング接続として実装されます。プライベート サービス アクセスを使用する IP トラフィックは、公共のインターネットに公開されることはありません。

次の図は、プライベート IP 用に構成された Cloud SQL インスタンスと、ピアリングしたお客様の VPC ネットワーク上の Compute Engine インスタンスを、プライベート サービス アクセスを使用して Cloud SQL インスタンスに接続する方法を示しています。

プライベート IP 構成の図の概要。上記のテキストに記載。

プライベート サービス アクセスを使用して、Compute Engine インスタンスまたは Google Kubernetes Engine インスタンスから Cloud SQL インスタンスに接続できます。

利点

プライベート IP を使用して Cloud SQL に接続することには、パブリック IP アドレスを使用する場合に比べていくつかの利点があります。

  • ネットワーク レイテンシの短縮

    プライベート IP では、パブリック IP よりもレイテンシが短縮されます。

  • ネットワーク セキュリティの向上

    プライベート サービス アクセスのトラフィックは、公共のインターネットに公開されることはありません。

環境要件

プライベート IP を使用するには、ネットワークとアプリケーション環境が以下の要件を満たしている必要があります。また、初めてプライベート IP を設定するには、追加の IAM 権限が必要です。

ネットワークの要件

  • プライベート IP アドレスを使用して Cloud SQL インスタンスに接続するには、プライベート サービス アクセスを使用します。つまり、VPC ネットワーク ピアリングを使用して、VPC ネットワークを Google 管理の VPC ネットワークに接続します。Cloud SQL インスタンスは、この Google 管理の VPC ネットワーク内のサブネットを使用します。

    • プライベート IP アドレスの Cloud SQL インスタンスにアクセスできるのは、1 つの VPC ネットワークだけです。それぞれのプライベート サービス アクセス接続で、1 つの VPC ネットワークと 1 つの VPC ネットワーク ピアリング接続を確立する必要があります。

    • プライベート IP アドレスの Cloud SQL インスタンスとプライベート サービスで接続している VPC ネットワークと VPC ネットワーク ピアリングで接続し、この Cloud SQL インスタンスに別の VPC ネットワークからアクセスすることはできません。

    • Cloud VPN トンネル、インスタンス ベースの VPN または Cloud Interconnect を使用している別のネットワークから、プライベート IP アドレスの Cloud SQL インスタンスにアクセスすることはできません。この制限は、オンプレミス ネットワークと他の VPC ネットワークの両方に適用されます。

    • レガシー ネットワークから Cloud SQL インスタンスのプライベート IP に接続することはできません。レガシー ネットワークでは、VPC ネットワーク ピアリングやプライベート サービス アクセスがサポートされていません。

  • プライベート IP アドレスの Cloud SQL インスタンスにアクセスするには、同じリージョンの GCP リソースを使用する必要があります。

  • VPC ネットワーク内の Cloud SQL インスタンスには、割り当てられる IP アドレス範囲を定義する必要があります。この範囲は、プライベート サービス アクセス接続(その結果の VPC ネットワーク ピアリングも含む)に使用できる IP アドレスの CIDR ブロックです。これらの IP アドレスを VPC ネットワーク内で使用することはできません。割り当てられる IP アドレス範囲を定義することで、VPC ネットワークのカスタムルートのサブネット IP 範囲と宛先に、プライベート サービス アクセス接続と重複しない値を設定できます。CIDR ブロックを制御する場合は、割り当てられる IP 範囲を手動で作成できます。また、GCP で自動的に作成することもできます。

  • 共有 VPC ネットワークではプライベート IP アドレスを持つ Cloud SQL インスタンスを作成できますが、GCP で既存の Cloud SQL インスタンスのプライベート IP アドレスを共有 VPC ネットワークのアドレスに割り当てることはできません。

アプリケーション環境要件

  • GKE から接続する場合は、VPC ネイティブ クラスタ上で GKE 1.8 以降を実行している必要があります。

  • App Engine から接続する場合は、フレキシブル環境を使用する必要があります。スタンダード環境からプライベート IP を使用して接続することはできません。

API と IAM の要件

  • プロジェクトで Service Networking API を有効にする必要があります。共有 VPC を使用している場合は、ホスト プロジェクトでもこの API を有効にする必要があります。

    API を有効にするには、servicemanagement.services.bind IAM の権限が必要です。

  • プライベート サービス アクセスを確立するには、Network Administrator の IAM 役割が必要です。

    ネットワークでプライベート サービス アクセスを確立した後、プライベート IP を使用するようインスタンスを構成するために Network Administrator の役割は必要ありません。

セキュリティ

プライベート サービス アクセスのトラフィックは暗号化され、認証されます。詳細については、Google Cloud の仮想ネットワークの暗号化と認証をご覧ください。セキュリティ要件により、管理する SSL / TLS 証明書が必要とされる場合は、SSL / TLS の構成の手順に従って、SSL / TLS をインスタンスに追加できます。

ネットワークのプライベート サービス アクセスの設定の概要

特定のネットワーク上で初めてプライベート IP を使用するように Cloud SQL インスタンスを構成する場合は、この一般的なプロセスに従って、そのネットワークに対するプライベート サービス アクセスを設定します。これらの手順は、Google Cloud Platform Console で Cloud SQL インスタンスを作成する際にガイドされます。

  1. 接続元のリソースが存在する VPC ネットワークを選択します。

  2. 選択した VPC ネットワークと Cloud SQL サービスに対してプライベート サービス アクセスがまだ確立されていない場合は、これを有効にする必要があります。そのためには、お客様のネットワークから割り当てられた IP アドレス範囲が必要です。

    1. 使用する IP 範囲をすでに割り当てている場合は、その範囲を選択して続行します。

    2. IP 範囲の割り当てを Cloud SQL に任せる場合は、そのオプションを選択して続行します。

    3. プライベート接続に割り当てる IP 範囲を手動で選択する場合は、gcloud コマンドライン インターフェース ツールを使用して IP 範囲を作成した後、Cloud SQL インスタンス作成フローに戻って新しく作成した IP 範囲を選択する必要があります。詳細については、IP アドレス範囲の割り当てをご覧ください。

プライベート サービス アクセスを確立したら、gcloud コマンドライン ツールまたは Cloud SQL Admin API と Google Cloud Platform Console を使用して、Cloud SQL インスタンスを作成してプライベート IP を使用するように構成したり、既存の Cloud SQL インスタンスにプライベート IP を構成したりできます。詳細については、プライベート IP をご覧ください。

管理に関する考慮事項

プライベート IP を使用して Cloud SQL インスタンスを管理する場合、以下の点に注意する必要があります。

  • プライベート IP を使用するように Cloud SQL インスタンスを構成した後で、そのインスタンスからプライベート IP 機能を削除することはできません。

  • インスタンスの作成時または作成後に、プライベート IP を使用するようにインスタンスを構成できます。

  • プライベート IP を使用するように既存のインスタンスを構成するか、接続先のネットワークを変更すると、インスタンスが再起動されます。これにより、数分間のダウンタイムが発生します。

  • Cloud SQL インスタンスはプロデューサー ネットワーク(Google 内部の VPC ネットワーク)に作成されます。お客様の VPC ネットワークには作成されません。

  • Cloud SQL インスタンスのプライベート IP アドレスは静的です。これは変更できません。

  • プライベート IP を使用するように既存のインスタンスを構成するとき、そのインスタンスに対して同時に他の更新を行うことはできません。

  • レプリカはプライマリ インスタンスからプライベート IP のステータスを継承します。プライベート IP をレプリカ上で直接構成することはできません。

  • パブリック IP とプライベート IP の両方を使用して Cloud SQL インスタンスに接続できます。どちらの接続方法も他方に影響しません。プライベート IP を使用するようにインスタンスを構成しているかどうかにかかわらず、パブリック IP 接続を保護する必要があります。

  • Cloud SQL Proxy を使用して、プライベート IP を使用するように構成されたインスタンスに接続できます。プロキシは、プライベート IP アドレスまたはパブリック IP アドレスを使用して接続できます。Cloud SQL Proxy を使用して、パブリック IP アドレスとプライベート IP アドレスの両方が割り当てられているインスタンスに接続する場合、プロキシはデフォルトではパブリック IP アドレスを使用します。 詳細についてはこちらをご覧ください。

  • プライベート サービス アクセス接続は VPC ネットワーク ピアリングに依存します。ただし、このピアリングは GCP の内部にあるため、VPC ネットワーク ピアリングを明示的に作成する必要はありません。プライベート サービス アクセス接続を作成した後、その基になる VPC ネットワーク ピアリングの情報は GCP Console の VPC ネットワーク ピアリングのページで確認できますが、プライベート接続を削除する場合を除き、そのページで VPC ネットワーク ピアリングを削除しないでください。

  • プライベート サービス アクセス接続を確立し、その接続用のプライベート IP が構成された Cloud SQL インスタンスを作成した後、それに対応する、Cloud SQL サービスによって使用される(内部)サブネットおよび範囲を変更または削除することはできません。これはピアリングと IP 範囲を削除した場合にも当てはまります。内部構成が確立された後にその同じリージョンで作成された、プライベート IP 用に構成された Cloud SQL インスタンスは、元の内部構成を使用します。

  • 第 1 世代インスタンスでは、プライベート IP を使用できません。

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...