RPM 오케스트레이터를 사용하여 비동기 복제 읽기 풀 인스턴스 만들기

문서 버전을 선택합니다.

데이터베이스 클러스터의 읽기 처리량과 가용성을 높이려면 비동기 읽기 풀 인스턴스를 만들면 됩니다. 읽기 풀 인스턴스는 데이터베이스 인스턴스의 읽기 전용 클론을 제공하여 데이터베이스 인스턴스를 사용할 수 없게 되더라도 데이터 액세스를 보장합니다.

데이터베이스 인스턴스의 매니페스트 파일에서 읽기 풀 인스턴스 구성을 정의할 수 있습니다. 각 읽기 풀 인스턴스에는 고유한 매니페스트 파일을 만들어야 합니다. 데이터베이스 클러스터당 총 읽기 풀 노드가 최대 20개인 읽기 풀 인스턴스를 여러 개 배포할 수 있습니다.

각 읽기 풀 인스턴스는 복제하는 인스턴스와 동일한 양의 스토리지를 차지합니다.

비동기 복제 읽기 풀 인스턴스 만들기

AlloyDB Omni 비동기 복제 읽기 풀 인스턴스를 만들려면 다음 단계를 완료하세요.

  1. 읽기 풀 인스턴스 유형을 정의하는 데이터베이스 인스턴스 매니페스트를 만듭니다.

    DBInstance:
      metadata:
        name: READ_POOL_INSTANCE_NAME
      spec:
        instanceType: ReadPool
        nodeCount: READ_POOL_NODE_COUNT
        readPoolPort: READ_POOL_PORT
        dbcParent:
          name: DB_CLUSTER_NAME
    

    다음을 바꿉니다.

    • READ_POOL_INSTANCE_NAME: 이 리소스 이름(예: read-pool-instance-1)

    • DB_CLUSTER_NAME: 인스턴스가 속한 데이터베이스 클러스터의 이름입니다.

    • READ_POOL_NODE_COUNT: (선택사항) 읽기 풀 인스턴스의 노드 수입니다. 이는 인스턴스의 전체 컴퓨팅 용량을 결정합니다. 데이터베이스 클러스터당 총 읽기 풀 노드가 최대 20개일 수 있습니다.

    • READ_POOL_PORT: (선택사항) 읽기 트래픽을 이 읽기 풀 인스턴스로 라우팅하는 부하 분산기 (VIP)의 포트입니다. 기본값은 5434입니다.

  2. DBInstance 사양을 적용합니다.

    alloydbctl

    alloydbctl apply -d "DEPLOYMENT_SPECIFICATION_PATH" -r "DBINSTANCE_SPECIFICATION"

    다음 변수를 바꿉니다.

    Ansible

    ansible-playbook DBINSTANCE_PLAYBOOK -i "DEPLOYMENT_SPECIFICATION_PATH" \
          -e resource_spec="DBINSTANCE_SPECIFICATION"

    다음 변수를 바꿉니다.

인스턴스 상태 확인

읽기 풀 인스턴스의 가용성을 확인하려면 DBInstance 리소스의 상태를 가져옵니다.

alloydbctl

alloydbctl get -d "DEPLOYMENT_SPECIFICATION_PATH" -t DBInstance -n "READ_POOL_INSTANCE_NAME" -o yaml

다음 변수를 바꿉니다.

Ansible

google.alloydbomni_orchestrator.status 플레이북을 실행합니다. 자세한 내용은 클러스터 상태 가져오기를 참조하세요.

ansible-playbook STATUS_PLAYBOOK_PATH -i "DEPLOYMENT_SPECIFICATION_PATH" \
      -e resource_type="DBInstance" -e resource_name="READ_POOL_INSTANCE_NAME"

다음 변수를 바꿉니다.

응답의 .status.conditions 섹션에서 다음을 확인합니다.

  • Available 조건의 상태가 true이면 읽기 풀 인스턴스가 쿼리를 처리할 수 있지만 데이터베이스 인스턴스에서 데이터를 복제하지 않을 수 있음을 나타냅니다.
  • Streaming 조건의 상태가 true이면 읽기 풀 인스턴스가 데이터베이스 인스턴스에 연결되어 있고 변경사항을 적극적으로 스트리밍하고 있음을 나타냅니다.

데이터베이스 인스턴스에 연결할 수 없는 경우 읽기 풀 인스턴스가 계속 쿼리를 처리합니다. 이 경우 가용성 상태는 true이고 스트리밍 상태는 false입니다.

읽기 풀 인스턴스를 설정하면 기본 데이터베이스 인스턴스의 행에 대한 모든 삽입, 업데이트, 삭제가 읽기 풀 인스턴스에서 읽을 수 있게 됩니다.

읽기 풀 인스턴스에 연결

읽기 풀 인스턴스가 Available이 되면 부하 분산기가 트래픽을 읽기 풀 노드로 라우팅하는 전용 읽기 전용 프런트엔드를 자동으로 구성합니다.

연결 엔드포인트를 보려면 DBInstance 상태 출력에서 status.endpoints를 확인합니다. 읽기 전용 엔드포인트(예: VIP_IP:5434)는 수신되는 읽기 전용 쿼리를 읽기 풀의 모든 정상 노드에 분산합니다.

읽기 풀 인스턴스에 연결하려면 엔드포인트의 IP 주소와 포트가 있는 psql 클라이언트 도구를 사용합니다.

psql -h VIP_IP -p READ_POOL_PORT -U postgres

다음을 바꿉니다.

  • VIP_IP: 읽기 전용 엔드포인트의 IP 주소입니다.
  • READ_POOL_PORT: 읽기 전용 엔드포인트의 포트입니다.

이 엔드포인트에 대해 쓰기 작업을 시도하면 읽기 전용 트랜잭션에서 삽입을 실행할 수 없음을 나타내는 오류와 함께 작업이 즉시 실패합니다.

읽기 풀 인스턴스 관리

RPM 오케스트레이터는 클러스터 다운타임 없이 읽기 풀 인스턴스의 동적 확장 및 삭제를 지원합니다.

읽기 풀 인스턴스 확장

기존 읽기 풀에서 노드를 추가하거나 삭제하려면 DBInstance 매니페스트 파일에서 nodeCount 필드를 업데이트합니다.

  1. DBInstance 매니페스트 파일을 열고 선택한 노드 수를 반영하도록 nodeCount 값을 수정합니다.

  2. 선호하는 배포 방법인 alloydbctl apply 명령어 또는 Ansible 플레이북을 사용하여 업데이트된 매니페스트를 적용합니다.

RPM 오케스트레이터는 읽기 복제본 노드를 자동으로 프로비저닝하거나 삭제하고 부하 분산기는 풀의 사용 가능한 노드로 트래픽을 라우팅하도록 동적으로 업데이트됩니다.

읽기 풀 인스턴스 삭제

읽기 풀 인스턴스를 삭제하려면 alloydbctl delete 명령어를 사용합니다.

alloydbctl delete -t DBInstance -n READ_POOL_INSTANCE_NAME

READ_POOL_INSTANCE_NAME을 삭제하려는 읽기 풀 인스턴스의 이름으로 바꿉니다.

읽기 풀 인스턴스를 삭제하면 오케스트레이터가 읽기 복제본 서비스를 중지하고 노드를 정리합니다. 부하 분산기는 승격 교착 상태를 일으키거나 기본 또는 대기 인스턴스의 트래픽에 영향을 미치지 않고 라우팅을 자동으로 삭제합니다.

달리 명시되지 않는 한 이 페이지의 콘텐츠에는 Creative Commons Attribution 4.0 라이선스에 따라 라이선스가 부여되며, 코드 샘플에는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 Google Developers 사이트 정책을 참조하세요. 자바는 Oracle 및/또는 Oracle 계열사의 등록 상표입니다.

최종 업데이트: 2026-10-11(UTC)