このページでは、プライベート サービス アクセスと Private Service Connect の両方を構成する方法について説明します。
プライベート サービス アクセスを構成すると、IP アドレス範囲を割り振り、Google Cloud プロジェクトの Virtual Private Cloud(VPC)ネットワークの限定公開サービス接続を作成できます。これにより、VPC ネットワーク内のリソースは Cloud SQL インスタンスに接続できます。
Private Service Connect を構成すると、異なるグループ、チーム、プロジェクト、組織に属する複数の VPC ネットワークから、プライマリ Cloud SQL インスタンスまたはそのリードレプリカのいずれかに接続できます。
プライベート サービス アクセスと Private Service Connect をサポートするインスタンスを作成する
プライベート サービス アクセスと Private Service Connect の両方をサポートする Cloud SQL インスタンスを作成すると、両方のサービスを利用できます。詳細については、インスタンスの接続オプションをご覧ください。
Private Service Connect を使用すると、異なるグループ、チーム、プロジェクト、組織に属する複数の VPC ネットワークから Cloud SQL インスタンスに接続できます。
gcloud CLI または API を使用して、プライベート サービス アクセスと Private Service Connect をサポートする Cloud SQL インスタンスを作成できます。
gcloud
プライベート サービス アクセスと Private Service Connect の両方をサポートするインスタンスを作成するには、gcloud beta sql instances create
コマンドを使用します。
gcloud beta sql instances create INSTANCE_NAME \ --project=PROJECT_ID \ --region=REGION_NAME \ --enable-private-service-connect \ --allowed-psc-projects=ALLOWED_PROJECTS \ --availability-type=AVAILABILITY_TYPE \ --no-assign-ip \ --allocated-ip-range-name=RANGE_NAME \ --database-version=DATABASE_VERSION \ --cpu=NUMBER_OF_vCPUs \ --memory=MEMORY_SIZE \ --root-password=ROOT_PASSWORD \ --network=VPC_NETWORK_NAME \ --psc-auto-connections=network=VPC_NETWORK_PATH,project=SERVICE_PROJECT
次のように置き換えます。
- INSTANCE_NAME: インスタンスの名前。
- PROJECT_ID: インスタンスが含まれている Google Cloud プロジェクトの ID またはプロジェクト番号。
- REGION_NAME: インスタンスのリージョン名。
ALLOWED_PROJECTS: 許可されているプロジェクト ID または番号のリスト(カンマ区切り)。このリストに含まれていないプロジェクトでは、インスタンスに接続する Private Service Connect エンドポイントを作成できません。
- AVAILABILITY_TYPE: インスタンスの高可用性を有効にします。このパラメータには、次のいずれかの値を指定します。
REGIONAL
: 高可用性を有効にします。本番環境インスタンスに推奨されます。インスタンスは、選択したリージョン内の別のゾーンにフェイルオーバーします。ZONAL
: フェイルオーバー機能を提供しません。これがデフォルト値です。
インスタンスの高可用性の設定と削除の詳細については、既存のインスタンスを高可用性向けに構成するとインスタンスの高可用性を無効にするをご覧ください。
- RANGE_NAME: このオプションのパラメータには、IP 範囲が割り振られる範囲名を設定します。範囲名は
RFC 1035
に準拠し、1 ~ 63 文字にする必要があります。 - DATABASE_VERSION: インスタンスのデータベース バージョン(例:
SQLSERVER_2019_STANDARD
)。 - NUMBER_OF_vCPUs: インスタンスのコア数。
- MEMORY_SIZE: インスタンスのメモリ量。
- ROOT_PASSWORD:
root
Cloud SQL ユーザーのパスワード。 - VPC_NETWORK_NAME: インスタンスが接続する VPC ネットワークの名前とパス(例:
"projects/PROJECT_ID/global/networks/default"
)。 - VPC_NETWORK_PATH: Private Service Connect エンドポイントを作成する VPC ネットワークへのパス。例:
projects/my-host-project/global/networks/default
。 SERVICE_PROJECT: Private Service Connect エンドポイントが作成されるプロジェクト。VPC ネットワークが共有 VPC でない場合は、ネットワークのホスト プロジェクトのみにできます。共有 VPC の場合は、ホスト プロジェクトまたはサービス プロジェクトのいずれかになります。
自動接続パラメータで指定したプロジェクトは、許可されたプロジェクトに自動的に追加されます。
Private Service Connect が有効になっているインスタンスに接続する方法については、Cloud SQL インスタンスに接続するをご覧ください。
パブリック IP を無効にするには、--no-assign-ip
パラメータを使用します。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: インスタンスが含まれている Google Cloud プロジェクトの ID またはプロジェクト番号。
- INSTANCE_NAME: インスタンスの名前。
- REGION_NAME: インスタンスのリージョン名。
- ROOT_PASSWORD:
root
Cloud SQL ユーザーのパスワード。 - AVAILABILITY_TYPE: インスタンスの高可用性を有効にします。このパラメータには、次のいずれかの値を指定します。
REGIONAL
: 高可用性を有効にします。本番環境インスタンスに推奨されます。インスタンスは、選択したリージョン内の別のゾーンにフェイルオーバーします。ZONAL
: フェイルオーバー機能を提供しません。これがデフォルト値です。
インスタンスの高可用性の設定と削除の詳細については、既存のインスタンスを高可用性向けに構成するとインスタンスの高可用性を無効にするをご覧ください。
- VPC_NETWORK_NAME: インスタンスが接続する VPC ネットワークの名前とパス(例:
"projects/PROJECT_ID/global/networks/default"
)。 - RANGE_NAME: このオプションのパラメータには、IP 範囲が割り振られる範囲名を設定します。範囲名は
RFC 1035
に準拠し、1 ~ 63 文字にする必要があります。 ALLOWED_PROJECTS: 許可されているプロジェクト ID または番号のリスト(カンマ区切り)。このリストに含まれていないプロジェクトでは、インスタンスに接続する Private Service Connect エンドポイントを作成できません。
- VPC_NETWORK_PATH: Private Service Connect エンドポイントを作成する VPC ネットワークへのパス。例:
projects/my-host-project/global/networks/default
。 SERVICE_PROJECT: Private Service Connect エンドポイントが作成されるプロジェクト。VPC ネットワークが共有 VPC でない場合は、ネットワークのホスト プロジェクトのみにできます。共有 VPC の場合は、ホスト プロジェクトまたはサービス プロジェクトのいずれかになります。
自動接続パラメータで指定したプロジェクトは、許可されたプロジェクトに自動的に追加されます。
- MACHINE_TYPE: インスタンスのマシンタイプを表す列挙文字列値。例:
db-custom-NUMBER_OF_vCPUs-MEMORY_SIZE
。ここで、NUMBER_OF_vCPUs と MEMORY_SIZE は、インスタンスに必要なコア数とメモリ量です。
Private Service Connect が有効になっているインスタンスに接続する方法については、Cloud SQL インスタンスに接続するをご覧ください。
インスタンスに内部 IP アドレスがあるため、ipv4Enabled
パラメータを false
に設定します。
HTTP メソッドと URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances
リクエストの本文(JSON):
{ "name": "INSTANCE_NAME", "project": PROJECT_ID", "region": "REGION_NAME", "databaseVersion": "SQLSERVER_2019_STANDARD", "rootPassword": "ROOT_PASSWORD", "kind": "sql#instance", "settings": { "availabilityType": "AVAILABILITY_TYPE", "ipConfiguration": { "ipv4Enabled": false, "privateNetwork": VPC_NETWORK_NAME, "allocatedIpRange": "RANGE_NAME", "pscConfig": { "allowedConsumerProjects": [ "ALLOWED_PROJECTS" ], "pscAutoConnections": [ { "consumerProject":"SERVICE_PROJECT", "consumerNetwork":"projects/SERVICE_PROJECT/global/networks/VPC_NETWORK_PATH" } ], "pscEnabled": true } }, "kind": "sql#settings", "pricingPlan": "PER_USE", "replicationType": "SYNCHRONOUS", "tier": "MACHINE_TYPE" } }
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME", "status": "RUNNING", "user": "user@example.com", "insertTime": "2020-01-16T02:32:12.281Z", "startTime": "2023-06-14T18:48:35.499Z", "operationType": "CREATE", "name": "OPERATION_ID", "targetId": "INSTANCE_NAME", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
インスタンスの Private Service Connect を無効にする
プライベート サービス アクセスと Private Service Connect の両方が有効になっているインスタンスで、Private Service Connect を無効にできます。セキュリティ上の理由から、異なるグループ、チーム、プロジェクト、組織に属する複数の VPC ネットワークからインスタンスに接続できない場合があります。
インスタンスの Private Service Connect を無効にするには、gcloud CLI または API を使用します。
gcloud
インスタンスの Private Service Connect を無効にするには、gcloud beta sql instances patch
コマンドを使用します。
gcloud beta sql instances patch INSTANCE_NAME \ --project=PROJECT_ID \ --no-enable-private-service-connect \ --clear-allowed-psc-projects
次のように置き換えます。
- INSTANCE_NAME: インスタンスの名前
- PROJECT_ID: インスタンスが含まれている Google Cloud プロジェクトの ID またはプロジェクト番号
REST
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: インスタンスが含まれている Google Cloud プロジェクトの ID またはプロジェクト番号
- INSTANCE_NAME: インスタンスの名前
HTTP メソッドと URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
リクエストの本文(JSON):
{ "kind": "sql#instance", "name": "INSTANCE_NAME", "project": "PROJECT_ID", "settings": { "ipConfiguration": { "pscConfig": { "pscEnabled": "false", "allowedConsumerProjects": [{}] } }, "kind": "sql#settings" } }
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME", "status": "RUNNING", "user": "user@example.com", "insertTime": "2020-01-16T02:32:12.281Z", "startTime": "2023-06-14T18:48:35.499Z", "operationType": "UPDATE", "name": "OPERATION_ID", "targetId": "INSTANCE_NAME", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
インスタンスで Private Service Connect を有効にする
プライベート サービス アクセスがすでに有効になっているインスタンスで Private Service Connect を有効にできます。Private Service Connect を使用して、複数の VPC ネットワークから Cloud SQL インスタンスに接続できます。
インスタンスで Private Service Connect を有効にするには、gcloud CLI または API を使用します。
gcloud
インスタンスで Private Service Connect を有効にするには、gcloud beta sql instances patch
コマンドを使用します。
gcloud beta sql instances patch INSTANCE_NAME \ --project=PROJECT_ID \ --enable-private-service-connect \ --allowed-psc-projects=ALLOWED_PROJECTS \ --psc-auto-connections=network=VPC_NETWORK_PATH,project=SERVICE_PROJECT
次のように置き換えます。
- INSTANCE_NAME: インスタンスの名前
- PROJECT_ID: インスタンスが含まれている Google Cloud プロジェクトの ID またはプロジェクト番号
ALLOWED_PROJECTS: 許可されているプロジェクト ID または番号のリスト(カンマ区切り)。このリストに含まれていないプロジェクトでは、インスタンスに接続する Private Service Connect エンドポイントを作成できません。
- VPC_NETWORK_PATH: Private Service Connect エンドポイントが作成される VPC ネットワークへのパス。例:
projects/my-host-project/global/networks/default
。 SERVICE_PROJECT: Private Service Connect エンドポイントが作成されるプロジェクト。VPC ネットワークが共有 VPC でない場合は、ネットワークのホスト プロジェクトのみにできます。共有 VPC の場合は、ホスト プロジェクトまたはサービス プロジェクトのいずれかになります。
自動接続パラメータで指定したプロジェクトは、許可されたプロジェクトに自動的に追加されます。
Private Service Connect が有効になっているインスタンスに接続する方法については、Cloud SQL インスタンスに接続するをご覧ください。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: インスタンスが含まれている Google Cloud プロジェクトの ID またはプロジェクト番号。
- INSTANCE_NAME: インスタンスの名前。
- ALLOWED_PROJECTS: 許可されているプロジェクト ID または番号のリスト(カンマ区切り)。これらのプロジェクトは、Private Service Connect を使用するようにすでに構成されているプロジェクトをオーバーライドします。このリストに含まれていないプロジェクトでは、インスタンスに接続する Private Service Connect エンドポイントを作成できません。
- VPC_NETWORK_PATH: Private Service Connect エンドポイントが作成される VPC ネットワークへのパス。例:
projects/my-host-project/global/networks/default
。 SERVICE_PROJECT: Private Service Connect エンドポイントが作成されるプロジェクト。VPC ネットワークが共有 VPC でない場合は、ネットワークのホスト プロジェクトのみにできます。共有 VPC の場合は、ホスト プロジェクトまたはサービス プロジェクトのいずれかになります。
自動接続パラメータで指定したプロジェクトは、許可されたプロジェクトに自動的に追加されます。
HTTP メソッドと URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
リクエストの本文(JSON):
{ "kind": "sql#instance", "name": "INSTANCE_NAME", "project": "PROJECT_ID", "settings": { "ipConfiguration": { "pscConfig": { "pscAutoConnections": [ { "consumerProject":"SERVICE_PROJECT", "consumerNetwork":"projects/SERVICE_PROJECT/global/networks/VPC_NETWORK_PATH" } ], "pscEnabled": "true", "allowedConsumerProjects": [ALLOWED_PROJECTS] } }, "kind": "sql#settings" } }
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME", "status": "RUNNING", "user": "user@example.com", "insertTime": "2020-01-16T02:32:12.281Z", "startTime": "2023-06-14T18:48:35.499Z", "operationType": "UPDATE", "name": "OPERATION_ID", "targetId": "INSTANCE_NAME", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
Private Service Connect が有効になっているインスタンスに接続する方法については、Cloud SQL インスタンスに接続するをご覧ください。