1. Amazon Aurora 소개
- Amazon Aurora는 AWS에서 제공하는 고성능, 고가용성 관계형 데이터베이스 서비스입니다.
- MySQL 및 PostgreSQL과 호환되며, 엔터프라이즈급 데이터베이스의 성능과 가용성을 클라우드 네이티브 방식으로 제공합니다.
2. 단일 리전 내 고가용성 구성
2.1 Aurora 클러스터 구조
- 하나의 Aurora 클러스터는 단일 리전 내에서 구성됩니다
- 클러스터는 라이터 엔드포인트와 리더 엔드포인트를 제공합니다
- 각 클러스터는 프라이머리 인스턴스(라이터) 1개와 최대 15개의 리드 레플리카로 구성 가능합니다
2.2 다중 AZ 데이터 복제
- 단일 리전 내의 여러 가용 영역(AZ)에 걸쳐 데이터를 복제합니다
- 최소 3개의 AZ에 걸쳐 6개의 데이터 복사본을 유지합니다
- 각 AZ마다 2개의 데이터 복사본이 저장됩니다
- 쓰기 작업은 6개 중 4개의 복사본 확인이 필요합니다
- 읽기 작업은 6개 중 3개의 복사본만 있으면 가능합니다
3. 자동 장애 조치(Failover)
3.1 장애 조치 구성 요구사항
- 자동 장애 조치를 위해서는 다음 구성이 필요합니다:
- 다중 AZ 활성화
- 프라이머리 인스턴스(라이터)
- 최소 1개 이상의 리드 레플리카
3.2 장애 조치 프로세스
- 프라이머리 인스턴스 장애 감지 시 진행 과정:
- 가장 적합한 리드 레플리카를 새로운 프라이머리로 승격
- DNS 레코드 업데이트로 라이터 엔드포인트 변경
- 일반적으로 30초 이내에 완료
- 애플리케이션은 라이터 엔드포인트를 통해 자동으로 새 프라이머리에 연결
4. 글로벌 데이터베이스
4.1 기본 구조
- 프라이머리 클러스터: 읽기/쓰기 작업을 모두 처리하는 메인 클러스터
- 세컨더리 클러스터: 읽기 전용 작업을 처리하는 복제 클러스터
- 최대 5개의 세컨더리 리전까지 구성 가능
4.2 복제 방식
- 프라이머리에서 세컨더리로 데이터가 지속적으로 복제됩니다
- 일반적으로 1초 미만의 복제 지연시간
- 각 세컨더리 클러스터는 해당 리전 내에서 다중 AZ 구성 가능
4.3 장애 조치 시나리오
- 리전 장애 발생 시 세컨더리 클러스터를 새로운 프라이머리로 승격 가능
- RTO(Recovery Time Objective)는 일반적으로 1분 이내
- 수동 장애 조치 프로세스 지원
5. 읽기 확장성
5.1 리드 레플리카
- 단일 리전 내에서 최대 15개까지 생성 가능
- 리더 엔드포인트를 통한 자동 로드 밸런싱
- 각 리플리카는 독립적인 엔드포인트도 제공
5.2 Auto Scaling