이 문서에서는 Cloud SQL 인스턴스의 비공개 네트워크 연결을 위해 Private Service Connect를 설정하고 구성하는 방법을 설명합니다.
Private Service Connect와 엔드포인트를 설정한 후에는 본인과 애플리케이션 클라이언트가 서로 다른 그룹, 팀, 프로젝트 또는 조직에 속하는 여러 가상 프라이빗 클라우드 (VPC) 네트워크에서 기본 Cloud SQL 인스턴스 또는 읽기 복제본에 연결할 수 있습니다. DNS 이름 기반 클라이언트 연결을 위해 인스턴스별 또는 전역 DNS 이름을 설정할 수도 있습니다. 이는 장애 조치 및 재해 복구 사용 사례에 유용합니다.
시작하기 전에
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Service Networking, Network Connectivity, Cloud DNS APIs.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Make sure that you have the following role or roles on the project: Compute Network Admin, Cloud SQL Admin, Cloud DNS Admin, Cloud SQL Instance User
Check for the roles
-
In the Google Cloud console, go to the IAM page.
Go to IAM - Select the project.
-
In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.
- For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.
Grant the roles
-
In the Google Cloud console, go to the IAM page.
Go to IAM - Select the project.
- Click Grant access.
-
In the New principals field, enter your user identifier. This is typically the identifier for a user in a workforce identity pool. For details, see Represent workforce pool users in IAM policies, or contact your administrator.
- Click Select a role, then search for the role.
- To grant additional roles, click Add another role and add each additional role.
- Click Save.
-
-
gcloud CLI를 설치합니다.
-
gcloud CLI에서 제휴 ID를 사용하도록 구성합니다.
자세한 내용은 제휴 ID로 gcloud CLI에 로그인을 참고하세요.
-
gcloud CLI를 초기화하려면, 다음 명령어를 실행합니다.
gcloud init
Private Service Connect에 필요한 역할
다음 표에서는 Cloud SQL 인스턴스로 Private Service Connect를 구성하고 연결하는 데 필요한 역할에 대한 정보를 제공합니다.
| 역할 | 설명 |
|---|---|
compute.networkAdmin |
Cloud SQL 인스턴스에 대한 연결을 시작하는 VPC 네트워크에 대한 전체 제어 권한을 부여합니다. IP 주소, 방화벽 규칙, 서비스 연결 정책, Private Service Connect 엔드포인트를 만들고 관리할 수 있습니다. Private Service Connect를 사용하여 여러 VPC 네트워크에서 Cloud SQL 인스턴스에 연결하는 경우 각 네트워크에는 자체 관리자가 있습니다. |
dns.admin |
DNS 영역 및 레코드를 포함한 Cloud DNS 리소스에 대한 전체 제어 권한을 부여합니다. |
cloudsql.admin |
Cloud SQL 인스턴스의 전체 제어 권한을 제공하고 수명 주기 동안 인스턴스를 제어합니다. |
cloudsql.instanceUser |
Cloud SQL 인스턴스에 대한 액세스 권한을 제공합니다. Cloud SQL 인증 프록시 클라이언트를 통해 연결하는 경우 Cloud SQL 클라이언트 역할이 있어야 합니다. 직접 연결하는 경우 Identity and Access Management (IAM) 역할 및 권한이 필요하지 않습니다. |
Cloud SQL 인스턴스를 만들 때 서비스 연결 정책을 자동으로 설정하려면 추가 역할과 Cloud SQL 서비스 에이전트에 역할을 할당할 수 있는 권한이 필요합니다. 자세한 내용은 서비스 연결 정책 만들기를 참고하세요.
Private Service Connect 엔드포인트 만들기
Private Service Connect 엔드포인트는 해당 네트워크의 클라이언트가 직접 액세스할 수 있는 소비자 VPC 네트워크의 내부 IP 주소입니다. 클라이언트는 이러한 엔드포인트를 사용하여 Cloud SQL 인스턴스에 연결할 수 있습니다.
Cloud SQL에서 VPC에 Private Service Connect 엔드포인트를 자동으로 만들도록 하거나 사용자가 수동으로 엔드포인트를 만들 수 있습니다.
엔드포인트 자동 생성
Cloud SQL이 Private Service Connect 엔드포인트를 자동으로 만들도록 하려면 다음 단계를 따르세요.
VPC 네트워크에서 서비스 연결 정책을 만듭니다. 이 정책을 사용하면 Private Service Connect 엔드포인트를 자동으로 프로비저닝할 수 있습니다.
인스턴스에서 Private Service Connect가 사용 설정된 Cloud SQL 인스턴스를 만들고 Private Service Connect 엔드포인트를 자동으로 만들도록 인스턴스를 구성합니다.
인스턴스의 엔드포인트를 검색합니다. 이렇게 하면 엔드포인트를 사용하여 인스턴스에 연결할 수 있습니다.
서비스 연결 정책 만들기
Google Cloud 콘솔, gcloud CLI 또는 API를 사용하여 서비스 연결 정책을 만들 수 있습니다.
콘솔
Google Cloud 콘솔에서 Private Service Connect 페이지로 이동합니다.
연결 정책 탭을 클릭합니다.
연결 정책 만들기를 클릭합니다.
연결 정책의 이름을 입력합니다.
다음을 수행하여 서비스 클래스를 지정합니다.
- 소스 서비스 클래스에서 Google 서비스를 선택합니다.
- Cloud SQL이 연결 정책의 관리형 서비스이므로 서비스 클래스 메뉴에서
google-cloud-sql을 선택합니다.
대상 엔드포인트 범위 섹션에서 이 정책이 적용되는 네트워크 및 리전을 선택합니다.
선택사항: 서비스 연결 정책과 Cloud SQL 인스턴스가 다른 프로젝트, 폴더 또는 조직에 있는 경우 맞춤 서비스 인스턴스 범위를 구성합니다.
- 맞춤 서비스 인스턴스 범위 스위치를 사용으로 전환합니다.
- 범위 필드에 인스턴스가 있는 프로젝트, 폴더 또는 조직의 ID를 입력합니다.
정책 섹션의 서브네트워크 메뉴에서 하나 이상의 서브넷을 선택합니다. 서브넷은 엔드포인트에 IP 주소를 할당하는 데 사용됩니다.
선택사항: 정책에 대한 연결 한도를 지정합니다. 이 연결 정책을 사용하여 만들 수 있는 엔드포인트 수를 결정합니다. 한도를 지정하지 않으면 제한이 없습니다.
정책 만들기를 클릭합니다.
gcloud
서비스 연결 정책을 만들려면 service-connection-policies create 명령어를 사용합니다.
gcloud network-connectivity service-connection-policies create POLICY_NAME \
--network=NETWORK \
--project=PROJECT_ID \
--region=REGION \
--service-class=SERVICE_CLASS \
--subnets=https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNETS \
--psc-connection-limit=LIMIT \
--description="DESCRIPTION" \
--producer-instance-location=PRODUCER_INSTANCE_LOCATION \
--allowed-google-producers-resource-hierarchy-level=RESOURCE_HIERARCHY_LEVEL
다음을 바꿉니다.
POLICY_NAME: 서비스 연결 정책의 이름NETWORK: 이 정책이 적용되는 네트워크PROJECT_ID: 프로젝트 ID 또는 VPC 네트워크 프로젝트의 번호. 공유 VPC 네트워크의 경우 서비스 연결 정책이 서비스 프로젝트에서 지원되지 않으므로 호스트 프로젝트에 배포해야 합니다.REGION: 이 정책이 적용되는 리전. 서비스 연결을 자동화하려는 모든 리전에 동일한 정책이 있어야 합니다.SERVICE_CLASS: 프로듀서가 제공한 서비스 클래스의 리소스 식별자. Cloud SQL의 경우 서비스 클래스는google-cloud-sql입니다.SUBNETS: Private Service Connect 엔드포인트의 IP 주소를 할당하는 데 사용되는 하나 이상의 일반 소비자 서브넷. 이러한 IP 주소는 관리형 서비스 인스턴스가 생성 및 삭제될 때 서브넷 풀에 자동으로 할당 및 반환됩니다. 서브넷은 서비스 연결 정책과 동일한 리전에 있어야 합니다. 여러 연결 정책이 동일한 리전을 공유하는 경우 이러한 정책에서 동일한 서브네트워크를 재사용할 수 있습니다. 쉼표로 구분된 목록으로 여러 서브넷을 입력할 수 있습니다.LIMIT: 이 정책을 사용하여 만들 수 있는 최대 엔드포인트 수. 한도를 지정하지 않으면 제한이 없습니다.DESCRIPTION: 서비스 연결 정책의 설명입니다(선택사항).PRODUCER_INSTANCE_LOCATION: Cloud SQL 인스턴스의 위치에 대한 커스텀 계층 구조를 승인할지 지정합니다. 인스턴스가 정책과 다른 프로젝트, 폴더 또는 조직에 있는 경우 이 값을custom-resource-hierarchy-levels로 설정해야 합니다.RESOURCE_HIERARCHY_LEVEL: 인스턴스가 있는 프로젝트, 폴더 또는 조직 목록. 이 목록은 다음 형식 중 하나입니다.projects/PROJECT_IDfolders/FOLDER_IDorganizations/ORGANIZATION_ID개
예를 들어 다음 명령어는 managed-services 서브넷에서 IP 주소를 할당하는
google-cloud-sql 서비스 클래스에 대한 서비스 연결 정책을 만듭니다. 이 정책을 사용하여 최대 10개의 Private Service Connect 엔드포인트를 만들 수 있습니다. 엔드포인트는 관리형 서비스 인스턴스와 동일한 조직에 있는 프로젝트에서 만들어야 합니다. Cloud SQL 인스턴스가 myproject 프로젝트에 있습니다.
gcloud network-connectivity service-connection-policies create cloud-sql-policy \
--network=default \
--project=my-project \
--region=us-central1 \
--service-class=google-cloud-sql \
--subnets=managed-service-subnet \
--psc-connection-limit=10 \
--producer-instance-location=custom-resource-hierarchy-levels \
--allowed-google-producers-resource-hierarchy-level=projects/myproject
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
PROJECT_ID: 프로젝트의 IDREGION: 서비스 연결 정책의 리전POLICY_NAME: 서비스 연결 정책의 이름DESCRIPTION: 서비스 연결 정책에 대한 설명(선택사항)NETWORK: 서비스 연결 정책의 네트워크LIMIT: 이 정책을 사용하여 만들 수 있는 최대 엔드포인트 수. 한도를 지정하지 않으면 제한이 없습니다.SUBNETS: Private Service Connect 엔드포인트의 IP 주소를 할당하는 데 사용되는 하나 이상의 일반 소비자 서브넷. 이러한 IP 주소는 관리형 서비스 인스턴스가 생성 및 삭제될 때 서브넷 풀에 자동으로 할당 및 반환됩니다. 서브넷은 서비스 연결 정책과 동일한 리전에 있어야 합니다. 여러 연결 정책이 동일한 리전을 공유하는 경우 이러한 정책에서 동일한 서브네트워크를 재사용할 수 있습니다. 쉼표로 구분된 목록으로 여러 서브넷을 입력할 수 있습니다.SERVICE_CLASS: 프로듀서가 제공한 서비스 클래스의 리소스 식별자
HTTP 메서드 및 URL:
POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/serviceConnectionPolicies?serviceConnectionPolicyId=POLICY_NAME
JSON 요청 본문:
{
"description": "DESCRIPTION",
"network": "projects/PROJECT_ID/global/networks/NETWORK",
"pscConfig": {
"limit": "LIMIT",
"subnetworks": [
"projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET"
]
},
"serviceClass": "SERVICE_CLASS"
}
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{
"name": "projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.networkconnectivity.v1.OperationMetadata",
"createTime": "2023-08-15T16:59:29.236110917Z",
"target": "projects/PROJECT_ID/locations/REGION/serviceConnectionPolicies/POLICY_NAME",
"verb": "create",
"requestedCancellation": false,
"apiVersion": "v1"
},
"done": false
}
서비스 연결 정책 자동 생성
Cloud SQL 인스턴스를 만들 때 서비스 연결 정책을 자동으로 만들 수 있지만 이 옵션에는 추가 관리 권한이 필요합니다.
콘솔
Google Cloud 콘솔을 사용하는 경우 Private Service Connect가 사용 설정된 Cloud SQL 인스턴스를 만듭니다. Google Cloud 콘솔은 필수 역할을 확인하고 자동으로 구성합니다. 프로젝트에 Network Connectivity API가 아직 사용 설정되어 있지 않으면 사용 설정해야 할 수 있습니다.
gcloud 또는 REST
gcloud CLI 또는 Cloud SQL Admin API를 사용하는 경우 인스턴스를 만들기 전에 Cloud SQL 서비스 에이전트에 추가 역할을 부여해야 합니다.
Cloud SQL 인스턴스를 호스팅할 프로젝트에 프로젝트별 Cloud SQL 서비스 에이전트가 아직 없으면 하나 만듭니다.
서비스 에이전트를 만들려면 다음 명령어를 실행합니다.
gcloud beta services identity create \ --service=sqladmin.googleapis.com \ --project=INSTANCE_PROJECT
다음을 바꿉니다.
INSTANCE_PROJECT: Cloud SQL 인스턴스를 만들 프로젝트입니다.
이 명령어는
service-INSTANCE_PROJECT_NUMBER@gcp-sa-cloudsql.형식의 서비스 에이전트를 만듭니다.서비스 에이전트에 다음 역할을 부여하여 Cloud SQL 서비스 에이전트에 필요한 IAM 권한을 제공합니다.
- 서비스 자동화 소비자 네트워크 관리자(
roles/networkconnectivity.consumerNetworkAdmin) - Compute 네트워크 뷰어(
roles/compute.networkViewer)
Cloud SQL 서비스 에이전트에 역할을 추가하려면 다음 명령어를 실행합니다.
gcloud projects add-iam-policy-binding CONSUMER_PROJECT \ --member='serviceAccount:CLOUD_SQL_SERVICE_AGENT' \ --role='roles/networkconnectivity.consumerNetworkAdmin' gcloud projects add-iam-policy-binding CONSUMER_PROJECT \ --member='serviceAccount:CLOUD_SQL_SERVICE_AGENT' \ --role='roles/compute.networkViewer'
다음을 바꿉니다.
CONSUMER_PROJECT: Private Service Connect 엔드포인트가 생성될 프로젝트입니다. 공유 VPC 네트워크를 사용하는 경우 호스트 프로젝트 또는 서비스 프로젝트일 수 있습니다.CLOUD_SQL_SERVICE_AGENT: 만든 Cloud SQL 서비스 에이전트 계정의 이메일 주소입니다.
- 서비스 자동화 소비자 네트워크 관리자(
Cloud SQL 인스턴스 만들기
Google Cloud 콘솔, gcloud CLI 또는 API를 사용하여 인스턴스에 Private Service Connect가 사용 설정된 인스턴스를 만들고 엔드포인트를 자동으로 만들도록 인스턴스를 구성할 수 있습니다.
콘솔
-
Google Cloud 콘솔에서 Cloud SQL 인스턴스 페이지로 이동합니다.
- 인스턴스 맞춤설정 섹션에서 연결 섹션을 펼칩니다.
- 비공개 IP 체크박스를 선택합니다.
- 비공개 연결 방법 선택 섹션에서 Private Service Connect (PSC) 체크박스를 선택합니다.
- 엔드포인트 설정 섹션에서 엔드포인트 추가를 클릭합니다.
- 엔드포인트 설정 섹션에서 다음을 수행합니다.
- 새 엔드포인트 카드에서 프로젝트 메뉴를 통해 엔드포인트를 설정할 프로젝트를 선택합니다.
- 네트워크 메뉴에서 엔드포인트의 네트워크를 선택합니다.
- Network Connectivity API가 아직 사용 설정되지 않은 경우 사용 설정을 클릭합니다.
- 네트워크 설정 확인을 클릭합니다. 선택한 네트워크에 서비스 연결 정책이 감지되면 성공 메시지가 표시됩니다. 서비스 연결 정책이 감지되지 않았지만 권한이 부여된 경우 Google Cloud 에서 서비스 연결 정책을 만듭니다.
- 선택사항: 다른 인스턴스 구성 옵션을 완료합니다.
- 인스턴스 만들기를 클릭합니다.
gcloud
인스턴스에서 Private Service Connect가 사용 설정된 인스턴스를 만들려면 gcloud sql instances create 명령어를 사용합니다.
gcloud sql instances create INSTANCE_NAME \ --project=PROJECT_ID \ --region=REGION_NAME \ --cpu=NUMBER_OF_vCPUs \ --memory=MEMORY_SIZE \ --root-password=ROOT_PASSWORD \ --availability-type=AVAILABILITY_TYPE \ --database-version=DATABASE_VERSION \ --no-assign-ip \ --enable-private-service-connect \ --allowed-psc-projects=ALLOWED_PROJECTS \ --psc-auto-connections=network=CONSUMER_NETWORK,project=CONSUMER_PROJECT \ --enable-psc-auto-dns \ --enable-psc-write-endpoint-dns
선택사항입니다. Cloud SQL 인스턴스를 만들 때 서비스 연결 정책을 자동으로 만들거나 업데이트하려면 명령어에 --enable-psc-auto-connection-policy 매개변수를 추가하세요.
이 매개변수를 사용하려면 추가 권한을 구성해야 합니다. 자세한 내용은 서비스 연결 정책 자동 생성을 참고하세요.
다음을 바꿉니다.
INSTANCE_NAME: 인스턴스 이름입니다.PROJECT_ID: 인스턴스가 포함된 Google Cloud 프로젝트의 ID 또는 프로젝트 번호REGION_NAME: 인스턴스의 리전 이름NUMBER_OF_vCPUs: 인스턴스의 코어 수입니다.MEMORY_SIZE: 인스턴스의 메모리 용량입니다.ROOT_PASSWORD:rootCloud SQL 사용자의 비밀번호AVAILABILITY_TYPE: 인스턴스에 고가용성을 사용 설정합니다. 이 파라미터에 대해 다음 값 중 하나를 지정합니다.REGIONAL: 고가용성을 사용 설정하며, 프로덕션 인스턴스에 권장됩니다. 인스턴스는 선택한 리전 내의 다른 영역으로 장애 조치됩니다.ZONAL: 장애 조치 기능을 제공하지 않습니다. 이 설정이 기본 설정입니다.
인스턴스의 고가용성 설정 및 삭제에 대한 자세한 내용은 기존 인스턴스를 고가용성으로 구성 및 인스턴스의 고가용성 비활성화를 참고하세요.
DATABASE_VERSION: 인스턴스의 데이터베이스 버전 (예:SQLSERVER_2019_STANDARD)ALLOWED_PROJECTS: Private Service Connect 엔드포인트가 Cloud SQL 인스턴스에 연결할 수 있는 허용된 프로젝트 ID 또는 프로젝트 번호의 쉼표로 구분된 목록프로젝트가 이 목록에 없으면 프로젝트에서 인스턴스에 연결할 Private Service Connect 엔드포인트를 만들 수 없습니다.
CONSUMER_NETWORK: Private Service Connect 엔드포인트를 만들어야 하는 VPC 네트워크의 경로. 예를 들면projects/my-host-project/global/networks/default입니다.CONSUMER_PROJECT: Private Service Connect 엔드포인트가 생성된 프로젝트. 공유 VPC 네트워크를 사용하는 경우 호스트 프로젝트 또는 서비스 프로젝트일 수 있습니다.자동 연결 파라미터에 지정된 모든 프로젝트는 허용된 프로젝트에 자동으로 추가됩니다. 선택적으로 Private Service Connect 엔드포인트를 수동으로 만들려는 프로젝트의 경우 이러한 프로젝트를 허용된 프로젝트 목록에 추가할 수 있습니다.
다음 매개변수를 사용하여 Private Service Connect를 사용 설정하고 구성합니다.
--enable-private-service-connect: Private Service Connect를 사용 설정합니다.--allowed-psc-projects=ALLOWED_PROJECTS: 허용되는 프로젝트 ID 또는 숫자의 쉼표로 구분된 목록을 지정합니다. Private Service Connect 엔드포인트가 Cloud SQL 인스턴스에 연결할 수 있는 프로젝트입니다.--psc-auto-connections=network=CONSUMER_NETWORK,project=CONSUMER_PROJECT: Private Service Connect 엔드포인트를 만들어야 하는 VPC 네트워크의 경로를 지정합니다.--enable-psc-auto-dns: 이 인스턴스에 Private Service Connect DNS 자동화를 사용 설정해야 하는지 여부를 나타냅니다.--enable-private-service-connect를 사용하여 Private Service Connect가 사용 설정된 경우 새 인스턴스에 대해 기본적으로 사용 중지됩니다.DNS 자동화가 사용 설정되면 Cloud SQL은 Private Service Connect 자동 연결로 구성된 모든 네트워크에서 인스턴스별 DNS 레코드를 프로비저닝합니다.
--enable-psc-write-endpoint-dns: 이 인스턴스에 Private Service Connect 쓰기 엔드포인트 DNS 자동화가 사용 설정되어 있는지 나타냅니다. 이 기능은--enable-psc-auto-dns도 설정된 Enterprise Plus 인스턴스에서만 지원되며, 새 인스턴스를 만들면 기본적으로 사용 중지됩니다.쓰기 엔드포인트 DNS 자동화가 사용 설정되면 Cloud SQL은 Private Service Connect 자동 연결로 구성된 모든 네트워크에서 복제 클러스터의 쓰기 엔드포인트 역할을 하는 전역 DNS 레코드를 프로비저닝합니다. 이 전역 DNS 레코드는 항상 복제 클러스터의 현재 기본 인스턴스를 가리키므로 복제본 장애 조치 또는 전환 작업 시 클라이언트 측 연결 문자열 업데이트 없이 원활한 애플리케이션 장애 조치가 가능합니다.
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- INSTANCE_NAME: Cloud SQL 인스턴스의 이름.
- PROJECT_ID: 인스턴스가 포함된 Google Cloud 프로젝트의 ID 또는 프로젝트 번호
- REGION_NAME: 인스턴스의 리전 이름
- DATABASE_VERSION: 인스턴스의 데이터베이스 버전(예:
SQLSERVER_2019_STANDARD) - ROOT_PASSWORD:
rootCloud SQL 사용자의 비밀번호 - AVAILABILITY_TYPE: 인스턴스의 영역 가용성 유형입니다. 이 매개변수를 사용하여 다음 값 중 하나를 지정하여 인스턴스의 고가용성을 사용 설정하거나 중지합니다.
REGIONAL: 고가용성을 사용 설정하며 프로덕션 인스턴스에 권장됩니다. 인스턴스는 선택한 리전 내의 다른 영역으로 장애 조치됩니다.ZONAL: 전환 기능을 제공하지 않습니다. 기본값입니다.
인스턴스의 고가용성 설정 및 삭제에 대한 자세한 내용은 기존 인스턴스를 고가용성으로 구성 및 인스턴스의 고가용성 비활성화를 참고하세요.
- ALLOWED_PROJECTS: Private Service Connect 엔드포인트가 Cloud SQL 인스턴스에 연결할 수 있는 허용된 프로젝트 ID 또는 프로젝트 번호의 쉼표로 구분된 목록
프로젝트가 이 목록에 없으면 프로젝트에서 인스턴스에 연결할 Private Service Connect 엔드포인트를 만들 수 없습니다.
-
CONSUMER_PROJECT: Private Service Connect 엔드포인트가 생성된 프로젝트입니다. 공유 VPC 네트워크를 사용하는 경우 호스트 프로젝트 또는 서비스 프로젝트일 수 있습니다.
자동 연결 파라미터에 지정된 모든 프로젝트는 허용된 프로젝트에 자동으로 추가됩니다. 선택적으로 Private Service Connect 엔드포인트를 수동으로 만들려는 프로젝트의 경우 이러한 프로젝트를 허용된 프로젝트 목록에 추가할 수 있습니다.
- PARENT_PROJECT: 네트워크 CONSUMER_NETWORK가 포함된 프로젝트. CONSUMER_PROJECT에 다른 프로젝트를 지정하지 않으면 엔드포인트가 PARENT_PROJECT 에 자동으로 생성됩니다.
-
CONSUMER_PROJECT: 선택사항. CONSUMER_NETWORK가 공유 VPC 네트워크이고 서비스 프로젝트에서 Private Service Connect 엔드포인트의 자동 생성을 허용하려는 경우에만 지정하세요.
자동 연결 파라미터에 지정된 모든 프로젝트는 허용된 프로젝트에 자동으로 추가됩니다. 선택적으로 Private Service Connect 엔드포인트를 수동으로 만들려는 프로젝트의 경우 이러한 프로젝트를 허용된 프로젝트 목록에 추가할 수 있습니다.
- CONSUMER_NETWORK: Private Service Connect 엔드포인트의 자동 생성을 허용하려는 VPC 네트워크 예를 들면
projects/my-host-project/global/networks/default입니다. - MACHINE_TYPE: 인스턴스의 머신 유형을 나타내는 열거형 문자열 값입니다. 예: code>db-custom-NUMBER_OF_vCPUs-MEMORY_SIZE, 여기서 NUMBER_OF_vCPUs 및 MEMORY_SIZE은 인스턴스에 필요한 코어 수와 메모리 양입니다.
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,
"pscConfig": {
"allowedConsumerProjects": [
"ALLOWED_PROJECTS"
],
"pscAutoConnections": [
{
"consumerProject":"CONSUMER_PROJECT",
"consumerNetwork":"projects/PARENT_PROJECT/global/networks/CONSUMER_NETWORK"
}
],
"pscEnabled": true,
"pscAutoConnectionPolicyEnabled": true,
"pscAutoDnsEnabled": true,
"pscWriteEndpointDnsEnabled": 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"
}
DNS 자동화 및 전역 쓰기 엔드포인트 DNS 이름을 사용 설정하는 데 사용하는 필드는 다음과 같습니다.
psc_auto_dns_enabled: 이 인스턴스에 Private Service Connect DNS 자동화가 사용 설정되어 있는지 여부를 나타냅니다.--enable-private-service-connect를 사용하여 Private Service Connect가 사용 설정된 경우 새 인스턴스에서 기본적으로 사용 중지됩니다.DNS 자동화가 사용 설정되면 Cloud SQL은 Private Service Connect 자동 연결로 구성된 모든 네트워크에 범용 DNS 레코드를 프로비저닝합니다.
psc_write_endpoint_dns_enabled: 이 인스턴스에 Private Service Connect 쓰기 엔드포인트 DNS 자동화가 사용 설정되어 있는지 나타냅니다. 이 기능은--enable-psc-auto-dns도 설정된 Enterprise Plus 인스턴스에서만 지원되며, 새 인스턴스를 만들면 기본적으로 사용 중지됩니다.쓰기 엔드포인트 DNS 자동화가 사용 설정된 경우 Cloud SQL은 Private Service Connect 자동 연결로 구성된 모든 네트워크에서 쓰기 엔드포인트 역할을 하는 전역 DNS 레코드를 프로비저닝합니다. 이 전역 DNS 레코드는 항상 복제 클러스터의 현재 기본 인스턴스를 가리키므로 복제본 장애 조치 또는 전환 작업 시 클라이언트 측 연결 문자열 업데이트 없이 원활한 애플리케이션 장애 조치가 가능합니다.
인스턴스를 만들 때 서비스 연결 정책을 자동으로 만들려면 다음 필드를 사용 설정하세요.
psc_auto_connection_policy_enabled: Cloud SQL 인스턴스를 만들 때Google Cloud 가 서비스 연결 정책을 만들거나 업데이트하도록 허용할지 여부를 나타냅니다. 이 옵션을 사용하려면 추가 권한을 구성해야 합니다. 자세한 내용은 서비스 연결 정책 자동 생성을 참고하세요.
Terraform
인스턴스를 만들려면 psc_config 필드가 있는 Terraform 리소스를 사용합니다.
resource "google_sql_database_instance" "INSTANCE_NAME"
{
name = "INSTANCE_NAME"
database_version = "DATABASE_VERSION"
settings
{
tier = "MACHINE_TYPE"
ip_configuration
{
psc_config
{
psc_enabled = true
psc_auto_dns_enabled = true
psc_write_endpoint_dns_enabled = true
allowed_consumer_projects = ["ALLOWED_PROJECTS"]
psc_auto_connections
{
consumer_network = "CONSUMER_NETWORK"
consumer_service_project_id = "CONSUMER_PROJECT"
}
}
ipv4_enabled = false
}
}
}다음을 바꿉니다.
INSTANCE_NAME: 인스턴스 이름입니다.DATABASE_VERSION: 인스턴스의 데이터베이스 버전 (예:SQLSERVER_2019_STANDARD)MACHINE_TYPE: 인스턴스의 머신 유형ALLOWED_PROJECTS: Private Service Connect 엔드포인트가 Cloud SQL 인스턴스에 연결할 수 있는 허용된 프로젝트 ID 또는 프로젝트 번호의 쉼표로 구분된 목록프로젝트가 이 목록에 없으면 프로젝트에서 인스턴스에 연결할 Private Service Connect 엔드포인트를 만들 수 없습니다.
CONSUMER_NETWORK: Private Service Connect 엔드포인트를 만들어야 하는 VPC 네트워크의 경로. 예를 들면projects/my-host-project/global/networks/default입니다.CONSUMER_PROJECT: Private Service Connect 엔드포인트가 생성된 프로젝트. 공유 VPC 네트워크를 사용하는 경우 호스트 프로젝트 또는 서비스 프로젝트일 수 있습니다.
다음 필드를 사용하여 DNS 자동화와 전역 쓰기 엔드포인트 DNS 이름을 사용 설정합니다.
psc_auto_dns_enabled: 이 인스턴스에 Private Service Connect DNS 자동화가 사용 설정되어 있는지 여부를 나타냅니다.--enable-private-service-connect를 사용하여 Private Service Connect가 사용 설정된 경우 새 인스턴스에서 기본적으로 사용 중지됩니다.DNS 자동화가 사용 설정되면 Cloud SQL은 Private Service Connect 자동 연결로 구성된 모든 네트워크에 범용 DNS 레코드를 프로비저닝합니다.
psc_write_endpoint_dns_enabled: 이 인스턴스에 Private Service Connect 쓰기 엔드포인트 DNS 자동화가 사용 설정되어 있는지 나타냅니다. 이 기능은--enable-psc-auto-dns도 설정된 Enterprise Plus 인스턴스에서만 지원되며, 새 인스턴스를 만들면 기본적으로 사용 중지됩니다.쓰기 엔드포인트 DNS 자동화가 사용 설정된 경우 Cloud SQL은 Private Service Connect 자동 연결로 구성된 모든 네트워크에서 쓰기 엔드포인트 역할을 하는 전역 DNS 레코드를 프로비저닝합니다. 이 전역 DNS 레코드는 항상 복제 클러스터의 현재 기본 인스턴스를 가리키므로 복제본 장애 조치 또는 전환 작업 시 클라이언트 측 연결 문자열 업데이트 없이 원활한 애플리케이션 장애 조치가 가능합니다.
Private Service Connect를 사용 설정하고 서비스 연결 정책을 자동으로 만들려면 다음 필드를 사용하세요.
psc_auto_connection_policy_enabled: Cloud SQL 인스턴스를 만들 때Google Cloud 가 서비스 연결 정책을 만들거나 업데이트하도록 허용할지 여부를 나타냅니다. 이 옵션을 사용하려면 추가 권한을 구성해야 합니다. 자세한 내용은 서비스 연결 정책 자동 생성을 참고하세요.
변경사항 적용
Google Cloud 프로젝트에 Terraform 구성을 적용하려면 다음 섹션의 단계를 완료하세요.
Cloud Shell 준비
- Cloud Shell을 실행합니다.
-
Terraform 구성을 적용할 기본 Google Cloud 프로젝트를 설정합니다.
이 명령어는 프로젝트당 한 번만 실행하면 되며 어떤 디렉터리에서도 실행할 수 있습니다.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Terraform 구성 파일에서 명시적 값을 설정하면 환경 변수가 재정의됩니다.
디렉터리 준비
각 Terraform 구성 파일에는 자체 디렉터리(루트 모듈이라고도 함)가 있어야 합니다.
-
Cloud Shell에서 디렉터리를 만들고 해당 디렉터리 내에 새 파일을 만드세요. 파일 이름에는
.tf확장자가 있어야 합니다(예:main.tf). 이 튜토리얼에서는 파일을main.tf라고 합니다.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
튜토리얼을 따라 하는 경우 각 섹션이나 단계에서 샘플 코드를 복사할 수 있습니다.
샘플 코드를 새로 만든
main.tf에 복사합니다.필요한 경우 GitHub에서 코드를 복사합니다. 이는 Terraform 스니펫이 엔드 투 엔드 솔루션의 일부인 경우에 권장됩니다.
- 환경에 적용할 샘플 파라미터를 검토하고 수정합니다.
- 변경사항을 저장합니다.
-
Terraform을 초기화합니다. 이 작업은 디렉터리당 한 번만 수행하면 됩니다.
terraform init
원하는 경우 최신 Google 공급업체 버전을 사용하려면
-upgrade옵션을 포함합니다.terraform init -upgrade
변경사항 적용
-
구성을 검토하고 Terraform에서 만들거나 업데이트할 리소스가 예상과 일치하는지 확인합니다.
terraform plan
필요에 따라 구성을 수정합니다.
-
다음 명령어를 실행하고 프롬프트에
yes를 입력하여 Terraform 구성을 적용합니다.terraform apply
Terraform에 '적용 완료' 메시지가 표시될 때까지 기다립니다.
- 결과를 보려면 Google Cloud 프로젝트를 엽니다. Google Cloud 콘솔에서 UI의 리소스로 이동하여 Terraform이 리소스를 만들었거나 업데이트했는지 확인합니다.
변경사항 삭제
변경사항을 삭제하려면 다음 단계를 따르세요.
- Terraform 구성 파일에서 삭제 방지를 사용 중지하려면
deletion_protection인수를false로 설정합니다.deletion_protection = "false"
- 다음 명령어를 실행하고 프롬프트에
yes를 입력하여 업데이트된 Terraform 구성을 적용합니다.terraform apply
-
다음 명령어를 실행하고 프롬프트에
yes를 입력하여 이전에 Terraform 구성에 적용된 리소스를 삭제합니다.terraform destroy
엔드포인트 검색
인스턴스의 Private Service Connect 엔드포인트인 내부 IP 주소를 검색하여 이 엔드포인트를 사용해 인스턴스에 연결할 수 있습니다.
gcloud
인스턴스의 Private Service Connect 엔드포인트인 IP 주소를 비롯해 인스턴스에 대한 정보를 보려면 gcloud sql instances describe 명령어를 사용합니다.
gcloud sql instances describe INSTANCE_NAME \ --project=PROJECT_ID \ --format='json(settings.ipConfiguration.pscConfig.pscAutoConnections)'
다음을 바꿉니다.
- INSTANCE_NAME: Cloud SQL 인스턴스의 이름입니다. 이 인스턴스에 Private Service Connect가 사용 설정되어 있으면 VPC 네트워크의 Private Service Connect 엔드포인트가 연결할 수 있습니다.
- PROJECT_ID: 인스턴스가 포함된 Google Cloud 프로젝트의 ID 또는 프로젝트 번호
응답의 pscConfig:pscAutoConnections:ipAddress 필드 옆에 표시된 값을 확인합니다. 이 값은 인스턴스의 Private Service Connect 엔드포인트이기도 한 내부 IP 주소입니다.
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: 인스턴스가 포함된 Google Cloud 프로젝트의 ID 또는 프로젝트 번호
- INSTANCE_NAME: Cloud SQL 인스턴스의 이름. 이 인스턴스에 Private Service Connect가 사용 설정되어 있으면 VPC 네트워크의 Private Service Connect 엔드포인트가 연결할 수 있습니다.
HTTP 메서드 및 URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{
"kind": "sql#instance",
"state": "RUNNABLE",
"databaseVersion": "SQLSERVER_2019_STANDARD",
"settings": {
"authorizedGaeApplications": [],
"tier": "db-custom-2-7680",
"kind": "sql#settings",
"availabilityType": "REGIONAL",
"pricingPlan": "PER_USE",
"replicationType": "SYNCHRONOUS",
"activationPolicy": "ALWAYS",
"ipConfiguration": {
"authorizedNetworks": [],
"pscConfig": {
"allowedConsumerProjects": [
"ALLOWED_PROJECTS"
],
"pscAutoConnections": {
consumerNetwork:"projects/PARENT_PROJECT/global/networks/CONSUMER_NETWORK",
consumerNetworkStatus:"CONSUMER_NETWORK_STATUS",
consumerProject:"CONSUMER_PROJECT",
ipAddress:"IP_ADDRESS",
status:"STATUS"
},
"pscEnabled": true
},
"ipv4Enabled": false
},
}
Private Service Connect가 사용 설정된 인스턴스에는 다음 필드가 있습니다.
allowedConsumerProjects: 인스턴스에 허용되는 프로젝트 목록. 사용자는 이러한 프로젝트의 모든 VPC 네트워크에서 인스턴스의 서비스 연결에 대한 Private Service Connect 엔드포인트를 만들 수 있습니다.pscAutoConnections: 허용된 VPC 네트워크, 서비스 연결 정책의 상태, 인스턴스의 엔드포인트인 IP 주소의 상태pscEnabled: 인스턴스에 Private Service Connect가 사용 설정되었는지 여부
이 태스크에 대한 기본 REST API 요청을 구성하는 방법은 instances:get 페이지를 참조하세요.
수동으로 엔드포인트 만들기
Private Service Connect 엔드포인트를 수동으로 만들려면 다음 단계를 따르세요.
인스턴스에 대해 Private Service Connect가 사용 설정된 Cloud SQL 인스턴스를 만듭니다.
서비스 연결 URI를 가져옵니다. 이 URI를 사용하여 Private Service Connect 엔드포인트를 만듭니다.
Private Service Connect 엔드포인트의 내부 IP 주소를 예약하고 이 주소로 엔드포인트를 만듭니다.
Cloud SQL 인스턴스 만들기
gcloud CLI, Terraform 또는 API를 사용하여 Private Service Connect가 사용 설정된 인스턴스를 만들 수 있습니다.
gcloud
인스턴스에서 Private Service Connect가 사용 설정된 인스턴스를 만들려면 gcloud sql instances create 명령어를 사용합니다.
gcloud 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 \ --database-version=DATABASE_VERSION --cpu=NUMBER_OF_vCPUs \ --memory=MEMORY_SIZE \ --root-password=ROOT_PASSWORD
다음을 바꿉니다.
- INSTANCE_NAME: 인스턴스 이름입니다.
- PROJECT_ID: 인스턴스가 포함된 Google Cloud 프로젝트의 ID 또는 프로젝트 번호
- REGION_NAME: 인스턴스의 리전 이름
ALLOWED_PROJECTS: Private Service Connect 엔드포인트가 Cloud SQL 인스턴스에 연결할 수 있는 허용된 프로젝트 ID 또는 프로젝트 번호의 쉼표로 구분된 목록
프로젝트가 이 목록에 없으면 프로젝트에서 인스턴스에 연결할 Private Service Connect 엔드포인트를 만들 수 없습니다.
- AVAILABILITY_TYPE: 인스턴스에 고가용성을 사용 설정합니다. 이 파라미터에 대해 다음 값 중 하나를 지정합니다.
REGIONAL: 고가용성을 사용 설정하며, 프로덕션 인스턴스에 권장됩니다. 인스턴스는 선택한 리전 내의 다른 영역으로 장애 조치됩니다.ZONAL: 장애 조치 기능을 제공하지 않습니다. 기본값입니다.
인스턴스의 고가용성 설정 및 삭제에 대한 자세한 내용은 기존 인스턴스를 고가용성으로 구성 및 인스턴스의 고가용성 비활성화를 참조하세요.
- DATABASE_VERSION: 인스턴스의 데이터베이스 버전(예:
SQLSERVER_2019_STANDARD) - NUMBER_OF_vCPUs: 인스턴스의 코어 수
- MEMORY_SIZE: 인스턴스의 메모리 용량
- ROOT_PASSWORD:
rootCloud SQL 사용자의 비밀번호
Terraform
Private Service Connect가 사용 설정된 인스턴스를 만들려면 google_sql_database_instance Terraform 리소스를 사용합니다.
Google Cloud 프로젝트에 Terraform 구성을 적용하려면 다음 섹션의 단계를 완료하세요.
Cloud Shell 준비
- Cloud Shell을 실행합니다.
-
Terraform 구성을 적용할 기본 Google Cloud 프로젝트를 설정합니다.
이 명령어는 프로젝트당 한 번만 실행하면 되며 어떤 디렉터리에서도 실행할 수 있습니다.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Terraform 구성 파일에서 명시적 값을 설정하면 환경 변수가 재정의됩니다.
디렉터리 준비
각 Terraform 구성 파일에는 자체 디렉터리(루트 모듈이라고도 함)가 있어야 합니다.
-
Cloud Shell에서 디렉터리를 만들고 해당 디렉터리 내에 새 파일을 만드세요. 파일 이름에는
.tf확장자가 있어야 합니다(예:main.tf). 이 튜토리얼에서는 파일을main.tf라고 합니다.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
튜토리얼을 따라 하는 경우 각 섹션이나 단계에서 샘플 코드를 복사할 수 있습니다.
샘플 코드를 새로 만든
main.tf에 복사합니다.필요한 경우 GitHub에서 코드를 복사합니다. 이는 Terraform 스니펫이 엔드 투 엔드 솔루션의 일부인 경우에 권장됩니다.
- 환경에 적용할 샘플 파라미터를 검토하고 수정합니다.
- 변경사항을 저장합니다.
-
Terraform을 초기화합니다. 이 작업은 디렉터리당 한 번만 수행하면 됩니다.
terraform init
원하는 경우 최신 Google 공급업체 버전을 사용하려면
-upgrade옵션을 포함합니다.terraform init -upgrade
변경사항 적용
-
구성을 검토하고 Terraform에서 만들거나 업데이트할 리소스가 예상과 일치하는지 확인합니다.
terraform plan
필요에 따라 구성을 수정합니다.
-
다음 명령어를 실행하고 프롬프트에
yes를 입력하여 Terraform 구성을 적용합니다.terraform apply
Terraform에 '적용 완료' 메시지가 표시될 때까지 기다립니다.
- 결과를 보려면 Google Cloud 프로젝트를 엽니다. Google Cloud 콘솔에서 UI의 리소스로 이동하여 Terraform이 리소스를 만들었거나 업데이트했는지 확인합니다.
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: 인스턴스가 포함된 Google Cloud 프로젝트의 ID 또는 프로젝트 번호
- INSTANCE_NAME: 인스턴스 이름입니다.
- REGION_NAME: 인스턴스의 리전 이름
- ROOT_PASSWORD:
rootCloud SQL 사용자의 비밀번호 - AVAILABILITY_TYPE: 인스턴스에 고가용성을 사용 설정합니다. 이 파라미터에 대해 다음 값 중 하나를 지정합니다.
REGIONAL: 고가용성을 사용 설정하며, 프로덕션 인스턴스에 권장됩니다. 인스턴스는 선택한 리전 내의 다른 영역으로 장애 조치됩니다.ZONAL: 장애 조치 기능을 제공하지 않습니다. 기본값입니다.
인스턴스의 고가용성 설정 및 삭제에 대한 자세한 내용은 기존 인스턴스를 고가용성으로 구성 및 인스턴스의 고가용성 비활성화를 참조하세요.
ALLOWED_PROJECTS: Private Service Connect 엔드포인트가 Cloud SQL 인스턴스에 연결할 수 있는 허용된 프로젝트 ID 또는 프로젝트 번호의 쉼표로 구분된 목록
프로젝트가 이 목록에 없으면 프로젝트에서 인스턴스에 연결할 Private Service Connect 엔드포인트를 만들 수 없습니다.
- MACHINE_TYPE: 인스턴스의 머신 유형을 나타내는 열거형 문자열 값. 예를 들면
db-custom-NUMBER_OF_vCPUs-MEMORY_SIZE입니다. 여기서 NUMBER_OF_vCPUs 및 MEMORY_SIZE는 인스턴스에 필요한 코어 수와 메모리 양입니다.
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,
"pscConfig": {
"allowedConsumerProjects": [
"ALLOWED_PROJECTS"
],
"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가 사용 설정된 Cloud SQL 인스턴스를 만든 후 서비스 연결 URI를 가져오고 이를 사용하여 Private Service Connect 엔드포인트를 만듭니다.
gcloud
인스턴스의 서비스 연결을 가리키는 URI를 표시하는 pscServiceAttachmentLink 필드와 같이 Private Service Connect가 사용 설정된 인스턴스에 대한 요약 정보를 보려면 gcloud sql instances describe 명령어를 사용합니다.
gcloud sql instances describe INSTANCE_NAME \ --project=PROJECT_ID
다음을 바꿉니다.
- INSTANCE_NAME: VPC 네트워크의 Private Service Connect 엔드포인트가 연결할 수 있는 Cloud SQL 인스턴스의 이름
- PROJECT_ID: 인스턴스가 포함된 Google Cloud 프로젝트의 ID 또는 프로젝트 번호
다음 예시는 이 명령어의 샘플 출력을 보여줍니다.
gcloud sql instances describe myinstance \ --project=12345 ... pscServiceAttachmentLink: projects/45678/regions/myregion/serviceAttachments/myserviceattachment
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: 인스턴스가 포함된 Google Cloud 프로젝트의 ID 또는 프로젝트 번호
- INSTANCE_NAME: 인스턴스 이름
HTTP 메서드 및 URL:
GET https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{
...
pscServiceAttachmentLink: "projects/PROJECT_ID/regions/REGION_NAME/serviceAttachments/SERVICE_ATTACHMENT_NAME"
}
pscServiceAttachmentLink 필드에는 인스턴스의 서비스 연결을 가리키는 URI가 표시됩니다.
Private Service Connect 엔드포인트 만들기
Private Service Connect 엔드포인트의 내부 IP 주소를 예약하고 이 주소로 엔드포인트를 만들 수 있습니다. 엔드포인트를 만들려면 서비스 연결 URI 및 인스턴스에 허용되는 프로젝트가 필요합니다.
gcloud
Private Service Connect 엔드포인트의 내부 IP 주소를 예약하려면
gcloud compute addresses create명령어를 사용합니다.gcloud compute addresses create ADDRESS_NAME \ --project=PROJECT_ID \ --region=REGION_NAME \ --subnet=SUBNET_URI \ --addresses=INTERNAL_IP_ADDRESS
다음을 바꿉니다.
- ADDRESS_NAME: 내부 IP 주소 이름
- PROJECT_ID: 엔드포인트에 대한 Google Cloud 프로젝트의 ID 또는 프로젝트 번호
- REGION_NAME: 엔드포인트의 리전 이름
- SUBNET_URI: IP 주소의 서브넷 이름 형식은
projects/SUBNET_PROJECT_ID/regions/REGION_NAME/subnetworks/SUBNET_NAME입니다. 서브넷이 공유 VPC 네트워크에 있는 경우 SUBNET_PROJECT_ID가 호스트 프로젝트인 것이 좋습니다. - INTERNAL_IP_ADDRESS: 예약할 IP 주소. 이 IP 주소는 서브넷의 기본 IP 범위 내에 있어야 합니다. IP 주소는 RFC 1918 주소이거나 비 RFC 범위가 있는 서브넷일 수 있습니다. Google Cloud 에서 서브넷의 사용 가능한 IP 주소를 예약할 수 있도록 IP 주소를 지정하지 않은 경우 이 플래그를 생략합니다.
IP 주소가 예약되어 있는지 확인하려면
gcloud compute addresses list명령어를 사용합니다.gcloud compute addresses list ADDRESS_NAME \ --project=PROJECT_ID
응답에서 IP 주소에 대해
RESERVED상태가 표시되는지 확인합니다.Private Service Connect 엔드포인트를 만들고 Cloud SQL 서비스 연결을 가리키도록 하려면
gcloud compute forwarding-rules create명령어를 사용합니다.gcloud compute forwarding-rules create ENDPOINT_NAME \ --address=ADDRESS_NAME \ --project=PROJECT_ID \ --region=REGION_NAME \ --network=NETWORK_URI \ --target-service-attachment=SERVICE_ATTACHMENT_URI \ --allow-psc-global-access
다음을 바꿉니다.
- ENDPOINT_NAME: 엔드포인트의 이름
- NETWORK_URI: 엔드포인트의 VPC 네트워크 URI. 형식은
projects/NETWORK_PROJECT_ID/global/networks/NETWORK_NAME입니다. 공유 VPC 네트워크를 사용하려면 호스트 프로젝트를 NETWORK_PROJECT_ID로 지정합니다. - SERVICE_ATTACHMENT_URI: 서비스 연결의 URI
서비스 연결에서 엔드포인트를 수락하는지 확인하려면
gcloud compute forwarding-rules describe명령어를 사용합니다.gcloud compute forwarding-rules describe ENDPOINT_NAME \ --project=PROJECT_ID \ --region=REGION_NAME
응답에서
pscConnectionStatus필드에ACCEPTED상태가 표시되는지 확인합니다. 엔드포인트를 서비스 연결에 연결할 수 있습니다.
Terraform
Private Service Connect 엔드포인트를 만들려면 google_sql_database_instance Terraform 리소스를 사용합니다.
다음 샘플을 사용하여 IPv4 Private Service Connect 엔드포인트를 만듭니다.
다음 샘플을 사용하여 IPv6 Private Service Connect 엔드포인트를 만듭니다.
Google Cloud 프로젝트에 Terraform 구성을 적용하려면 다음 섹션의 단계를 완료하세요.
Cloud Shell 준비
- Cloud Shell을 실행합니다.
-
Terraform 구성을 적용할 기본 Google Cloud 프로젝트를 설정합니다.
이 명령어는 프로젝트당 한 번만 실행하면 되며 어떤 디렉터리에서도 실행할 수 있습니다.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Terraform 구성 파일에서 명시적 값을 설정하면 환경 변수가 재정의됩니다.
디렉터리 준비
각 Terraform 구성 파일에는 자체 디렉터리(루트 모듈이라고도 함)가 있어야 합니다.
-
Cloud Shell에서 디렉터리를 만들고 해당 디렉터리 내에 새 파일을 만드세요. 파일 이름에는
.tf확장자가 있어야 합니다(예:main.tf). 이 튜토리얼에서는 파일을main.tf라고 합니다.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
튜토리얼을 따라 하는 경우 각 섹션이나 단계에서 샘플 코드를 복사할 수 있습니다.
샘플 코드를 새로 만든
main.tf에 복사합니다.필요한 경우 GitHub에서 코드를 복사합니다. 이는 Terraform 스니펫이 엔드 투 엔드 솔루션의 일부인 경우에 권장됩니다.
- 환경에 적용할 샘플 파라미터를 검토하고 수정합니다.
- 변경사항을 저장합니다.
-
Terraform을 초기화합니다. 이 작업은 디렉터리당 한 번만 수행하면 됩니다.
terraform init
원하는 경우 최신 Google 공급업체 버전을 사용하려면
-upgrade옵션을 포함합니다.terraform init -upgrade
변경사항 적용
-
구성을 검토하고 Terraform에서 만들거나 업데이트할 리소스가 예상과 일치하는지 확인합니다.
terraform plan
필요에 따라 구성을 수정합니다.
-
다음 명령어를 실행하고 프롬프트에
yes를 입력하여 Terraform 구성을 적용합니다.terraform apply
Terraform에 '적용 완료' 메시지가 표시될 때까지 기다립니다.
- 결과를 보려면 Google Cloud 프로젝트를 엽니다. Google Cloud 콘솔에서 UI의 리소스로 이동하여 Terraform이 리소스를 만들었거나 업데이트했는지 확인합니다.
REST
Private Service Connect 엔드포인트의 내부 IP 주소를 예약합니다.
IP 주소가 예약되어 있는지 확인합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: Private Service Connect 엔드포인트가 포함된 Google Cloud 프로젝트의 ID 또는 프로젝트 번호
- REGION_NAME: 리전의 이름
- ADDRESS_NAME: IP 주소의 이름
HTTP 메서드 및 URL:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/addresses/ADDRESS_NAME
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{ "kind": "compute#address", "id": "ADDRESS_ID", "creationTimestamp": "2024-05-09T11:20:50.114-07:00", "name": "ADDRESS_NAME", "description": "This is the name of the internal IP address.", "address": "IP_ADDRESS", "status": "RESERVED", "region": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME", "selfLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/addresses/ADDRESS_NAME", "networkTier": "PREMIUM", "labelFingerprint": "LABEL_FINGERPRINT_ID", "addressType": "EXTERNAL" }응답에서 IP 주소에 대해
RESERVED상태가 표시되는지 확인합니다.Private Service Connect 엔드포인트를 만들고 Cloud SQL 서비스 연결을 가리킵니다.
서비스 연결에서 엔드포인트를 수락하는지 확인합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: Private Service Connect 엔드포인트가 포함된 Google Cloud 프로젝트의 ID 또는 프로젝트 번호
- REGION_NAME: 리전의 이름
- ENDPOINT_NAME: 엔드포인트의 이름
HTTP 메서드 및 URL:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/forwardingRules/ENDPOINT_NAME
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{ "kind": "compute#forwardingRule", "id": "ENDPOINT_ID", "creationTimestamp": "2024-05-09T12:03:21.383-07:00", "name": "ENDPOINT_NAME", "region": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME", "IPAddress": "IP_ADDRESS", "target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/serviceAttachments/SERVICE_ATTACHMENT_NAME", "selfLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/forwardingRules/ENDPOINT_NAME", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/default", "serviceDirectoryRegistrations": [ { "namespace": "goog-psc-default" } ], "networkTier": "PREMIUM", "labelFingerprint": "LABEL_FINGERPRINT_ID", "fingerprint": "FINGERPRINT_ID", "pscConnectionId": "CONNECTION_ID", "pscConnectionStatus": "ACCEPTED", "allowPscGlobalAccess": true }응답에서
pscConnectionStatus필드에ACCEPTED상태가 표시되는지 확인합니다. 엔드포인트를 서비스 연결에 연결할 수 있습니다.
Cloud SQL 인스턴스에 연결
내부 IP 주소, DNS 레코드, Cloud SQL 인증 프록시, Cloud SQL 언어 커넥터 또는 기타Google Cloud 애플리케이션을 사용하여 Private Service Connect가 사용 설정된 Cloud SQL 인스턴스에 연결할 수 있습니다.
DNS 레코드를 사용하여 연결
DNS는 Private Service Connect가 사용 설정된 인스턴스에 연결하는 데 권장되는 방법입니다. DNS 이름을 사용하면 서로 다른 네트워크가 동일한 인스턴스에 연결할 수 있으며 각 네트워크의 Private Service Connect 엔드포인트에 IP 주소가 다를 수 있습니다. 또한 Cloud SQL 인증 프록시에서 이러한 인스턴스에 연결하려면 DNS 이름이 필요합니다. DNS 설정 방법에 대한 자세한 내용은 Private Service Connect용 DNS 구성을 참고하세요.
DNS 레코드를 사용하여 Cloud SQL 인스턴스에 연결하기 전에 먼저 다음을 실행합니다.
- Private Service Connect 엔드포인트를 만듭니다.
- 인스턴스의 서비스 연결에서 엔드포인트를 수락하는지 확인합니다. 엔드포인트 상태가
ACCEPTED인지 확인하려면 상태를 확인합니다. - DNS 관리 영역 및 DNS 레코드를 구성합니다.
이러한 조건이 충족되면 DNS 레코드를 사용하여 엔드포인트를 만든 VPC 네트워크에서 인스턴스에 연결합니다.
sqlcmd -S DNS_RECORD -d DATABASE_NAME -U USERNAME
다음을 바꿉니다.
- DNS_RECORD: 엔드포인트의 DNS 레코드
- DATABASE_NAME: 인스턴스에 포함된 SQL Server용 Cloud SQL 데이터베이스의 이름
- USERNAME: 인스턴스에 연결하는 사용자의 이름
내부 IP 주소를 통해 직접 연결
Private Service Connect가 사용 설정된 Cloud SQL 인스턴스에 연결하기 전에 먼저 다음을 실행합니다.
- Private Service Connect 엔드포인트를 만듭니다.
- 인스턴스의 서비스 연결에서 엔드포인트를 수락하는지 확인합니다. 엔드포인트 상태가
ACCEPTED인지 확인하려면 상태를 확인합니다.
이러한 조건이 충족되면 엔드포인트의 IP 주소를 사용하여 엔드포인트를 만든 VPC 네트워크의 인스턴스에 액세스합니다.
엔드포인트의 IP 주소 이름을 사용하여 Private Service Connect 엔드포인트의 내부 IP 주소를 검색합니다.
gcloud
IP 주소를 검색하려면
gcloud compute addresses describe명령어를 사용합니다.gcloud compute addresses describe ADDRESS_NAME \ --project=PROJECT_ID \ --region=REGION_NAME
다음을 바꿉니다.
- ADDRESS_NAME: 엔드포인트의 IP 주소 이름
- PROJECT_ID: 엔드포인트가 포함된 Google Cloud 프로젝트의 ID 또는 프로젝트 번호
- REGION_NAME: 엔드포인트의 리전 이름
응답에서
address필드에 IP 주소가 표시되는지 확인합니다. 이것은 내부 IP 주소입니다.REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: 엔드포인트가 포함된 Google Cloud 프로젝트의 ID 또는 프로젝트 번호
- REGION_NAME: 엔드포인트의 리전 이름
- ADDRESS_NAME: 엔드포인트의 IP 주소 이름
HTTP 메서드 및 URL:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/addresses/ADDRESS_NAME
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{ "kind": "compute#address", "id": "ADDRESS_ID", "creationTimestamp": "2024-05-09T11:20:50.114-07:00", "name": "ADDRESS_NAME", "description": "This is the name of the internal IP address.", "address": "IP_ADDRESS", "status": "RESERVED", "region": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME", "selfLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/addresses/ADDRESS_NAME", "networkTier": "PREMIUM", "labelFingerprint": "LABEL_FINGERPRINT_ID", "addressType": "EXTERNAL" }내부 IP 주소는
address필드와 연결된 값입니다.또는 Cloud SQL 인스턴스의 서비스 연결을 사용하여 Private Service Connect 엔드포인트의 내부 IP 주소를 검색합니다.
gcloud
IP 주소를 검색하려면
gcloud compute forwarding-rules list명령어를 사용합니다.gcloud compute forwarding-rules list \ --filter="TARGET:REGION_NAME/serviceAttachments/SERVICE_ATTACHMENT_NAME" \ --project=PROJECT_ID
다음을 바꿉니다.
- REGION_NAME: 엔드포인트의 리전 이름
- PROJECT_ID: 엔드포인트가 포함된 Google Cloud 프로젝트의 ID 또는 프로젝트 번호
- SERVICE_ATTACHMENT_NAME: Cloud SQL 인스턴스의 서비스 연결 이름
응답에 IP 주소가 표시되는지 확인합니다. 이것은 내부 IP 주소입니다.
다음은 샘플 응답입니다.
NAMEREGIONIP_ADDRESSTARGETmyInstanceus-central110.10.10.10us-central1/serviceAttachments/a-123456789e0a-psc-service-attachment-abc123d4e5f67gh8REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: 엔드포인트가 포함된 Google Cloud 프로젝트의 ID 또는 프로젝트 번호
- REGION_NAME: 엔드포인트의 리전 이름
- SERVICE_ATTACHMENT_PROJECT_ID: 서비스 연결이 포함된 Google Cloud 프로젝트의 ID 또는 프로젝트 번호
- SERVICE_ATTACHMENT_NAME: Cloud SQL 인스턴스의 서비스 연결 이름
HTTP 메서드 및 URL:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/forwardingRules?target="https://www.googleapis.com/compute/v1/projects/SERVICE_ATTACHMENT_PROJECT_ID/regions/REGION_NAME/serviceAttachments/SERVICE_ATTACHMENT_NAME"
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{ "kind": "compute#forwardingRuleList", "id": "projects/PROJECT_ID/regions/REGION_NAME/forwardingRules", "items": [ { "kind": "compute#forwardingRule", "id": "FORWARDING_RULE_ID", "creationTimestamp": "2023-10-31T13:04:37.168-07:00", "name": "FORWARDING_RULE_NAME", "region": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME", "IPAddress": "IP_ADDRESS", "target": "https://www.googleapis.com/compute/v1/projects/SERVICE_ATTACHMENT_PROJECT_ID/regions/REGION_NAME/serviceAttachments/SERVICE_ATTACHMENT_NAME", "selfLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/forwardingRules/FORWARDING_RULE_NAME", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME", "serviceDirectoryRegistrations": [ { "namespace": "goog-psc-default" } ], "networkTier": "PREMIUM", "labelFingerprint": "LABEL_FINGERPRINT_ID", "fingerprint": "FINGERPRINT_ID", "pscConnectionId": "PSC_CONNECTION_ID", "pscConnectionStatus": "CLOSED", "allowPscGlobalAccess": true } ], "selfLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/forwardingRules" }내부 IP 주소는
IPAddress필드와 연결된 값입니다.-
Cloud SQL 인스턴스에 연결하려면 내부 IP 주소를 사용합니다.
sqlcmd -S IP_ADDRESS -d DATABASE_NAME -U USERNAME
다음을 바꿉니다.
- IP_ADDRESS: 엔드포인트의 IP 주소
- DATABASE_NAME: 인스턴스에 포함된 SQL Server용 Cloud SQL 데이터베이스의 이름
- USERNAME: 인스턴스에 연결하는 사용자의 이름
Cloud SQL 인증 프록시를 사용하여 연결
Cloud SQL 인증 프록시는 승인된 네트워크가 없거나 SSL을 구성하지 않고도 Private Service Connect가 사용 설정된 인스턴스에 대한 보안 액세스 권한을 제공하는 커넥터입니다.
인스턴스의 Private Service Connect DNS 이름을 사용하여 Cloud SQL 인증 프록시를 구성합니다. DNS 이름은 DNS 리소스를 도메인 이름에 매핑하는 DNS 레코드를 식별합니다. 프로젝트의 DNS를 사용 설정하는 방법에 대한 자세한 내용은 Private Service Connect에서 DNS 구성을 참고하세요. 인스턴스의 기존 DNS 이름을 찾으려면 DNS 이름 찾기를 참고하세요.
고급 장애 조치 클러스터가 사용 설정된 경우 고급 장애 조치 클러스터의 Private Service Connect 쓰기 엔드포인트 DNS 이름을 사용하도록 Cloud SQL 인증 프록시를 구성할 수도 있습니다.
예를 들어 클러스터의 Private Service Connect DNS 쓰기 엔드포인트 이름이 abcdef123456.987654321fedcb.global.sql-psc.goog이면 다음과 같이 인증 프록시를 시작합니다.
./cloud-sql-proxy abcdef123456.987654321fedcb.global.sql-psc.googPrivate Service Connect를 통해 연결하는 경우 Cloud SQL 인증 프록시 버전 v2.5.0 이상이 필요합니다.
Cloud SQL 인증 프록시 다운로드 및 설치
Private Service Connect가 사용 설정된 인스턴스에 연결하려면 Cloud SQL 인증 프록시의 바이너리를 다운로드하고 설치해야 합니다. 운영체제 및 운영체제가 사용하는 커널(32비트 또는 64비트)에 따라 다른 바이너리를 다운로드합니다. 대부분의 최신 하드웨어는 64비트 커널을 사용합니다.
머신에서 32비트 커널을 실행 중인지 또는 64비트 커널을 실행 중인지 확실하지 않은 경우 Linux 또는 macOS에서 uname -a 명령어를 사용합니다. Windows의 경우 Windows 문서를 참조하세요.
Cloud SQL 인증 프록시 시작
Cloud SQL 인증 프록시는 Private Service Connect가 사용 설정된 인스턴스에 대한 연결을 지원합니다. 자세한 내용은 Cloud SQL 인증 프록시 시작을 참고하세요.
- 인스턴스의 연결 이름을 포함하여 Cloud SQL 인스턴스에 대한 요약 정보를 확인합니다.
gcloud
Cloud SQL 인스턴스에 대한 요약 정보를 보려면
gcloud sql instances describe명령어를 사용합니다.gcloud sql instances describe INSTANCE_NAME \ --project=PROJECT_ID \ --format='value(connectionName)'
다음을 바꿉니다.
- INSTANCE_NAME: Cloud SQL 인스턴스의 이름
- PROJECT_ID: 인스턴스가 포함된 Google Cloud 프로젝트의 ID 또는 프로젝트 번호
연결 이름은
PROJECT_ID:REGION_NAME:INSTANCE_NAME형식입니다.REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: 인스턴스가 포함된 Google Cloud 프로젝트의 ID 또는 프로젝트 번호
- INSTANCE_NAME: 인스턴스 이름
HTTP 메서드 및 URL:
GET https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{ ... "connectionName": "PROJECT_ID:REGION_NAME:INSTANCE_NAME" }연결 이름은
PROJECT_ID:REGION_NAME:INSTANCE_NAME형식입니다. - 인스턴스 연결 이름을 복사합니다.
Cloud SQL 인증 프록시를 실행합니다.
./cloud-sql-proxy INSTANCE_CONNECTION_NAME --psc
INSTANCE_CONNECTION_NAME을 이전 단계에서 복사한 인스턴스 연결 이름으로 바꿉니다.
Cloud SQL 언어 커넥터를 사용하여 연결
Cloud SQL 언어 커넥터는 승인된 네트워크가 없거나 SSL을 구성하지 않고도 Private Service Connect가 사용 설정된 Cloud SQL 인스턴스에 대한 보안 액세스 권한을 제공하는 라이브러리입니다.
인스턴스의 Private Service Connect DNS 이름과 고급 장애 조치 클러스터의 Private Service Connect 쓰기 엔드포인트 DNS 이름을 사용하여 Cloud SQL 인증 프록시를 구성합니다(고급 장애 조치 클러스터가 사용 설정된 경우). DNS 이름은 DNS 리소스를 도메인 이름에 매핑하는 DNS 레코드를 식별합니다. 프로젝트의 DNS를 사용 설정하는 방법에 대한 자세한 내용은 Private Service Connect에서 DNS 구성을 참고하세요. 인스턴스의 기존 DNS 이름을 찾으려면 DNS 이름 찾기를 참고하세요.
Cloud SQL 언어 커넥터는 해당 라이브러리 내에서 PSC IP 유형을 통해 Private Service Connect 연결을 지원합니다. 각 커넥터의 문서는 고급 재해 복구 (DR)에 관한 GitHub의 공개 문서에 있습니다.
- Cloud SQL Python 커넥터 (v1.3.0 이상)
- Cloud SQL Go 커넥터(v1.4.0 이상)
- Cloud SQL Java 커넥터 (v1.13.0 이상)
- Cloud SQL Node.js 커넥터 (v0.5.0 이상)
App Engine 표준, Cloud Run, Cloud Run Functions에서 연결
Private Service Connect가 사용 설정된 Cloud SQL 인스턴스에 연결하려면 App Engine 표준 또는 Cloud Run을 사용할 수 있습니다.
이러한 지원되는 서버리스 환경에서는 IP 주소와 포트 번호를 사용한 Cloud SQL 언어 커넥터 및 직접 TCP 연결 모두 지원됩니다. 직접 TCP 연결의 경우 Private Service Connect 엔드포인트를 만들 때 예약하는 IP 주소입니다. IP 주소를 데이터베이스 호스트의 주소로 지정할 수 있습니다.
엔드포인트에 DNS 레코드를 만드는 경우 호스트에 이 레코드를 지정할 수 있습니다.
BigQuery에서 연결
Cloud SQL의 데이터에 액세스하고 내부 IP 연결을 통해 이 데이터에 대해 쿼리하려면 --enable-google-private-path 파라미터를 사용합니다. 이 파라미터는 다음 경우에만 유효합니다.
--no-assign-ip파라미터를 사용합니다.--network파라미터를 사용하여 내부 연결을 만드는 데 사용할 VPC 네트워크의 이름을 지정합니다.
Cloud SQL 인스턴스의 아웃바운드 연결 구성
Private Service Connect 인터페이스와 네트워크 연결을 사용하여 네트워크와의 아웃바운드 연결이 있도록 Private Service Connect 지원 Cloud SQL 인스턴스를 구성할 수 있습니다. Private Service Connect 아웃바운드 연결 작동 방식 및 제한사항에 대한 자세한 내용은 Private Service Connect 아웃바운드 연결 개요를 참고하세요.
Cloud SQL 인스턴스와 아웃바운드 연결을 사용하려면 다음을 충족해야 합니다.
네트워크 연결을 만들거나 업데이트합니다. 이 네트워크 연결은 Cloud SQL 인스턴스가 네트워크의 Private Service Connect 인터페이스에 연결하는 데 사용됩니다.
네트워크 연결은 Cloud SQL 인스턴스와 동일한 리전에 있어야 하며 Private Service Connect 인터페이스의 목록을 사용하여 연결을 자동으로 수락하도록 설정되어 있어야 합니다.
Cloud SQL 테넌트 프로젝트 ID를 가져옵니다.
gcloud sql instances describe명령어를 사용하여 인스턴스에 대한 세부정보를 가져옵니다. 출력에 표시된 서비스 연결 URL에서 테넌트 프로젝트 ID를 확인할 수 있습니다.ADMIN_PROJECT=PROJECT_ID INSTANCE_NAME=INSTANCE_NAME TENANT_PROJECT_ID=$(gcloud --project=$ADMIN_PROJECT sql instances describe $INSTANCE_NAME | grep pscServiceAttachmentLink | cut -f 2 -d "/")다음을 바꿉니다.
- PROJECT_ID: 사용 중인 Google Cloud프로젝트의 프로젝트 ID입니다.
- INSTANCE_NAME: 아웃바운드 연결에 설정할 Private Service Connect 지원 Cloud SQL 인스턴스의 이름입니다.
나중에 허용된 프로젝트 ID 목록에 포함할 수 있도록 테넌트 프로젝트 ID 값을 저장합니다. Google Cloud 프로젝트에서 네트워크 연결을 만들거나 업데이트할 때 필요합니다.
Cloud SQL 아웃바운드 연결을 수신할 네트워크를 식별하고 Private Service Connect 인터페이스가 있는지 확인합니다.
네트워크 연결을 사용하여 Cloud SQL 인스턴스에 대한 아웃바운드 연결을 사용 설정합니다.
인스턴스로의 아웃바운드 연결이 더 이상 필요하지 않은 경우 언제든지 아웃바운드 연결을 사용 중지할 수 있습니다.
Private Service Connect 아웃바운드 연결에 대한 자세한 내용은 Private Service Connect 아웃바운드 연결을 참고하세요.
Cloud SQL 인스턴스의 아웃바운드 연결 사용 설정
Cloud SQL 인스턴스의 아웃바운드 연결을 사용 설정하려면 먼저 Google Cloud 프로젝트에서 네트워크 연결을 만들거나 업데이트해야 합니다.
gcloud
아웃바운드 연결을 사용 설정하려면 다음 명령어를 실행합니다.
gcloud beta sql instances patch INSTANCE_NAME \
--psc-network-attachment-uri=NETWORK_ATTACHMENT_URI \
--project=PROJECT_ID
다음을 바꿉니다.
- INSTANCE_NAME: 아웃바운드 연결에 설정할 Private Service Connect 지원 Cloud SQL 인스턴스의 이름입니다.
- NETWORK_ATTACHMENT_URI: 네트워크의 Private Service Connect 인터페이스에 연결하는 데 사용할 Google Cloud 프로젝트 내 네트워크 연결의 URI입니다.
- PROJECT_ID: 사용 중인 Google Cloud프로젝트의 프로젝트 ID입니다.
gcloud sql instances describe를 실행하여 Private Service Connect 아웃바운드 연결이 사용 설정되었는지 확인할 수 있습니다.
출력에 psc-network-attachment-uri가 표시되면 Private Service Connect 아웃바운드 연결이 성공적으로 사용 설정된 것입니다.
REST v1
아웃바운드 연결을 사용 설정하려면 다음 명령어를 실행합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
PROJECT_ID: 프로젝트의 ID입니다.NETWORK_ATTACHMENT_URI: 프로젝트의 네트워크 연결 URI입니다.INSTANCE_ID: Cloud SQL 인스턴스의 이름입니다.
HTTP 메서드 및 URL:
POST https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID
JSON 요청 본문:
{
"settings": {
"ipConfiguration": {
"pscConfig: {
"networkAttachmentUri": "NETWORK_ATTACHMENT_URI"
"kind": "sql#settings"
}
},
}
}
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "PENDING",
"user": USER,
"insertTime": "2025-05-13T20:44:23.064Z",
"operationType": "UPDATE",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID","
}
REST v1beta4
아웃바운드 연결을 사용 설정하려면 다음 명령어를 실행합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
PROJECT_ID: 프로젝트의 ID입니다.NETWORK_ATTACHMENT_URI: 프로젝트의 네트워크 연결 URI입니다.INSTANCE_ID: Cloud SQL 인스턴스의 이름입니다.
HTTP 메서드 및 URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID
JSON 요청 본문:
{
"settings": {
"ipConfiguration": {
"pscConfig: {
"networkAttachmentUri": "NETWORK_ATTACHMENT_URI"
}
},
}
}
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "PENDING",
"user": USER,
"insertTime": "2025-05-13T20:44:23.064Z",
"operationType": "UPDATE",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID","
}
Private Service Connect 아웃바운드 연결 관련 문제 해결 정보는 Private Service Connect 문제 해결을 참고하세요.
Cloud SQL 인스턴스의 아웃바운드 연결 사용 중지
gcloud
아웃바운드 연결을 사용 중지하려면 다음 명령어를 실행합니다.
gcloud beta sql instances patch INSTANCE_NAME \
--clear-psc-network-attachment-uri \
--project=PROJECT_ID
다음을 바꿉니다.
- INSTANCE_NAME: 아웃바운드 연결에 설정할 Private Service Connect 지원 Cloud SQL 인스턴스의 이름입니다.
- PROJECT_ID: 사용 중인 Google Cloud프로젝트의 프로젝트 ID입니다.
REST v1
아웃바운드 연결을 사용 중지하려면 다음 명령어를 실행합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
PROJECT_ID: 프로젝트의 ID입니다.NETWORK_ATTACHMENT_URI: 프로젝트의 네트워크 연결 URI입니다. 사용 중지하려면null로 설정합니다.INSTANCE_ID: Cloud SQL 인스턴스의 이름입니다.
HTTP 메서드 및 URL:
POST https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID
JSON 요청 본문:
{
"settings": {
"ipConfiguration": {
"pscConfig: {
"networkAttachmentUri": null,
"kind": "sql#settings"
}
},
}
}
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "PENDING",
"user": USER,
"insertTime": "2025-05-13T20:44:23.064Z",
"operationType": "UPDATE",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID","
}
REST v1beta4
아웃바운드 연결을 사용 중지하려면 다음 명령어를 실행합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
PROJECT_ID: 프로젝트의 ID입니다.NETWORK_ATTACHMENT_URI: 프로젝트의 네트워크 연결 URI입니다. 사용 중지하려면null로 설정합니다.INSTANCE_ID: Cloud SQL 인스턴스의 이름입니다.
HTTP 메서드 및 URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID
JSON 요청 본문:
{
"settings": {
"ipConfiguration": {
"pscConfig: {
"networkAttachmentUri": null,
"kind": "sql#settings"
}
},
}
}
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "PENDING",
"user": USER,
"insertTime": "2025-05-13T20:44:23.064Z",
"operationType": "UPDATE",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID","
}
연결 테스트
Private Service Connect가 사용 설정된 Cloud SQL 인스턴스에 대한 인바운드 연결을 테스트하려면 Private Service Connect 엔드포인트의 IP 주소를 대상 IP 주소로 설정합니다.
gcloud
Private Service Connect가 사용 설정된 Cloud SQL 인스턴스의 연결 테스트를 만들려면 gcloud network-management connectivity-tests create 명령어를 사용합니다.
gcloud network-management connectivity-tests create CONNECTIVITY_TEST_NAME \ --source-instance=SOURCE_INSTANCE \ --destination-cloud-sql-instance=DESTINATION_CLOUD_SQL_INSTANCE \ --destination-network=DESTINATION_NETWORK \ --destination-port=DESTINATION_PORT \ --protocol=tcp
다음을 바꿉니다.
- CONNECTIVITY_TEST_NAME: 연결 테스트 이름
- SOURCE_INSTANCE: 소스 IP 주소가 있는 Compute Engine 인스턴스의 URI(예:
projects/myproject/zones/myzone/instances/myinstance) - DESTINATION_CLOUD_SQL_INSTANCE: Cloud SQL 인스턴스의 URL(예:
projects/myproject/instances/myinstance) - DESTINATION_NETWORK: 대상 IP 주소가 있는 VPC 네트워크의 URI(예:
projects/myproject/global/networks/mynetwork) - DESTINATION_PORT: 인스턴스에 예약된 포트 번호. SQL Server용 Cloud SQL 인스턴스의 경우 포트 번호는
1433입니다.
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: 인스턴스가 포함된 Google Cloud 프로젝트의 ID 또는 프로젝트 번호
- CONNECTIVITY_TEST_NAME: 연결 테스트 이름
- SOURCE_IP_ADDRESS: 소스 Compute Engine 인스턴스의 IP 주소
- SOURCE_INSTANCE: 소스 IP 주소가 있는 Compute Engine 인스턴스의 URI(예:
projects/myproject/zones/myzone/instances/myinstance) - SOURCE_NETWORK: 소스 IP 주소가 있는 VPC 네트워크의 URI(예:
projects/myproject/global/networks/mynetwork) - DESTINATION_IP_ADDRESS: 대상 Cloud SQL 인스턴스의 IP 주소
- DESTINATION_PORT: 인스턴스에 예약된 포트 번호. SQL Server용 Cloud SQL 인스턴스의 경우 포트 번호는
1433입니다. - DESTINATION_NETWORK: 대상 IP 주소가 있는 VPC 네트워크의 URI(예:
projects/myproject/global/networks/mynetwork)
HTTP 메서드 및 URL:
POST https://networkmanagement.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/connectivityTests?testId=CONNECTIVITY_TEST_NAME
JSON 요청 본문:
{
"source": {
"ipAddress": "SOURCE_IP_ADDRESS",
"instance": "SOURCE_INSTANCE",
"network": "SOURCE_NETWORK"
},
"destination": {
"ipAddress": "DESTINATION_IP_ADDRESS",
"port": DESTINATION_PORT,
"network": "DESTINATION_NETWORK",
"projectId": "PROJECT_ID"
},
"protocol": "TCP"
}
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{
"name": "projects/PROJECT_ID/locations/global/operations/operation-OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.networkmanagement.v1.OperationMetadata",
"createTime": "2024-05-23T16:43:49.313981473Z",
"target": "projects/PROJECT_ID/locations/global/connectivityTests/CONNECTIVITY_TEST_NAME",
"verb": "create",
"cancelRequested": false,
"apiVersion": "v1"
},
"done": false
}
제한사항
Private Service Connect가 사용 설정된 Cloud SQL 인스턴스의 서비스 연결에 연결하는 Private Service Connect 엔드포인트를 최대 20개까지 설정할 수 있습니다.
더 많은 VPC 네트워크에서 연결해야 하는 경우 NCC를 통해 Private Service Connect 엔드포인트 전파를 사용하세요. 자세한 내용은 Private Service Connect 엔드포인트 전파를 참고하세요.
Private Service Connect를 사용하여 Cloud SQL 인스턴스에 연결할 수 있는 동시 연결 수는 최대 64,512개입니다.
다음 플래그가 무효화되거나 영향을 받습니다.
--no-assign-ip:Private Service Connect가 사용 설정된 인스턴스는 외부 IP 연결과 같은 다른 연결 유형을 사용할 수 없으므로 이 플래그를 사용합니다.--authorized-networks:이 플래그를 사용하여 승인된 네트워크를 추가할 수 없습니다.--network:이 플래그는 비공개 서비스 액세스와 연결되어 있으므로 사용할 수 없습니다.--allocated-ip-range-name:허용된 IP 범위 이름이 지원되지 않으므로 이 플래그를 사용할 수 없습니다.
비공개 서비스 액세스나 외부 IP 연결을 사용하도록 Private Service Connect가 사용 설정된 인스턴스를 구성할 수 없습니다.
- Private Service Connect가 사용 설정된 인스턴스에서는 외부 IP 연결을 사용 설정할 수 없습니다.
- 인스턴스에 비공개 서비스 액세스를 사용 설정하거나 승인된 네트워크를 추가할 수 없습니다.
- 인스턴스의 연결 유형을 변경할 수 없습니다.
Private Service Connect가 사용 설정된 Cloud SQL 인스턴스에는
gcloud sql connect명령어, Cloud Shell, Cloud Build, Database Migration Service, Datastream을 사용하여 연결할 수 없습니다.Private Service Connect가 사용 설정된 Cloud SQL 인스턴스에 대한 연결을 테스트할 때는 다음 항목을 설정할 수 없습니다.
- 인스턴스의 내부 IP 주소 또는 DNS 이름을 대상으로 직접 설정
- 인스턴스를 소스로 설정
- Private Service Connect 엔드포인트의 IP 주소를 소스로 설정
승인된 네트워크를 통한 IP 기반 허용 목록은 지원되지 않습니다.
컨텍스트 인식 액세스에 의해 적용되는 IP 기반 허용 목록은 지원되지 않습니다.
Private Service Connect가 사용 설정된 Cloud SQL 인스턴스의 경우 Microsoft Active Directory용 관리형 서비스(관리형 Microsoft AD라고도 함)가 지원되지 않습니다.
문제 해결
이 섹션에는 Private Service Connect가 사용 설정된 Cloud SQL 인스턴스 관련 문제에 대한 정보와 문제 해결 단계가 포함되어 있습니다.
문제 문제 해결 인스턴스의 서비스 연결에서 Private Service Connect 엔드포인트를 수락하지 않습니다. - 엔드포인트 상태를 확인합니다.
gcloud
상태를 확인하려면
gcloud compute forwarding-rules describe명령어를 사용합니다.gcloud compute forwarding-rules describe ENDPOINT_NAME \ --project=PROJECT_ID \ --region=REGION_NAME \ | grep pscConnectionStatus
다음을 바꿉니다.
- ENDPOINT_NAME: 엔드포인트의 이름
- PROJECT_ID: 엔드포인트가 포함된 Google Cloud 프로젝트의 ID 또는 프로젝트 번호
- REGION_NAME: 엔드포인트의 리전 이름
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: Private Service Connect 엔드포인트가 포함된 Google Cloud 프로젝트의 ID 또는 프로젝트 번호
- REGION_NAME: 리전의 이름
- ENDPOINT_NAME: 엔드포인트의 이름
HTTP 메서드 및 URL:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/forwardingRules/ENDPOINT_NAME
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{ "kind": "compute#forwardingRule", "id": "ENDPOINT_ID", "creationTimestamp": "2024-05-09T12:03:21.383-07:00", "name": "ENDPOINT_NAME", "region": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME", "IPAddress": "IP_ADDRESS", "target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/serviceAttachments/SERVICE_ATTACHMENT_NAME", "selfLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/forwardingRules/ENDPOINT_NAME", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/default", "serviceDirectoryRegistrations": [ { "namespace": "goog-psc-default" } ], "networkTier": "PREMIUM", "labelFingerprint": "LABEL_FINGERPRINT_ID", "fingerprint": "FINGERPRINT_ID", "pscConnectionId": "CONNECTION_ID", "pscConnectionStatus": "ACCEPTED", "allowPscGlobalAccess": true } - 엔드포인트 상태가
ACCEPTED인지 확인합니다. 상태가PENDING이면 인스턴스에서 엔드포인트가 포함된 Google Cloud 프로젝트를 허용하지 않는 것입니다. 엔드포인트가 생성되는 네트워크 프로젝트가 허용되는지 확인합니다. 자세한 내용은 Private Service Connect가 사용 설정된 인스턴스 수정을 참조하세요.
ERROR: (gcloud.compute.forwarding-rules.create) Could not fetch resource: The resource 'projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME' was not found이 오류 메시지는 Private Service Connect 엔드포인트의 고정 내부 IP 주소를 예약할 때 발생할 수 있습니다. 지정된 서브넷이 URI로 지정된 프로젝트에 있는지 확인합니다. 서비스 프로젝트에서 엔드포인트를 만들지만 공유 VPC 네트워크의 서브넷을 사용하려면 URI로 서브넷을 지정하고 URI에서 호스트 프로젝트의 프로젝트 ID를 사용해야 합니다. 자세한 내용은 수동으로 엔드포인트 만들기를 참조하세요. ERROR: (gcloud.compute.forwarding-rules.create) Could not fetch resource: - The resource 'projects/PROJECT_ID/global/networks/NETWORK_NAME' was not found이 오류 메시지는 Private Service Connect 엔드포인트를 수동으로 만들 때 발생할 수 있습니다. 지정된 네트워크가 URI로 지정된 프로젝트에 있는지 확인합니다. 서비스 프로젝트에서 엔드포인트를 만들되 공유 VPC 네트워크를 사용하려면 URI로 네트워크를 지정하고 URI에서 호스트 프로젝트의 프로젝트 ID를 사용해야 합니다. 자세한 내용은 엔드포인트 수동으로 만들기를 참고하세요. Invalid consumer network status for PSC auto connection.소비자 네트워크가 올바르게 구성되지 않았거나 전혀 구성되지 않았으므로 연결할 수 있는 엔드포인트가 없습니다. 엔드포인트에 연결하려면 엔드포인트 상태를 확인하고 오류를 수정한 후 다시 연결을 시도해야 합니다.
엔드포인트 상태를 확인하려면 엔드포인트 가져오기를 참조하세요. 엔드포인트 상태는 다음 중 하나일 수 있습니다.CONNECTION_POLICY_MISSING: 소비자 네트워크에 일치하는 서비스 연결 정책이 없습니다. 서비스 연결 정책은 네트워크별, 리전별로 구성됩니다. 네트워크를 재구성하려면 서비스 연결 정책 업데이트를 참조하세요.CONSUMER_INSTANCE_PROJECT_NOT_ALLOWLISTED: 일치하는 서비스 연결 정책이 있지만 정책의 서비스 인스턴스 범위 필드가 이 Cloud SQL 인스턴스에 대한 연결을 허용하도록 구성되지 않았습니다. Cloud SQL 인스턴스가 있는 프로젝트, 폴더 또는 조직으로 서비스 인스턴스 범위 필드(--producer-instance-location)의 값을 구성하도록 정책을 업데이트합니다. 서비스 연결 정책을 재구성하려면 서비스 연결 정책 업데이트를 참고하세요.POLICY_LIMIT_REACHED: 서비스 연결 정책이 엔드포인트 한도에 도달했습니다. 이 문제를 해결하려면 서비스 연결 정책을 업데이트하여 엔드포인트 한도를 늘려야 합니다.
No permission to create a service connection policy.서비스 연결 정책을 만드는 데 필요한 권한이 없습니다. 서비스 연결 정책을 만들려면
Compute Network Admin IAM역할이 필요합니다. 자세한 내용은 역할 및 권한을 참조하세요.Private Service Connect 아웃바운드 연결을 사용하는 경우 네트워크 연결에서 Private Service Connect 인터페이스의 연결을 수락할 수 없습니다. 외부 네트워크가 Private Service Connect 인터페이스의 연결을 수락할 수 없는 경우 네트워크 연결의 연결 정책이 올바르게 구성되지 않았을 수 있습니다.
네트워크 연결은 모든 연결을 자동으로 수락하도록 구성되거나 허용된 연결 목록을 통해 수동으로 구성되어야 합니다. 자세한 내용은 연결 정책을 참조하세요.다음 명령어를 사용하여 네트워크 연결에서 수락된 연결을 확인합니다.
Private Service Connect 인터페이스가 허용 목록에 없으면 네트워크 연결을 업데이트합니다. 자세한 내용은 네트워크 연결 관리를 참고하세요.gcloud compute network-attachments describe default --region=REGION_ID
다음 단계
- 비공개 IP 자세히 알아보기
- Private Service Connect 자세히 알아보기
- Private Service Connect가 사용 설정된 인스턴스의 읽기 복제본 만들기 자세히 알아보기
- Private Service Connect가 사용 설정된 인스턴스 클론 자세히 알아보기
- Private Service Connect가 사용 설정된 인스턴스에 대한 요약 정보 보기 자세히 알아보기
- Private Service Connect가 사용 설정된 인스턴스의 고가용성 설정 및 삭제 자세히 알아보기
- Private Service Connect가 사용 설정된 인스턴스 수정 및 삭제 자세히 알아보기