Article

AWS RDS 월 16,000달러를 8,000달러로 절감

스타트업의 성공과 함께 찾아오는 첫 번째 고민은 인프라 비용입니다. 특히 데이터베이스는 비즈니스 성장에 따라 기하급수적으로 비용이 증가합니다. 저희 팀이 AWS RDS 비용을 월 16,000달러에서 8,000달러로 줄인 과정을 공유합니다.

aws-rds 이미지

aws-rds 이미지

aws-rds 이미지

aws-rds 이미지

aws-rds 이미지

문제의 발생

예약관리 SaaS를 운영하면서 급격한 성장을 경험했습니다. 초기에 T 인스턴스로 충분했던 데이터베이스는:

  • 순간 동시접속 1만 명을 넘어섬
  • 업계 최고 점유율 달성
  • MariaDB CPU 사용률 90% 상시 유지

가장 큰 문제는 인스턴스를 업그레이드해도 다음 달이면 또 다시 리소스가 부족해진다는 점입니다. 이는 서비스 코드의 비효율성이 근본 원인이었습니다:

  • ORM으로 자동 생성된 비효율적 쿼리
  • 미흡한 쿼리 최적화
  • 무분별한 데이터베이스 접근

5가지 최적화 전략

1️⃣ 수직 확장(Upgrade)이 아닌 수평 확장(Read Replica)

핵심: 인스턴스 사양 업그레이드보다 읽기전용 복제본이 훨씬 경제적입니다.

우리 서비스는 읽기 80%, 쓰기 20% 비율이었기 때문에, AWS API를 활용하여 시간대별로 동적으로 읽기 DB를 추가했습니다:

새벽 (트래픽 저) → 읽기 DB 0개
업무시간 (트래픽 중) → 읽기 DB 2-3개
피크타임 (트래픽 고) → 읽기 DB 5개

이 방식은 인스턴스를 더 높은 사양으로 업그레이드하는 것보다 훨씬 저렴합니다.

2️⃣ 캐시를 모든 곳에 적용하기

통념: 데이터가 자주 변하면 캐시는 의미가 없다?

자세한 분석을 통해 다시 생각해야 합니다:

데이터 유형변화 빈도캐시 적용효과
예약 제한 정보자주 안 함✅ 적용매우 높음
사용자 프로필가끔✅ 적용높음
실시간 예약 현황매우 자주❌ 미적용-

결론: Redis/Memcached를 최대한 활용하되, 자주 변하지 않는 데이터부터 캐시화하세요.

3️⃣ Slow Query 찾기와 EXPLAIN 분석

ORM 프레임워크는 개발 속도를 높이지만, 생성되는 쿼리가 항상 최적화되어 있지 않습니다.

실제 조치:

  1. CloudWatch에서 Slow Query 로깅 활성화
  2. RDS 콘솔에서 실제 쿼리 확인
  3. EXPLAIN으로 실행 계획 분석
  4. 인덱스 최적화

Slow Query를 하나씩 개선하는 것만으로도 CPU 사용률을 20-30% 낮출 수 있습니다.

4️⃣ 목적에 맞는 데이터베이스 엔진 선택

관계형 데이터베이스가 만능은 아닙니다:

로그 데이터 → Document DB (MongoDB, DynamoDB)
캐시 데이터 → Redis, Memcached
정적 데이터 → S3 + CloudFront
트랜잭션 필수 → RDS (MariaDB, PostgreSQL)

일부 데이터를 다른 저장소로 이동하면 RDS의 부하를 줄이고 비용을 절감할 수 있습니다.

5️⃣ AWS 성능 개선 도우미(Performance Insights)

가장 강력한 도구: AWS 성능 개선 도우미는 투자할 가치가 있는 기능입니다.

분석해야 할 항목:

  • 시간대별 부하: DB가 언제 가장 바쁜가?
  • Active Sessions: 해당 시간에 얼마나 많은 세션이 활동 중인가?
  • Top SQL: 어떤 쿼리가 부하를 일으키는가?
  • Wait Events: 어디서 시간을 낭비하는가?

색깔로 표시된 문제 쿼리를 찾아 최적화하면 성능이 급격히 개선됩니다.

⚠️ 주의사항:

  • Slow Query만 보면 안 됩니다 (빠르지만 자주 실행되는 쿼리도 누적되면 부하가 됨)
  • 무분별한 인덱스 추가 시 index_merge 발생 가능
  • EXPLAIN 결과를 꼼꼼히 검토하세요

마치며

AWS RDS 비용 최적화는 일회성 작업이 아닌 지속적인 모니터링 프로세스입니다. 최적화의 성공 요인은:

  1. 체계적 분석: 데이터로 문제를 파악
  2. 우선순위 선정: 가장 효과가 큰 것부터
  3. 지속적 개선: 한 번의 개선으로 끝내지 않기

급격한 성장 속에서 비용 폭발은 피할 수 없지만, 기술적 최적화를 통해 충분히 관리할 수 있습니다. 중요한 것은 문제를 인식하고 체계적으로 접근하는 태도입니다.

댓글