인스턴스 만들기

이 페이지에서는 MySQL용 Cloud SQL 인스턴스를 만드는 방법을 설명합니다.

모든 인스턴스 설정에 관한 자세한 내용은 인스턴스 설정을 참조하세요.

인스턴스를 생성하는 동안 단일 데이터베이스가 인스턴스에 추가됩니다. 데이터베이스를 만들거나 가져오는 방법으로 데이터베이스를 추가할 수도 있습니다.

시작하기 전에

  1. Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
  2. Google Cloud Console의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 선택하거나 만듭니다.

    프로젝트 선택기로 이동

  3. Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다. 프로젝트에 결제가 사용 설정되어 있는지 확인하는 방법을 알아보세요.

  4. Cloud SDK 설치 및 초기화
  5. 사용자 계정에 Cloud SQL 관리자 및 Compute 뷰어 역할이 있는지 확인합니다.

    IAM 페이지로 이동

    역할 및 권한에 대해 자세히 알아보기

MySQL 인스턴스 만들기

MySQL 인스턴스를 만들려면 다음 안내를 따르세요.

Console

  1. Google Cloud Console의 Cloud SQL 인스턴스 페이지로 이동합니다.

    Cloud SQL 인스턴스 페이지로 이동

  2. 인스턴스 만들기를 클릭합니다.
  3. MySQL을 선택하고 다음을 클릭합니다.
  4. 이름을 입력합니다.

    인스턴스 이름은 외부에 공개되므로 민감한 정보나 개인 식별 정보는 포함하지 마세요.

    인스턴스 이름에 프로젝트 ID를 포함하지 않아도 됩니다. 필요한 경우 자동으로 포함됩니다(예: 로그 파일에서).

  5. 'root'@'%' 사용자의 비밀번호를 입력합니다.
  6. MySQL 8.0, MySQL 5.7(기본값) 또는 MySQL 5.6을 인스턴스의 데이터베이스 버전으로 선택합니다.

    인스턴스가 생성된 후에는 데이터베이스 버전을 수정할 수 없습니다.

  7. 리전 및 영역 가용성 선택에서 인스턴스의 리전과 영역을 선택합니다.

    인스턴스를 인스턴스에 액세스하는 리소스와 같은 리전에 배치합니다. 선택한 리전은 나중에 수정할 수 없습니다. 대부분의 경우 영역을 지정할 필요가 없습니다.

    인스턴스를 고가용성으로 구성하는 경우 기본 영역과 보조 영역을 모두 선택할 수 있습니다.

    인스턴스를 만드는 동안 보조 영역이 사용되면 다음 조건이 적용됩니다.

    • 영역이 기본 영역은 Any로 보조 영역은 Any (different from primary)로 기본 설정됩니다.
    • 기본 영역과 보조 영역을 모두 지정할 경우 서로 별도의 영역이어야 합니다.
  8. 인스턴스 맞춤설정에서 인스턴스의 설정을 업데이트합니다. 구성 옵션 표시를 클릭하여 설정 그룹을 표시합니다. 그런 다음 원하는 그룹을 펼쳐 설정을 검토하고 맞춤설정합니다. 선택한 모든 옵션의 요약이 오른쪽에 표시됩니다.

    다음 표는 인스턴스 설정에 대한 빠른 참조입니다. 각 설정에 대한 자세한 내용은 인스턴스 설정 페이지를 참조하세요.

    설정 참고
    머신 유형
    머신 유형공유 코어, 경량, 표준(가장 일반적), 고성능 메모리 중에서 선택합니다.
    커스텀 이 버튼을 선택하여 가변형 구성이 있는 인스턴스를 만듭니다. 이 옵션을 선택할 때는 인스턴스의 코어 수와 메모리 양을 선택해야 합니다. 자세히 알아보기
    연결
    코어 인스턴스의 vCPU 수입니다. 자세히 알아보기
    메모리 인스턴스의 메모리 양(GB)입니다. 자세히 알아보기
    스토리지
    스토리지 유형 인스턴스 저장소 유형(SSD 또는 HDD)을 결정합니다. 자세히 알아보기
    저장용량 크기 인스턴스에 제공된 저장용량입니다. 자세히 알아보기
    스토리지 자동 증가 사용 설정 인스턴스에 여유 공간이 부족할 때 Cloud SQL에서 자동으로 스토리지를 제공할지 여부를 결정합니다. 자세히 알아보기
    암호화
    Google 관리 암호화기본 옵션입니다.
    고객 키 관리 암호화 키(CMEK)Google Cloud Key Management Service에서 자체 키를 사용하려면 선택합니다. 자세히 알아보기
    연결
    비공개 IP 인스턴스의 비공개 IP 주소를 추가합니다. 인스턴스에 연결하려면 추가 구성이 필요합니다. 자세히 알아보기
    공개 IP 인스턴스의 공개 IP 주소를 추가합니다. 그런 다음 승인된 네트워크를 추가하여 인스턴스에 연결하면 됩니다. 자세히 알아보기
    승인된 네트워크새로운 네트워크 이름과 네트워크 주소를 추가합니다. 자세히 알아보기
    백업
    백업 자동화 백업을 시작할 시간 자세히 알아보기
    백업을 저장할 위치를 선택하세요.대부분의 사용 사례에서 멀티 리전을 선택하세요. 특정 리전에 백업을 저장해야 하는 경우(예를 들어 규정 상 그렇게 해야 할 이유가 있는 경우) 리전을 선택하고 위치 드롭다운 메뉴에서 리전을 선택합니다.
    저장할 자동 백업 수 선택보관할 자동 백업의 수입니다(1~365일). 자세히 알아보기
    point-in-time recovery 사용 설정 point-in-time recovery 및 미리 쓰기 로깅을 사용 설정합니다. 자세히 알아보기
    로그 보관 일수 선택 미리 쓰기 로그 보관 기간을 1~7일로 구성합니다. 기본 설정은 7일입니다. 자세히 알아보기
    유지보수
    선호 기간 Cloud SQL이 인스턴스에 서비스 중단 유지보수 작업을 수행할 시간(1시간)을 설정합니다. 이 시간을 설정하지 않으면 예상치 못한 때에 업무에 차질을 줄 수 있는 유지보수 작업이 발생할 수 있습니다. 자세히 알아보기
    업데이트 순서 동일한 프로젝트의 다른 인스턴스와 비교하여 선호하는 업데이트 시간을 설정합니다. 자세히 알아보기
    플래그
    플래그 추가 데이터베이스 플래그를 사용하여 인스턴스의 설정과 매개변수를 제어할 수 있습니다. 자세히 알아보기
    라벨
    라벨 추가추가하는 각 라벨의 키와 값을 추가합니다. 라벨을 사용하면 인스턴스를 정리할 수 있습니다.
  9. 만들기를 클릭합니다.

gcloud

gcloud 명령줄 도구 설치 및 시작 방법에 대한 자세한 내용은 Cloud SDK 설치를 참조하세요. Cloud Shell 시작 방법에 대한 자세한 내용은 Cloud Shell 문서를 참조하세요.

  1. 다음과 같이 인스턴스를 만듭니다.
    gcloud sql instances create INSTANCE_NAME --cpu=NUMBER_CPUS --memory=MEMORY_SIZE --region=REGION
    
    또는 머신 유형으로 db-f1-micro 또는 db-g1-small을 선택한 경우 `--tier` 플래그를 사용할 수도 있습니다.
    gcloud sql instances create INSTANCE_NAME --tier=API_TIER_STRING --region=REGION
    

    vCPU 및 메모리 크기 값에는 다음과 같은 제한이 적용됩니다.

    • vCPU는 1 또는 2~96 사이의 짝수여야 합니다.
    • 메모리는 다음과 같아야 합니다.
      • vCPU당 0.9~6.5GB
      • 256MB의 배수
      • 최소 3.75GB(3,840MB)

    예를 들어 다음 문자열은 vCPU가 2개 있고 메모리가 7,680MB인 인스턴스를 만듭니다.

     gcloud sql instances create myinstance --database-version=MYSQL_8_0 --cpu=2
     --memory=7680MB --region=us-central1
    

    REGION의 기본값은 us-central입니다.

    이름은 외부에 공개되므로 민감한 정보나 개인 식별 정보는 포함하지 마세요.
    인스턴스 이름에 프로젝트 ID를 포함하지 않아도 됩니다. 필요한 경우 자동으로 포함됩니다(예: 로그 파일에서).

    고가용성 인스턴스를 만드는 경우 --zone 매개변수와 --secondary-zone 매개변수를 사용하여 기본 영역과 보조 영역을 모두 지정할 수 있습니다. 인스턴스를 만들거나 수정하는 동안 보조 영역이 사용되는 경우에는 다음 조건이 적용됩니다.

    • 영역이 유효한 영역이어야 합니다.
    • 보조 영역이 지정된 경우 기본 영역도 지정해야 합니다.
    • 기본 영역과 보조 영역을 지정할 경우 서로 별도의 영역이어야 합니다.
    • 기본 영역과 보조 영역을 지정할 경우 두 영역이 같은 리전에 있어야 합니다.

    매개변수를 추가하여 다른 인스턴스 설정을 결정할 수 있습니다.

    설정 매개변수 참고
    필수 매개변수
    데이터베이스 버전 --database-version MYSQL_8_0, MYSQL_5_7(기본값) 또는 MYSQL_5_6
    리전 --region 유효한 값 알아보기
    연결
    비공개 IP --network 이 인스턴스에 사용할 VPC 네트워크의 이름을 지정합니다. 비공개 서비스 액세스가 이미 네트워크에 구성되어 있어야 합니다. 베타 명령어(gcloud beta sql instances create)에서만 사용할 수 있습니다. 자세히 알아보기
    공개 IP --authorized-networks 공개 IP 연결의 경우 승인된 네트워크의 연결만 인스턴스에 연결됩니다. 자세히 알아보기
    머신 유형 및 스토리지
    머신 유형 --tier 공유 코어 인스턴스를 지정하는 데 사용됩니다(db-f1-micro 또는db-g1-small ). 가변형 인스턴스 구성의 경우 --cpu 또는 --memory 매개변수를 대신 사용합니다. 가변형 인스턴스 구성을 참조하세요.
    스토리지 유형 --storage-type 인스턴스 저장소 유형(SSD 또는 HDD)을 결정합니다. 자세히 알아보기
    스토리지 용량 --storage-size 인스턴스에 제공된 스토리지 용량(GB). 자세히 알아보기
    저장용량 자동 증가 --storage-auto-increase 인스턴스에 여유 공간이 부족할 때 Cloud SQL에서 자동으로 저장용량을 제공할지 여부를 결정합니다. 자세히 알아보기
    스토리지 자동 증가 한도 --storage-auto-increase-limit Cloud SQL이 자동으로 스토리지를 늘릴 수 있는 정도를 결정합니다. 베타 명령어(gcloud beta sql instances create)에서만 사용할 수 있습니다. 자세히 알아보기
    자동 백업 및 고가용성
    고가용성 --availability-type 고가용성 인스턴스의 경우 REGIONAL로 설정합니다. 자세히 알아보기
    보조 영역 --secondary-zone 고가용성 인스턴스를 만드는 경우 >--zone--secondary-zone parameters를 사용하여 기본 영역과 보조 영역을 모두 지정할 수 있습니다. 인스턴스를 만들거나 수정하는 동안 보조 영역이 사용되는 경우에는 다음 제한 사항이 적용됩니다.
    • 영역이 유효한 영역이어야 합니다.
    • 보조 영역이 지정된 경우 기본 영역도 지정해야 합니다.
    • 기본 영역과 보조 영역을 지정할 경우 서로 별도의 영역이어야 합니다.

      기본 영역과 보조 영역을 지정할 경우 두 영역이 같은 리전에 있어야 합니다.

    자동 백업 --backup-start-time 백업을 시작할 시간 자세히 알아보기
    자동 백업 보관 설정 --retained-backups-count 보관할 자동 백업 수입니다. 자세히 알아보기
    바이너리 로깅 --enable-bin-log 바이너리 로깅은 복제 및 특정 시점 복구를 사용 설정합니다. 자세히 알아보기
    바이너리 로깅 보관 설정 --retained-transaction-log-days point-in-time recovery의 바이너리 로그를 보관할 일수입니다. 자세히 알아보기
    데이터베이스 플래그 추가
    데이터베이스 플래그 --database-flags 데이터베이스 플래그를 사용하여 인스턴스의 설정 및 매개변수를 제어할 수 있습니다. 데이터베이스 플래그 자세히 알아보기 매개변수의 형식 지정 방법 자세히 알아보기
    유지보수 일정
    유지보수 기간 --maintenance-window-day,
    --maintenance-window-hour
    Cloud SQL이 인스턴스에 방해가 되는 유지보수 작업을 수행할 기간(1시간)을 설정합니다. 이 기간을 설정하지 않으면 방해가 되는 유지관리 작업이 언제든지 발생할 수 있습니다. 자세히 알아보기
    유지관리 시점 --maintenance-release-channel 동일한 프로젝트의 다른 인스턴스와 비교하여 선호하는 업데이트 시간을 설정합니다. 이전 업데이트에는 preview를 사용하고 이후 업데이트에는 production을 사용합니다. 자세히 알아보기

  2. 자동 할당된 IP 주소를 기록합니다.

    Cloud SQL 인증 프록시를 사용하지 않는 경우 이 주소를 호스트 주소로 사용하여 애플리케이션 또는 도구에서 인스턴스로 연결합니다.

  3. 'root@%' MySQL 사용자의 비밀번호를 설정합니다.
    gcloud sql users set-password root --host=% --instance INSTANCE_NAME --password PASSWORD
    

REST API v1beta4

인스턴스 만들기

이 예시는 백업 및 바이너리 로깅이 사용 설정된 인스턴스를 만듭니다. 이러한 설정은 선택 사항입니다. 이 호출에 대한 전체 매개변수 목록은 Instances:insert 페이지를 참조하세요. 리전에 따른 유효값을 포함한 인스턴스 설정에 대한 자세한 내용은 인스턴스 설정을 참조하세요.

인스턴스 ID는 외부에 공개되므로 민감한 정보나 개인 식별 정보를 포함하지 마세요.
인스턴스 이름에 프로젝트 ID를 포함하지 않아도 됩니다. 필요한 경우 자동으로 포함됩니다(예: 로그 파일에서).

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

  • project-id: 프로젝트 ID
  • instance-id: 원하는 인스턴스 ID
  • database-version: 데이터베이스 버전의 열거형 문자열. 예를 들면 MYSQL_5_7입니다.
  • region: 원하는 리전
  • machine-type: 원하는 머신 유형

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",
    "backupConfiguration": {
      "binaryLogEnabled": true,
      "enabled": true
    }
  }
}

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

다음과 유사한 JSON 응답이 표시됩니다.

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2019-09-25T22:19:33.735Z",
  "operationType": "CREATE",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

응답은 장기 실행 작업이므로 완료하는 데 몇 분 정도 소요될 수 있습니다.

루트 비밀번호 업데이트

인스턴스 초기화가 완료되면 루트 비밀번호를 업데이트합니다.

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

  • project-id: 프로젝트 ID
  • instance-id: 이전 단계에서 생성한 인스턴스 ID
  • root-password: 원하는 루트 비밀번호

HTTP 메서드 및 URL:

PUT https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users?host=%25&name=root

JSON 요청 본문:

{
  "name": "root",
  "host": "%",
  "password": "root-password"
}

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

다음과 유사한 JSON 응답이 표시됩니다.

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "status": "DONE",
  "user": "user@example.com",
  "insertTime": "2019-09-26T14:32:30.592Z",
  "startTime": "2019-09-26T14:32:30.594Z",
  "endTime": "2019-09-26T14:32:33.518Z",
  "operationType": "UPDATE_USER",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

응답은 장기 실행 작업이므로 완료하는 데 몇 분 정도 소요될 수 있습니다.

IPv4 주소 검색

새 인스턴스에 자동으로 할당된 IPv4 주소를 검색합니다.

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

  • project-id: 프로젝트 ID
  • instance-id: 이전 단계에서 생성한 인스턴스 ID

HTTP 메서드 및 URL:

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

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

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

{
  "kind": "sql#instance",
  "state": "RUNNABLE",
  "databaseVersion": "MYSQL_5_7",
  "settings": {
    "authorizedGaeApplications": [],
    "tier": "db-f1-micro",
    "kind": "sql#settings",
    "pricingPlan": "PER_USE",
    "replicationType": "SYNCHRONOUS",
    "activationPolicy": "ALWAYS",
    "ipConfiguration": {
      "authorizedNetworks": [],
      "ipv4Enabled": true
    },
    "locationPreference": {
      "zone": "us-west1-a",
      "kind": "sql#locationPreference"
    },
    "dataDiskType": "PD_SSD",
    "backupConfiguration": {
      "startTime": "18:00",
      "kind": "sql#backupConfiguration",
      "enabled": true,
      "binaryLogEnabled": true
    },
    "settingsVersion": "1",
    "storageAutoResizeLimit": "0",
    "storageAutoResize": true,
    "dataDiskSizeGb": "10"
  },
  "etag": "--redacted--",
  "ipAddresses": [
    {
      "type": "PRIMARY",
      "ipAddress": "10.0.0.1"
    }
  ],
  "serverCaCert": {
    ...
  },
  "instanceType": "CLOUD_SQL_INSTANCE",
  "project": "project-id",
  "serviceAccountEmailAddress": "redacted@gcp-sa-cloud-sql.iam.gserviceaccount.com",
  "backendType": "SECOND_GEN",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "connectionName": "project-id:region:instance-id",
  "name": "instance-id",
  "region": "us-west1",
  "gceZone": "us-west1-a"
}

응답에서 ipAddress 필드를 찾습니다.

이 작업에 적합한 기본 REST API 요청을 구성하는 방법은 instances:insert 페이지의 API 탐색기를 참조하세요.

가변형 인스턴스 구성

가변형 인스턴스 구성을 사용하면 인스턴스에 필요한 메모리 및 CPU 용량을 선택할 수 있습니다. 이러한 유연성 덕분에 워크로드에 적합한 VM 형태를 선택할 수 있습니다. 머신 유형 이름은 db-custom-CPU-RAM 형식을 사용합니다. 여기서 CPU는 머신의 CPU 수이고 RAM은 머신의 메모리 양입니다.

CPU 수 및 메모리 양을 선택할 때 선택한 구성에 다음 제한사항이 적용됩니다.

  • vCPU는 1 또는 2~96 사이의 짝수여야 합니다.
  • 메모리는 다음과 같아야 합니다.
    • vCPU당 0.9~6.5GB
    • 256MB의 배수
    • 최소 3.75GB(3,840MB)

아래 표에서는 (Cloud Console에서 이전에 사용했던) 기존 머신 유형 이름이 db-custom-CPU-RAM 형식의 해당 문자열에 매핑됩니다. Cloud Console에서 해당 CPU와 RAM을 지정하거나 gcloud를 사용하여 해당 머신 유형을 만들거나 API에서 db-custom-CPU-RAM 형식 문자열을 사용할 수 있습니다.

기존 머신 유형 vCPU 메모리(MB) db-custom-CPU-RAM 문자열(API 등급 문자열)
db-n1-standard-1 1 3840 db-custom-1-3840
db-n1-standard-2 2 7680 db-custom-2-7680
db-n1-standard-4 4 15360 db-custom-4-15360
db-n1-standard-8 8 30720 db-custom-8-30720
db-n1-standard-16 16 61440 db-custom-16-61440
db-n1-standard-32 32 122880 db-custom-32-122880
db-n1-standard-64 64 245760 db-custom-64-245760
db-n1-standard-96 96 368640 db-custom-96-368640
db-n1-highmem-2 2 13312 db-custom-2-13312
db-n1-highmem-4 4 26624 db-custom-4-26624
db-n1-highmem-8 8 53248 db-custom-8-53248
db-n1-highmem-16 16 106496 db-custom-16-106496
db-n1-highmem-32 32 212992 db-custom-32-212992
db-n1-highmem-64 64 425984 db-custom-64-425984
db-n1-highmem-96 96 638976 db-custom-96-638976

문제 해결

자세한 내용을 보려면 표의 링크를 클릭하세요.

문제 설명 문제 원인 해결 방법
Internal error 서비스 네트워킹 서비스 계정이 없습니다. Service Networking API를 사용 중지했다가 다시 사용 설정합니다.
Terraform 인스턴스를 만들지 못했습니다. Terraform 구성 오류입니다. Terraform 구성 파일을 검사하고 복구합니다.
Terraform 스크립트에서 HTTP Error 409 발생 다른 작업이 이미 진행 중입니다. Terraform 스크립트를 수정하여 각 작업이 완료될 때까지 기다립니다.
Unknown error

Service Networking API가 사용 설정되지 않았을 수 있습니다.

최근 삭제된 인스턴스와 이름이 같은 인스턴스를 만들려고 할 수 있습니다.

여러 인스턴스를 동시에 만들려고 할 수 있습니다.

IP 범위에 사용 가능한 주소가 더 이상 없으면 서브넷 만들기가 실패했을 수 있습니다.

Service Networking API를 사용 설정합니다.

인스턴스에 다른 이름을 사용하거나 인스턴스가 삭제된 후 일주일이 될 때까지 기다립니다.

인스턴스를 연속으로 만듭니다.

사례와 일치하지 않으면 다른 알 수 없는 오류 메시지를 참조하세요.

새 범위를 할당합니다.

Failed to create subnetwork. IP 범위에 더 이상 사용 가능한 주소가 없습니다. 새 범위를 할당합니다.

내부 오류

{"ResourceType":"sqladmin.v1beta4.instance", "ResourceErrorCode":"INTERNAL_ERROR","ResourceErrorMessage":null} 오류 메시지가 표시됩니다.

문제 원인

서비스 프로젝트에 이 기능에 필요한 서비스 네트워킹 서비스 계정이 없을 수 있습니다.

해결 방법

서비스 권한을 복구하려면 Service Networking API를 중지하고 5분 정도 기다린 후 다시 사용 설정합니다.


Terraform 인스턴스 만들기 실패

Terraform 인스턴스를 만들지 못했습니다.

문제 원인

일반적으로 Terraform 스크립트 자체 내의 문제입니다.

해결 방법

Terraform 구성 파일을 검사하고 복구합니다.


Terraform 스크립트에서 409 오류 발생

Terraform 스크립트에 HTTP Error 409 오류 메시지가 표시됩니다.

문제 원인

Operation failed because another operation was already in progress

해결 방법

스크립트를 수정하여 각 인스턴스 작업이 완료될 때까지 실행을 중지합니다. 스크립트를 폴링하고 이전 작업 ID로 200이 반환될 때까지 기다린 후에 다음 단계로 진행합니다.


알 수 없는 오류

인스턴스를 만들려고 할 때 Cloud SQL creation failed, error UNKNOWN과 같은 오류 메시지가 표시됩니다.

문제 원인

  • 사용하도록 설정된 Service Networking API가 사용 설정되지 않았을 수 있습니다.
  • 최근에 삭제한 인스턴스의 이름을 다시 사용하려고 할 수 있습니다. 삭제한 인스턴스 이름은 일주일 동안 다시 사용할 수 없습니다.
  • 여러 인스턴스를 동시에 만들려고 할 수 있습니다. 이 경우에는 첫 번째 인스턴스만 생성되고 나머지는 Unknown error와 함께 실패합니다. 만들기 작업은 한 번에 하나씩 실행할 수 있습니다.
  • IP 범위에 사용 가능한 주소가 더 이상 없으면 서브넷 만들기가 실패했을 수 있습니다.

해결 방법

  • Service Networking API를 사용 설정합니다.
  • 인스턴스에 다른 이름을 사용하거나 일주일 후에 원래 이름을 사용하여 새 인스턴스를 만듭니다.
  • 여러 인스턴스를 동시에 만들지 않고 연속으로 만듭니다.
  • 아래 서브네트워크를 만들 수 없음 섹션을 참조하세요.

서브네트워크를 만들 수 없음

다음과 같은 오류 메시지가 표시됩니다. Failed to create subnetwork. Couldn't find free blocks in allocated IP ranges. Please allocate new ranges for this service provider.

문제 원인

할당된 IP 범위에 사용 가능한 주소가 더 이상 없습니다.

비공개 서비스 연결을 사용하여 공유 VPC 네트워크에 대해 비공개 IP가 있는 Cloud SQL 인스턴스를 만들려고 시도할 때 이 오류가 발생하는 경우 다음과 같은 5가지 시나리오가 있습니다.

  • 비공개 서비스 연결을 위해 할당된 IP 범위의 크기가 /24보다 작습니다.
  • 비공개 서비스 연결에 할당된 IP 범위의 크기가 Cloud SQL 인스턴스 수에 비해 너무 작습니다.
  • VPC 호스트 프로젝트의 동일한 비공개 서비스 연결에 MySQL 또는 SQL Server 및 PostgreSQL 인스턴스를 모두 만들려고 합니다. MySQL과 SQL Server는 동일한 서비스 연결을 공유할 수 있습니다. PostgreSQL은 자체 서비스 연결이 필요합니다.
  • 지원되지 않는 서로 다른 리전의 동일한 비공개 서비스 연결에서 인스턴스를 만들려고 합니다.

해결 방법

위의 각 시나리오에서 비공개 서비스 연결에 대해 기존 인스턴스를 확장하거나 추가 IP 범위를 할당하도록 선택할 수 있습니다.

새 범위를 할당하는 경우 기존 할당과 겹치는 할당을 만들지 않도록 주의하세요.

새 IP 범위를 만든 후 다음 명령어를 사용하여 VPC 피어링을 업데이트합니다.

gcloud services vpc-peerings update --service=servicenetworking.googleapis.com
--ranges=[OLD_RESERVED_RANGE_NAME],[NEW_RESERVED_RANGE_NAME] --network=[VPC_NETWORK]
--project=[PROJECT_ID] --force

기존 할당을 확장하는 경우 할당 범위를 늘리기만 하고 줄이지 않도록 합니다. 예를 들어 원래 할당이 10.0.10.0/24인 경우 새 할당을 최소 10.0.10.0/23으로 만듭니다.

일반적으로 /24 할당에서 시작하는 경우 각 조건(추가 인스턴스 유형 그룹, 추가 리전)에 대해 /mask를 1만큼 줄이는 것이 좋은 규칙입니다. 예를 들어 동일한 할당에서 두 인스턴스 유형 그룹을 모두 만들려는 경우 /24에서 /23으로 전환하면 충분합니다.

기존 IP 범위를 확장한 후 다음 명령어를 사용하여 VPC 피어링을 업데이트합니다.

gcloud services vpc-peerings update --service=servicenetworking.googleapis.com
--ranges=[RESERVED_RANGE_NAME] --network=[VPC_NETWORK] --project=[PROJECT_ID]

다음 단계