비공개 서비스 액세스 구성

이 문서에서는 비공개 서비스 액세스를 사용하여 Cloud SQL 인스턴스에 대한 비공개 IP 연결을 설정하는 방법을 설명합니다.

시작하기 전에

Cloud SQL을 사용하려면 비공개 IP 연결에 사용되는 VPC 네트워크마다 비공개 서비스 액세스가 필요합니다.

필요한 API 사용 설정

Cloud SQL 인스턴스를 호스팅하는 프로젝트에서 Service Networking API (servicenetworking.googleapis.com) 및 Compute Engine API (compute.googleapis.com)를 사용 설정합니다.

공유 VPC 네트워크를 사용하는 경우 공유 VPC 호스트 프로젝트에서도 이러한 API를 사용 설정해야 합니다.

다음 명령어를 사용하여 API를 사용 설정할 수 있습니다.

gcloud services enable servicenetworking.googleapis.com compute.googleapis.com --project=PROJECT_ID

PROJECT_ID를 프로젝트 ID (또는 공유 VPC 호스트 프로젝트 ID)로 바꿉니다.

Service Networking API가 사용 설정되지 않은 경우 비공개 IP 주소로 Cloud SQL 인스턴스를 만들면 작업이 SERVICE_NETWORKING_NOT_ENABLED 오류와 함께 실패합니다.

필수 역할 및 권한

비공개 서비스 액세스 연결을 만들고 관리하는 데 필요한 권한을 얻으려면 관리자에게 Cloud SQL 인스턴스를 호스팅하는 프로젝트에 대한 Compute 네트워크 관리자 (roles/compute.networkAdmin) IAM 역할을 부여해 달라고 요청하세요. 역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

이 사전 정의된 역할에는 비공개 서비스 액세스 연결을 만들고 관리하는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.

필수 권한

비공개 서비스 액세스 연결을 만들고 관리하려면 다음 권한이 필요합니다.

  • compute.addresses.create
  • compute.addresses.list
  • compute.globalAddresses.create
  • compute.globalAddresses.createInternal
  • compute.globalAddresses.list
  • compute.networks.list
  • compute.networks.use
  • servicenetworking.services.addPeering
  • serviceusage.services.list

커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.

공유 VPC 네트워크를 사용하는 경우 공유 VPC 호스트 프로젝트의 사용자에게 Compute 네트워크 관리자 (roles/compute.networkAdmin) 역할도 부여해야 합니다.

Cloud SQL용 비공개 서비스 액세스 구성

비공개 서비스 액세스 구성 프로세스는 두 부분으로 이루어집니다.

  • 기존 IP 주소 범위를 선택하거나 새 IP 주소 범위를 할당합니다.

    Cloud de Confiance 콘솔에서 Cloud SQL 인스턴스를 만드는 경우 Google에서 IP 주소 범위를 할당하도록 할 수도 있습니다. 이 경우 Google에서는 프리픽스 길이가 /24인 IP 범위를 자동으로 할당하고 default-ip-range 이름을 사용합니다.

    여러 리전 또는 다른 데이터베이스 유형의 Cloud SQL 인스턴스를 만들려면 각 리전 또는 데이터베이스 유형에 사용 가능한 /24 이상의 IP 주소 범위가 있어야 합니다. 여기에는 Filestore 또는 Memorystore와 같은 다른 애플리케이션이 포함됩니다. 새 리전 또는 데이터베이스 유형의 경우 Cloud SQL에 무료 /24 범위가 있어야 합니다.

  • VPC 네트워크에서 기본 서비스 프로듀서 네트워크로의 Private Service Connect 연결을 만듭니다.

네트워크 및 애플리케이션 환경 요구사항과 비공개 서비스 액세스에 필요한 IAM 권한에 대한 자세한 내용은 비공개 IP 연결 요구사항을 참조하세요.

IP 주소 범위 할당

콘솔

  1. Cloud de Confiance 콘솔에서 VPC 네트워크 페이지로 이동합니다.

    VPC 네트워크로 이동

  2. 사용할 VPC 네트워크를 선택합니다.
  3. 비공개 서비스 액세스 탭을 선택합니다.
  4. 서비스에 할당된 IP 범위 탭을 선택합니다.
  5. IP 범위 할당을 클릭합니다.
  6. 할당된 범위의 이름에 google-managed-services-VPC_NETWORK_NAME을 지정합니다. 여기서 VPC_NETWORK_NAME은 연결할 VPC 네트워크의 이름입니다(예: google-managed-services-default). 설명은 선택사항입니다.
  7. 커스텀 옵션을 선택한 다음 할당할 IP 주소 범위를 CIDR 표기법으로 입력합니다.
  8. 할당을 클릭하여 할당된 범위를 만듭니다.

gcloud

다음 중 하나를 수행합니다.

  • 주소 범위와 프리픽스 길이(서브넷 마스크)를 지정하려면 addresses 및 prefix-length 플래그를 사용합니다. 예를 들어 CIDR 블록 192.168.0.0/16을 할당하려면 주소에 192.168.0.0을 지정하고 프리픽스 길이에 16을 지정합니다.
  •     gcloud compute addresses create google-managed-services-VPC_NETWORK_NAME \
           --global \
           --purpose=VPC_PEERING \
           --addresses=192.168.0.0 \
           --prefix-length=16 \
           --network=projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME
        
  • 프리픽스 길이 (서브넷 마스크)만 지정하려면 prefix-length 플래그를 사용합니다. IP 주소 범위를 생략하면 Cloud de Confiance가 VPC 네트워크에서 사용되지 않는 IP 주소 범위를 자동으로 선택합니다. 다음 예시에서는 프리픽스 길이가 16비트인 사용되지 않는 IP 주소 범위를 선택합니다.
  •   gcloud compute addresses create google-managed-services-VPC_NETWORK_NAME \
        --global \
        --purpose=VPC_PEERING \
        --prefix-length=16 \
        --network=projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME
      

VPC_NETWORK_NAME을 VPC 네트워크 이름으로 바꿉니다(예: my-vpc-network).

다음 예시에서는 VPC 네트워크 my-vpc-network의 리소스가 비공개 IP를 사용하여 Cloud SQL 인스턴스에 연결하도록 허용하는 IP 범위를 할당합니다.

  gcloud compute addresses create google-managed-services-my-vpc-network \
    --global \
    --purpose=VPC_PEERING \
    --prefix-length=16 \
    --network=projects/myprojectid/global/networks/myvpcnetwork \
    --project=my-project
    

Terraform

IP 주소 범위를 할당하려면 Terraform 리소스를 사용합니다.

resource "google_compute_global_address" "private_ip_address" {
  name          = "private-ip-address"
  purpose       = "VPC_PEERING"
  address_type  = "INTERNAL"
  prefix_length = 16
  network       = google_compute_network.peering_network.id
}

변경사항 적용

Cloud de Confiance 프로젝트에 Terraform 구성을 적용하려면 다음 섹션의 단계를 완료하세요.

Cloud Shell 준비

  1. Cloud Shell을 실행합니다.
  2. Terraform 구성을 적용할 기본 Cloud de Confiance 프로젝트를 설정합니다.

    이 명령어는 프로젝트당 한 번만 실행하면 되며 어떤 디렉터리에서도 실행할 수 있습니다.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    Terraform 구성 파일에서 명시적 값을 설정하면 환경 변수가 재정의됩니다.

디렉터리 준비

각 Terraform 구성 파일에는 자체 디렉터리(루트 모듈이라고도 함)가 있어야 합니다.

  1. Cloud Shell에서 디렉터리를 만들고 해당 디렉터리 내에 새 파일을 만드세요. 파일 이름에는 .tf 확장자가 있어야 합니다(예: main.tf). 이 튜토리얼에서는 파일을 main.tf라고 합니다.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. 튜토리얼을 따라 하는 경우 각 섹션이나 단계에서 샘플 코드를 복사할 수 있습니다.

    샘플 코드를 새로 만든 main.tf에 복사합니다.

    필요한 경우 GitHub에서 코드를 복사합니다. 이는 Terraform 스니펫이 엔드 투 엔드 솔루션의 일부인 경우에 권장됩니다.

  3. 환경에 적용할 샘플 파라미터를 검토하고 수정합니다.
  4. 변경사항을 저장합니다.
  5. Terraform을 초기화합니다. 이 작업은 디렉터리당 한 번만 수행하면 됩니다.
    terraform init

    원하는 경우 최신 Google 공급업체 버전을 사용하려면 -upgrade 옵션을 포함합니다.

    terraform init -upgrade

변경사항 적용

  1. 구성을 검토하고 Terraform에서 만들거나 업데이트할 리소스가 예상과 일치하는지 확인합니다.
    terraform plan

    필요에 따라 구성을 수정합니다.

  2. 다음 명령어를 실행하고 프롬프트에 yes를 입력하여 Terraform 구성을 적용합니다.
    terraform apply

    Terraform에 '적용 완료' 메시지가 표시될 때까지 기다립니다.

  3. 결과를 보려면 Cloud de Confiance 프로젝트를 엽니다. Cloud de Confiance 콘솔에서 UI의 리소스로 이동하여 Terraform이 리소스를 만들었거나 업데이트했는지 확인합니다.

변경사항 삭제

다음 명령어를 실행하고 프롬프트에 yes를 입력하여 이전에 Terraform 구성에 적용된 리소스를 삭제합니다.

terraform destroy

비공개 연결 만들기

콘솔

  1. Cloud de Confiance 콘솔에서 VPC 네트워크 페이지로 이동합니다.

    VPC 네트워크로 이동

  2. 사용할 VPC 네트워크를 선택합니다.
  3. 비공개 서비스 연결 탭을 선택합니다.
  4. 서비스에 대한 비공개 연결 탭을 선택합니다.
  5. 연결 만들기를 클릭하여 네트워크와 서비스 프로듀서 간에 비공개 연결을 만듭니다.
  6. 지정된 할당으로는 다른 서비스 프로듀서가 사용하지 않는 하나 이상의 할당된 기존 범위를 선택합니다.
  7. 연결을 클릭하여 연결을 만듭니다.

gcloud

  1. 프로젝트의 VPC 네트워크에 비공개 서비스 액세스 연결을 만듭니다.

    gcloud services vpc-peerings connect \
    --service=servicenetworking.googleapis.com \
    --ranges=google-managed-services-VPC_NETWORK_NAME \
    --network=VPC_NETWORK_NAME \
    --project=PROJECT_ID

    이 명령어는 장기 Cloud SQL 인스턴스 작업을 시작하고 작업 ID를 반환합니다.

  2. 작업이 성공했는지 확인합니다.

    gcloud services vpc-peerings operations describe \
    --name=OPERATION_ID

비공개 연결을 만들 때 할당 범위를 1개 이상 지정할 수 있습니다. 예를 들어 할당 범위 하나가 소진되면 할당 범위를 추가로 지정할 수 있습니다. 서비스는 제공된 모든 범위의 IP 주소를 지정된 순서대로 사용합니다.

Terraform

비공개 연결을 만들려면 Terraform 리소스를 사용합니다.

resource "google_service_networking_connection" "default" {
  network                 = google_compute_network.peering_network.id
  service                 = "servicenetworking.googleapis.com"
  reserved_peering_ranges = [google_compute_global_address.private_ip_address.name]
}

계정이 적시에 프로비저닝되므로 비공개 연결이 생성되는 동안 service-HOST_PROJECT_NUMBER@service-networking.s3ns-system.iam.gserviceaccount.com 형식의 서비스 계정에 servicenetworking.serviceAgent 역할이 부여됩니다.

프로젝트의 compute.globalAddresses.list 권한 또는 compute.projects.get 권한에 관한 오류가 표시되면 다음 gcloud 명령어를 실행합니다.

gcloud projects add-iam-policy-binding HOST_PROJECT_NAME \
    --member=serviceAccount:service-HOST_PROJECT_NUMBER@service-networking.s3ns-system.iam.gserviceaccount.com \
    --role=roles/servicenetworking.serviceAgent

비공개 서비스 액세스를 사용하여 비공개 IP에 대한 인스턴스 구성

새 인스턴스와 기존 인스턴스에 비공개 서비스 액세스를 구성할 수 있습니다.

새 인스턴스에 비공개 IP 구성

Console

  1. Cloud de Confiance 콘솔에서 Cloud SQL 인스턴스 페이지로 이동합니다.

    Cloud SQL 인스턴스로 이동

  2. 인스턴스 만들기를 클릭합니다.
  3. 인스턴스 맞춤설정 섹션에서 구성 옵션 표시를 펼칩니다.
  4. 연결을 펼칩니다.
  5. 비공개 IP를 선택합니다.
  6. 비공개 서비스 액세스 (PSA)를 선택합니다.

    드롭다운 목록에 프로젝트에서 사용할 수 있는 VPC 네트워크가 표시됩니다. 프로젝트가 공유 VPC의 서비스 프로젝트이면 호스트 프로젝트의 VPC 네트워크도 표시됩니다.

  7. 사용할 VPC 네트워크를 선택합니다.
  8. 비공개 서비스 연결을 설정해야 한다는 메시지가 표시되면 다음 단계를 따르세요.

    1. 연결 설정을 클릭합니다.
    2. IP 범위 할당 섹션에서 다음 옵션 중 하나를 선택합니다.
      • 하나 이상의 기존 IP 범위를 선택하거나 드롭다운에서 새 범위를 만듭니다. 드롭다운에 이전에 할당된 범위(있는 경우)가 포함되거나 새 IP 범위 할당을 선택하고 새 범위와 이름을 입력할 수 있습니다.
      • 네트워크에 자동으로 할당된 IP 범위를 사용합니다.
    3. 계속을 클릭합니다.
    4. 연결 만들기를 클릭합니다.
    5. Private service connection for network VPC_NETWORK_NAME has been successfully created 메시지가 표시되는지 확인합니다.
  9. 원하는 경우 연결에 사용할 인스턴스에 할당된 IP 범위를 지정할 수 있습니다.
    1. 할당된 IP 범위 옵션 표시를 펼칩니다.
    2. 드롭다운 메뉴에서 IP 범위를 선택합니다.
  10. (선택사항) BigQuery와 같은 다른 Cloud de Confiance by S3NS 서비스에서 Cloud SQL의 데이터에 액세스하고 비공개 IP 연결을 통해 이 데이터에 대해 쿼리를 수행하도록 허용하려면 비공개 경로 사용 설정을 선택합니다.
  11. 인스턴스 구성을 완료합니다.
  12. 인스턴스 만들기를 클릭합니다.

gcloud

비공개 IP 주소를 사용하여 인스턴스를 만들기 전에 프로젝트가 비공개 서비스 액세스를 위해 구성되었는지 확인합니다.

다음 gcloud CLI 명령어를 실행하여 Cloud SQL의 비공개 서비스 액세스 네트워킹을 설정합니다.

  1. 필요한 API를 사용 설정합니다.
    gcloud services enable \
        sqladmin.googleapis.com \
        compute.googleapis.com \
        servicenetworking.googleapis.com \
        --project=PROJECT_ID
        
  2. VPC 네트워크 피어링을 위한 IP 주소 범위 할당:
    gcloud compute addresses create google-managed-services-VPC_NETWORK_NAME \
        --global \
        --purpose=VPC_PEERING \
        --prefix-length=16 \
        --network=projects/NETWORK_PROJECT_ID/global/networks/VPC_NETWORK_NAME \
        --project=PROJECT_ID
        
  3. VPC 네트워크 피어링 연결을 설정합니다.
    gcloud services vpc-peerings connect \
        --service=servicenetworking.googleapis.com \
        --ranges=google-managed-services-VPC_NETWORK_NAME \
        --network=VPC_NETWORK_NAME \
        --project=PROJECT_ID
        

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • INSTANCE_ID: 인스턴스 ID
  • PROJECT_ID: 프로젝트 ID
  • NETWORK_PROJECT_ID: VPC 네트워크의 프로젝트 ID

  • VPC_NETWORK_NAME: VPC 네트워크의 이름입니다.
  • RANGE_NAME: 선택사항. 지정하면 IP 범위가 할당되는 범위 이름이 설정됩니다. 범위 이름은 RFC-1035를 준수해야 하며 1~63자(영문 기준) 이내여야 합니다.
  • REGION_NAME: 리전 이름입니다.
VPC 네트워크의 이름을 지정하려면 --network 파라미터를 사용합니다. 공개 IP를 사용 중지하려면 --no-assign-ip 플래그를 사용합니다.

또한 원하는 경우 --enable-google-private-path 파라미터를 사용하여 BigQuery와 같은 다른 Cloud de Confiance 서비스에서 Cloud SQL의 데이터에 액세스하고 비공개 IP 연결을 통해 이 데이터에 대해 쿼리를 수행하도록 허용합니다. 이 파라미터는 다음 경우에만 유효합니다.

  • --no-assign-ip 파라미터를 사용합니다.
  • --network 파라미터를 사용하여 비공개 연결을 만드는 데 사용할 VPC 네트워크의 이름을 지정합니다.
인스턴스에 새 네트워크 아키텍처를 사용하도록 강제하려면 --enforce-new-sql-network-architecture 플래그를 사용합니다. 충분한 IP 주소가 할당되어 있는지 확인합니다. 프로젝트가 완전히 업그레이드되기 전에 새 네트워크 아키텍처 시행을 사용하는 경우 충분한 IP 주소 공간이 없으면 인스턴스 만들기가 실패할 수 있습니다. 자세한 내용은 새 네트워크 아키텍처로 인스턴스 업그레이드 및 IP 주소 범위 할당을 참고하세요.
gcloud beta sql instances create INSTANCE_ID \
  --project=PROJECT_ID \
  --network=projects/NETWORK_PROJECT_ID/global/networks/VPC_NETWORK_NAME \
  --no-assign-ip \
  --allocated-ip-range-name=RANGE_NAME \
  --enable-google-private-path \
  --enforce-new-sql-network-architecture

Terraform

새 인스턴스에 비공개 IP를 구성하려면 다음 Terraform 리소스를 사용합니다.


resource "google_compute_network" "peering_network" {
  name                    = "private-network"
  auto_create_subnetworks = "false"
}

resource "google_compute_global_address" "private_ip_address" {
  name          = "private-ip-address"
  purpose       = "VPC_PEERING"
  address_type  = "INTERNAL"
  prefix_length = 16
  network       = google_compute_network.peering_network.id
}

resource "google_service_networking_connection" "default" {
  network                 = google_compute_network.peering_network.id
  service                 = "servicenetworking.googleapis.com"
  reserved_peering_ranges = [google_compute_global_address.private_ip_address.name]
}

resource "google_sql_database_instance" "instance" {
  name             = "private-ip-sql-instance"
  region           = "us-central1"
  database_version = "MYSQL_8_0"

  depends_on = [google_service_networking_connection.default]

  settings {
    tier = "db-f1-micro"
    ip_configuration {
      ipv4_enabled    = "false"
      private_network = google_compute_network.peering_network.id
    }
  }
  # set `deletion_protection` to true, will ensure that one cannot accidentally delete this instance by
  # use of Terraform whereas `deletion_protection_enabled` flag protects this instance at the GCP level.
  deletion_protection = false
}

resource "google_compute_network_peering_routes_config" "peering_routes" {
  peering              = google_service_networking_connection.default.peering
  network              = google_compute_network.peering_network.name
  import_custom_routes = true
  export_custom_routes = true
}


## Uncomment this block after adding a valid DNS suffix

# resource "google_service_networking_peered_dns_domain" "default" {
#   name       = "example-com"
#   network    = google_compute_network.peering_network.name
#   dns_suffix = "example.com."
#   service    = "servicenetworking.googleapis.com"
# }

변경사항 적용

Cloud de Confiance 프로젝트에 Terraform 구성을 적용하려면 다음 섹션의 단계를 완료하세요.

Cloud Shell 준비

  1. Cloud Shell을 실행합니다.
  2. Terraform 구성을 적용할 기본 Cloud de Confiance 프로젝트를 설정합니다.

    이 명령어는 프로젝트당 한 번만 실행하면 되며 어떤 디렉터리에서도 실행할 수 있습니다.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    Terraform 구성 파일에서 명시적 값을 설정하면 환경 변수가 재정의됩니다.

디렉터리 준비

각 Terraform 구성 파일에는 자체 디렉터리(루트 모듈이라고도 함)가 있어야 합니다.

  1. Cloud Shell에서 디렉터리를 만들고 해당 디렉터리 내에 새 파일을 만드세요. 파일 이름에는 .tf 확장자가 있어야 합니다(예: main.tf). 이 튜토리얼에서는 파일을 main.tf라고 합니다.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. 튜토리얼을 따라 하는 경우 각 섹션이나 단계에서 샘플 코드를 복사할 수 있습니다.

    샘플 코드를 새로 만든 main.tf에 복사합니다.

    필요한 경우 GitHub에서 코드를 복사합니다. 이는 Terraform 스니펫이 엔드 투 엔드 솔루션의 일부인 경우에 권장됩니다.

  3. 환경에 적용할 샘플 파라미터를 검토하고 수정합니다.
  4. 변경사항을 저장합니다.
  5. Terraform을 초기화합니다. 이 작업은 디렉터리당 한 번만 수행하면 됩니다.
    terraform init

    원하는 경우 최신 Google 공급업체 버전을 사용하려면 -upgrade 옵션을 포함합니다.

    terraform init -upgrade

변경사항 적용

  1. 구성을 검토하고 Terraform에서 만들거나 업데이트할 리소스가 예상과 일치하는지 확인합니다.
    terraform plan

    필요에 따라 구성을 수정합니다.

  2. 다음 명령어를 실행하고 프롬프트에 yes를 입력하여 Terraform 구성을 적용합니다.
    terraform apply

    Terraform에 '적용 완료' 메시지가 표시될 때까지 기다립니다.

  3. 결과를 보려면 Cloud de Confiance 프로젝트를 엽니다. Cloud de Confiance 콘솔에서 UI의 리소스로 이동하여 Terraform이 리소스를 만들었거나 업데이트했는지 확인합니다.

변경사항 삭제

변경사항을 삭제하려면 다음 단계를 따르세요.

  1. Terraform 구성 파일에서 삭제 방지를 사용 중지하려면 deletion_protection 인수를 false로 설정합니다.
    deletion_protection =  "false"
  2. 다음 명령어를 실행하고 프롬프트에 yes를 입력하여 업데이트된 Terraform 구성을 적용합니다.
    terraform apply
  1. 다음 명령어를 실행하고 프롬프트에 yes를 입력하여 이전에 Terraform 구성에 적용된 리소스를 삭제합니다.

    terraform destroy

REST v1

비공개 IP 주소로 새 인스턴스를 만듭니다.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • PROJECT_ID:: 프로젝트 ID
  • INSTANCE_ID:: 인스턴스 ID
  • VPC_NETWORK_NAME:: 이 인스턴스에 사용하려는 Virtual Private Cloud(VPC) 네트워크 이름을 지정합니다. 비공개 서비스 액세스가 이미 네트워크에 구성되어 있어야 합니다.
  • RANGE_NAME:: 선택사항. 지정하면 IP 범위가 할당되는 범위 이름이 설정됩니다. 범위 이름은 RFC-1035를 준수해야 하며 1~63(영문 기준)자 이내여야 합니다.
  • AUTHORIZED_NETWORKS:: 공개 IP 연결의 경우 인스턴스에 연결할 수 있는 승인된 네트워크의 연결을 지정합니다.

ipv4Enabled 파라미터의 경우 인스턴스에 공개 IP 주소를 사용하려면 값을 true로 설정하고, 인스턴스에 비공개 IP 주소가 포함되었으면 false로 설정합니다.

enablePrivatePathForGoogleCloudServices 파라미터를 true로 설정하면 BigQuery와 같은 다른 Cloud de Confiance by S3NS 서비스에서 Cloud SQL의 데이터에 액세스하고 비공개 IP 연결을 통해 이 데이터에 대해 쿼리를 수행할 수 있습니다. 이 파라미터를 false로 설정하면 다른 Cloud de Confiance by S3NS 서비스에서 비공개 IP 연결을 통해 Cloud SQL의 데이터에 액세스할 수 없습니다.

프로젝트가 완전히 업그레이드되지 않은 경우에도 sqlNetworkArchitecture 필드를 사용하여 인스턴스 생성 시 새 네트워크 아키텍처를 사용하도록 강제할 수 있습니다. 새 네트워크 아키텍처 및 그 영향에 관한 자세한 내용은 새 네트워크 아키텍처로 인스턴스 업그레이드 및 IP 주소 범위 할당을 참고하세요.

HTTP 메서드 및 URL:

POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances

JSON 요청 본문:

{
  "name": "INSTANCE_ID",
  "region": "region",
  "databaseVersion": "database-version",
  "settings": {
    "tier": "machine-type",
    "ipConfiguration": {
      "ipv4Enabled": false,
      "privateNetwork": "projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME",
      "allocatedIpRange": "RANGE_NAME"
      "authorizedNetworks": [AUTHORIZED_NETWORKS],
      
      "enablePrivatePathForGoogleCloudServices": true
      
    }
  },
  "sqlNetworkArchitecture": "NEW_NETWORK_ARCHITECTURE"
}

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음과 비슷한 JSON 응답이 표시됩니다.

REST v1beta4

비공개 IP 주소로 새 인스턴스를 만듭니다.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • PROJECT_ID:: 프로젝트 ID
  • INSTANCE_ID:: 인스턴스 ID
  • VPC_NETWORK_NAME:: 이 인스턴스에 사용하려는 Virtual Private Cloud(VPC) 네트워크 이름을 지정합니다. 비공개 서비스 액세스가 이미 네트워크에 구성되어 있어야 합니다.
  • RANGE_NAME:: 선택사항. 지정하면 IP 범위가 할당되는 범위 이름이 설정됩니다. 범위 이름은 RFC-1035를 준수해야 하며 1~63(영문 기준)자 이내여야 합니다.
  • AUTHORIZED_NETWORKS:: 공개 IP 연결의 경우 인스턴스에 연결할 수 있는 승인된 네트워크의 연결을 지정합니다.

ipv4Enabled 파라미터의 경우 인스턴스에 공개 IP 주소를 사용하려면 값을 true로 설정하고, 인스턴스에 비공개 IP 주소가 포함되었으면 false로 설정합니다.

enablePrivatePathForGoogleCloudServices 파라미터를 true로 설정하면 BigQuery와 같은 다른 Cloud de Confiance by S3NS 서비스에서 Cloud SQL의 데이터에 액세스하고 비공개 IP 연결을 통해 이 데이터에 대해 쿼리를 수행할 수 있습니다. 이 파라미터를 false로 설정하면 다른 Cloud de Confiance by S3NS 서비스에서 비공개 IP 연결을 통해 Cloud SQL의 데이터에 액세스할 수 없습니다.

프로젝트가 완전히 업그레이드되지 않은 경우에도 sqlNetworkArchitecture 필드를 사용하여 인스턴스 생성 시 새 네트워크 아키텍처를 사용하도록 강제할 수 있습니다. 새 네트워크 아키텍처 및 그 영향에 관한 자세한 내용은 새 네트워크 아키텍처로 인스턴스 업그레이드 및 IP 주소 범위 할당을 참고하세요.

HTTP 메서드 및 URL:

POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances

JSON 요청 본문:

{
  "name": "INSTANCE_ID",
  "region": "region",
  "databaseVersion": "database-version",
  "settings": {
    "tier": "machine-type",
    "ipConfiguration": {
      "ipv4Enabled": false,
      "privateNetwork": "projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME",
      "allocatedIpRange": "RANGE_NAME"
      "authorizedNetworks": [AUTHORIZED_NETWORKS],
      
      "enablePrivatePathForGoogleCloudServices": true
      
    }
  },
  "sqlNetworkArchitecture": "NEW_NETWORK_ARCHITECTURE"
}

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음과 비슷한 JSON 응답이 표시됩니다.

기존 인스턴스에 비공개 IP 구성

기존 Cloud SQL 인스턴스에서 비공개 IP를 사용하도록 구성하면 해당 인스턴스가 다시 시작되므로 다운타임이 발생합니다.

비공개 IP를 사용하도록 기존 인스턴스를 구성하려면 다음 안내를 따르세요.

Console

  1. Cloud de Confiance 콘솔에서 Cloud SQL 인스턴스 페이지로 이동합니다.

    Cloud SQL 인스턴스로 이동

  2. 인스턴스의 개요 페이지를 열려면 인스턴스 이름을 클릭합니다.
  3. Cloud SQL 탐색 메뉴에서 연결을 선택합니다.
  4. 네트워킹 탭에서 비공개 IP 체크박스를 선택합니다.

    드롭다운 목록에 프로젝트에서 사용할 수 있는 네트워크가 표시됩니다.

  5. 사용할 VPC 네트워크를 선택합니다.
  6. 비공개 서비스 연결 필요가 표시되는 경우:

    1. 연결 설정을 클릭합니다.
    2. IP 범위 할당 섹션에서 다음 옵션 중 하나를 선택합니다.
      • 하나 이상의 기존 IP 범위를 선택하거나 드롭다운에서 새 범위를 만듭니다. 드롭다운에 이전에 할당된 범위(있는 경우)가 포함되거나 새 IP 범위 할당을 선택하고 새 범위와 이름을 입력할 수 있습니다.
      • 네트워크에 자동으로 할당된 IP 범위를 사용합니다.
    3. 계속을 클릭합니다.
    4. 연결 만들기를 클릭합니다.
    5. VPC_NETWORK_NAME 네트워크의 비공개 서비스 연결이 생성되었습니다. 상태가 표시되는지 확인합니다.
  7. (선택사항) BigQuery와 같은 다른 Cloud de Confiance 서비스에서 Cloud SQL의 데이터에 액세스하고 비공개 IP 연결을 통해 이 데이터에 대해 쿼리를 수행하도록 허용하려면 비공개 경로 사용 설정 체크박스를 선택합니다.
  8. 저장을 클릭합니다.

gcloud

프로젝트가 비공개 서비스 액세스를 위해 구성되었는지 확인합니다.

--network 파라미터를 사용하여 선택한 VPC 네트워크의 이름을 지정해 Cloud SQL 인스턴스를 업데이트합니다.

비공개 IP 네트워크 구성을 추가할 때 인스턴스에 새 네트워크 아키텍처를 사용하도록 강제하려면 --enforce-new-sql-network-architecture 플래그를 사용합니다. IP 범위에 충분한 IP 주소 공간이 할당되어 있는지 확인합니다. 프로젝트가 완전히 업그레이드되기 전에 새 네트워크 아키텍처 시행을 사용하는 경우 충분한 IP 주소 공간이 없으면 인스턴스 만들기가 실패할 수 있습니다.

자세한 내용은 새 네트워크 아키텍처로 인스턴스 업그레이드 및 IP 주소 범위 할당을 참조하세요.

gcloud beta sql instances patch INSTANCE_ID \
--project=PROJECT_ID \
--network=projects/NETWORK_PROJECT_ID/global/networks/VPC_NETWORK_NAME \
--no-assign-ip \
--enable-google-private-path \
--enforce-new-sql-network-architecture

REST v1

비공개 IP 주소로 새 인스턴스를 만듭니다.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • PROJECT_ID:: 프로젝트 ID
  • INSTANCE_ID:: 인스턴스 ID
  • VPC_NETWORK_NAME:: 이 인스턴스에 사용하려는 Virtual Private Cloud(VPC) 네트워크 이름을 지정합니다. 비공개 서비스 액세스가 이미 네트워크에 구성되어 있어야 합니다.
  • RANGE_NAME:: 선택사항. 지정하면 IP 범위가 할당되는 범위 이름이 설정됩니다. 범위 이름은 RFC-1035를 준수해야 하며 1~63(영문 기준)자 이내여야 합니다.
  • AUTHORIZED_NETWORKS:: 공개 IP 연결의 경우 인스턴스에 연결할 수 있는 승인된 네트워크의 연결을 지정합니다.

ipv4Enabled 파라미터의 경우 인스턴스에 공개 IP 주소를 사용하려면 값을 true로 설정하고, 인스턴스에 비공개 IP 주소가 포함되었으면 false로 설정합니다.

enablePrivatePathForGoogleCloudServices 파라미터를 true로 설정하면 BigQuery와 같은 다른 Cloud de Confiance by S3NS 서비스에서 Cloud SQL의 데이터에 액세스하고 비공개 IP 연결을 통해 이 데이터에 대해 쿼리를 수행할 수 있습니다. 이 파라미터를 false로 설정하면 다른 Cloud de Confiance by S3NS 서비스에서 비공개 IP 연결을 통해 Cloud SQL의 데이터에 액세스할 수 없습니다.

프로젝트가 완전히 업그레이드되지 않은 경우에도 sqlNetworkArchitecture 필드를 사용하여 인스턴스 생성 시 새 네트워크 아키텍처를 사용하도록 강제할 수 있습니다. 새 네트워크 아키텍처 및 그 영향에 관한 자세한 내용은 새 네트워크 아키텍처로 인스턴스 업그레이드 및 IP 주소 범위 할당을 참고하세요.

HTTP 메서드 및 URL:

PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID

JSON 요청 본문:

{
  "settings":
  {
    "ipConfiguration": {
      "ipv4Enabled": false,
      "privateNetwork": "projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME",
      "allocatedIpRange": "RANGE_NAME"
      "authorizedNetworks": [AUTHORIZED_NETWORKS],
      
      "enablePrivatePathForGoogleCloudServices": true
      
    }
  },
  "sqlNetworkArchitecture": "NEW_NETWORK_ARCHITECTURE"
}

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음과 비슷한 JSON 응답이 표시됩니다.

REST v1beta4

비공개 IP 주소로 새 인스턴스를 만듭니다.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • PROJECT_ID:: 프로젝트 ID
  • INSTANCE_ID:: 인스턴스 ID
  • VPC_NETWORK_NAME:: 이 인스턴스에 사용하려는 Virtual Private Cloud(VPC) 네트워크 이름을 지정합니다. 비공개 서비스 액세스가 이미 네트워크에 구성되어 있어야 합니다.
  • RANGE_NAME:: 선택사항. 지정하면 IP 범위가 할당되는 범위 이름이 설정됩니다. 범위 이름은 RFC-1035를 준수해야 하며 1~63(영문 기준)자 이내여야 합니다.
  • AUTHORIZED_NETWORKS: 공개 IP 연결의 경우 인스턴스에 연결할 수 있는 승인된 네트워크의 연결을 지정합니다.

ipv4Enabled 파라미터의 경우 인스턴스에 공개 IP 주소를 사용하려면 값을 true로 설정하고, 인스턴스에 비공개 IP 주소가 포함되었으면 false로 설정합니다.

enablePrivatePathForGoogleCloudServices 파라미터를 true로 설정하면 BigQuery와 같은 다른 Cloud de Confiance by S3NS 서비스에서 Cloud SQL의 데이터에 액세스하고 비공개 IP 연결을 통해 이 데이터에 대해 쿼리를 수행할 수 있습니다. 이 파라미터를 false로 설정하면 다른 Cloud de Confiance by S3NS 서비스에서 비공개 IP 연결을 통해 Cloud SQL의 데이터에 액세스할 수 없습니다.

프로젝트가 완전히 업그레이드되지 않은 경우에도 sqlNetworkArchitecture 필드를 사용하여 인스턴스 생성 시 새 네트워크 아키텍처를 사용하도록 강제할 수 있습니다. 새 네트워크 아키텍처 및 그 영향에 관한 자세한 내용은 새 네트워크 아키텍처로 인스턴스 업그레이드 및 IP 주소 범위 할당을 참고하세요.

HTTP 메서드 및 URL:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID

JSON 요청 본문:

{
  "settings":
  {
    "ipConfiguration": {
      "ipv4Enabled": false,
      "privateNetwork": "projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME",
      "allocatedIpRange": "RANGE_NAME"
      "authorizedNetworks": [AUTHORIZED_NETWORKS],
      
      "enablePrivatePathForGoogleCloudServices": true
      
    }
  },
  "sqlNetworkArchitecture": "NEW_NETWORK_ARCHITECTURE"
}

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음과 비슷한 JSON 응답이 표시됩니다.

비공개 서비스 액세스 구성 변경

기존 Cloud SQL 인스턴스를 수정하지 않고 비공개 서비스 연결에 할당된 주소 범위를 변경할 수 있습니다. 기존 Cloud SQL 인스턴스의 비공개 IP 주소를 변경하려면 이 단계를 따르세요.

할당된 주소 범위를 변경하려면 다음 안내를 따르세요.

콘솔

  1. Cloud de Confiance 콘솔에서 VPC 네트워크 페이지로 이동합니다.

    VPC 네트워크로 이동

  2. 사용할 VPC 네트워크를 선택합니다.
  3. 비공개 서비스 연결 탭을 선택합니다.
  4. 서비스에 할당된 IP 범위 탭을 선택합니다.
  5. 삭제할 범위의 이름을 선택합니다.

  6. 해제를 클릭합니다.

  7. IP 범위 할당을 클릭합니다.

  8. 같은 이름으로 새 범위를 만듭니다.

    이미 이 주소 이름을 사용하여 비공개 연결이 설정되었으므로 이름이 중요합니다.

gcloud services vpc-peerings update \
--network=VPC_NETWORK_NAME \
--ranges=ALLOCATED_RANGES \
--service=servicenetworking.googleapis.com \
--force

기존 Cloud SQL 인스턴스의 비공개 IP 주소 변경

기존 Cloud SQL 인스턴스의 비공개 IP 주소를 변경하려면 인스턴스를 원래 네트워크에서 임시 VPC 네트워크로 이동합니다. 그런 다음 인스턴스 원래 네트워크의 비공개 서비스 액세스 구성을 변경하고 Cloud SQL 인스턴스를 다시 원래 네트워크로 이동합니다.

다른 VPC 네트워크로 이동하려면 다음 절차의 마지막 단계(인스턴스 다시 이동)를 제외한 모든 단계를 따릅니다. 이 경우 TEMPORARY_VPC_NETWORK_NAME은 새 VPC 네트워크입니다. 또한 이전 비공개 연결을 삭제합니다. 삭제된 비공개 연결이Cloud de Confiance 콘솔에서 사라지는 데 며칠이 걸릴 수 있습니다.

Cloud SQL 인스턴스가 공유 VPC 네트워크에서 호스팅되는 경우 다음 안내에 사용된 VPC_NETWORK_NAME 변수는 호스트 프로젝트의 VPC 네트워크 이름이어야 합니다. 공유 VPC 네트워크로 네트워크를 지정하려면 네트워크의 전체 URL을 사용합니다(예: projects/HOST_PROJECT/global/networks/NETWORK_NAME).

콘솔

  1. Cloud de Confiance 콘솔에서 VPC 네트워크 페이지로 이동합니다.

    VPC 네트워크로 이동

  2. 임시 VPC 네트워크를 만듭니다.
  3. 임시 VPC 네트워크에서 IP 할당을 만듭니다.
  4. 임시 VPC 네트워크에서 비공개 연결을 만듭니다.
  5. Cloud SQL 인스턴스를 임시 VPC 네트워크로 이동합니다.

    gcloud beta sql instances patch INSTANCE_ID \
      --project=PROJECT_ID \
      --network=projects/PROJECT_ID/global/networks/TEMPORARY_VPC_NETWORK_NAME \
      --no-assign-ip
  6. 원래 네트워크에서 비공개 서비스 액세스 구성을 변경하여 새 할당 범위를 추가하거나 기존 범위를 삭제합니다.

  7. Cloud SQL 인스턴스를 원래 VPC 네트워크로 다시 이동합니다.

    gcloud beta sql instances patch INSTANCE_ID \
      --project=PROJECT_ID \
      --network=projects/PROJECT_ID/global/networks/ORIGINAL_VPC_NETWORK_NAME \
      --no-assign-ip

비공개 IP 주소를 사용하여 인스턴스에 연결

비공개 서비스 액세스를 사용하여 동일한 VPC 네트워크의 Compute Engine 또는 Google Kubernetes Engine 인스턴스(여기서는 내부 소스로 정의)에서 또는 해당 네트워크의 외부(외부 소스)에서 Cloud SQL 인스턴스에 연결합니다.

내부 소스에서 연결

Compute Engine 리소스에서 실행되는 Cloud SQL 인증 프록시와 같이 Cloud SQL 인스턴스와 동일한 Cloud de Confiance 프로젝트의 소스에서 연결하려면 리소스가 Cloud SQL 인스턴스에 비공개 서비스 액세스가 설정된 동일한 VPC 네트워크에 있어야 합니다.

App Engine 표준 환경, Cloud Run, Cloud Run Functions와 같은 서버리스 소스에서 연결하기 위해 애플리케이션 또는 함수가 Cloud SQL 인증 프록시 없이 서버리스 VPC 액세스를 통해 인스턴스에 직접 연결합니다.

외부 소스에서 연결

외부 네트워크(예: 온프레미스 네트워크 또는 VPC 네트워크)가 Cloud SQL 인스턴스가 연결된 VPC 네트워크에 연결된 경우 Cloud VPN 또는 Cloud Interconnect를 사용하여 외부 네트워크의 클라이언트에서 인스턴스에 연결할 수 있습니다.

외부 네트워크에서 연결을 허용하려면 다음을 수행합니다.

  1. Cloud VPN 터널 또는 Dedicated Interconnect 또는 Partner Interconnect를 위한 VLAN 연결을 사용하여 VPC 네트워크가 외부 네트워크에 연결되어 있는지 확인합니다.
  2. Cloud VPN 터널 및 Cloud Interconnect 연결 (VLAN)을 관리하는 Cloud Router의 경계 게이트웨이 프로토콜 (BGP) 세션이 온프레미스 네트워크에서 특정 프리픽스 (대상)를 수신했는지 확인합니다.

    네트워크에 자체 로컬 기본 경로가 있으므로 기본 경로 (대상 0.0.0.0/0)를 Cloud SQL VPC 네트워크로 가져올 수 없습니다. 대상의 로컬 경로는 Cloud SQL 피어링이 VPC 네트워크에서 커스텀 경로를 가져오도록 구성되어 있더라도 사용됩니다.

  3. 비공개 서비스 연결에서 생성한 피어링 연결을 식별합니다. 서비스에 따라 Private Service Connect에서 다음 피어링 연결 중 하나 이상을 만들 수 있지만 반드시 모든 피어링 연결을 구성할 필요는 없습니다.
    • cloudsql-mysql-googleapis-com
    • cloudsql-postgres-googleapis-com
    • servicenetworking-googleapis-com
  4. 피어링 연결 모두를 업데이트하여 커스텀 경로 내보내기를 사용 설정합니다.
  5. Private Service Connect에서 사용하는 할당 범위를 식별합니다.
  6. Cloud VPN 터널 또는 Cloud Interconnect 연결(VLAN)의 BGP 세션을 관리하는 Cloud Router에 할당된 범위에 대한 Cloud Router 커스텀 공지 모드를 구성합니다.

Cloud Shell에서 연결

Cloud Shell은 Cloud de Confiance by S3NS 에서 관리하고 VPC 네트워크 외부에 있는 Compute Engine 가상 머신을 사용합니다. 따라서 Cloud Shell과 VPC 네트워크의 비공개 IP 주소 공간 간에 연결 경로가 없습니다.

그 결과 Cloud Shell은 비공개 IP 주소만 있는 Cloud SQL 인스턴스에 대한 연결을 지원하지 않습니다.

비공개 IP 연결을 사용하여 외부 네트워크에서 Cloud SQL 인스턴스에 연결하려면 VPC 외부에서 Cloud SQL 인스턴스에 연결을 참조하세요.

RFC 1918 이외의 IP 주소에서 연결

RFC 1918은 내부적으로 (즉, 조직 내에서) 사용되기 위해 할당되는 IP 주소를 지정하며 인터넷에서 라우팅되지 않습니다. 구체적으로 다음과 같습니다.

  • 10.0.0.0/8
  • 172.16.0.0/12
  • 192.168.0.0/16

비공개 IP 주소를 사용하는 Cloud SQL 인스턴스에 대한 연결은 RFC 1918 주소 범위에서 자동으로 승인됩니다. 이에 따라 모든 비공개 클라이언트가 프록시를 통하지 않고 데이터베이스에 액세스할 수 있습니다.

RFC 1918 이외의 IP 주소에서 연결하려면 RFC 1918 이외의 IP 주소 범위에서 오는 트래픽을 허용하도록 인스턴스별 IP 승인을 설정해야 합니다.

예를 들어 다음과 같은 gcloud 명령어를 사용합니다.

gcloud sql instances patch INSTANCE_NAME \
--authorized-networks=192.88.99.0/24,11.0.0.0/24

Cloud SQL은 기본적으로 VPC 네트워크에서 RFC 1918 이외의 서브넷 경로를 학습하지 않습니다. RFC 1918 이외의 경로를 내보내려면 네트워크 피어링을 Cloud SQL로 업데이트해야 합니다.

gcloud compute networks peerings update PEERING_CONNECTION \
--network=VPC_NETWORK_NAME \
--export-subnet-routes-with-public-ip \
--project=PROJECT_ID

    다음을 바꿉니다.

  • PEERING_CONNECTION은 VPC 네트워크와 서비스 프로듀서 네트워크 사이에 있는 Private Service Connect에서 생성된 피어링 연결의 이름입니다.
  • VPC_NETWORK_NAME: VPC 네트워크의 이름
  • PROJECT_ID: VPC 네트워크의 프로젝트 ID. 공유 VPC를 사용 중이면 호스트 프로젝트 ID를 사용합니다.

IP 주소 소진을 완화하려면 비공개로 사용되는 공개 IP 주소를 사용하면 됩니다.

비공개로 사용되는 공개 IP 주소에서 연결

비공개로 사용되는 공개 IP 주소 범위에서 인스턴스를 구성하려면 네트워크와 Cloud SQL 네트워크 간의 네트워크 피어링에서 export-subnet-routes-with-public-ip를 사용 설정합니다.

gcloud compute networks peerings update PEERING_CONNECTION \
--network=VPC_NETWORK_NAME \
--export-subnet-routes-with-public-ip \
--project=PROJECT_ID

    다음을 바꿉니다.

  • PEERING_CONNECTION은 VPC 네트워크와 서비스 프로듀서 네트워크 사이에 있는 비공개 서비스 연결에서 생성된 피어링 연결의 이름입니다. 피어링 연결 이름을 확인하려면 VPC 네트워크 피어링 페이지로 이동합니다.
  • VPC_NETWORK_NAME: VPC 네트워크의 이름
  • PROJECT_ID는 VPC 네트워크의 프로젝트 ID. 공유 VPC를 사용하는 경우 호스트 프로젝트 ID를 사용합니다.

비공개로 사용되는 공개 IP 주소로 구성된 인스턴스에 연결

비공개로 사용되는 공개 IP 주소 범위로 구성되어 있는 인스턴스에 연결하려는 경우 네트워크와 Cloud SQL 네트워크 간의 네트워크 피어링에서 import-subnet-routes-with-public-ip를 사용 설정합니다.

gcloud compute networks peerings update PEERING_CONNECTION \
--network=VPC_NETWORK_NAME \
--import-subnet-routes-with-public-ip \
--project=PROJECT_ID

다음을 바꿉니다.

  • PEERING_CONNECTION은 VPC 네트워크와 서비스 프로듀서 네트워크 사이에 있는 비공개 서비스 연결에서 생성된 피어링 연결의 이름입니다. 피어링 연결 이름을 확인하려면 VPC 네트워크 피어링 페이지로 이동합니다.
  • VPC_NETWORK_NAME: VPC 네트워크의 이름
  • PROJECT_ID는 VPC 네트워크의 프로젝트 ID. 공유 VPC를 사용하는 경우 호스트 프로젝트 ID를 사용합니다.

쓰기 엔드포인트를 사용하여 연결

비공개 IP 주소 외에도 SQL 연결 문자열에서 쓰기 엔드포인트를 사용할 수 있습니다. 쓰기 엔드포인트는 현재 기본 인스턴스의 IP 주소로 자동 확인되는 전역 도메인 이름 서비스 (DNS) 이름입니다. 쓰기 엔드포인트를 사용하면 리전 장애가 발생할 때 애플리케이션 연결을 변경하지 않아도 됩니다.

복제본 장애 조치 또는 전환이 발생하면 쓰기 엔드포인트를 사용하여 인스턴스의 비공개 IP 주소를 관리할 수 있습니다. 이 경우 쓰기 엔드포인트를 사용하여 기본 인스턴스 역할을 하는 인스턴스에 연결합니다.

Cloud SQL에서 쓰기 엔드포인트를 만드는 방법

Cloud de Confiance 프로젝트에 Cloud DNS API를 사용 설정한 후 기본 Cloud SQL Enterprise Plus 버전 인스턴스를 만들거나, 인스턴스의 복제본을 승격하거나, Cloud SQL Enterprise 버전에서 인스턴스를 업그레이드하면 Cloud SQL에서 쓰기 엔드포인트를 자동으로 생성하고 인스턴스에 할당합니다.

전환 또는 장애 조치 프로세스 중에 기본 인스턴스가 변경되면 이 복제본이 새 기본 인스턴스이기 때문에 Cloud SQL이 장애 조치 복제본에 쓰기 엔드포인트를 할당합니다.

자세한 내용은 쓰기 엔드포인트 보기를 참조하세요.

인스턴스에 쓰기 엔드포인트 할당

Cloud de Confiance 프로젝트에 Cloud DNS API를 사용 설정하지 않은 다음 인스턴스를 만들거나 승격하거나 업그레이드하면 Cloud SQL에서 인스턴스에 쓰기 엔드포인트를 자동으로 할당하지 않습니다.

Cloud SQL에서 쓰기 엔드포인트를 생성하고 인스턴스에 할당하려면 쓰기 엔드포인트 생성을 참조하세요.

문제 해결

알려진 연결 문제는 문제 해결을, 자가 진단에 대한 도움은 연결 문제 디버깅을 참조하세요.