Skip to content
On this page

RDS Scale Up

RDS Scale Up

개요

서비스 이용자 수가 늘어남에 따라, 피크 타임 시 DB CPU가 100%를 치는 일이 빈번하여 RDS Scale up을 해야했음.

고려 사항

  • 피크 시 CPU 사용량을 확인, 목표 성능을 2배로 늘리기로 결정: 4xlarge -> 8xlarge
  • Writer 인스턴스를 그냥 Scale up을 할 경우 수 분간 downtime이 발생함
    • 장애 시간을 최소화 할 수 있는 방법을 적용해야함
    • Reader 인스턴스 미리 생성, Writer를 Fail Over해서 Reader와 Writer를 Swap
      • Downtime 30초 ~ 수 분 정도 발생
      • 작업 중 500 오류 발생할 것
  • 접속자 추이를 확인하여 접속자 수가 최소인 시간을 결정: 새벽 2시

진행 순서

  1. 백업 스냅샷 생성
  2. Reader 인스턴스를 먼저 목표 성능인 8xlarge로 생성
  3. 기존 Reader 인스턴스를 목표 성능으로 Scale up (downtime 발생, 이 경우 1의 리더 인스턴스를 사용하게 됨)
  4. 상기 1, 2 인스턴스 중 하나를 선택해 장애 우선 순위 0순위로 두어 Fail over 발생 시 Writer 인스턴스로 승격될 수 있도록 조치
  5. Writer 인스턴스를 선택하여 작업 - 장애 조치(Fail over)를 눌러 3번의 Reader 인스턴스가 Writer로 변경되고 기존 Writer가 Reader로 변경되도록 조치
  6. 작업이 완료되면 4번의 Writer -> Reader 인스턴스(4xlarge)를 삭제

장애 발생 시 복구 계획

  • 장애 발생 시 스냅샷을 DB 인스턴스로 띄워 복구

결과

  • RDS 4xlarge (Reader, Writer) -> 8xlarge (Reader, Writer) 변경 완료
  • 피크 타임 기준 RDS CPU 100% -> 40%
    • 예상했던 50% 보다 더 적은 CPU 사용량임
  • 다운 타임 30초 이하 발생

Tags