Amazon Web Services

AWS RDS의 Multi AZ 구성에 대하여

열린기술자·2017년 10월 23일·조회 8,276

1. 개요

RDS와 Multi-AZ(Availability Zone)에 대한 정리이다.

Multi-AZ는 Amazon RDS에서 데이터베이스의 가용성을 높이기 위해 사용하는 구성 방식이다. 단일 AZ에만 데이터베이스를 두는 것보다 장애 상황에서 복구가 빠르고, 애플리케이션은 일반적으로 동일한 DB 엔드포인트를 사용한 채 재연결하면 된다.


2. Multi-AZ란

  • Multi-AZ는 물리적으로 분리된 여러 가용 영역(Availability Zone)을 활용하는 구성이다.
  • Multi-AZ를 사용하는 주된 이유는 데이터베이스의 가용성과 장애 대응 능력을 높이기 위해서이다.
  • 복수 AZ를 사용하면 리전 내 AZ 간 데이터베이스 동기화(sync)가 가능하다.
  • 장애 발생 시 대기 인스턴스로 failover가 수행된다.

일반적인 RDS Multi-AZ DB 인스턴스 구성에서는 기본 인스턴스와 대기 인스턴스가 존재한다. 대기 인스턴스는 장애 조치를 위한 용도이며, 읽기 부하 분산을 위한 읽기 전용 복제본(Read Replica)과는 목적이 다르다.


3. Multi-AZ를 설정하면 발생하는 일

  • 현재 인스턴스의 snapshot이 생성된다.
  • 생성된 snapshot을 이용하여 다른 AZ에 대기 인스턴스가 생성된다.
  • 기본 인스턴스와 대기 인스턴스 간에 동기식 복제가 구성된다.

이후 데이터 변경 사항은 기본 인스턴스와 대기 인스턴스 간에 동기식으로 복제된다. 기본 인스턴스나 해당 AZ에 장애가 발생하면 RDS가 대기 인스턴스를 기본 인스턴스로 승격하고, DB 엔드포인트가 새 기본 인스턴스를 가리키도록 전환된다.

4. 확인할 점

  • Multi-AZ는 백업이나 읽기 성능 향상 목적보다는 고가용성 목적의 기능으로 이해하는 것이 좋다.
  • 장애 조치 중에는 짧은 연결 끊김이 발생할 수 있으므로 애플리케이션에는 재시도 로직을 두는 것이 좋다.
  • 운영 환경에서는 강제 failover 테스트를 통해 애플리케이션이 정상적으로 재연결되는지 확인하는 것이 좋다.

댓글 0

로그인 후 댓글을 남길 수 있습니다.

아직 댓글이 없습니다.