티스토리 뷰
RDS Proxy 는 2019년 12월에 발표된 AWS 의 서비스입니다. 관계형 DB의 connection 을 관리해주는 서비스인데, 사실 Java 개발자들은 이게 왜 필요하지 싶겠지만, 서버리스( 예 : Lambda ) 나 php, ruby 같은 언어에서는 이부분이 상당히 머리 아픈 구석이었습니다.
구글링을 해보면 여러가지 사례들이 있습니다. 우리도 해당 사례들과 비교해보며 서버에 스트레스 테스트를 해보았지만, 앞선 업체들과는 다른 양상을 보여 도입에 대한 고민을 엄청 했습니다.
저희 같은 경우는 PHP Laravel을 AWS ECS Fargate 에 올린 상태입니다. 즉 DB pool 관리는 안해주는 대환장 파티이다. 이번에 RDS Proxy를 적용하며 바뀐 DB 메트릭을 공개하려고 한다.
자신이 서비스하는 서비스가 PHP 이거나 Lambda 같은 서버리스인 경우 테스트 후에 도입을 고려해보는걸 적극 추천합니다.
참고로 우리 서비스는 대 회원용 API 와 대 관리자용 그리고 우리가 이용하는 admin 용이 있다. 아무래도 트래픽을 대 회원용 API가 많이 받는데, 우리가 이번에 rds proxy를 도입한 곳은 대 회원용 API 이다.
다음 지표는 성능 개선 도우미의 지표이다.
db.users.Connections.avg
db.Locks.innodb_row_lock_waits.avg
다른 지표들은 막 그렇게 버라이어티하게 변화되지 않아서 가장 버라이어티한 2 지표만 공개했다. 해당 지표 이름을 보면 아시겠지만, 관련 이슈가 있는 서비스들은 RDS-Proxy를 적극 추천한다.
그러나 RDS-Proxy는 무료가 아니다. 하지만 우리 서비스 같은 경우는 아직 도입 초기라서 아직 더 지켜봐야겠지만, 운영환경이 아닌 개발 환경에서는 RDS-Proxy 도입 이후에 RDS 인프라를 축소하여 결과적으로는 이득을 보았다. 그뢔서 RDS-Proxy가 유료이긴 하나 운영환경도 같은 이유로 오히려 이득을 보지 않을가 추측한다.