이 페이지에서는 AlloyDB 클러스터에서 기본 인스턴스를 만드는 방법을 설명합니다.
시작하기 전에
- 사용 중인 Google Cloud 프로젝트가 AlloyDB에 액세스할 수 있도록 사용 설정되어 있어야 합니다.
- 사용 중인 Google Cloud 프로젝트에 다음 IAM 역할 중 하나가 있어야 합니다.
roles/alloydb.admin
(AlloyDB 관리자가 사전 정의한 IAM 역할)roles/owner
(소유자 기본 IAM 역할)roles/editor
(편집자 기본 IAM 역할)
이러한 역할이 없는 경우 조직 관리자에게 문의하여 액세스 권한을 요청하세요.
AlloyDB 기본 인스턴스 만들기
콘솔
클러스터 페이지로 이동합니다.
리소스 이름 열에서 클러스터를 클릭합니다.
개요 페이지에서 클러스터의 인스턴스로 이동하여 기본 인스턴스 만들기를 클릭합니다.
기본 인스턴스를 구성합니다.
- 인스턴스 ID 필드에 기본 인스턴스의 ID를 입력합니다.
- 영역 가용성에서 다음 옵션 중 하나를 선택합니다.
- 자동 장애 조치가 있는 고가용성 프로덕션 인스턴스를 만들려면 여러 영역 (고가용성)을 선택합니다.
- 고가용성이 필요하지 않은 기본 인스턴스를 만들려면 단일 영역을 선택합니다.
다음 머신 시리즈 중 하나를 선택합니다.
- C4A (Google Axion 기반 머신 시리즈)
- N2 (x86 기반 머신 시리즈) 기본 머신 시리즈입니다.
머신 유형을 선택합니다.
- C4A는 1, 4, 8, 16, 32, 48, 64, 72 머신 유형 또는 모양을 지원합니다.
- N2는 2, 4, 8, 16, 32, 64, 96, 128 머신 유형 또는 모양을 지원합니다.
vCPU 1개 머신 유형을 비롯한 C4A Axion 기반 머신 시리즈 사용에 대한 자세한 내용은 C4A Axion 기반 머신 시리즈 사용 시 고려사항을 참고하세요.
선택사항: 공개 인터넷을 통해 애플리케이션과 클라이언트를 연결하려면 공개 IP 연결에서 공개 IP 사용 설정 체크박스를 선택합니다. 공개 IP를 사용 설정하려면 보안 연결을 위해 추가 구성이 필요할 수 있습니다. 자세한 내용은 공개 IP를 사용하여 연결을 참고하세요.
기본적으로 비공개 IP는 항상 사용 설정되어 있습니다. 자세한 내용은 비공개 서비스 액세스 사용 설정을 참고하세요.
선택사항: 관리형 연결 풀링을 사용 설정하고 사용하려면 관리형 연결 풀에서 관리형 연결 풀 사용 설정 체크박스를 선택합니다. 자세한 내용은 관리형 연결 풀링 구성을 참고하세요.
선택사항: 인스턴스의 맞춤 플래그를 설정하려면 고급 구성 옵션을 펼치고 각 플래그에 대해 다음을 실행합니다.
- 플래그 추가를 클릭합니다.
- 새 데이터베이스 플래그 목록에서 플래그를 선택합니다.
- 플래그 값을 제공합니다.
- 완료를 클릭합니다.
선택사항: 인스턴스에서 SSL 또는 커넥터 요구사항을 구성하려면 고급 구성 옵션을 펼친 후 다음 단계를 따르세요.
- 기본적으로 AlloyDB 인스턴스는 모든 연결에 SSL 암호화를 사용하도록 요구합니다. SSL이 아닌 연결을 허용하려면 SSL 연결만 허용 체크박스를 선택 취소합니다.
- 인스턴스에 대한 모든 데이터베이스 연결에서 AlloyDB 인증 프록시 또는 Google에서 제공하는 보안 커넥터 라이브러리를 사용하도록 하려면 커넥터 필요를 선택합니다.
인스턴스 만들기를 클릭합니다.
gcloud
gcloud CLI를 사용하려면 Google Cloud CLI를 설치 및 초기화하거나 Cloud Shell을 사용합니다.
gcloud alloydb instances create
명령어를 사용하여 기본 인스턴스를 만듭니다.
gcloud alloydb instances create INSTANCE_ID \
--instance-type=PRIMARY \
--availability-type=AVAILABILITY \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--cpu-count=CPU_COUNT \
--machine-type=MACHINE_TYPE \
--project=PROJECT_ID
INSTANCE_ID
: 만들려는 인스턴스의 ID입니다. 소문자로 시작해야 하며 소문자, 숫자, 하이픈을 포함할 수 있습니다.AVAILABILITY
: 이 인스턴스가 여러 영역에 노드가 있는 고가용성 (HA)인지 여부입니다. 유효한 값은 다음과 같습니다.REGIONAL
: 활성 노드와 대기 노드가 별도로 있고 노드 간 자동 장애 조치가 있는 HA 인스턴스를 만듭니다. 프로덕션 환경에 적합한 기본값입니다.ZONAL
: 노드가 하나만 포함되고 자동 장애 조치가 없는 기본 인스턴스를 만듭니다.
REGION_ID
: 인스턴스를 배치할 리전입니다. 예를 들면us-central1
입니다.CLUSTER_ID
: 인스턴스를 배치할 클러스터의 ID입니다.CPU_COUNT
: 인스턴스에 필요한 vCPU 수입니다.cpu_count
또는machine_type
를 지정해야 합니다.cpu_count
만 제공되면 다음 사양으로 N2 인스턴스가 생성됩니다.- 2: vCPU 2개, RAM 16GB
- 4: vCPU 4개, RAM 32GB
- 8: vCPU 8개, RAM 64GB
- 16: vCPU 16개, RAM 128GB
- 32: vCPU 32개, RAM 256GB
- 64: vCPU 64개, RAM 512GB
- 96: vCPU 96개, RAM 768GB
- 128: vCPU 128개, RAM 864GB
machine_type
와cpu_count
이 모두 제공되는 경우cpu_count
값은machine_type
에 지정된 vCPU 수와 일치해야 합니다. 예를 들어machine_type
이n2-highmem-4
이면cpu_count
를4
으로 설정해야 합니다.
MACHINE_TYPE
: 인스턴스의 머신 유형입니다.C4A Axion 기반 머신 시리즈의 경우 유효한 값은 다음과 같습니다.
c4a-highmem-1
c4a-highmem-4-lssd
c4a-highmem-8-lssd
c4a-highmem-16-lssd
c4a-highmem-32-lssd
c4a-highmem-48-lssd
c4a-highmem-64-lssd
c4a-highmem-72-lssd
N2 머신 시리즈의 경우 유효한 값은 다음과 같습니다.
n2-highmem-2
n2-highmem-4
n2-highmem-8
n2-highmem-16
n2-highmem-32
n2-highmem-64
n2-highmem-96
n2-highmem-128
machine_type
및cpu_count
을 함께 사용하는 경우cpu_count
및machine_type
의 값이 일치해야 합니다. 예를 들어machine_type
이n2-highmem-4
이면cpu_count
를4
로 설정해야 합니다.
PROJECT_ID
: 클러스터가 배치된 프로젝트의 ID입니다.
기본적으로 새 인스턴스에서는 모든 연결이 SSL 암호화를 사용해야 합니다. 인스턴스에 대한 비SSL 연결을 허용하려면 --ssl-mode=ALLOW_UNENCRYPTED_AND_ENCRYPTED
플래그를 명령어에 추가합니다.
gcloud alloydb instances create INSTANCE_ID \
--instance-type=PRIMARY \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--cpu-count=CPU_COUNT \
--machine-type=MACHINE_TYPE \
--ssl-mode=ALLOW_UNENCRYPTED_AND_ENCRYPTED
인증 프록시 또는 Google 제공 커넥터 라이브러리를 사용하는 기타 애플리케이션을 통해 클라이언트와 AlloyDB 인스턴스 간의 보안 연결을 적용하려면 명령어에 --require-connectors
플래그를 추가하세요.
gcloud alloydb instances create INSTANCE_ID \
--instance-type=PRIMARY \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--cpu-count=CPU_COUNT \
--machine-type=MACHINE_TYPE \
--project=PROJECT_ID \
--require-connectors
AlloyDB 인스턴스에서 관리형 연결 풀링을 사용 설정하려면 gcloud alloydb instances create
명령어에 --enable-connection-pooling
플래그를 추가합니다.
gcloud alloydb instances create INSTANCE_ID \
--instance-type=PRIMARY \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--cpu-count=CPU_COUNT \
--machine-type=MACHINE_TYPE \
--project=PROJECT_ID \
--enable-connection-pooling
Private Service Connect가 사용 설정된 AlloyDB 인스턴스를 만들 수도 있습니다. Private Service Connect 지원 클러스터의 기본 인스턴스를 만드는 방법에 대한 자세한 내용은 AlloyDB 인스턴스 만들기를 참고하세요.
Terraform
인스턴스 만들기
데이터베이스 클러스터 내에 인스턴스를 만들려면 Terraform 리소스를 사용합니다.
resource "google_alloydb_instance" "default" { cluster = google_alloydb_cluster.default.name instance_id = "alloydb-instance" instance_type = "PRIMARY" machine_config { cpu_count = 2 } depends_on = [google_service_networking_connection.vpc_connection] } resource "google_alloydb_cluster" "default" { cluster_id = "alloydb-cluster" location = "us-central1" network_config { network = google_compute_network.default.id } initial_user { password = "alloydb-cluster" } } data "google_project" "project" {} resource "google_compute_network" "default" { name = "alloydb-network" } resource "google_compute_global_address" "private_ip_alloc" { name = "alloydb-cluster" address_type = "INTERNAL" purpose = "VPC_PEERING" prefix_length = 16 network = google_compute_network.default.id } resource "google_service_networking_connection" "vpc_connection" { network = google_compute_network.default.id service = "servicenetworking.googleapis.com" reserved_peering_ranges = [google_compute_global_address.private_ip_alloc.name] }
앞의 예시에서는 N2 인스턴스가 생성됩니다. C4A 인스턴스를 만들려면 다음 예에 표시된 machine_config
구조 내에서 machine_type
필드를 사용합니다.
machine_config { machine_type = "c4a-highmem-4-lssd" }
Cloud Shell 준비
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 스니펫이 엔드 투 엔드 솔루션의 일부인 경우에 권장됩니다.git clone https://github.com/terraform-google-modules/terraform-docs-samples
terraform-docs-samples
디렉터리에서alloydb
디렉터리로 이동합니다.cd terraform-docs-samples/alloydb
- 샘플 코드를 새로 만든
main.tf
에 복사합니다.cp SAMPLE_FILE
<var>SAMPLE_FILE</var>
을 복사할 샘플 파일의 이름으로 바꿉니다(예:main.tf
). - 환경에 적용할 샘플 파라미터를 검토하고 수정합니다.
- 변경사항을 저장합니다.
- Terraform을 초기화합니다. 이 작업은 디렉터리당 한 번만 수행하면 됩니다.
선택사항: 최신 Google 공급업체 버전을 사용하려면terraform init
-upgrade
옵션을 포함합니다.terraform init -upgrade
변경사항 적용
- 구성을 검토하여 Terraform 업데이트가 예상과 일치하는지 확인합니다.
필요에 따라 구성을 수정합니다.terraform plan
- 다음 명령어를 실행하고 프롬프트에
yes
를 입력하여 Terraform 구성을 적용합니다. Terraform에terraform apply
Apply complete!
메시지가 표시될 때까지 기다립니다.
결과를 보려면 Google Cloud 프로젝트를 엽니다. Google Cloud 콘솔에서 UI의 리소스로 이동하여 Terraform이 리소스를 만들었거나 업데이트했는지 확인합니다.
REST v1
인스턴스 만들기
이 예시에서는 기본 인스턴스를 만듭니다. 이 호출의 전체 매개변수 목록은 메서드: projects.locations.clusters.instances.create를 참고하세요. 클러스터 설정에 대한 자세한 내용은 클러스터 및 인스턴스 설정 보기를 참고하세요.
클러스터 ID는 외부에 공개되므로 클러스터 ID에 민감한 정보나 개인 식별 정보를 포함하지 마세요. 클러스터 이름에 프로젝트 ID를 포함하지 않아도 됩니다. 적절한 경우(예: 로그 파일) 자동으로 포함되기 때문입니다.
요청을 보내려면 요청 본문을 instance_request.json
파일에 저장합니다.
{ "instance_type": "PRIMARY", "machine_config": { "cpu_count": "vCPU_COUNT", }, }
다음과 같이 바꿉니다.
CPU_COUNT
: 만들려는 인스턴스에 표시되는 CPU 코어 수입니다.
앞의 예시에서는 다음 사양으로 N2 인스턴스를 만듭니다.
- 2: vCPU 2개, RAM 16GB
- 4: vCPU 4개, 32GB RAM
- 8: vCPU 8개, 64GB RAM
- 16: vCPU 16개, RAM 128GB
- 32: vCPU 32개, RAM 256GB
- 64: vCPU 64개, 512GB RAM
- 96: vCPU 96개, 768GB RAM
- 128: vCPU 128개, RAM 864GB
C4A 인스턴스를 만들려면 다음 예와 같이 machine_config
구조에서 cpu_count
대신 machine_type
필드를 사용합니다.
machine_config: { machine_type : MACHINE_TYPE, },
C4A Axion 기반 머신 시리즈의 경우 다음이 유효한 값입니다.
c4a-highmem-1
c4a-highmem-4-lssd
c4a-highmem-8-lssd
c4a-highmem-16-lssd
c4a-highmem-32-lssd
c4a-highmem-48-lssd
c4a-highmem-64-lssd
c4a-highmem-72-lssd
N2 머신 시리즈의 경우 다음 값이 유효합니다.
n2-highmem-2
n2-highmem-4
n2-highmem-8
n2-highmem-16
n2-highmem-32
n2-highmem-64
n2-highmem-96
n2-highmem-128
다음 HTTP 메서드와 URL을 사용합니다.
POST https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances?instance_id=INSTANCE_ID
다음을 바꿉니다.
PROJECT_ID
: 클러스터를 배치할 프로젝트의 ID입니다.LOCATION_ID
: 클러스터 리전의 ID입니다.CLUSTER_ID
: 생성한 클러스터의 ID입니다. ID는 소문자로 시작해야 하며 소문자, 숫자, 하이픈을 포함할 수 있습니다.INSTANCE_ID
: 만들려는 기본 인스턴스의 이름입니다.
다음 예와 같이 curl을 사용하여 요청을 실행할 수 있습니다.
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://alloydb.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances?instance_id=INSTANCE_ID -d @instance_request.json