이 페이지에서는 PostgreSQL용 Cloud SQL 인스턴스를 만드는 방법을 설명합니다.
모든 인스턴스 설정에 관한 자세한 내용은 인스턴스 설정을 참조하세요.
새로 생성된 인스턴스에는 postgres
데이터베이스가 있습니다.
시작하기 전에
- Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
- 사용자 계정에 Cloud SQL 관리자 및 Compute 뷰어 역할이 있는지 확인합니다.
역할 및 권한에 대해 여기서 자세히 알아보세요.
PostgreSQL 인스턴스 만들기
Console
-
Google Cloud 콘솔에서 Cloud SQL 인스턴스 페이지로 이동합니다.
- 인스턴스 만들기를 클릭합니다.
- 인스턴스 만들기 페이지의 데이터베이스 엔진 선택 패널에서 PostgreSQL 선택을 클릭합니다.
- 인스턴스 정보 창의 인스턴스 ID 필드에 인스턴스 ID를 입력합니다.
인스턴스 이름에 프로젝트 ID를 포함하지 않아도 됩니다. 필요한 경우 자동으로 포함됩니다(예: 로그 파일에서).
postgres
사용자의 비밀번호를 입력합니다.선택사항: 다음과 같이 인스턴스의 비밀번호 정책을 구성합니다.
- 비밀번호 정책 사용 설정 체크박스를 선택합니다.
- 비밀번호 정책 설정 버튼을 클릭하고 다음 옵션 중 하나 이상을 설정한 다음 저장을 클릭합니다.
- 최소 길이: 비밀번호에 필요한 최소 문자 수를 지정합니다.
- 비밀번호 복잡성: 비밀번호가 소문자, 대문자, 숫자, 영숫자가 아닌 문자의 조합인지 확인합니다.
- 비밀번호 재사용 제한: 재사용할 수 없는 이전 비밀번호 수를 지정합니다.
- 사용자 이름 사용 금지: 비밀번호에서 사용자 이름을 사용하지 못하게 합니다.
- 비밀번호 변경 간격 설정: 비밀번호를 변경할 수 있는 최소 시간을 지정합니다.
- PostgreSQL 15(기본값), PostgreSQL 14,
PostgreSQL 13, PostgreSQL 12, PostgreSQL 11, PostgreSQL 10, PostgreSQL 9.6 중에서 인스턴스의 데이터베이스 버전을 선택합니다.
인스턴스가 생성된 후에는 데이터베이스 버전을 수정할 수 없습니다.
- 인스턴스의 Cloud SQL 버전(
Enterprise
또는Enterprise plus
)을 선택하세요. Cloud SQL 버전에 대한 자세한 내용은 Cloud SQL 버전 소개를 참조하세요. - 리전 및 영역 가용성 선택 섹션에서 인스턴스의 리전 및 영역을 선택합니다.
리전 가용성은 Cloud SQL 버전에 따라 다를 수 있습니다. 자세한 내용은 인스턴스 설정 정보를 참조하세요.
인스턴스를 인스턴스에 액세스하는 리소스와 같은 리전에 배치합니다. 선택한 리전은 나중에 수정할 수 없습니다. 대부분의 경우 영역을 지정할 필요가 없습니다.
인스턴스를 고가용성으로 구성하는 경우 기본 영역과 보조 영역을 모두 선택할 수 있습니다.
인스턴스를 만드는 동안 보조 영역이 사용되면 다음 조건이 적용됩니다.
- 영역이 기본 영역은
Any
로 보조 영역은Any (different from primary)
로 기본 설정됩니다. - 기본 영역과 보조 영역을 모두 지정할 경우 서로 별도의 영역이어야 합니다.
- 영역이 기본 영역은
- 인스턴스 맞춤설정 섹션에서 인스턴스의 설정을 업데이트합니다.
구성 옵션 표시를 클릭하여 설정 그룹을 표시합니다. 그런 다음 원하는 그룹을 펼쳐 설정을 검토하고 맞춤설정합니다.
선택한 모든 옵션의 요약이 오른쪽에 표시됩니다.
이러한 인스턴스 설정의 맞춤설정은 선택사항입니다. 맞춤설정이 수행되지 않는 모든 경우에 기본값이 할당됩니다.
다음 표는 인스턴스 설정에 대한 빠른 참조입니다. 각 설정에 대한 자세한 내용은 인스턴스 설정 페이지를 참조하세요.
설정 참고 머신 유형 머신 유형 공유 코어 또는 전용 코어 중에서 선택합니다. 공유 코어의 경우 각 머신 유형은 CPU(코어) 수와 인스턴스 메모리 양에 따라 분류됩니다. 코어 인스턴스의 vCPU 수입니다. 자세히 알아보기 메모리 인스턴스의 메모리 양(GB)입니다. 자세히 알아보기 커스텀 전용 코어 머신 유형의 경우 사전 정의된 구성을 선택하는 대신 커스텀 버튼을 선택하여 커스텀 구성으로 인스턴스를 만듭니다. 이 옵션을 선택할 때는 인스턴스의 코어 수와 메모리 양을 선택해야 합니다. 자세히 알아보기 스토리지 스토리지 유형 인스턴스 스토리지 유형(SSD 또는 HDD)을 결정합니다. 자세히 알아보기 스토리지 용량 인스턴스에 제공된 저장용량입니다. 자세히 알아보기 스토리지 자동 증가 사용 설정 인스턴스에 여유 공간이 부족할 때 Cloud SQL에서 자동으로 스토리지를 제공할지 여부를 결정합니다 자세히 알아보기 암호화 Google 관리 암호화 기본 옵션입니다. 고객 키 관리 암호화 키(CMEK) Google Cloud Key Management Service에서 자체 키를 사용하려면 선택합니다. 자세히 알아보기 연결 비공개 IP 인스턴스의 비공개 IP 주소를 추가합니다. 인스턴스에 연결하려면 추가 구성이 필요합니다.
필요한 경우 연결에 사용할 인스턴스에 할당된 IP 범위를 지정할 수 있습니다.- 할당된 IP 범위 옵션 표시를 펼칩니다.
- 드롭다운 메뉴에서 IP 범위를 선택합니다.
인스턴스에는 공개 및 비공개 IP 주소가 모두 포함될 수 있습니다.
- 비공개 IP 사용에 대해 자세히 알아보세요.
- 할당된 IP 주소 범위에 대해 자세히 알아보세요.
공개 IP 인스턴스의 공개 IP 주소를 추가합니다. 그런 다음 승인된 네트워크를 추가하여 인스턴스에 연결하면 됩니다. 인스턴스에는 공개 및 비공개 IP 주소가 모두 포함될 수 있습니다.
공개 IP 사용에 대해 자세히 알아보세요.
승인된 네트워크 새로운 네트워크 이름과 네트워크 주소를 추가합니다. 자세히 알아보기 Google Cloud 서비스의 비공개 경로 이 체크박스를 선택하면 BigQuery와 같은 다른 Google Cloud 서비스가 Cloud SQL의 데이터에 액세스하고 비공개 연결을 통해 이 데이터에 대해 쿼리를 수행하도록 허용할 수 있습니다.
데이터 보호 백업 자동화 백업을 시작할 시간 자세히 알아보기 백업을 저장할 위치를 선택하세요. 대부분의 사용 사례에서 멀티 리전을 선택하세요. 특정 리전에 백업을 저장해야 하는 경우(예를 들어 규정 상 그렇게 해야 할 이유가 있는 경우) 리전을 선택하고 위치 드롭다운 메뉴에서 리전을 선택합니다. 저장할 자동 백업 수 선택 보관할 자동 백업의 수입니다(1~365일). 자세히 알아보기 point-in-time recovery 사용 설정 point-in-time recovery 및 미리 쓰기 로깅을 사용 설정합니다. 자세히 알아보기 삭제 보호 사용 설정 실수로 인한 인스턴스 삭제를 보호할지 여부를 결정합니다. 자세히 알아보기 로그 보관 일수 선택 미리 쓰기 로그 보관 기간을 1~7일로 구성합니다. 기본 설정은 7일입니다. 자세히 알아보기 유지보수 선호 기간 Cloud SQL이 인스턴스에 서비스 중단 유지보수 작업을 수행할 시간(1시간)을 설정합니다. 이 시간을 설정하지 않으면 예상치 못한 때에 업무에 차질을 줄 수 있는 유지보수 작업이 발생할 수 있습니다. 자세히 알아보기 업데이트 순서 동일한 프로젝트의 다른 인스턴스와 비교하여 선호하는 업데이트 시간을 설정합니다. 자세히 알아보기 플래그 플래그 추가 데이터베이스 플래그를 사용하여 인스턴스의 설정과 매개변수를 제어할 수 있습니다. 자세히 알아보기 라벨 라벨 추가 추가하는 각 라벨의 키와 값을 추가합니다. 라벨을 사용하면 인스턴스를 정리할 수 있습니다. 데이터 캐시 데이터 캐시 사용 설정(선택사항) PostgreSQL용 Cloud SQL Enterprise Plus 버전 인스턴스용 데이터 캐시를 사용 설정합니다. 데이터 캐시에 대한 자세한 내용은 데이터 캐시를 참조하세요. -
인스턴스 만들기를 클릭합니다.
참고: 인스턴스를 만드는 데 몇 분 정도 걸릴 수 있습니다. 그러나 인스턴스가 생성되는 동안 인스턴스에 대한 정보를 볼 수 있습니다.
비밀번호를 일반 텍스트로 보려면 비밀번호 표시 아이콘을 클릭합니다.
비밀번호를 직접 입력하거나 생성을 클릭하여 Cloud SQL에서 자동으로 비밀번호를 만들도록 할 수 있습니다.
gcloud
gcloud CLI 설치 및 시작에 대한 자세한 내용은 gcloud CLI 설치를 참조하세요. Cloud Shell 시작 방법에 대한 자세한 내용은 Cloud Shell 문서를 참조하세요.
gcloud sql instances create
명령어를 사용해서 인스턴스를 만듭니다.
Cloud SQL Enterprise Plus 버전 인스턴스의 경우:gcloud sql instances create INSTANCE_NAME \ --database-version=POSTGRES_14 \ --region=REGION \ --zone=ZONE \ --tier=TIER \ --edition=ENTERPRISE_PLUS
Cloud SQL Enterprise 버전 인스턴스의 경우: 또는 머신 유형으로 db-f1-micro 또는 db-g1-small을 선택한 경우gcloud sql instances create INSTANCE_NAME \ --database-version=POSTGRES_14 \ --cpu=NUMBER_CPUS \ --memory=MEMORY_SIZE \ --region=REGION \ --zone=ZONE
--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인 Cloud SQL Enterprise 버전 인스턴스를 만듭니다.
gcloud sql instances create myinstance \ --database-version=POSTGRES_14 \ --cpu=2 \ --memory=7680MB \ --region=us-central1
다음 문자열은 코어 4개가 있는 Cloud SQL Enterprise 버전 인스턴스를 만듭니다.
gcloud sql instances create myinstance \ --database-version=POSTGRES_14 \ --tier=db-perf-optimized-N-4 \ --edition=ENTERPRISE_PLUS \ --region=us-central1
--cpu
및--memory
의 크기를 조정하는 방법에 대한 자세한 내용은 커스텀 인스턴스 구성을 참조하세요.REGION의 기본값은
us-central1
입니다.이름은 외부에 공개되므로 민감한 정보나 개인 식별 정보는 포함하지 마세요.
인스턴스 이름에 프로젝트 ID를 포함하지 않아도 됩니다. 필요한 경우 자동으로 포함됩니다(예: 로그 파일에서).고가용성 인스턴스를 만드는 경우
--zone
매개변수와--secondary-zone
매개변수를 사용하여 기본 영역과 보조 영역을 모두 지정할 수 있습니다. 인스턴스를 만들거나 수정하는 동안 보조 영역이 사용되는 경우에는 다음 조건이 적용됩니다.- 영역이 유효한 영역이어야 합니다.
- 보조 영역이 지정된 경우 기본 영역도 지정해야 합니다.
- 기본 영역과 보조 영역을 지정할 경우 서로 별도의 영역이어야 합니다.
- 기본 영역과 보조 영역을 지정할 경우 두 영역이 같은 리전에 있어야 합니다.
매개변수를 추가하여 다른 인스턴스 설정을 결정할 수 있습니다.
설정 매개변수 참고 필수 매개변수 데이터베이스 버전 --database-version
데이터베이스 버전은 Cloud SQL 버전을 기반으로 합니다. 리전 --region
유효한 값 알아보기 비밀번호 정책 설정 비밀번호 정책 사용 설정 --enable-password-policy
비밀번호 정책이 사용되는 경우 사용 설정합니다. 기본적으로 비밀번호 정책은 사용 중지되어 있습니다. --clear-password-policy
매개변수를 사용하여 사용 중지하면 다른 비밀번호 정책 매개변수가 재설정됩니다.최소 길이 --password-policy-min-length
비밀번호에 필요한 최소 문자 수를 지정합니다. 비밀번호 복잡성 --password-policy-complexity
비밀번호 복잡성 검사를 사용하여 비밀번호에 소문자, 대문자, 숫자, 영숫자가 아닌 문자 등 각 문자 유형 중 하나가 포함되어 있는지 확인합니다. 값을 COMPLEXITY_DEFAULT
로 설정합니다.비밀번호 재사용 제한 --password-policy-reuse-interval
재사용할 수 없는 이전 비밀번호의 수를 지정합니다. 사용자 이름 허용 안함 --password-policy-disallow-username-substring
비밀번호에서 사용자 이름을 사용하지 못하게 합니다. 검사를 사용 중지하려면 --no-password-policy-disallow-username-substring
매개변수를 사용합니다.비밀번호 변경 간격 설정 --password-policy-password-change-interval
비밀번호를 변경할 수 있는 최소 기간을 지정합니다(예: 2분의 경우 2m). 연결 비공개 IP --network
--no-assign-ip
(선택사항)--allocated-ip-range-name
(선택사항)--enable-google-private-path
(선택사항)--network
: 이 인스턴스에 사용할 VPC 네트워크의 이름을 지정합니다. 비공개 서비스 액세스가 이미 네트워크에 구성되어 있어야 합니다. 베타 명령어(gcloud beta sql instances create
)에서만 사용할 수 있습니다.--no-assign-ip
: 인스턴스에 비공개 IP 주소만 있습니다.--allocated-ip-range-name
: 지정하면 IP 범위가 할당되는 범위 이름이 설정됩니다. 예를 들면google-managed-services-default
입니다. 범위 이름은RFC-1035
를 준수해야 하며 1~63(영문 기준)자 이내여야 합니다. (gcloud alpha sql instances create
).--enable-google-private-path
: 이 매개변수를 사용하면 BigQuery와 같은 다른 Google Cloud 서비스가 Cloud SQL의 데이터에 액세스하고 비공개 IP 연결을 통해 이 데이터에 대해 쿼리할 수 있습니다.이 매개변수는 다음 경우에만 유효합니다.
--no-assign-ip
매개변수를 사용합니다.--network
매개변수를 사용하여 비공개 연결을 만드는 데 사용할 VPC 네트워크의 이름을 지정합니다.
비공개 IP 구성에 대해 자세히 알아보세요.
공개 IP --authorized-networks
공개 IP 연결의 경우 승인된 네트워크의 연결만 인스턴스에 연결됩니다. 자세히 알아보기 SSL 시행 --ssl-mode
--require-ssl
ssl-mode
매개변수는 연결에 SSL/TLS 시행을 적용합니다. 자세한 내용은 PostgreSQL용 Cloud SQL 설정을 참조하세요.require-ssl
매개변수는 IP를 통한 SSL 연결이 적용되는지 여부를 결정합니다.require-ssl
은 기존 매개변수입니다. 대신ssl-mode
를 사용하세요. 자세한 내용은 IpConfiguration을 참조하세요.머신 유형 및 스토리지 머신 유형 --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
)에서만 사용할 수 있습니다. 자세히 알아보기데이터 캐시(선택사항) --enable-data-cache
인스턴스의 데이터 캐시를 사용 설정 또는 중지합니다. 자세한 내용은 데이터 캐시를 참조하세요. 자동 백업 및 고가용성 고가용성 --availability-type
고가용성 인스턴스의 경우 REGIONAL
로 설정합니다. 자세히 알아보기보조 영역 --secondary-zone
고가용성 인스턴스를 만드는 경우 --zone
및--secondary-zone parameters
를 사용하여 기본 영역과 보조 영역을 모두 지정할 수 있습니다. 인스턴스를 만들거나 수정하는 동안 보조 영역이 사용되는 경우에는 다음 제한 사항이 적용됩니다.- 영역이 유효한 영역이어야 합니다.
- 보조 영역이 지정된 경우 기본 영역도 지정해야 합니다.
기본 영역과 보조 영역을 지정할 경우 서로 별도의 영역이어야 합니다.
기본 영역과 보조 영역을 지정할 경우 두 영역이 같은 리전에 있어야 합니다.
자동 백업 --backup-start-time
백업을 시작할 시간 자세히 알아보기 자동 백업 보관 설정 --retained-backups-count
보관할 자동 백업 수입니다. 자세히 알아보기 point-in-time recovery --enable-point-in-time recovery
point-in-time recovery 및 미리 쓰기 로깅을 사용 설정합니다. 자세히 알아보기 바이너리 로깅 보관 설정 --retained-transaction-log-days
point-in-time recovery에 대한 미리 쓰기 로그를 보관할 일 수입니다.여기서 자세히 알아보세요. 데이터베이스 플래그 추가 데이터베이스 플래그 --database-flags
데이터베이스 플래그를 사용하여 인스턴스의 설정과 매개변수를 제어할 수 있습니다. 데이터베이스 플래그에 대해 자세히 알아보세요. 유지보수 일정 유지보수 기간 --maintenance-window-day
,--maintenance-window-hour
Cloud SQL이 인스턴스에 방해가 되는 유지보수 작업을 수행할 기간(1시간)을 설정합니다. 이 기간을 설정하지 않으면 방해가 되는 유지보수 작업이 언제든지 발생할 수 있습니다. 자세히 알아보기 유지보수 시점 --maintenance-release-channel
동일한 프로젝트의 다른 인스턴스와 비교하여 선호하는 업데이트 시간을 설정합니다. 이전 업데이트에는 preview
를 사용하고 이후 업데이트에는production
을 사용합니다. 자세히 알아보기Vertex AI와 통합 --enable-google-ml-integration
Cloud SQL 인스턴스를 Vertex AI에 연결하여 실시간 예측 및 통계 요청을 AI에 전달할 수 있습니다. --database-flags cloudsql.enable_google_ml_integration=on
이 플래그를 사용 설정하면 Cloud SQL을 Vertex AI와 통합할 수 있습니다. - 자동 할당된 IP 주소를 기록합니다.
Cloud SQL 인증 프록시를 사용하지 않는 경우 이 주소를 호스트 주소로 사용하여 애플리케이션 또는 도구에서 인스턴스로 연결합니다.
postgres
사용자의 비밀번호를 설정합니다.gcloud sql users set-password postgres \ --instance=INSTANCE_NAME \ --password=PASSWORD
Terraform
인스턴스를 만들려면 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이 리소스를 만들었거나 업데이트했는지 확인합니다.
변경사항 삭제
변경사항을 삭제하려면 다음 단계를 따르세요.
- Terraform 구성 파일에서 삭제 보호를 사용 중지하려면
deletion_protection
인수를false
로 설정합니다.deletion_protection = "false"
- 다음 명령어를 실행하고 프롬프트에
yes
를 입력하여 업데이트된 Terraform 구성을 적용합니다.terraform apply
-
다음 명령어를 실행하고 프롬프트에
yes
를 입력하여 이전에 Terraform 구성에 적용된 리소스를 삭제합니다.terraform destroy
REST v1
인스턴스 만들기
이 예시에서는 인스턴스를 만듭니다. 백업 및 바이너리 로깅과 같은 일부 선택적 매개변수도 포함됩니다. 이 호출의 전체 매개변수 목록은 인스턴스 삽입을 참조하세요. 리전에 따른 유효값을 포함한 인스턴스 설정에 대한 자세한 내용은 인스턴스 설정을 참조하세요.
인스턴스 ID는 외부에 공개되므로 민감한 정보나 개인 식별 정보를 포함하지 마세요.
인스턴스 이름에 프로젝트 ID를 포함하지 않아도 됩니다. 필요한 경우 자동으로 포함됩니다(예: 로그 파일에서).
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: 프로젝트 ID
- INSTANCE_ID: 인스턴스 ID
- REGION: 리전
- DATABASE_VERSION: 데이터베이스 버전의 열거형 문자열입니다.
예를 들면
POSTGRES_13
입니다. - PASSWORD: 루트 사용자의 비밀번호입니다.
- MACHINE_TYPE :
db-custom-[CPUS]-[MEMORY_MBS]
와 같은 머신(등급) 유형의 열거형 문자열입니다. - EDITION_TYPE: Cloud SQL 버전
- DATA_CACHE_ENABLED: (선택사항) 인스턴스에 데이터 캐시를 사용 설정하려면
true
로 설정합니다. - PRIVATE_NETWORK: 이 인스턴스에 사용하려는 Virtual Private Cloud(VPC) 네트워크 이름을 지정합니다. 비공개 서비스 액세스가 이미 네트워크에 구성되어 있어야 합니다.
- AUTHORIZED_NETWORKS: 공개 IP 연결의 경우 인스턴스에 연결할 수 있는 승인된 네트워크의 연결을 지정합니다.
인스턴스를 만들 때 비밀번호 정책을 설정하려면 요청에 passwordValidationPolicy 객체를 포함합니다. 필요에 따라 다음 매개변수를 설정합니다.
enablePasswordPolicy
:true
로 설정하면 비밀번호 정책을 사용 설정합니다.비밀번호 정책을 삭제하려면
null
을 사용하여PATCH
요청을enablePasswordPolicy
값으로 사용하면 됩니다. 이 경우 다른 비밀번호 정책 매개변수가 재설정됩니다.minLength
: 비밀번호에 필요한 최소 문자 수를 지정합니다.complexity
: 비밀번호가 소문자, 대문자, 숫자, 영숫자가 아닌 문자의 조합인지 확인합니다. 기본값은COMPLEXITY_DEFAULT
입니다.reuseInterval
: 재사용할 수 없는 이전 비밀번호의 수를 지정합니다.disallowUsernameSubstring
:true
로 설정하면 비밀번호에 사용자 이름을 사용하지 못하게 합니다.passwordChangeInterval
: 비밀번호를 변경할 수 있는 최소 기간을 지정합니다. 값은 초 단위이며, 소수점 아래 9자리까지 지정 가능하고s
로 끝납니다. 예를 들면3.5s
입니다.
Vertex AI와 통합되도록 인스턴스를 만들려면 요청에 enableGoogleMlIntegration 객체를 포함합니다. 이 통합을 통해 Vertex AI에서 호스팅되는 대규모 언어 모델(LLM)을 PostgreSQL용 Cloud SQL 데이터베이스에 적용할 수 있습니다.
필요에 따라 다음 매개변수를 설정합니다.
enableGoogleMlIntegration
: 이 매개변수가true
로 설정되면 Cloud SQL 인스턴스가 Vertex AI에 연결하여 실시간 예측 및 통계 요청을 AI에 전달할 수 있습니다.cloudsql.enable_google_ml_integration
: 이 매개변수가on
으로 설정되면 Cloud SQL이 Vertex AI와 통합될 수 있습니다.
HTTP 메서드 및 URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances
JSON 요청 본문:
{ "name": "INSTANCE_ID", "region": "REGION", "databaseVersion": "DATABASE_VERSION", "rootPassword": "PASSWORD", "settings": { "tier": "MACHINE_TYPE", "edition": "EDITION_TYPE", "enableGoogleMlIntegration": "true" | "false" "databaseFlags": [ { "name": "cloudsql.enable_google_ml_integration", "value": "on" | "off" } ] "dataCacheConfig" = { "dataCacheEnabled": DATA_CACHE_ENABLED }, "backupConfiguration": { "enabled": true }, "passwordValidationPolicy": { "enablePasswordPolicy": true "minLength": "MIN_LENGTH", "complexity": COMPLEXITY_DEFAULT, "reuseInterval": "REUSE_INTERVAL", "disallowUsernameSubstring": "DISALLOW_USERNAME_SUBSTRING", "passwordChangeInterval": "PASSWORD_CHANGE_INTERVAL" } "ipConfiguration": { "privateNetwork": "PRIVATE_NETWORK", "authorizedNetworks": [AUTHORIZED_NETWORKS], "ipv4Enabled": false, "enablePrivatePathForGoogleCloudServices": true } } }
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/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/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
응답은 장기 실행 작업이므로 완료하는 데 몇 분 정도 소요될 수 있습니다.
IPv4 주소 검색
새로운 인스턴스에 자동으로 할당된 IPv4 주소를 검색합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- project-id: 프로젝트 ID
- instance-id: 이전 단계에서 생성한 인스턴스 ID
HTTP 메서드 및 URL:
GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{ "kind": "sql#instance", "state": "RUNNABLE", "databaseVersion": "MYSQL_8_0_18", "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/v1/projects/project-id/instances/instance-id", "connectionName": "project-id:region:instance-id", "name": "instance-id", "region": "us-west1", "gceZone": "us-west1-a" }
응답에서 ipAddress
필드를 찾습니다.
REST v1beta4
인스턴스 만들기
이 예시에서는 인스턴스를 만듭니다. 백업 및 바이너리 로깅과 같은 일부 선택적 매개변수도 포함됩니다. 이 호출의 전체 매개변수 목록은 instances:insert 페이지를 참조하세요. 리전에 따른 유효값을 포함한 인스턴스 설정에 대한 자세한 내용은 인스턴스 설정을 참조하세요.
인스턴스 ID는 외부에 공개되므로 민감한 정보나 개인 식별 정보를 포함하지 마세요.
인스턴스 이름에 프로젝트 ID를 포함하지 않아도 됩니다. 필요한 경우 자동으로 포함됩니다(예: 로그 파일에서).
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: 프로젝트 ID
- INSTANCE_ID: 인스턴스 ID
- REGION: 리전
- DATABASE_VERSION: 데이터베이스 버전의 열거형 문자열입니다.
예를 들면
POSTGRES_13
입니다. - PASSWORD: 루트 사용자의 비밀번호입니다.
- MACHINE_TYPE :
db-custom-[CPUS]-[MEMORY_MBS]
와 같은 머신(등급) 유형의 열거형 문자열입니다. - EDITION_TYPE: Cloud SQL 버전
- DATA_CACHE_ENABLED: (선택사항)
true
로 설정하여 인스턴스에 데이터 캐시 사용 설정
인스턴스를 만들 때 비밀번호 정책을 설정하려면 요청에 passwordValidationPolicy 객체를 포함합니다. 필요에 따라 다음 매개변수를 설정합니다.
enablePasswordPolicy
:true
로 설정하면 비밀번호 정책을 사용 설정합니다.비밀번호 정책을 삭제하려면
null
을 사용하여PATCH
요청을enablePasswordPolicy
값으로 사용하면 됩니다. 이 경우 다른 비밀번호 정책 매개변수가 재설정됩니다.minLength
: 비밀번호에 필요한 최소 문자 수를 지정합니다.complexity
: 비밀번호가 소문자, 대문자, 숫자, 영숫자가 아닌 문자의 조합인지 확인합니다. 기본값은COMPLEXITY_DEFAULT
입니다.reuseInterval
: 재사용할 수 없는 이전 비밀번호의 수를 지정합니다.disallowUsernameSubstring
:true
로 설정하면 비밀번호에 사용자 이름을 사용하지 못하게 합니다.passwordChangeInterval
: 비밀번호를 변경할 수 있는 최소 기간을 지정합니다. 값은 초 단위이며, 소수점 아래 9자리까지 지정 가능하고s
로 끝납니다. 예를 들면3.5s
입니다.
Vertex AI와 통합되도록 인스턴스를 만들려면 요청에 enableGoogleMlIntegration 객체를 포함합니다. 이 통합을 통해 Vertex AI에서 호스팅되는 대규모 언어 모델(LLM)을 PostgreSQL용 Cloud SQL 데이터베이스에 적용할 수 있습니다.
필요에 따라 다음 매개변수를 설정합니다.
enableGoogleMlIntegration
: 이 매개변수가true
로 설정되면 Cloud SQL 인스턴스가 Vertex AI에 연결하여 실시간 예측 및 통계 요청을 AI에 전달할 수 있습니다.cloudsql.enable_google_ml_integration
: 이 매개변수가on
으로 설정되면 Cloud SQL이 Vertex AI와 통합될 수 있습니다.
HTTP 메서드 및 URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances
JSON 요청 본문:
{ "name": "INSTANCE_ID", "region": "REGION", "databaseVersion": "DATABASE_VERSION", "rootPassword": "PASSWORD", "settings": { "tier": "MACHINE_TYPE", "edition": "EDITION_TYPE", "enableGoogleMlIntegration": "true" | "false" "databaseFlags": [ { "name": "cloudsql.enable_google_ml_integration", "value": "on" | "off" } ] "dataCacheConfig" = { "dataCacheEnabled": DATA_CACHE_ENABLED }, "backupConfiguration": { "enabled": true }, "passwordValidationPolicy": { "enablePasswordPolicy": true "minLength": "MIN_LENGTH", "complexity": COMPLEXITY_DEFAULT, "reuseInterval": "REUSE_INTERVAL", "disallowUsernameSubstring": "DISALLOW_USERNAME_SUBSTRING", "passwordChangeInterval": "PASSWORD_CHANGE_INTERVAL" } } }
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-01T19:13:21.834Z", "operationType": "CREATE", "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_8_0_18", "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
필드를 찾습니다.
커스텀 인스턴스 구성
Cloud SQL 인스턴스에 사용 가능한 메모리 및 가상 코어를 결정합니다. 머신 유형 가용성은 Cloud SQL 버전에 따라 결정됩니다.
온라인 트랜잭션 처리(OLTP)와 같이 실시간 처리가 필요한 워크로드의 경우 인스턴스에 전체 작업 세트를 포함할 만큼 충분한 메모리가 있는지 확인하세요. 그러나 메모리 요구사항에 영향을 줄 수 있는 다른 요인(예: 활성 연결 수 및 내부 오버헤드 프로세스)도 있습니다. 프로덕션 환경에서 성능 문제가 발생하지 않도록 부하 테스트를 수행해야 합니다.
인스턴스를 구성할 때 워크로드를 처리하기에 충분한 메모리와 vCPU를 선택하고 워크로드가 증가함에 따라 업그레이드하세요. vCPU가 부족한 머신 구성에는 SLA가 적용되지 않을 수 있습니다. 자세한 내용은 운영 가이드라인을 참조하세요.
Cloud SQL Enterprise Plus 버전 인스턴스의 머신 유형
Cloud SQL Enterprise Plus 버전 인스턴스의 경우 머신 유형은 다음과 같이 사전 정의됩니다.
Enterprise Plus 머신 유형 | vCPU | 메모리(GB) | 로컬 SSD |
---|---|---|---|
db-perf-optimized-N-2 | 2 | 16 | 375 |
db-perf-optimized-N-4 | 4 | 32 | 375 |
db-perf-optimized-N-8 | 8 | 64 | 375 |
db-perf-optimized-N-16 | 16 | 128 | 750 |
db-perf-optimized-N-32 | 32 | 256 | 1500 |
db-perf-optimized-N-48 | 48 | 384 | 3000 |
db-perf-optimized-N-64 | 64 | 512 | 6000 |
db-perf-optimized-N-80 | 80 | 640 | 6000 |
db-perf-optimized-N-96 | 96 | 768 | 6000 |
db-perf-optimized-N-128 | 128 | 864 | 9000 |
Cloud SQL Enterprise 버전 인스턴스의 머신 유형
Cloud SQL Enterprise 버전 인스턴스의 경우 gcloud sql
instances create
명령어를 사용하여 커스텀 인스턴스 구성을 만들 수도 있습니다.
커스텀 인스턴스 구성을 사용하면 인스턴스에 필요한 메모리와 CPU의 용량을 선택할 수 있습니다. 이러한 유연성 덕분에 워크로드에 적합한 VM 형태를 선택할 수 있습니다.
머신 유형 이름은 다음 형식을 사용합니다.
db-custom-#-#
첫 번째 # 자리표시자를 머신의 CPU 수로 바꾸고 두 번째 # 자리표시자를 머신의 메모리 양으로 바꿉니다.
예를 들어 머신 이름이 db-custom
이고 머신에 1개의 CPU와 3,840MB의 RAM이 있는 경우 머신 형식은 db-custom-1-3840
입니다.
CPU 수 및 메모리 양을 선택할 때 선택한 구성에 다음 제한사항이 적용됩니다.
- vCPU는 1 또는 2~96 사이의 짝수여야 합니다.
- 메모리는 다음과 같아야 합니다.
- vCPU당 0.9~6.5GB
- 256MB의 배수
- 최소 3.75GB(3,840MB)
다음 표에는 각 기존 머신 유형의 이름, 각 머신 유형의 CPU와 RAM의 수, 머신 유형의 결과 문자열이 나와 있습니다.
Google Cloud 콘솔에서 동등한 CPU와 RAM을 지정하거나, gcloud CLI를 사용하거나, API에서 db-custom-#-#
를 지정하여 동일한 머신 유형을 만들 수 있습니다.
기존 머신 유형 | 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 |
문제 해결
문제 | 문제 해결 |
---|---|
오류 메시지: Failed to create subnetwork. Couldn't
find free blocks in allocated IP ranges. Please allocate new ranges for
this service provider . |
할당된 IP 범위에 사용 가능한 주소가 더 이상 없습니다. 다음과 같은 몇 가지 시나리오가 있을 수 있습니다.
이 문제를 해결하려면 기존 할당된 IP 범위를 확장하거나 추가 IP 범위를 비공개 서비스 연결에 할당할 수 있습니다. 자세한 내용은 IP 주소 범위 할당을 참조하세요. Cloud SQL 인스턴스를 만들 때 새 범위를 할당할 경우 할당이 기존 할당과 겹치지 않도록 합니다. 새 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 |
오류 메시지: Failed to create subnetwork. Router status is
temporarily unavailable. Please try again later. Help Token:
[token-ID] . |
Cloud SQL 인스턴스를 다시 만들어 보세요. |
오류 메시지: Failed to create subnetwork. Required
'compute.projects.get' permission for PROJECT_ID . |
비공개 IP 주소를 사용하여 인스턴스를 만들면 Service Networking API를 사용하여 적시에 서비스 계정이 생성됩니다. 최근에 Service Networking API를 사용 설정한 경우 서비스 계정이 생성되지 않고 인스턴스 만들기가 실패할 수 있습니다. 이 경우 서비스 계정이 시스템 전체에 전파될 때까지 기다리거나 필요한 권한을 수동으로 추가해야 합니다. |
다음 단계
- 인스턴스에 PostgreSQL 데이터베이스 만들기
- 인스턴스에 PostgreSQL 사용자 만들기
- 인스턴스 액세스 보안 및 제어
- 인스턴스와 PostgreSQL 클라이언트 연결
- 데이터베이스로 데이터 가져오기