Aurora MySQL 또는 PostgreSQL은 리더 노드 간에 작업량을 어떻게 배포하나요?

2분 분량
0

MySQL용 Amazon Aurora 또는 PostgreSQL에서 리더 노드 간에 워크로드를 어떻게 배포하는지 알고 싶습니다.

해결 방법

리더 엔드포인트를 사용하여 Amazon Aurora 클러스터의 리더 노드에 연결할 수 있습니다.

연결의 회전 배포를 확인하려면, 셸 명령을 실행하세요. Aurora가 리더 엔드포인트와 연결할 때 어떻게 로드 밸런싱을 실행하는지 알아보려면, 다음과 같은 명령을 실행하세요.

while sleep 5; do dig xxx-cluster.cluster-ro-xxxxxx.us-east1.rds.amazonaws.com|grep CNAME; done

리더 엔드포인트를 확인할 때마다, 사용자가 연결할 수 있는 인스턴스 IP 주소를 받습니다. 이 IP 주소는 회전 배포를 기반으로 선택됩니다.

다음과 같은 시나리오에서는 각각의 읽기 전용 복제본 DB 연결이 균등하게 배포되지 않을 수 있습니다.

  • 클라이언트가 DNS 정보를 캐시합니다. 클라이언트가 캐시된 연결 설정을 사용해 동일한 Aurora 복제본에 연결할 때 배포가 불균등해질 수 있습니다. 네트워크 레이어, 운영 체제, 또는 애플리케이션 컨테이너 등 DNS 캐싱은 어디에서든 발생할 수 있습니다.
  • DB 인스턴스에 장애가 발생하면, 리더 엔드포인트가 연결을 리디렉션할 수 있습니다. 리더 엔드포인트가 DB 클러스터의 주 DB 인스턴스에 일시적으로 연결할 수 있습니다. 이 리디렉션은 Aurora 복제본이 주 DB 인스턴스로 승격될 때 발생합니다.
  • 읽기 전용 복제본을 사용할 수 없거나 상태 확인에 실패했습니다.
  • 애플리케이션이 Java로 작성되었고, TTL 캐싱을 끄거나 조정하지 않았습니다. TTL 캐싱을 끄거나 조정하지 않으면, Java 가상 머신(JVM)에서 DNS를 영구적으로 캐시할 수 있습니다. 자세한 내용은 DNS 이름 조회를 위한 JVM TTL 설정을 참고하세요.
  • 연결이 동시에 되는 경우, 동일한 리더 엔드포인트로 연결이 전송됩니다.

워크로드 배포를 관리할 때는 사용자 지정 엔드포인트를 사용해 유연성을 높이세요. 예를 들어, 클러스터 내에서 다양한 DB 인스턴스 크기를 사용하는 경우 사용자 지정 엔드포인트를 사용할 수 있습니다.

관련 정보

Amazon Aurora 연결 관리

AWS 공식
AWS 공식업데이트됨 3달 전