유저에게 대규모 메시지 발송 후 RDS의 현재 활동 섹션 상자에 빨간색 불이 들어오는 문제가 있었다.
RDS 대시보드에서는 현재 활동
이란 이름의 섹션이 있다.
정확한 영문 표현은 Average Active Session(AAS)다.
DB로 쿼리 요청을 보냈으나 아직 그 응답을 받지 못한 DB 연결 수를 의미한다.
해당 지표를 통해 데이터베이스의 부하 정도를 가늠할 수 있는 것이다.
특이한 점은 서버 지표는 특이사항이 없었다는 것이다.
보통의 경우, 트래픽이 증가하면 서버에서 스케일 아웃을 한다. 서버가 증설되는 모습으로도 유저 유입이 증가했음을 직관적으로 알 수 있다.
하지만, 이번엔 달랐다.
서버는 스케일 아웃되지도, CPU/메모리 지표에도 특이사항이 없었다.
그랬기에 원인을 찾기가 쉽진 않았다.
심지어 비즈니스 로직에서 활용되지도 않는다. 실시간성이 중요한 작업도 아니다.
유저의 활동 로그 정보는 그 양이 방대하고 실시간성이 중요하지도 않고, 도메인과 긴밀한 관계가 없는 정보인 만큼 NoSQL 또는 S3에 저장해야 한다고 알고 있었다.
이건 내 경험의 부족이라 여길만 하다.
DB 히트 최소화, API 및 어드민 쿼리 최적화에 꽤나 집요하게 작업을 하고 있었지만
정작 유저가 페이지를 이동할 때마다 DB를 히트하는 부분이 특히나 대량의 유저가 유입됐을 때 미칠 파급에 대해 미리 알 수 없었다.