목록 보기
RDS MySQL IOPS 장애 대응기
백엔드

RDS MySQL IOPS 장애 대응기

버즈빌
버즈빌
2023년 11월 16일

두줄요약

RDS MySQL의 gp2 Burst Balance 소진으로 발생한 IOPS 장애를 분석했습니다. 메모리 스케일업으로 working set을 확보해 Read IOPS를 크게 낮췄습니다.

문제 상황

  • 광고 요청 사용자 조회 서비스에서 에러율, CPU throttling, 메모리·goroutine·MySQL replica connection 급증
  • gp2 Burst Balance 소진에 따른 RDS 성능 저하와 timeout·DB connection 오류

원인 분석

  • 5k RPS 대비 1~2k 수준의 Read IOPS와 지속적인 증가 추세
  • Buffer pool hit ratio 98%에도 32GB RAM 대비 데이터·인덱스 170GB로 working set 메모리 부족 판단

해결 방법

  • 장애 우선 대응으로 스토리지 800GB에서 999GB로 증설
  • m5.2xlarge에서 r6g.2xlarge, r6g.4xlarge로 전환해 메모리 32GB에서 128GB로 스케일업
  • Read IOPS를 약 3000에서 80 수준으로 낮추고 Freeable Memory·Read throughput 개선

트레이드오프

  • 스토리지 증설은 근본 원인 해결보다 Burst IOPS 대응 목적
  • Redis read cache는 시스템 복잡도와 캐시 장애 시 DB burst 위험으로 제외
  • 인스턴스 비용 증가에 따른 인덱스 최적화·다운사이징 및 DynamoDB 비교 검토

다음 읽기

#AWS 주제를 이어서 읽기

RDS MySQL IOPS 장애 대응기

AWS RDS MySQL 운영 중 메모리 문제로 장애가 발생한 사례를 소개했습니다. 높은 트래픽 환경에서의 원인과 해결 과정을 다루는 글입니다.

버즈빌
버즈빌
백엔드

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...