본문으로 건너뛰기

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 장애 조치 프로세스

  • 프라이머리 인스턴스 장애 감지 시 진행 과정:
    1. 가장 적합한 리드 레플리카를 새로운 프라이머리로 승격
    2. DNS 레코드 업데이트로 라이터 엔드포인트 변경
    3. 일반적으로 30초 이내에 완료
    4. 애플리케이션은 라이터 엔드포인트를 통해 자동으로 새 프라이머리에 연결

4. 글로벌 데이터베이스

4.1 기본 구조

  • 프라이머리 클러스터: 읽기/쓰기 작업을 모두 처리하는 메인 클러스터
  • 세컨더리 클러스터: 읽기 전용 작업을 처리하는 복제 클러스터
  • 최대 5개의 세컨더리 리전까지 구성 가능

4.2 복제 방식

  • 프라이머리에서 세컨더리로 데이터가 지속적으로 복제됩니다
  • 일반적으로 1초 미만의 복제 지연시간
  • 각 세컨더리 클러스터는 해당 리전 내에서 다중 AZ 구성 가능

4.3 장애 조치 시나리오

  • 리전 장애 발생 시 세컨더리 클러스터를 새로운 프라이머리로 승격 가능
  • RTO(Recovery Time Objective)는 일반적으로 1분 이내
  • 수동 장애 조치 프로세스 지원

5. 읽기 확장성

5.1 리드 레플리카

  • 단일 리전 내에서 최대 15개까지 생성 가능
  • 리더 엔드포인트를 통한 자동 로드 밸런싱
  • 각 리플리카는 독립적인 엔드포인트도 제공

5.2 Auto Scaling

  • CPU 사용률이나 연결 수에 기반한 자동 확장/축소
  • 리드 레플리카 수를 자동으로 조정
  • 최소/최대 리플리카 수 설정 가능

6. 모니터링 및 유지보수

6.1 Enhanced Monitoring

  • 각 DB 인스턴스의 OS 지표 모니터링
  • 1초 단위까지 세밀한 모니터링 가능
  • CloudWatch와 통합되어 알림 설정 가능

6.2 자동 유지보수

  • 패치 및 마이너 버전 업그레이드 자동 적용
  • 유지보수 기간 예약 가능
  • 다중 AZ 구성 시 무중단 패치 적용

7. 결론

  • Amazon Aurora는 다중 AZ 구성, 자동 장애 조치, 글로벌 데이터베이스 등 다양한 고가용성 기능을 제공합니다.
  • 특히 단일 리전 내 다중 AZ 구성과 글로벌 데이터베이스를 통한 리전 간 복제는 서로 다른 수준의 가용성 요구사항을 만족시킬 수 있습니다.
  • 이러한 기능들을 적절히 활용하면 엔터프라이즈급의 안정적인 데이터베이스 환경을 구축할 수 있습니다.