GDC 샌드박스는 데이터베이스 클러스터를 테스트하고 관리하는 데이터베이스 서비스를 제공합니다.
데이터베이스 만들기
데이터베이스 클러스터를 만들고 관리하려면 데이터베이스 클러스터 만들기 및 관리를 참고하세요.
사용 가능한 데이터베이스 엔진
GDC 샌드박스는 PostgreSQL 및 AlloyDB만 지원합니다.
GDC 콘솔 또는 Distributed Cloud CLI를 사용하여 데이터베이스 클러스터를 만듭니다.
콘솔
- 기본 메뉴에서 데이터베이스 서비스를 선택합니다.
- 데이터베이스 클러스터 만들기를 클릭합니다.
데이터베이스 엔진 선택 대화상자에서 데이터베이스 엔진을 선택합니다.
클러스터 구성 대화상자에서 클러스터 ID, 비밀번호, 데이터베이스 버전을 지정합니다. 백업을 사용 설정하고 백업 보관 기간을 구성할 수 있습니다.
기본 인스턴스 구성 대화상자에서 데이터베이스 클러스터의 기본 인스턴스의 CPU, 메모리, 스토리지 용량을 지정합니다. 가장 큰 테이블을 보관할 만큼 충분한 메모리를 선택하는 것이 좋습니다.
만들기를 클릭합니다. 데이터베이스 클러스터를 만드는 데 몇 분 정도 걸릴 수 있습니다. 클러스터 개요 페이지에서 클러스터의 상태를 확인합니다. 클러스터가 준비되면 상태가 생성 중에서 준비됨으로 변경됩니다.
gdcloud
Distributed Cloud CLI를 사용하기 전에 설치하고 초기화하세요. 그런 다음 조직으로 인증합니다.
다음 명령어를 실행하여 데이터베이스 클러스터를 만듭니다.
gdcloud database clusters create CLUSTER_NAME \ --database-version DB_VERSION \ --admin-password ADMIN_PASSWORD
다음 변수를 바꿉니다.
CLUSTER_NAME
을 새 클러스터 이름으로 바꿉니다.DB_VERSION
을 새 클러스터의 버전 문자열로 바꿉니다. 예를 들면POSTGRESQL_13
또는ALLOYDBOMNI_15
입니다.ADMIN_PASSWORD
를 새 클러스터의 관리자 비밀번호로 바꿉니다.
데이터베이스 클러스터의 CPU, 메모리, 스토리지 리소스 구성, 백업 구성, 고가용성 사용 설정, 기타 사용 가능한 옵션에 대한 자세한 내용은 다음을 실행하세요.
gdcloud database clusters create --help
API
다음 콘텐츠로
db-cluster-create.yaml
파일을 만듭니다.apiVersion: v1 kind: Secret metadata: name: db-pw-DBCLUSTER_NAME namespace: USER_PROJECT type: Opaque data: DBCLUSTER_NAME: "BASE64_PASSWORD" --- apiVersion: DBENGINE_NAME.dbadmin.gdc.goog/v1 kind: DBCluster metadata: name: DBCLUSTER_NAME namespace: USER_PROJECT spec: primarySpec: adminUser: passwordRef: name: db-pw-DBCLUSTER_NAME version: "DB_VERSION" resources: memory: DB_MEMORY cpu: DB_CPU disks: - name: DataDisk size: DB_DATA_DISK
다음 변수를 바꿉니다.
DBCLUSTER_NAME
: 데이터베이스 클러스터의 이름입니다.USER_PROJECT
: 데이터베이스 클러스터가 생성될 사용자 프로젝트의 이름입니다.BASE64_PASSWORD
: 데이터베이스 관리자 비밀번호의 base64 인코딩입니다.DBENGINE_NAME
: 데이터베이스 엔진의 이름입니다.alloydbomni
또는postgresql
중 하나입니다.DB_VERSION
: 데이터베이스 엔진의 버전입니다.DB_MEMORY
: DB 클러스터에 할당된 메모리 양입니다(예:5Gi
).DB_CPU
: DB 클러스터에 할당된 CPU 양입니다(예:2
).DB_DATA_DISK
: DB 클러스터에 할당된 공간의 양입니다(예:10 Gi
).
kubectl --kubeconfig MANAGEMENT_API apply -f db-cluster-create.yaml
데이터베이스에 연결
기본적으로 데이터베이스 클러스터는 사용자 클러스터 및 동일한 프로젝트 내에서의 연결만 허용합니다.
다른 프로젝트에서 프로젝트의 모든 데이터베이스 클러스터에 연결을 사용 설정하려면 프로젝트 간 연결 사용 설정을 참고하세요.
GDC 샌드박스 조직 외부의 IP 주소에서 데이터베이스에 연결하려면 데이터베이스 클러스터에 연결의 안내에 따라 외부 연결을 사용 설정하세요.
sshuttle
를 사용하여 psql
과 같은 로컬 데이터베이스 클라이언트로 데이터베이스에 연결할 수 있습니다.
데이터베이스 클러스터의 데이터베이스 서비스 페이지에 있는 연결 섹션으로 이동합니다. 이 페이지에는 다음이 포함되어 있습니다.
- 관리자 계정의 비밀번호 (사용자 이름은
dbsadmin
) - 데이터베이스 클러스터의 기본 엔드포인트의 호스트 이름 및 포트 번호
- 클러스터에 연결하는
psql
명령어 (PostgreSQL 및 AlloyDB Omni 데이터베이스 클러스터용) - 데이터베이스 클러스터의 인증 기관 (CA) 인증서를 다운로드할 수 있는 링크
- 관리자 계정의 비밀번호 (사용자 이름은
데이터베이스 클러스터의 데이터베이스 서비스 페이지에 있는 연결 섹션에서 GDC 콘솔의 CA 인증서를 다운로드합니다.
CA 인증서를 사용하여 데이터베이스를 확인하도록 클라이언트를 구성합니다.
psql
클라이언트의 경우PGSSLROOTCERT
환경 변수를 인증서 파일의 경로로 설정하고PGSSLMODE
환경 변수를 원하는 대로 설정합니다.export PGSSLROOTCERT=path/to/accounts_cert.pem export PGSSLMODE="verify-full"
보안 터널을 시작합니다. 인스턴스에 연결에 설명된 대로
sshuttle
인스턴스가 실행 중인 경우 해당 프로세스를 종료합니다.sshuttle -r zone1-org-1-data@GDC_SANDBOX_INSTANCE_NAME --no-latency-control \ --ssh-cmd 'gcloud compute ssh --project PROJECT_NAME --zone ZONE --tunnel-through-iap' \ 10.200.0.0/16 --dns
다음을 GDC 샌드박스팀에서 제공한 값으로 바꿉니다.
GDC_SANDBOX_INSTANCE_NAME
: GDC 샌드박스 인스턴스의 이름입니다.PROJECT_NAME
: GDC 샌드박스 환경이 포함된 프로젝트입니다.ZONE
: GDC 샌드박스 환경이 포함된 영역입니다.
터널이 활성 상태인 동안 다른 터미널에서
psql
를 사용하여 명령어를 실행합니다.PGPASSWORD=DB_PASSWORD psql -h DB_HOSTNAME -p PORT -U USERNAME -d postgres
다음 변수를 바꿉니다.
DB_PASSWORD
: 콘솔 UI의 비밀번호입니다.DB_HOSTNAME
: 콘솔의 데이터베이스 호스트 이름입니다.DB_PORT
: 콘솔의 데이터베이스 포트 번호입니다.DB_USERNAME
: 콘솔의 데이터베이스 사용자 이름입니다.