View a markdown version of this page

Amazon Aurora 블루/그린 배포 개요 - Amazon Aurora

Amazon Aurora 블루/그린 배포 개요

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

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

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

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

참고

Aurora MySQL, Aurora PostgreSQL 및 Aurora Global Database에 대해 블루/그린 배포가 지원됩니다. Amazon RDS 가용성에 대해서는 Amazon RDS 사용 설명서Amazon RDS 블루/그린 배포 개요를 참조하세요.

리전 및 버전 사용 가능 여부

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

Amazon RDS 블루/그린 배포 사용의 장점

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

블루/그린 배포는 다음과 같은 장점을 제공합니다.

  • 프로덕션 준비가 된 스테이징 환경을 쉽게 만들 수 있습니다.

  • 데이터베이스 변경 사항을 프로덕션 환경에서 스테이징 환경으로 자동으로 복제합니다.

  • 프로덕션 환경에 영향을 주지 않고 안전한 스테이징 환경에서 데이터베이스 변경 사항을 테스트합니다.

  • 데이터베이스 패치 및 시스템 업데이트로 최신 상태를 유지하세요.

  • 새로운 데이터베이스 기능을 구현하고 테스트합니다.

  • 애플리케이션을 변경하지 않고도 스테이징 환경을 새 프로덕션 환경으로 전환합니다.

  • 내장된 전환 가드레일을 사용하여 안전하게 전환합니다.

  • 전환 중 데이터 손실이 발생하지 않습니다.

  • 워크로드에 따라 대부분 1분 이내에 빠르게 전환합니다.

블루/그린 배포 워크플로우

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

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

    다음 이미지에서는 프로덕션 DB 클러스터 예시를 확인할 수 있습니다.

    블루/그린 배포의 프로덕션(블루) Aurora DB 클러스터.
  2. 블루/그린 배포 생성 지침은 Amazon Aurora에서 블루/그린 배포 생성 섹션을 참조하세요.

    다음 이미지는 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용 블루/그린 배포.

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

    또한 RDS는 블루 환경의 기본 DB 인스턴스에서 그린 환경의 기본 DB 인스턴스로의 복제를 구성합니다.

    중요

    Aurora MySQL 버전 3의 경우 블루/그린 배포를 생성하면 그린 환경의 DB 클러스터는 기본적으로 쓰기 작업을 허용하지 않습니다. 그러나 이는 Aurora 마스터 사용자를 비롯하여 CONNECTION_ADMIN 권한이 있는 사용자에게 적용되지 않습니다. 이 권한이 있는 사용자는 read_only 동작을 재정의할 수 있습니다. 자세한 내용은 역할 기반 권한 모델 섹션을 참조하세요.

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

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

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

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

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

  5. 준비가 되면 전환하여 그린 환경을 새로운 프로덕션 환경으로 전환합니다. 지침은 Amazon Aurora에서 블루/그린 배포 전환 섹션을 참조하세요.

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

    다음 이미지는 전환 이후의 DB 클러스터를 보여 줍니다.

    Amazon Aurora 블루/그린 배포로 전환한 후의 DB 클러스터 및 DB 인스턴스.

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

    이미지의 예시에서는 전환 중에 다음과 같은 변경 사항이 발생합니다.

    • 그린 환경 DB 클러스터 auroradb-green-abc123auroradb라는 프로덕션 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이 됩니다.

  6. 블루/그린 배포가 더 이상 필요하지 않다면 삭제해도 됩니다. 지침은 Amazon Aurora에서 블루/그린 배포 삭제 섹션을 참조하세요.

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