プライベート IP の構成

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

プライベート IP の仕組み(環境と管理に関する要件を含む)については、プライベート IP をご覧ください。

始める前に

プライベート IP を使用するように Cloud SQL インスタンスを構成する前に、次の点を考慮する必要があります。

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

  • 使用する VPC ネットワークを選択します。

  • 1 回のみ: VPC ネットワークプライベート サービス アクセスを構成し、IP アドレス範囲を割り当ててプライベート サービス接続を作成します。これにより、VPC ネットワーク内のリソースは Cloud SQL インスタンスに接続できます。

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

      ネットワークでプライベート サービス アクセスを確立した後は、Network Administrator ロールがなくても、プライベート IP を使用するようにインスタンスを構成できます。

    • Cloud SQL インスタンスにプライベート IP を使用する場合は、Cloud SQL インスタンスに接続する必要のあるすべての Google Cloud プロジェクトに対して、プライベート サービス アクセスを一度のみ構成する必要があります。詳しくは、プライベート サービス アクセスをご覧ください。

以下のすべての条件に該当する場合、Cloud SQL はプライベート サービス アクセスを構成します。

  • Google Cloud プロジェクトでプライベート サービス アクセスがまだ構成されていない。
  • Google Cloud プロジェクトの Cloud SQL インスタンスに対して初めてプライベート IP を有効にする。
  • インスタンスの Connections ページでプライベート IP を有効にするときに、default に関連付けられたネットワーキングと Use an automatically allocated IP range オプションの両方を選択する。

プライベート IP を使用するようにインスタンスを構成する

インスタンスの作成時に、プライベート IP を使用するように Cloud SQL インスタンスを構成できます。また、同じ構成を既存のインスタンスに行うこともできます。

新しいインスタンスにプライベート IP を構成する

インスタンスの作成時に Cloud SQL インスタンスがプライベート IP を使用するように構成するには:

Console

  1. Google Cloud Console の Cloud SQL インスタンス ページに移動します。

    [Cloud SQL インスタンス] ページに移動

  2. [インスタンスを作成] をクリックします。
  3. 作成ウィザードの [構成オプション] で、[接続] セクションを展開します。
  4. [プライベート IP] チェックボックスをオンにします。

    プルダウン リストに、プロジェクトで使用可能な VPC ネットワークが表示されます。プロジェクトが共有 VPC のサービス プロジェクトである場合、ホスト プロジェクトの VPC ネットワークも表示されます。

  5. 使用する VPC ネットワークを選択します。
  6. プライベート サービス アクセスを構成した場合:

    1. 使用する VPC ネットワークを選択します。
    2. [接続] をクリックします。
    3. 割り当てた IP アドレス範囲がプルダウンに表示されます。

    4. [作成] をクリックします。
    5. [保存] をクリックします。

    Cloud SQL に範囲の割り当てを委任してプライベート接続を作成するには:

    1. デフォルトの VPC ネットワークを選択します。
    2. [割り当てて接続] をクリックします。
    3. [保存] をクリックします。

gcloud

まだ行っていない場合は、次の手順で Cloud SQL にプライベート サービス アクセスを構成します。選択した VPC ネットワークの名前を --network パラメータを使用して指定し、Cloud SQL インスタンスを作成します。また、パブリック IP を無効にすることを示す --no-assign-ip フラグを使用します。

VPC ネットワークが共有 VPC ネットワークでない場合、-network パラメータの値は次の形式になります。 https://www.googleapis.com/compute/alpha/projects/[PROJECT_ID]/global/networks/[VPC_NETWORK_NAME]

VPC ネットワークが共有 VPC ネットワークの場合、-network パラメータ値の形式は projects/HOST_PROJECT_ID/global/networks/VPC_NETWORK_NAME になります。HOST_PROJECT_ID は共有 VPC ホスト プロジェクトの名前、VPC_NETWORK_NAME は共有 VPC ネットワークの名前です。

gcloud --project=[PROJECT_ID] beta sql instances create [INSTANCE_ID]
       --network=[VPC_NETWORK_NAME]
       --no-assign-ip

既存のインスタンスにプライベート IP を構成する

プライベート IP を使用するように既存の Cloud SQL インスタンスを構成すると、インスタンスが再起動し、ダウンタイムが生じます。

プライベート IP を使用するように既存のインスタンスを構成するには:

Console

  1. Google Cloud Console の Cloud SQL インスタンス ページに移動します。
    [Cloud SQL インスタンス] ページに移動
  2. インスタンス名をクリックして [概要] ページを開きます。
  3. [接続] タブを選択します。
  4. [プライベート IP] チェックボックスをオンにします。

    プルダウン リストには、プロジェクトで使用可能なネットワークが表示されます。プロジェクトが共有 VPC のサービス プロジェクトである場合、ホスト プロジェクトの VPC ネットワークも表示されます。

  5. プライベート サービス アクセスを構成した場合:
    1. 使用する VPN ネットワークを選択します。
    2. 割り当てた IP アドレス範囲がプルダウンに表示されます。

    3. [接続] をクリックします。
    4. [保存] をクリックします。
  6. Cloud SQL に IP アドレスの割り当てを委任するには:
    1. デフォルトの VPC ネットワークを選択します。
    2. [割り当てて接続] をクリックします。
    3. [保存] をクリックします。

gcloud

まだ行っていない場合は、次の手順で Cloud SQL にプライベート サービス アクセスを構成します。--network パラメータを使用して、選択した VPC ネットワークの名前を指定し、Cloud SQL インスタンスを更新します。

VPC_NETWORK_NAME は、選択した VPC ネットワークの名前です。たとえば、my-vpc-network。--network パラメータの値の形式は https://www.googleapis.com/compute/alpha/projects/[PROJECT_ID]/global/networks/[VPC_NETWORK_NAME] になります。

gcloud --project=[PROJECT_ID] beta sql instances patch [INSTANCE_ID]
       --network=[VPC_NETWORK_NAME]
       --no-assign-ip

プライベート IP を使用してインスタンスに接続する

プライベート サービス アクセスを使用して、同じ VPC ネットワーク内の Compute Engine または Google Kubernetes Engine(ここでは内部ソース)から、またはネットワーク外(外部ソース)から Cloud SQL インスタンスに接続します。

内部ソースから接続する

Cloud SQL インスタンスと同じ Google Cloud プロジェクトのソース(Compute Engine リソースで実行されている Cloud SQL Proxy など)から接続するには、そのリソースが Cloud SQL インスタンスと同じ VPC ネットワークに存在している必要があります。

外部ソースから接続する

Cloud SQL インスタンスと同じ Google Cloud プロジェクトにないソースから接続するには、そのソースと VPC ネットワークの間に接続を確立する必要があります。これは、Cloud VPN を使用して行います。

  1. VPN を作成し、VPN トンネル経由で VPC ネットワーク ピアリングを設定します。
    • オンプレミス ソースの場合の手順は、こちらの Cloud VPN の入門ページをご覧ください。
    • 別の Google Cloud プロジェクトのソースの詳しい手順については、こちらの Cloud VPN 入門ページをご覧ください。
  2. ピアリング接続を介してソース ネットワークから Cloud SQL VPC ネットワークにカスタムルートをエクスポートするように VPC ネットワークを構成します。この手順は、使用するデータベース エンジンの種類(MySQL、PostgreSQL、SQL Server)ごとに実行する必要があります。
  3. Console

    1. Google Cloud Console の Cloud SQL インスタンス ページに移動します。

      [Cloud SQL インスタンス] ページに移動

    2. プライベート IP を持つインスタンスを新規に作成するか、既存のインスタンスにプライベート IP を構成します。
    3. VPN と Cloud SQL VPC ネットワークの間にネットワーク ピアリングが存在することを確認します。
      1. [VPC ネットワークの詳細] ページの [VPC ネットワーク ピアリング] リンクに移動します。
      2. [名前] で cloudsql-sqlserver-googleapis-com を探します。
    4. ネットワーク ピアリングでエクスポートが有効になっていることを確認します。
      1. [カスタムルートの交換] を確認します。[カスタムルートのエクスポート] が表示されている場合は、手順 4 に進みます。
      2. ピアリングの名前をクリックして、[ピアリング接続の詳細] ページを表示します。
      3. [編集] をクリックします。
      4. [カスタムルートのエクスポート] をオンにします。
      5. [保存] をクリックします。
    5. ソース ネットワークにルートを追加します。
      1. IP 範囲: 予約済みの IP 範囲を追加します。これは、[VPC ネットワークの詳細] ページの [送信先 IP 範囲] にある [ルート] リンクで確認できます。
      2. ネクストホップ: VPN ゲートウェイを追加します。VPN トンネルは [ネクストホップ] で確認できます。

    gcloud

    1. プライベート IP を持つインスタンスを新規に作成するか、既存のインスタンスにプライベート IP を構成します。
    2. ネットワーク ピアリングでエクスポートが有効になっていることを確認します。
      1. カスタムルートをエクスポートします。

        gcloud beta compute networks peerings update 
        cloudsql-mysql-googleapis-com --network=[customers network]
        --export-custom-routes
    3. オンプレミス ネットワークにルートを追加します。
      1. 宛先の範囲: 予約済みの IP 範囲を追加します。
      2. ネクストホップ: VPN トンネルを追加します。

  4. Cloud SQL Proxy または他のいずれかの接続方法を使用して、Cloud SQL インスタンスに接続します。

次のステップ