Amazon RDS Proxy 를 이용한 스푼라디오 서비스 무중단 변경
- SpoonRadio는 Amazon RDS Proxy를 사용하여 스푼라디오 서비스의 무중단 변경을 목표로 하였습니다.
- Event Driven Architecture(EDA)를 사용하여 설계를 시작하였고, Amazon MSK를 이용하여 EDA를 구현하였습니다.
- AWS 서비스들과의 연동과 Migration이 쉬워 개발 생산성이 높아졌고, Amazon ElastiCache for Redis를 사용하여 성능을 향상시킬 수 있었습니다.
- DB의 Read / Write를 줄여 비용을 절감할 수 있었고, PgBouncer를 사용하여 중단 시간을 최소화하였습니다.
- RDS Proxy를 사용하여 DB에 접근하는 흐름을 변경하였고, 추가적인 설정을 통해 무중단 작업을 가능하게 하였습니다.
- RDS Proxy를 사용한 Connection은 증가하였지만, RDS의 CPU / Memory 사용률은 감소하였습니다.
- Failover를 빠르게 알리기 위해 Route 53의 TTL을 조정하고, 목표 스펙과 Priority를 조절하여 Failover를 수행하였습니다.
- Failover 후, Reader Instance에 대해 Spec Down을 수행하여 작업을 완료하였습니다.