Question
특정 인스턴스로 proxy 설정하는 방법
aurora-test (cluster) - aurora-test-01 (라이터 인스턴스), aurora-test-02 (리더 인스턴스), aurora-test-03 (리더 인스턴스), aurora-test-04 (리더 인스턴스)
-> proxy 설정을 아래와 같이 특정 인스턴스로만 접근하게 할 수 있는 방안
proxy-2 : 01,02,03 (라이터, 리더 둘 다 접근) / proxy-3 : 03 (리더) / proxy-4 : 04 (리더)
Answer
Aurora 클러스터에 RDS Proxy를 사용할 때 연결하는 엔드포인트에는 읽기/쓰기 기능이 있습니다. 따라서 이 엔드포인트는 모든 요청을 클러스터의 라이터 인스턴스로 보내게 됩니다. 즉, 라이터 인스턴스는 읽기/쓰기 작업 모두 가능합니다.
프록시가 Aurora DB 클러스터에 연결되어 있는 경우, 해당 프록시에 대해 추가 읽기/쓰기 또는 읽기 전용 엔드포인트를 생성할 수 있습니다. 예를 들어, 리더 엔드포인트라는 읽기 전용 엔드포인트를 생성하고 연결하면 해당 엔드포인트는 클러스터의 리더 엔드포인트에 연결을 전달합니다.
프록시 엔드포인트를 생성하고 대상 그룹을 구성할 때 선택할 수 있는 데이터베이스 목록에는 클러스터(마스터)만 나타납니다. 즉, 해당 클러스터에 존재하는 모든 리더 인스턴스에 연결을 전달할 수는 있으나, 특정 리더 인스턴스에 연결할 수는 없는 것으로 확인됩니다.
기본 엔드포인트와 읽기 전용 엔드포인트를 사용하신다면, 구조는 아래와 같을 것으로 확인됩니다.
proxy-기본: 01 (라이터 인스턴스 접근) / proxy-읽기 전용: 02, 03, 04 (모든 리더 인스턴스 접근)
특정 DB instance 에 접근을 위해서는 RDS의 create custom endpoint 를 통해서 가능합니다. 아래 참고 부탁드립니다.
사용자 지정 엔드포인트(create custom endpoint 란)?
사용자 지정 엔드포인트는 DB 인스턴스의 읽기 전용 기능 또는 읽기/쓰기 기능 이외의 다른 조건을 기반으로 로드 밸런싱된 데이터베이스 연결을 제공합니다.
예를 들어 특정 AWS 인스턴스 클래스 또는 특정 DB 파라미터 그룹을 사용하는 인스턴스에 연결할 사용자 지정 엔드포인트를 정의할 수 있습니다. 그런 다음 특정 사용자 그룹에 이 사용자 지정 엔드포인트에 대해 알릴 수 있습니다.
예를 들어 보고 생성 또는 임시(일회) 쿼리를 위해 저용량 인스턴스로 내부 사용자를 보내고, 고용량 인스턴스로 프로덕션 트래픽을 보낼 수 있습니다.
생성 방법
1.사용하는 RDS를 클릭합니다연결 & 보안 탭에서 사용자 지정 엔트포인트 생성 클릭합니다.
2.endpoint 이름을 지정합니다.
3.생성이 완료 되었습니다.