데이터베이스 클러스터에 연결

기본적으로 데이터베이스 클러스터는 사용자 클러스터 및 동일한 프로젝트 내에서의 연결만 허용합니다.

다른 프로젝트에서 프로젝트의 모든 데이터베이스 클러스터에 대한 연결을 사용 설정하려면 프로젝트 간 연결 사용 설정을 참고하세요.

GDC 조직 외부의 IP 주소에서 데이터베이스 클러스터로의 연결을 사용 설정하려면 외부 연결 사용 설정을 참고하세요.

project-db-admin 역할에 바인딩된 계정으로 GDC 콘솔에 로그인하여 데이터베이스 클러스터에 연결하는 데 필요한 다음 정보를 확인합니다. 이 정보는 데이터베이스 서비스 페이지의 연결 섹션에 있습니다.

이 단계에는 psql를 사용하여 데이터베이스에 연결하는 예가 포함되어 있습니다. 정확한 단계는 선택한 클라이언트 소프트웨어에 따라 다릅니다.

콘솔

  1. 데이터베이스 클러스터의 데이터베이스 서비스 페이지에 있는 연결 섹션으로 이동합니다. 이 페이지에는 다음이 포함되어 있습니다.

    • 관리자 계정의 비밀번호 (사용자 이름은 dbsadmin)
    • 데이터베이스 클러스터의 기본 엔드포인트의 호스트 이름 및 포트 번호
    • 데이터베이스 클러스터가 조직 외부에서의 외부 연결을 허용하는 경우
    • 클러스터에 연결하는 psql 명령어 (PostgreSQL 및 AlloyDB Omni 데이터베이스 클러스터용)
    • Java Database Connectivity(JDBC)를 사용하여 클러스터에 연결하기 위한 문자열(Oracle 데이터베이스 클러스터의 경우)
    • 데이터베이스 클러스터의 인증 기관 (CA) 인증서를 다운로드할 수 있는 링크
  2. 데이터베이스 클러스터의 데이터베이스 서비스 페이지에 있는 연결 섹션의 GDC 콘솔에서 CA 인증서를 다운로드합니다.

  3. CA 인증서를 사용하여 데이터베이스를 확인하도록 클라이언트를 구성합니다. psql 클라이언트의 경우 PGSSLROOTCERT 환경 변수를 인증서 파일의 경로로 설정하고 PGSSLMODE 환경 변수를 원하는 대로 설정합니다.

    export PGSSLROOTCERT=path/to/accounts_cert.pem
    export PGSSLMODE="verify-full"
    
  4. 클라이언트 소프트웨어에서 데이터베이스에 연결합니다. psql를 사용하는 경우 다음 명령어를 실행합니다.

    PGPASSWORD=DB_PASSWORD psql -h DB_HOSTNAME -p PORT -U USERNAME -d postgres
    

다음 변수를 바꿉니다.

  • path/to/: accounts_cert.pem 인증서의 경로입니다.
  • DB_PASSWORD: 콘솔의 비밀번호입니다.
  • DB_HOSTNAME: 콘솔의 데이터베이스 호스트 이름입니다.
  • DB_PORT: 콘솔의 데이터베이스 포트 번호입니다.
  • DB_USERNAME: 콘솔의 데이터베이스 사용자 이름입니다.

API

  1. 데이터베이스 클러스터 상태에서 데이터베이스 엔드포인트를 검색합니다.

    kubectl get dbcluster.DBENGINE_NAME.dbadmin.gdc.goog DBCLUSTER_NAME -n USER_PROJECT -o=jsonpath='{.status.primary.url}'
    
  2. Kubernetes 보안 비밀에서 CA 인증서를 다운로드합니다.

    kubectl get secret dbs-certificates -n USER_PROJECT -o json | jq -r '.data."dbs-DBENGINE_SHORT_NAME-cert-DBCLUSTER_NAME"' | base64 -d > path/to/ca.crt
    
  3. CA 인증서를 사용하여 데이터베이스를 확인하도록 클라이언트를 구성합니다. psql 클라이언트의 경우 PGSSLROOTCERT 환경 변수를 인증서 파일의 경로로 설정하고 PGSSLMODE 환경 변수를 원하는 대로 설정할 수 있습니다.

    export PGSSLROOTCERT=path/to/accounts_cert.pem
    export PGSSLMODE="verify-full"
    
  4. 클라이언트 소프트웨어에서 데이터베이스에 연결합니다. psql를 사용하는 경우 다음 명령어를 실행합니다.

    PGPASSWORD=DB_PASSWORD psql -h DB_HOSTNAME -p DB_PORT -U DB_USERNAME -d postgres
    

다음 변수를 바꿉니다.

  • DBENGINE_NAME: 데이터베이스 엔진의 이름입니다. alloydbomni, postgresql, oracle 중 하나입니다.
  • USER_PROJECT: 데이터베이스 클러스터가 생성된 사용자 프로젝트의 이름입니다.
  • DBENGINE_SHORT_NAME: 데이터베이스 엔진의 약식 이름입니다. al (AlloyDB Omni), pg (PostgreSQL) 또는 ora (Oracle) 중 하나입니다.
  • DBCLUSTER_NAME: 데이터베이스 클러스터의 이름입니다.
  • path/to/: 데이터베이스 CA 인증서의 경로입니다.
  • DB_PASSWORD: 관리자 사용자의 데이터베이스 비밀번호입니다.
  • DB_HOSTNAME: 데이터베이스 클러스터 상태의 호스트 이름입니다.
  • DB_PORT: 데이터베이스 클러스터 상태의 데이터베이스 포트 번호입니다.
  • DB_USERNAME: 데이터베이스 사용자 이름 (기본값은 dbsadmin)