AWS EC2에서 직접 운영하던 MySQL과 수집·배포 서비스를 자체 IDC/In-house 서버로 이전하고, 운영 DB용 EC2만 남겨 월 비용을 약 94% 줄인 작업
시작은 AWS 비용이었습니다. 수집·배포·운영(prod) 데이터가 AWS EC2에 직접 설치한 MySQL 인스턴스 하나에 통으로 들어 있어 데이터가 늘수록 과금이 따라 늘었고, 비용 문제로 그 구성 그대로 사내 범용 PC의 M.2 SSD로 옮겼습니다. 그러자 다른 문제가 생겼습니다. 크롤러가 몰리는 시간대에 DB 쓰기와 디스크 I/O가 겹쳤고, 발열이 올라가면 서버 전체가 멈춰 한 달에 10~20번씩 운영 이슈가 생겼습니다.
syslog, 실행 시간대, 네트워크 상태를 함께 확인해 수집 집중 시간과 장애 시점을 대조했습니다.
새 서버를 바로 들일 수는 없었기 때문에 수집 스케줄을 먼저 분산했습니다. 동시에 돌던 작업을 시간대별로 나누고, 무거운 작업이 한 장비에 몰리지 않도록 실행 순서를 조정했습니다.
스케줄 조정은 임시방편이라고 판단했습니다. 서버 도입을 요청하고, 인스턴스 하나가 다 감당하던 구조를 수집 DB·배포 DB·운영 DB로 분리해 수집 부하가 배포·운영 조회를 방해하지 않게 만들었습니다. IDC 환경에 DB primary/replica, 수집 서버, 백업·복구 경로와 모니터링을 다시 구성했습니다.
이관을 마친 뒤에는 운영(prod) DB가 있는 EC2만 AWS에 남기고 다른 EC2 인스턴스를 정리해 월 AWS 비용을 약 94% 줄였습니다.
증상 확인과 스케줄 조정, IDC 서버 도입 요청, 데이터 이관과 검증, DB·백업·모니터링 재구성을 맡았습니다. 비용 절감보다 먼저 서비스가 멈추지 않는 순서를 잡는 데 집중했습니다.