본문 바로가기

DataBase/RDS

Amazon RDS Failover 매커니즘

RDS의 Failover 매커니즘에 관해 작성한다.

 

RDS를 선택할 때 두 가지 항목이 있다. Single AZ와 Multi AZ다. 실제 서비스를 한다면 Multi AZ를 사용해야 한다.

Multi AZ를 사용하신다면 다음과 같은 동작한다. End-Point Domain이 있고 그 뒤로 각각 RDS 인스턴스가 AZ 별로 CNAME처리 되어있다. 

이런 식으로 기존 RDS Active 인스턴스에 H/W Failure, Backup, Maintenance가 발생되면 back-up 인스턴스로 CNAME이 위임되어 Failover가 진행된다. 이 때 다운타임은 DNS TTL로 인한 대략 1분정도의 시간이 발생된다.

 

만약 VM Type 변경은 아래 절차로 진행되며, Live에서 CPU 및 IOPS 사용률이 높다면 지연 장애 혹은 Uptime 시간이 길어질 수도 있다.

1. Slave 인스턴스에서 Snapshot 생성, 기존 Disk 삭제

2. 신규 Type 변경된 VM 생성

3. 런칭 후 변경된 VM에 Snapshot을 통한 Disk 복구 및 Snapshot 도중 발생된 binlog를 통해 데이터 동기화

4. DNS 처리

Traffic이 Peak일 때 해당 VM Type 변경을 시도하면 Type 변경에 따른 성능저하도 발생될 수 있습니다. 따라서 미리미리 가용성을 확인한 후에 VM Type을 변경해야 합니다.

 

혹은 Read Replica만 사용 중에 장애가 난다면, Read Replica 모두 Master로 변경된다. (Aurora의 경우 우선 순위가 높은 놈, 성능이 높은 놈, 같은 AZ에 있는 놈 등의 순서로 Read Replica가 Master로 승격)

 

1
2
3
4
5
singsing.ckmjbpnt7huf.us-west-1.rds.amazonaws.com. 5 IN CNAME ec2-50-18-218-223.us-west-1.compute.amazonaws.com.
ec2-50-18-218-223.us-west-1.compute.amazonaws.com. 2532 IN A 50.18.218.223
 
Failover!!!!!!!!!!!!
 
singsing.ckmjbpnt7huf.us-west-1.rds.amazonaws.com. 2 IN CNAME ec2-52-8-196-116.us-west-1.compute.amazonaws.com.
ec2-52-8-196-116.us-west-1.compute.amazonaws.com. 3474 IN A 52.8.196.116
cs

 

End-Point를 CNAME 처리해서 사용하자. 새로 RDS를 런칭할 경우 End-Point가 변경되기 때문이다.

따라서 AWS 사용 시에는 유연성과 확장성을 생각하여 RDS뿐만 아닌 ELB 등의 End-Point에 자체 도메인을 CNAME 처리하는 패턴 디자인을 적용을 권장한다. RDS가 Internal 내에서만 가동되도 가능하면 Route53의 Private DNS를 이용하자.

그리고 RDS Disk 또한 EBS다. EBS는 Failover 다운사이징이 불가하다. 적당한 사이즈의 EBS를 선택하자.