RDS AAS 을 보고 느낀 점

hyuckhoon.ko·2022년 9월 6일
0
post-thumbnail

유저에게 대규모 메시지 발송 후 RDS의 현재 활동 섹션 상자에 빨간색 불이 들어오는 문제가 있었다.


1, 현재 활동, 그게 뭔데?

RDS 대시보드에서는 현재 활동이란 이름의 섹션이 있다.
정확한 영문 표현은 Average Active Session(AAS)다.

DB로 쿼리 요청을 보냈으나 아직 그 응답을 받지 못한 DB 연결 수를 의미한다.
해당 지표를 통해 데이터베이스의 부하 정도를 가늠할 수 있는 것이다.

AWS 공식문서


2. 왜 발생했을까

특이한 점은 서버 지표는 특이사항이 없었다는 것이다.
보통의 경우, 트래픽이 증가하면 서버에서 스케일 아웃을 한다. 서버가 증설되는 모습으로도 유저 유입이 증가했음을 직관적으로 알 수 있다.

하지만, 이번엔 달랐다.
서버는 스케일 아웃되지도, CPU/메모리 지표에도 특이사항이 없었다.

그랬기에 원인을 찾기가 쉽진 않았다.


1) 유저 활동 로그가 RDBMS에 저장되고 있음

충격적인 사실을 알게 됐다. 유저 로그를 RDBMS에 저장하고 있었다.

심지어 비즈니스 로직에서 활용되지도 않는다. 실시간성이 중요한 작업도 아니다.
유저의 활동 로그 정보는 그 양이 방대하고 실시간성이 중요하지도 않고, 도메인과 긴밀한 관계가 없는 정보인 만큼 NoSQL 또는 S3에 저장해야 한다고 알고 있었다.


2) 파급효과를 예측하지 못함

이건 내 경험의 부족이라 여길만 하다.
DB 히트 최소화, API 및 어드민 쿼리 최적화에 꽤나 집요하게 작업을 하고 있었지만
정작 유저가 페이지를 이동할 때마다 DB를 히트하는 부분이 특히나 대량의 유저가 유입됐을 때 미칠 파급에 대해 미리 알 수 없었다.


3. 어떻게 개선할까

1) 당장 유저 활동 로그 부분을 제거한다.

2) NoSQL로 데이터를 적재한다.

3) AWS RDS의 성능 개선 도우미를 확인 후 조치한다.

4) 유저가 자주 찾는 페이지들의 API를 최적화한다.

0개의 댓글