Last Updated on 1월 8, 2025 by Jade(정현호)
안녕하세요
이번 글은 AWS RDS에서 새롭게 기능 추가된 블루/그린 배포(Blue/Green Deployment)를 통한 스토리지 볼륨 축소 및 관련된 기능에 대해서 확인해보도록 하겠습니다.
블루/그린 배포 - 스토리지 볼륨 축소 지원
AWS RDS에서는 Blue/Green Deployment를 통해서 손쉬운 업그레이드 기능을 제공되었으며, 2024년 11월 20일 블루/그린 배포를 통해서 할당된 스토리지(allocated storage)의 볼륨 축소 기능이 새롭게 추가되었음을 발표하였습니다.
AWS Aurora 와 달리 RDS for [MySQL, PostgreSQL..] 은 고정된 스토리지 크기와 수동/자동 확장을 통해 사용됩니다.
할당된 스토리지 사이즈만큼 백업 스냅샷이 생성되며 할당된 스토리지(allocated storage) 사이즈만큼의 사용 비용이 부과되기 때문에 실제 사용 용량대비 많은 용량이 할당되어 있다면 관리가 필요할 것입니다.
[참고] DB 엔진별 스토리지의 비용정보
지금까지 RDS 스토리지의 볼륨 축소를 하기 위해서는 작은 용량으로 설정된 새로운 RDS 인스턴스를 생성 후에 기존의 RDS 인스턴스에서 데이터를 마이그레이션 하고, 그 다음에는 2개의 RDS를 서로 간의 엔드포인트를 전환하는 과정을 수행하였습니다.
이 과정은 DBA 또는 DB 사용자가 별도로 직접 수동으로 수행해야 하는 과정으로 그 과정이 복잡하거나 전환 과정에서 가동 중지 시간이 길어질 수도 있는 작업이었습니다.
Blue/Green Deployment 에서 스토리지 볼륨 축소를 지원함에 따라 보다 손쉽고 빠르게 스토리지 볼륨 축소 및 추가적인 변경 작업을 같이 진행할 수 있게 되었습니다.
블루/그린 배포 수행 - 볼륨 축소
블루/그린 배포를 스토리지 볼륨 축소를 진행 해보도록 하겠습니다.
스토리지 볼륨 축소는 지원은 Amazon RDS for PostgreSQL 메이저 버전 12 이상, RDS for MySQL 메이저 버전 5.7 이상, Amazon RDS for MariaDB 메이저 버전 10.4 이상에서 가능합니다.
Blue/Green 배포 생성
블로그 포스팅에서 사용하는 인스턴스는 RDS for MySQL 8.0.37 버전이며, 할당된 스토리지 공간은 400GiB 입니다.
400GiB 중에서 잔여 공간은 약 354GiB이며, 사용중인 공간은 약 46GiB 입니다.
Blue/Green Deployment는 다음과 같이 Actions 메뉴를 통해 시작합니다.
먼저 Deployment 이름을 입력 후 "Next" 를 클릭합니다.
블루/그린 배포에서는 버전을 변경(업그레이드)를 할 수도 있지만, 기존과 동일하게도 가능합니다.
포스팅에서는 동일한 버전 8.0.37로 진행하였습니다.
참고로 RDS for PostgreSQL은 주로 PostgreSQL 물리적 복제를 사용하여 블루 환경과 그린 환경 간에 데이터를 동기화합니다. 그러나 블루/그린 배포를 생성할 때 메이저 버전 업그레이드를 요청하면 PostgreSQL 논리적 복제가 사용됩니다.
물리적 복제 방식으로 스토리지 볼륨 축소하고자 한다면 스토리지 볼륨 축소와 버전 업그레이드를 구분해서 진행해야 합니다.
다음의 화면처럼 Allocated Storage 사이즈를 변경할 수 있습니다.
추가로 "Storage Configuration upgrade" 체크 옵션을 확인할 수도 있습니다.
해당 옵션은 모든 RDS에서 체크가 활성화가 되는 것은 아닙니다.
원본 데이터베이스(Blue/블루)가 최신의 스토리지 Configuration이 아닐 경우 새로운 Green(그린) 인스턴스에서는 Configuration Upgrade를 진행할 수 있습니다.
RDS 블루/그린 배포를 사용하여 이전 32비트 파일 시스템의 스토리지 및 파일 크기에 대한 확장 제한을 극복할 수 있습니다. 또한 이 설정은 지정된 DB 인스턴스 클래스가 최적화된 쓰기를 지원하는 경우 RDS 최적화된 쓰기와 호환되도록 스토리지 구성을 변경합니다.
이와 같이 configuration upgrade가 되는 인스턴스는 Configuration 탭에서 다음과 같이 확인할 수 있습니다.
최근에 생성되어 새로운 Configuration이 필요 없을 경우 다음과 같이 "Current" 로 확인됩니다.
이와 같이 이미 storage configuration이 되어 있다면 다음의 이미지 처럼 체크가 비활성화가 되어있으며, "You are on the latest storage configuration" 이라는 메세지를 확인할 수 있습니다.
스토리지 볼륨 사이즈를 이미 할당된 사이즈보다 작게 설정하면 다음과 같이 자동으로 storage configuration upgrade 가 선택됩니다.
추가적으로 다음의 이미지와 같이 "optimized writes" 기능도 활성화할 수 있습니다.
RDS Optimized Writes 기능에 대한 내용은 다음 포스팅을 참조하시면 됩니다.

포스팅에서는 50GiB 사이즈로 축소를 먼저 시도하였습니다,
Create 버튼을 누르면 다음과 같이 green 인스턴스가 생성되며 블루/그린 배포가 시작합니다.
50GiB로 축소를 설정한 내역에 대해서는 다음의 로그의 내용과 같이 실패한 것을 확인할 수 있습니다.
Blue/Green Deployment에서 Status 탭을 확인해보면 다음과 같이 실패한 내역에 대해서 확인할 수 있습니다.
이렇게 되면 블루/그린 배포 자체가 실패하지는 않으며 기존과 동일한 스토리지 볼륨 사이즈로 생성됩니다.
RDS의 사용공간은 RDS의 CloudWatch 지표를 통해서 확인할 수 있으며 다음과 같은 수치로 계산할 수 있습니다.
Storage used = Allocated storage size – FreeStorageSpace
블루/그린 배포에서 스토리지 축소는 Storage used 감안해서 1.2배(사용된 스토리지의 20%) 이상으로 설정이 필요하며, 사용 공간 등에 따라서 실제로는 30% 이상으로 설정이 필요합니다.
RDS 데이터베이스 인스턴스는 다음과 같은 다양한 용도로 스토리지를 사용합니다.
- 데이터 파일: 실제 데이터베이스 콘텐츠를 저장하는 디스크에 있는 파일입니다.
- 트랜잭션 로그: PostgreSQL WAL(Write-Ahead Logs) 또는 MySQL Binary 로그와 같은 로그입니다.
- 임시 파일: 메모리에 맞지 않는 작업을 위해 생성된 파일입니다.
- 복제 디스크 사용량: PostgreSQL 복제 슬롯을 포함하여 데이터베이스 복제에 사용되는 공간입니다.
- 데이터베이스 로그: 데이터베이스 오류, Slow 쿼리 및 기타 진단 정보에 대한 로그입니다.
Green 인스턴스를 정리하고 다시 80GiB 사이즈로 축소를 다시 시도하겠습니다.
블루/그린 배포시에 볼륨 축소이외 Storage Type의 변경(예를 들어 gp2->gp3), 그린 인스턴스의 Class 변경, Optimized Writes 활성화 여부 등을 변경할 수 있습니다.
설정된 용량으로 축소 진행이 가능하다면 다음과 같이 "In progress" 를 확인할 수 있습니다.
정상적으로 모두 완료되면 다음의 항목 모두 "completed" 가 되는 것을 확인할 수 있습니다.
스토리지 크기 및 file system configuration 등 모두 완료된 것을 확인할 수 있습니다.
Blue/Green Switch
Green 인스턴스 생성, 스토리지 축소, Replication 연결 등 모두 완료되었고 준비가 되었다면 다음과 같이 Switch를 진행합니다.
참고로 Switch가 모두 완료되면 자체 관리형 복제 인스턴스 또는 외부(External) 복제본 설정을 위한 설정 정보를 제공되어 확인할 수 있습니다. 해당 정보를 통해서 External Replication를 설정할 수 있습니다.
기존의 Blue 인스턴스에 External Replication 이 설정되어 있다면 복제의 연속성을 위해서 Switch 후에 복제 정보를 업데이트 합니다.
전환과 후속 과정이 완료되었다면 OLD 인스턴스 및 Blue/Green Deployment는 삭제합니다.
이번 글에서는 새롭게 추가된 RDS Blue/Green Deployment의 스토리지 볼륨 축소 기능에 대해서 알아보았습니다.
여기서 글을 마무리하도록 하겠습니다.
Reference
Reference URL
• amazon.com/whats-new/blue-green-storage-shrink
• amazon.com/blogs/shrink-storage-volumes
관련된 다른 글





Principal DBA(MySQL, AWS Aurora, Oracle)
핀테크 서비스인 핀다에서 데이터베이스를 운영하고 있어요(at finda.co.kr)
Previous - 당근마켓, 위메프, Oracle Korea ACS / Fedora Kor UserGroup 운영중
Database 외에도 NoSQL , Linux , Python, Cloud, Http/PHP CGI 등에도 관심이 있습니다
purityboy83@gmail.com / admin@hoing.io