RDS Multi-AZ 설정 시 가용 영역을 수동으로 변경할 수 있을까?

RDS Multi-AZ 설정 시 가용 영역을 수동으로 변경할 수 있는지에 대해서 정리해 봤습니다.
2023.05.13

안녕하세요 클래스메소드 김재욱(Kim Jaewook) 입니다. 이번에는 RDS Multi-AZ 설정 시 가용 영역을 수동으로 변경할 수 있는지에 대해서 정리해 봤습니다.

RDS Multi-AZ 설정 후 AZ 위치는?

실제로 Multi-AZ를 설정 후 RDS를 생성해 보면, 예상했던 AZ와는 달리 다른 AZ에 배치되는 경우가 있습니다.

이번 RDS의 경우 ap-northeast-1a에 배치되는 것을 생각했지만, 실제로 생성한 결과 ap-northeast-1c에 배치된 상태입니다.

RDS Multi-AZ에서 AZ 설정은 가능할까?

RDS에서 Multi-AZ를  배포할 경우 자동 장애 조치(Automatic Failover)를 제공하기 위해 프라이머리 데이터베이스 인스턴스와 동일한 지역의 다른 가용 영역(Availability Zone, AZ)에 복제된 보조 인스턴스를 생성합니다.

이렇게 생성 된 보조 인스턴스는 자동 장애 조치(Automatic Failover)를 통해 프라이머리 인스턴스의 장애가 발생한 경우 자동으로 프라이머리 역할을 수행합니다.

여기서 Multi-AZ 배포를 생성할 때, 보조 인스턴스는 AWS에서 내부적으로 자동으로 생성되기 떄문에 사용자는 보조 인스턴스를 생성하거나 특정 AZ로 보조 인스턴스를 지정할 수 없습니다.

Requesting a specific availability zone is not valid for Multi-AZ instances

실제로 RDS Multi-AZ 설정 시, CloudFormation으로 AZ를 지정하려고 하면 다음과 같은 에러 메시지가 출력됩니다.

에러 메시지에 대한 내용은 아래 블로그를 참고해 주세요.

결국 RDS Multi-AZ를 생성할 때, AZ를 직접 설정할 수는 없습니다.

하지만, 조금 전 설명한 자동 장애 조치(Automatic Failover)를 이용한다면 AZ를 변경할 수는 있습니다.

「자동 장애 조치(Automatic Failover)를 통해 프라이머리 인스턴스의 장애가 발생한 경우 자동으로 프라이머리 역할을 수행합니다.」라고 설명드렸던 것 처럼 보조 장애 조치(Failover)를 통해 보조 인스턴스를 프라이머리 인스턴스 역할을 수행하도록 변경해 AZ를 변경할 수 있습니다.

장애 조치(Failover)를 통한 AZ 변경

  • 대상 RDS를 선택합니다.
  • 「작업」을 클릭합니다.
  • 「재부팅」을 클릭합니다.

  • 「장애 조치로 재부팅하시겠습니까?」에 체크합니다.
  • 「확인」을 클릭합니다.

조금 기다려보면「리전 및 AZ」가 ap-northeast-1a로 변경된 것을 확인할 수 있습니다.

Multi-AZ로 설정된 RDS의 경우 기본 AZ를 변경하고자 할 경우 장애 조치(Failover)를 사용해 변경해도 상관없지만, 기본 AZ를 변경한다고 해도 Multi-AZ를 설정한 RDS 성능에 영향을 끼치는 것은 아니기 때문에 반드시 변경해야하는 것은 아닙니다.

또 한, AWS 공식 문서에 의하면, RDS의 장애 조치(Failover)를 강제 실행하면 데이터베이스가 갑자기 중단됩니다. RDS와 해당 클라이언트 세션을 정상적으로 종료할 시간이 없을 수 있기 때문에, 데이터 손실 가능성을 방지하려면 장애 조치로 재부팅하기 전에 DB 인스턴스에서 트랜잭션을 중지하는 것이 좋습니다.

본 블로그 게시글을 읽고 궁금한 사항이 있으신 분들은 kis2702@naver.com로 보내주시면 감사하겠습니다.