용 Amazon RDS 블루/그린 배포 개요
Amazon RDS 블루/그린 배포를 사용하면 프로덕션 환경에서 구현하기 전에 데이터베이스를 변경하고 테스트할 수 있습니다. 블루/그린 배포는 프로덕션 환경을 복사하는 스테이징 환경을 만듭니다. 블루/그린 배포에서는 블루 환경이 현재 프로덕션 환경입니다. 그린 환경은 스테이징 환경입니다. 스테이징 환경은 논리적 복제를 사용하여 현재 프로덕션 환경과 계속 동기화됩니다.
프로덕션 워크로드에 영향을 주지 않고 그린 환경에서 RDS DB 인스턴스 를 변경할 수 있습니다. 예를 들어 메이저 또는 마이너 DB 엔진 버전을 업그레이드하거나 기본 파일 시스템 구성을 업그레이드하거나 스테이징 환경에서 데이터베이스 파라미터를 변경할 수 있습니다. 그린 환경의 변경 사항을 철저하게 테스트할 수 있습니다. 준비가 되면 환경을 전환하여 그린 환경을 새로운 프로덕션 환경으로 승격할 수 있습니다. 전환은 일반적으로 1분도 걸리지 않으며 데이터 손실이 발생하지 않고 애플리케이션을 변경할 필요도 없습니다.
그린 환경은 프로덕션 환경 토폴로지의 복사본이므로, 그린 환경에는 DB 인스턴스에서 사용하는 기능이 포함됩니다. 대표적인 기능은 읽기 전용 복제본, 스토리지 구성, DB 스냅샷, 자동 백업, 성능 개선 도우미와 확장 모니터링입니다. 블루 DB 인스턴스가 다중 AZ DB 인스턴스 배포인 경우 그린 DB 인스턴스도 다중 AZ DB 인스턴스 배포입니다.
참고
현재 블루/그린 배포는 RDS for MariaDB, RDS for MySQL, RDS for PostgreSQL에서만 지원됩니다. Amazon Aurora 가용성에 대해서는 Amazon Aurora 사용 설명서의 데이터베이스 업데이트에 Amazon RDS 블루/그린 배포 사용을 참조하세요.
주제
리전 및 버전 사용 가능 여부
기능 가용성 및 해당 지원은 각 데이터베이스 엔진의 특정 버전 및 AWS 리전 리전에 따라 다릅니다. 자세한 내용은 Amazon RDS 블루/그린 배포를 지원하는 리전 및 DB 엔진 단원을 참조하십시오.
Amazon RDS 블루/그린 배포 사용의 장점
Amazon RDS 블루/그린 배포를 사용하면 보안 패치를 최신 상태로 유지하고, 데이터베이스 성능을 개선할 수 있으며 짧고 예측 가능한 다운타임으로 최신 데이터베이스 기능을 채택할 수 있습니다. 블루/그린 배포를 통해 메이저 또는 마이너 엔진 버전 업그레이드와 같이 데이터베이스 업데이트로 인해 발생가능한 리스크 및 다운타임을 줄일 수 있습니다.
블루/그린 배포는 다음과 같은 장점을 제공합니다.
-
프로덕션 준비가 된 스테이징 환경을 쉽게 만들 수 있습니다.
-
데이터베이스 변경 사항을 프로덕션 환경에서 스테이징 환경으로 자동으로 복제합니다.
-
프로덕션 환경에 영향을 주지 않고 안전한 스테이징 환경에서 데이터베이스 변경 사항을 테스트합니다.
-
데이터베이스 패치 및 시스템 업데이트로 최신 상태를 유지하세요.
-
새로운 데이터베이스 기능을 구현하고 테스트합니다.
-
애플리케이션을 변경하지 않고도 스테이징 환경을 새 프로덕션 환경으로 전환합니다.
-
내장된 전환 가드레일을 사용하여 안전하게 전환합니다.
-
전환 중 데이터 손실이 발생하지 않습니다.
-
워크로드에 따라 대부분 1분 이내에 빠르게 전환합니다.
블루/그린 배포 워크플로우
데이터베이스 업데이트에 블루/그린 배포를 사용한다면 다음 주요 단계를 완료해주세요.
-
업데이트가 필요한 프로덕션 환경을 식별합니다.
예를 들어 이 이미지의 프로덕션 환경에는 다중 AZ DB 인스턴스 배포(mydb1) 읽기 전용 복제본(mydb2)이 있습니다.
-
블루/그린 배포 생성 지침은 블루/그린 배포 생성 단원을 참조하십시오.
다음 이미지는 1단계에서 설명하는 프로덕션 환경의 블루/그린 배포 예시입니다. 블루/그린 배포를 생성하는 동안, RDS는 기본 DB 인스턴스의 전체 토폴로지 및 구성을 복사하여 그린 환경을 만듭니다. 복사된 DB 인스턴스 이름 뒤에는
-green-
가 추가됩니다. 이미지의 스테이징 환경에는 다중 AZ DB 인스턴스 배포(mydb1-green-random-characters
abc123
)와 읽기 전용 복제본(mydb2-green-abc123
)이 포함됩니다.블루/그린 배포를 생성하는 도중 DB 엔진 버전을 업그레이드하고, 그린 환경에 있는 DB 인스턴스에 다른 DB 파라미터 그룹을 지정할 수 있습니다. 또한 RDS는 블루 환경의 기본 DB 인스턴스에서 그린 환경의 기본 DB 인스턴스로의 논리적 복제를 구성합니다.
블루/그린 배포가 생성되면 그린 환경의 DB 인스턴스는 기본적으로 읽기 전용 상태가 됩니다.
-
필요한 경우 스테이징 환경에 추가 변경 사항을 적용합니다.
예를 들어 데이터베이스의 스키마를 변경하거나 그린 환경에 있는 하나 이상의 DB 인스턴스에서 사용하는 DB 인스턴스 클래스를 변경할 수 있습니다.
DB 인스턴스 수정에 대한 자세한 내용은 Amazon RDS DB 인스턴스 수정 단원을 참조하세요.
-
스테이징 환경을 테스트합니다.
테스트하는 동안에는 그린 환경의 데이터베이스를 읽기 전용으로 유지하는 것이 좋습니다. 복제 충돌이 발생할 수 있으므로 그린 환경에서 쓰기 작업을 사용 설정하세요. 전환 후 프로덕션 데이터베이스에 의도하지 않은 데이터가 저장될 수도 있습니다. RDS for MySQL에서 쓰기 작업을 활성화하려면
read_only
파라미터를0
으로 설정한 다음, DB 인스턴스를 재부팅합니다. RDS for PostgreSQL의 경우default_transaction_read_only
파라미터를 세션 수준에서off
로 설정합니다. -
준비가 되면 전환하여 그린 환경을 새로운 프로덕션 환경으로 승격합니다. 지침은 블루/그린 배포 전환 단원을 참조하십시오.
전환하면 다운타임이 발생하게 됩니다. 다운타임은 보통 1분 미만이지만 워크로드에 따라 더 길어질 수 있습니다.
다음 이미지는 전환 이후의 DB 인스턴스를 보여줍니다.
전환이 끝나면 그린 환경에 있던 DB 인스턴스가 새로운 프로덕션 DB 인스턴스가 됩니다. 현재 프로덕션 환경의 이름과 엔드포인트가 새로 승격된 프로덕션 환경에 할당되므로, 애플리케이션을 변경할 필요가 없습니다. 따라서 이제 프로덕션 트래픽이 새 프로덕션 환경으로 이동합니다. 이전 블루 환경의 DB 인스턴스는 현재 이름에
-old
이 추가됩니다(여기서n
은 숫자입니다). 예를 들어 블루 환경의 DB 인스턴스 이름이n
mydb1
이라고 가정하겠습니다. 전환이 끝나면 DB 인스턴스 이름은mydb1-old1
이 됩니다.이미지의 예시에서는 전환 중에 다음과 같은 변경 사항이 발생합니다.
-
이름이
mydb1-green-abc123
인 그린 환경 다중 AZ DB 인스턴스 배포가 이름이mydb1
인 프로덕션 다중 AZ DB 인스턴스 배포가 됩니다. -
이름이
mydb2-green-abc123
인 그린 환경의 읽기 전용 복제본이 이름이mydb2
인 프로덕션 읽기 전용 복제본이 됩니다. -
이름이
mydb1
인 블루 환경 다중 AZ DB 인스턴스 배포가mydb1-old1
이 됩니다. -
이름이
mydb2
인 블루 환경 읽기 전용 복제본이mydb2-old1
이 됩니다.
-
-
블루/그린 배포가 더 이상 필요하지 않다면 삭제해도 됩니다. 지침은 블루/그린 배포 삭제 단원을 참조하십시오.
전환 후에도 이전 프로덕션 환경이 삭제되지 않으므로, 필요하다면 회귀 테스트에 사용할 수 있습니다.