기본 인스턴스 만들기

이 페이지에서는 AlloyDB 클러스터에서 기본 인스턴스를 만드는 방법을 설명합니다.

시작하기 전에

  • 사용 중인 Google Cloud 프로젝트가 AlloyDB에 액세스하도록 사용 설정되어 있어야 합니다.
  • 사용 중인 Google Cloud 프로젝트에 다음 IAM 역할 중 하나가 있어야 합니다.
    • roles/alloydb.admin (AlloyDB 관리자가 사전 정의한 IAM 역할)
    • roles/owner(소유자 기본 IAM 역할)
    • roles/editor(편집자 기본 IAM 역할)

    이러한 역할이 없는 경우 조직 관리자에게 문의하여 액세스 권한을 요청하세요.

AlloyDB 기본 인스턴스 만들기

콘솔

  1. 클러스터 페이지로 이동합니다.

    클러스터로 이동

  2. 리소스 이름 열에서 클러스터를 클릭합니다.

  3. 개요 페이지에서 클러스터의 인스턴스로 이동하여 기본 인스턴스 만들기를 클릭합니다.

  4. 기본 인스턴스를 구성합니다.

    1. 인스턴스 ID 필드에 기본 인스턴스의 ID를 입력합니다.
    2. 영역별 가용성에서 다음 옵션 중 하나를 선택합니다.
      1. 자동 장애 조치가 있는 고가용성 프로덕션 인스턴스를 만들려면 여러 영역 (고가용성)을 선택합니다.
      2. 가용성이 높지 않아도 되는 기본 인스턴스를 만들려면 단일 영역을 선택합니다.
    3. 머신 유형을 선택합니다.
    4. 선택사항: 인스턴스에 맞춤 플래그를 설정하려면 고급 구성 옵션을 펼친 다음 각 플래그에 대해 다음을 실행합니다.
      1. 플래그 추가를 클릭합니다.
      2. 새 데이터베이스 플래그 목록에서 플래그를 선택합니다.
      3. 플래그 값을 제공합니다.
      4. 완료를 클릭합니다.
    5. 선택사항: 인스턴스에서 SSL 또는 커넥터 요구사항을 구성하려면 고급 구성 옵션을 펼친 다음 다음을 실행합니다.
      1. 기본적으로 AlloyDB 인스턴스에서는 모든 연결이 SSL 암호화를 사용해야 합니다. SSL이 아닌 연결을 허용하려면 SSL 연결만 허용 체크박스를 선택 해제합니다.
      2. 인스턴스에 대한 모든 데이터베이스 연결이 AlloyDB 인증 프록시 또는 Google에서 제공하는 보안 커넥터 라이브러리를 사용하도록 하려면 커넥터 필요를 선택합니다.
    6. 인스턴스 만들기를 클릭합니다.

gcloud

gcloud CLI를 사용하려면 Google Cloud CLI를 설치 및 초기화하거나 Cloud Shell을 사용합니다.

gcloud alloydb instances create 명령어를 사용하여 기본 인스턴스를 만듭니다.

gcloud alloydb instances create INSTANCE_ID \
    --instance-type=PRIMARY \
    --cpu-count=CPU_COUNT \
    --availability-type=AVAILABILITY \
    --region=REGION_ID \
    --cluster=CLUSTER_ID \
    --project=PROJECT_ID
  • INSTANCE_ID: 만들려는 인스턴스의 ID입니다. 소문자로 시작해야 하며 소문자, 숫자, 하이픈을 포함할 수 있습니다.
  • CPU_COUNT: 인스턴스에 사용할 vCPU 수입니다. 유효한 값은 다음과 같습니다.
    • 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
  • AVAILABILITY: 이 인스턴스가 여러 영역에 노드가 있는 고가용성 (HA)인지 여부입니다. 유효한 값은 다음과 같습니다.
    • REGIONAL: 활성 노드와 대기 노드가 별도로 있는 HA 인스턴스를 만들고 이들 간에 자동 장애 조치를 실행합니다. 프로덕션 환경에 적합한 기본값입니다.
    • ZONAL: 자동 장애 조치가 없고 노드가 하나만 포함된 기본 인스턴스를 만듭니다.
  • REGION_ID: 인스턴스를 배치할 리전입니다. 예를 들면 us-central1입니다.
  • CLUSTER_ID: 인스턴스를 배치할 클러스터의 ID입니다.
  • PROJECT_ID: 클러스터가 배치된 프로젝트의 ID입니다.

기본적으로 새 인스턴스에서는 모든 연결이 SSL 암호화를 사용해야 합니다. 인스턴스에 대한 SSL 이외의 연결을 허용하려면 명령어에 --ssl-mode=ALLOW_UNENCRYPTED_AND_ENCRYPTED 플래그를 추가합니다.

gcloud alloydb instances create INSTANCE_ID \
  --instance-type=PRIMARY \
  --cpu-count=CPU_COUNT \
  --region=REGION_ID \
  --cluster=CLUSTER_ID \
  --project=PROJECT_ID \
  --ssl-mode=ALLOW_UNENCRYPTED_AND_ENCRYPTED

인증 프록시 또는 Google에서 제공하는 커넥터 라이브러리를 사용하는 다른 애플리케이션을 통해 클라이언트와 AlloyDB 인스턴스 간에 보안 연결을 적용하려면 명령어에 --require-connectors 플래그를 추가합니다.

gcloud alloydb instances create INSTANCE_ID \
  --instance-type=PRIMARY \
  --cpu-count=CPU_COUNT \
  --region=REGION_ID \
  --cluster=CLUSTER_ID \
  --project=PROJECT_ID \
  --require-connectors

Private Service Connect 지원 클러스터의 기본 인스턴스를 만들려면 --allowed-psc-projects 플래그를 추가하여 인스턴스에 대한 액세스를 허용하려는 프로젝트 ID 또는 프로젝트 번호를 쉼표로 구분한 목록(예: my-project-1, 12345,my-project-n)을 설정하세요.

gcloud alloydb instances create INSTANCE_ID \
    --instance-type=PRIMARY \
    --cpu-count=CPU_COUNT \
    --region=REGION_ID \
    --cluster=CLUSTER_ID \
    --project=PROJECT_ID \
    --allowed-psc-projects=ALLOWED_PROJECT_LIST

다음을 바꿉니다.

  • ALLOWED_PROJECT_LIST(선택사항): 인스턴스에 대한 액세스를 허용하려는 프로젝트 ID 또는 프로젝트 번호를 쉼표로 구분한 목록입니다(예: my-project-1, 12345, my-project-n). 클러스터에서 인스턴스에 연결하는 방법으로 Private Service Connect를 사용하는 경우 허용되는 프로젝트 또는 번호 목록을 설정해야 합니다.

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]
}

Cloud Shell 준비

Google Cloud 프로젝트에 Terraform 구성을 적용하려면 다음과 같이 Cloud Shell을 준비합니다.

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

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

    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 스니펫이 엔드 투 엔드 솔루션의 일부인 경우에 권장됩니다.
    git clone https://github.com/terraform-google-modules/terraform-docs-samples
  3. terraform-docs-samples 디렉터리에서 alloydb 디렉터리로 이동합니다.
    cd terraform-docs-samples/alloydb
  4. 샘플 코드를 새로 만든 main.tf에 복사합니다.
    cp SAMPLE_FILE
    <var>SAMPLE_FILE</var>을 복사할 샘플 파일의 이름(예: main.tf)으로 바꿉니다.
  5. 환경에 적용할 샘플 매개변수를 검토하고 수정합니다.
  6. 변경사항을 저장합니다.
  7. Terraform을 초기화합니다. 이 작업은 디렉터리당 한 번만 수행하면 됩니다.
    terraform init
    선택사항: 최신 Google 공급업체 버전을 사용하려면 -upgrade 옵션을 포함합니다.
    terraform init -upgrade

변경사항 적용

  1. 구성을 검토하여 Terraform 업데이트가 예상과 일치하는지 확인합니다.
    terraform plan
    필요에 따라 구성을 수정합니다.
  2. 다음 명령어를 실행하고 프롬프트에 yes를 입력하여 Terraform 구성을 적용합니다.
    terraform apply
    Terraform에 Apply complete! 메시지가 표시될 때까지 기다립니다.

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

REST v1

이 예시에서는 기본 인스턴스를 만듭니다. 이 호출의 전체 매개변수 목록은 메서드: projects.locations.clusters.instances.create를 참고하세요. 클러스터 설정에 관한 자세한 내용은 클러스터 및 인스턴스 설정 보기를 참고하세요.

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

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

  • CLUSTER_ID: 생성한 클러스터의 ID입니다. 소문자로 시작해야 하며 소문자, 숫자, 하이픈을 포함할 수 있습니다.
  • PROJECT_ID: 클러스터를 배치하려는 프로젝트의 ID입니다.
  • LOCATION_ID: 클러스터 리전의 ID입니다.
  • INSTANCE_ID: 만들려는 기본 인스턴스의 이름입니다.
  • vCPU_COUNT: 만들려는 인스턴스에 표시되는 CPU 코어 수입니다.

요청 JSON 본문은 다음과 같습니다.

{
  instanceId   = "INSTANCE_ID"
  instanceType = "PRIMARY"
  machineConfig {
    cpuCount = vCPU_COUNT
  }
  databaseFlags = {
    "key1" : "value1",
    "key2" : "value2"
  }
}

요청을 전송하려면 요청 본문을 request.json 파일에 저장하고 다음 POST 요청을 사용합니다.

POST https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances

다음 단계