Aurora 스토리지 비용 최적화하기: 데이터를 지웠는데도 비용이 그대로인 이유
Aurora는 DELETE만으로는 스토리지가 줄지 않아 Snapshot & Restore가 필요했다.
AWS Aurora에서 논리적 데이터는 310GB 수준이었지만, 청구되는 스토리지는 2TB에 달해 비용이 비정상적으로 높게 유지됐다. 대량의 DELETE를 실행해도 VolumeBytesUsed가 거의 줄지 않아, 삭제한 데이터가 곧바로 비용 절감으로 이어지지 않는 상황이 드러났다.
원인은 Aurora의 스토리지 구조와 **파편화(Fragmentation)**였다. Aurora는 10GB 단위로 스토리지를 확장하고, 삭제된 데이터가 있어도 해당 블록이 완전히 비워져야만 공간을 반환한다. 데이터가 디스크 곳곳에 흩어진 상태에서는 블록 내부에 빈 공간만 생길 뿐, 실제 할당량이 줄지 않아 비용이 계속 발생했다.
해결책으로는 Snapshot & Restore를 선택했다. 운영 중인 클러스터의 스냅샷을 만든 뒤 이를 기반으로 새 클러스터를 생성하면, 기존 물리 볼륨의 파편화를 그대로 이어받지 않고 현재 실제 데이터 양 기준으로 스토리지를 다시 할당할 수 있다.
작업 순서는 다음과 같다.
- 관련 서비스 중단
- 현재 Aurora Cluster에서 DB snapshot 생성
- 스냅샷으로 신규 클러스터 생성
- 파라미터 그룹, 보안 그룹 등 설정과 데이터 무결성 검증
- 애플리케이션의 DB Endpoint를 새 클러스터로 변경하고 서비스 재시작
결과적으로 VolumeBytesUsed는 2TB → 316GB로 줄었고, 일일 비용도 $21.4 → $2.99로 감소했다. 월 기준으로는 약 $550 이상, 비용 비율로는 약 86% 절감 효과를 얻었다.
핵심은 Aurora의 "사용한 만큼만 지불"이 곧 "지운 만큼 즉시 줄어든다"를 의미하지는 않는다는 점이다. DELETE 위주의 운영을 한다면 정기적으로 스토리지 파편화를 점검하고, 괴리가 크면 Snapshot & Restore로 클러스터를 리프레시하는 것이 가장 확실한 최적화 방법이다.
이 요약은 원문 이해를 돕기 위한 큐레이션입니다. 저작권은 원저작자에게 있으며, 정확한 내용과 맥락은 원문을 확인하세요.
요약 오류, 출처 표기 문제, 삭제 요청은 문의 · 건의로 알려주세요.