성장하는 서비스의 DB 성능 개선, 어떻게 할까? [칼럼] 안녕하세요. 스티비팀 서버 개발자 이학진 입니다. 저희는 최근 서비스에서 사용 중이던 MySQL DB를 RDS로 이관하는 작업을 진행하였습니다. 무엇 때문에 이관을 결정하게 되었는지와 어떻게 이관을 진행하였는지에 대해 글을 써보도록 하겠습니다.
배경
stibee.com은 작년 11월에 정식 오픈한 새내기 이메일마케팅 서비스 입니다. 사실 오픈 초기부터 얼마전까지만 해도 AWS EC2의 m4.large 인스턴스 하나로 운영되던 서비스였습니다.(사실 웹+API 서버 1대, 메일발송 서버 1대) 그리고 이 싱글 인스턴스에 무려 6개의 서버, MySQL 1개, Kafka™ 1개, Redis 1개가 돌고 있었습니다. 그럼에도 불구하고 CPU 사용률은 20%를 넘지 않았습니다.
하지만 최근 사용자도 점점 늘어났고, 네이버에서 메일 수신정책을 변경하면서 메일발송 서버에 대한 요청이 급증했습니다.
스티비에서 네이버로 대량메일을 발송했을 때 해당 메일의 본문 링크를 자동검사하는 것을 발견했는데요, 따라서 네이버로부터 비정상적으로 많은 요청이 들어오고 있었습니다. (어떤 기준으로 이런 검사를 하는 것인지 정확한 정책은 아직 모릅니다. 담당자분 이 글을 보신다...