

# Amazon Aurora 블루/그린 배포 개요
<a name="blue-green-deployments-overview"></a>

Amazon Aurora 블루/그린 배포를 사용하면 프로덕션 환경에서 구현하기 전에 데이터베이스를 변경하고 테스트할 수 있습니다. *블루/그린 배포*는 프로덕션 환경을 복사하는 스테이징 환경을 만듭니다. 블루/그린 배포에서는 *블루 환경*이 현재 프로덕션 환경입니다. *그린 환경*은 스테이징 환경이며 현재 프로덕션 환경과 동기화된 상태를 유지합니다.

프로덕션 워크로드에 영향을 주지 않고 그린 환경에서 Aurora DB 클러스터를 변경할 수 있습니다. 예를 들어 메이저 또는 마이너 DB 엔진 버전을 업그레이드하거나 스테이징 환경에서 데이터베이스 파라미터를 변경할 수 있습니다. 그린 환경의 변경 사항을 철저하게 테스트할 수 있습니다. 준비가 되면 환경을 *전환*하여 그린 환경을 새로운 프로덕션 환경으로 전환할 수 있습니다. 전환은 일반적으로 1분도 걸리지 않으며 데이터 손실이 발생하지 않고 애플리케이션을 변경할 필요도 없습니다.

그린 환경은 프로덕션 환경 토폴로지의 복사본이므로, DB 클러스터와 DB 클러스터의 모든 DB 인스턴스가 배포 시 복사됩니다. 그린 환경에는 DB 클러스터 스냅샷, 성능 개선 도우미와 확장 모니터링 같은 DB 클러스터에서 사용하는 기능도 포함됩니다Aurora Serverless v2.

Amazon Aurora 블루/그린 배포는 Amazon RDS Proxy 및 스마트 드라이버를 지원합니다. 이러한 솔루션은 DNS 전파를 기다리지 않고 토폴로지 변경을 감지하고 새 프로덕션 환경으로 연결을 리디렉션하여 전환 중 라이터 노드 업그레이드 가동 중지 시간을 줄입니다.

**참고**  
Aurora MySQL, Aurora PostgreSQL 및 Aurora Global Database에 대해 블루/그린 배포가 지원됩니다. Amazon RDS 가용성에 대해서는 *Amazon RDS 사용 설명서*의 [Amazon RDS 블루/그린 배포 개요](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/blue-green-deployments-overview.html)를 참조하세요.

**Topics**
+ [리전 및 버전 사용 가능 여부](#blue-green-deployments-region-version-availability)
+ [Amazon RDS 블루/그린 배포 사용의 장점](#blue-green-deployments-benefits)
+ [블루/그린 배포 워크플로우](#blue-green-deployments-major-steps)
+ [Amazon Aurora 블루/그린 배포 작업에 대한 액세스 권한 부여](blue-green-deployments-authorizing-access.md)
+ [Amazon Aurora 블루/그린 배포 관련 제한 사항 및 고려 사항](blue-green-deployments-considerations.md)
+ [Amazon Aurora 블루/그린 배포 모범 사례](blue-green-deployments-best-practices.md)

## 리전 및 버전 사용 가능 여부
<a name="blue-green-deployments-region-version-availability"></a>

기능 가용성 및 해당 지원은 각 데이터베이스 엔진의 특정 버전 및 AWS 리전 리전에 따라 다릅니다. 자세한 내용은 [블루/그린 배포를 지원하는 리전 및 Aurora DB 엔진](Concepts.Aurora_Fea_Regions_DB-eng.Feature.BlueGreenDeployments.md) 섹션을 참조하세요.

## Amazon RDS 블루/그린 배포 사용의 장점
<a name="blue-green-deployments-benefits"></a>

Amazon RDS 블루/그린 배포를 사용하면 보안 패치를 최신 상태로 유지하고, 데이터베이스 성능을 개선할 수 있으며 짧고 예측 가능한 다운타임으로 최신 데이터베이스 기능을 채택할 수 있습니다. 블루/그린 배포를 통해 메이저 또는 마이너 엔진 버전 업그레이드와 같이 데이터베이스 업데이트로 인해 발생가능한 리스크 및 다운타임을 줄일 수 있습니다.

블루/그린 배포는 다음과 같은 장점을 제공합니다.
+ 프로덕션 준비가 된 스테이징 환경을 쉽게 만들 수 있습니다.
+ 데이터베이스 변경 사항을 프로덕션 환경에서 스테이징 환경으로 자동으로 복제합니다.
+ 프로덕션 환경에 영향을 주지 않고 안전한 스테이징 환경에서 데이터베이스 변경 사항을 테스트합니다.
+ 데이터베이스 패치 및 시스템 업데이트로 최신 상태를 유지하세요.
+ 새로운 데이터베이스 기능을 구현하고 테스트합니다.
+ 애플리케이션을 변경하지 않고도 스테이징 환경을 새 프로덕션 환경으로 전환합니다.
+ 내장된 전환 가드레일을 사용하여 안전하게 전환합니다.
+ 전환 중 데이터 손실이 발생하지 않습니다.
+ 워크로드에 따라 대부분 1분 이내에 빠르게 전환합니다.

## 블루/그린 배포 워크플로우
<a name="blue-green-deployments-major-steps"></a>

Aurora DB 클러스터 업데이트에 블루/그린 배포를 사용한다면 다음 주요 단계를 완료하십시오.

1. 업데이트가 필요한 프로덕션 DB 클러스터를 식별합니다.

   다음 이미지에서는 프로덕션 DB 클러스터 예시를 확인할 수 있습니다.  
![블루/그린 배포의 프로덕션(블루) Aurora DB 클러스터](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/blue-green-deployment-blue-environment-aurora.png)

1. 블루/그린 배포 생성 지침은 [Amazon Aurora에서 블루/그린 배포 생성](blue-green-deployments-creating.md) 섹션을 참조하세요.

   다음 이미지는 1단계에서 설명하는 프로덕션 환경의 블루/그린 배포 예시입니다. 블루/그린 배포를 생성하는 동안, RDS는 Aurora DB 클러스터의 전체 토폴로지 및 구성을 복사하여 그린 환경을 만듭니다. 복사된 DB 클러스터 및 DB 인스턴스 이름 뒤에는 `-green-{{random-characters}}`가 추가됩니다. 이미지의 스테이징 환경에는 DB 클러스터(auroradb-green-{{*abc123*}})가 있습니다. 또한 DB 클러스터에서는 DB 인스턴스 3개가 있습니다(auroradb-instance1-green-{{*abc123*}}, auroradb-instance2-green-{{*abc123*}} 및 auroradb-instance3-green-{{*abc123*}}).  
![Amazon Aurora용 블루/그린 배포](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/blue-green-deployment-aurora.png)

   블루/그린 배포를 생성하는 도중 더 높은 DB 엔진 버전을 지정하고, 그린 환경에 있는 DB 클러스터에 다른 DB 클러스터 파라미터 그룹을 지정할 수 있습니다. DB 클러스터의 DB 인스턴스에 다른 DB 파라미터 그룹을 지정할 수 있습니다.

   또한 RDS는 블루 환경의 기본 DB 인스턴스에서 그린 환경의 기본 DB 인스턴스로의 복제를 구성합니다.
**중요**  
Aurora MySQL 버전 3의 경우 블루/그린 배포를 생성하면 그린 환경의 DB 클러스터는 기본적으로 쓰기 작업을 허용하지 않습니다. 그러나 이는 Aurora 마스터 사용자를 비롯하여 `CONNECTION_ADMIN` 권한이 있는 사용자에게 적용되지 않습니다. 이 권한이 있는 사용자는 `read_only` 동작을 재정의할 수 있습니다. 자세한 내용은 [역할 기반 권한 모델](AuroraMySQL.Compare-80-v3.md#AuroraMySQL.privilege-model) 섹션을 참조하세요.

1. 스테이징 환경에 변경 사항을 적용합니다.

   예를 들어 그린 환경에 있는 하나 이상의 DB 인스턴스에서 사용하는 DB 인스턴스 클래스를 변경할 수 있습니다.

   DB 클러스터 수정에 대한 자세한 내용은 [Amazon Aurora DB 클러스터 수정](Aurora.Modifying.md) 섹션을 참조하세요.

1. 스테이징 환경을 테스트합니다.

   테스트하는 동안에는 그린 환경의 데이터베이스를 읽기 전용으로 유지하는 것이 좋습니다. 복제 충돌이 발생할 수 있으므로 그린 환경에서 쓰기 작업을 사용 설정하세요. 전환 후 프로덕션 데이터베이스에 의도하지 않은 데이터가 저장될 수도 있습니다. Aurora MySQL에서 쓰기 작업을 활성화하려면 `read_only` 파라미터를 `0`으로 설정한 다음 DB 인스턴스를 재부팅합니다. Aurora PostgreSQL의 경우 `default_transaction_read_only` 파라미터를 세션 수준에서 `off`로 설정합니다. Amazon RDS Proxy를 사용하여 Green 환경을 테스트해야 하는 경우 새 Amazon RDS Proxy를 생성하고 Green 클러스터를 여기에 등록해야 합니다. 이렇게 하면 프로덕션 블루 환경 트래픽에 영향을 주지 않고 그린 환경을 독립적으로 테스트할 수 있습니다. 테스트가 완료되면 테스트 프록시를 삭제합니다.

1. 준비가 되면 전환하여 그린 환경을 새로운 프로덕션 환경으로 전환합니다. 지침은 [Amazon Aurora에서 블루/그린 배포 전환](blue-green-deployments-switching.md) 섹션을 참조하세요.

   전환하면 다운타임이 발생하게 됩니다. 다운타임은 보통 1분 미만이지만 워크로드에 따라 더 길어질 수 있습니다.

   다음 이미지는 전환 이후의 DB 클러스터를 보여 줍니다.  
![Amazon Aurora 블루/그린 배포로 전환한 후의 DB 클러스터 및 DB 인스턴스](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/blue-green-deployment-switchover-aurora.png)

   전환 후에는 그린 환경의 Aurora DB 클러스터가 새로운 프로덕션 DB 클러스터가 됩니다. 현재 프로덕션 환경의 이름과 엔드포인트가 새로 전환된 프로덕션 환경에 할당되므로, 애플리케이션을 변경할 필요가 없습니다. 따라서 이제 프로덕션 트래픽이 새 프로덕션 환경으로 이동합니다. 이전 블루 환경의 DB 클러스터와 DB 인스턴스는 현재 이름에 `-old{{n}}`이 추가됩니다(여기서 `{{n}}`은 숫자입니다). 예를 들어 블루 환경의 DB 인스턴스 이름이 `auroradb-instance-1`이라고 가정하겠습니다. 전환이 끝나면 DB 인스턴스 이름은 `auroradb-instance-1-old1`이 됩니다.

   이미지의 예시에서는 전환 중에 다음과 같은 변경 사항이 발생합니다.
   + 그린 환경 DB 클러스터 `auroradb-green-abc123`가 `auroradb`라는 프로덕션 DB 클러스터가 됩니다.
   + 이름이 `auroradb-instance1-green-abc123`인 그린 환경 DB 인스턴스가 이름이 `auroradb-instance1`인 프로덕션 DB 클러스터가 됩니다.
   + 이름이 `auroradb-instance2-green-abc123`인 그린 환경 DB 인스턴스가 이름이 `auroradb-instance2`인 프로덕션 DB 클러스터가 됩니다.
   + 이름이 `auroradb-instance3-green-abc123`인 그린 환경 DB 인스턴스가 이름이 `auroradb-instance3`인 프로덕션 DB 클러스터가 됩니다.
   + 이름이 `auroradb`인 블루 환경 DB 클러스터가 `auroradb-old1`이 됩니다.
   + 이름이 `auroradb-instance1`인 블루 환경 DB 인스턴스가 `auroradb-instance1-old1`이 됩니다.
   + 이름이 `auroradb-instance2`인 블루 환경 DB 인스턴스가 `auroradb-instance2-old1`이 됩니다.
   + 이름이 `auroradb-instance3`인 블루 환경 DB 인스턴스가 `auroradb-instance3-old1`이 됩니다.

1. 블루/그린 배포가 더 이상 필요하지 않다면 삭제해도 됩니다. 지침은 [Amazon Aurora에서 블루/그린 배포 삭제](blue-green-deployments-deleting.md) 섹션을 참조하세요.

   전환 후에도 이전 프로덕션 환경이 삭제되지 않으므로, 필요하다면 회귀 테스트에 사용할 수 있습니다.