블루/그린 배포 생성 - Amazon Aurora

블루/그린 배포 생성

블루/그린 배포를 만들 때는 배포에서 복사할 DB 인스턴스를 지정해야 합니다. 선택한 DB 클러스터는 프로덕션 DB 클러스터이며, 블루 환경에서는 이것이 DB 클러스터가 됩니다. RDS는 블루 환경의 토폴로지를 구성된 기능과 함께 스테이징 영역에 복사합니다. DB 클러스터는 그린 환경으로 복사되고, RDS는 블루 환경의 DB 클러스터에서 그린 환경의 DB 클러스터로의 복제를 구성합니다. 또한 RDS는 DB 클러스터에 있는 모든 DB 인스턴스를 복제합니다.

블루/그린 배포 준비

Aurora DB 클러스터가 실행 중인 엔진에 따라 블루/그린 배포를 생성하기 전에 수행해야 하는 몇 가지 단계가 있습니다.

블루/그린 배포를 위해 Aurora MySQL DB 클러스터 준비

Aurora MySQL DB 클러스터의 블루/그린 배포를 생성하기 전에, DB 클러스터를 바이너리 로깅(binlog_format)을 켠 사용자 지정 클러스터 파라미터 그룹과 연결해야 합니다. 블루 환경에서 그린 환경으로 복제하려면 이진 로깅이 필요합니다. 모든 binlog 형식을 사용할 수 있지만 복제 불일치의 위험을 줄이기 위해 ROW를 사용하는 것이 좋습니다. 사용자 지정 DB 파라미터 그룹 생성에 대한 자세한 내용은 DB 클러스터 파라미터 그룹 작업 섹션을 참조하세요.

참고

이진 로깅을 활성화하면 DB 클러스터에 대한 평균 디스크 쓰기 I/O 작업 수가 증가합니다. VolumeWriteIOPs CloudWatch 지표를 사용하여 IOPS 사용량을 모니터링할 수 있습니다.

이진 로깅을 활성화한 후에는 DB 클러스터를 재부팅하여 변경 사항을 적용해야 합니다. 블루/그린 배포의 요구 사항은 라이터 인스턴스가 DB 클러스터 파라미터 그룹과 동기화되는 것이며며, 그렇지 않으면 생성에 실패합니다. 자세한 내용은 Aurora 클러스터 내의 DB 인스턴스 재부팅 단원을 참조하십시오.

또한 이진 로그 파일이 제거되지 않도록 이진 로그 보존 기간을 NULL 외의 다른 값으로 변경하는 것이 좋습니다. 자세한 내용은 구성 단원을 참조하십시오.

블루/그린 배포를 위해 Aurora PostgreSQL DB 클러스터 준비

Aurora PostgreSQL DB 클러스터에 블루/그린 배포를 생성하기 전에 먼저 다음을 수행하세요.

  • 논리적 복제(rds.logical_replication)가 활성화된 사용자 지정 DB 클러스터 파라미터 그룹과 클러스터를 연결합니다. 블루 환경에서 그린 환경으로 복제하려면 논리적 복제가 필요합니다.

    논리적 복제를 활성화할 때는 max_replication_slots, max_logical_replication_workers, max_worker_processes 같은 특정 클러스터 파라미터도 조정해야 합니다. 논리적 복제를 활성화하고 이러한 파라미터를 조정하는 방법에 대한 지침은 Aurora PostgreSQL DB 클러스터의 논리적 복제 설정 섹션을 참조하세요.

    또한 synchronous_commit 파라미터가 on으로 설정되어 있어야 합니다.

    필수 파라미터를 구성한 후에는 DB 클러스터를 재부팅하여 변경 사항을 적용해야 합니다. 블루/그린 배포의 요구 사항은 라이터 인스턴스가 DB 클러스터 파라미터 그룹과 동기화되는 것이며며, 그렇지 않으면 생성에 실패합니다. 자세한 내용은 Aurora 클러스터 내의 DB 인스턴스 재부팅 단원을 참조하십시오.

  • DB 클러스터가 블루/그린 배포와 호환되는 Aurora PostgreSQL 버전을 실행해야 합니다. 호환 가능한 버전 목록은 Aurora PostgreSQL을 사용한 블루/그린 배포 섹션을 참조하세요.

  • DB 클러스터의 모든 테이블에 프라이머리 키가 있는지 확인하세요. PostgreSQL 논리적 복제는 프라이머리 키가 없는 테이블에 대한 UPDATE 또는 DELETE 작업을 허용하지 않습니다.

  • 트리거를 사용하는 경우 이름이 'rds'로 시작하는 pg_catalog.pg_publication, pg_catalog.pg_subscriptionpg_catalog.pg_replication_slots 객체를 만들고, 업데이트하고, 삭제하는 데 트리거가 방해가 되지 않는지 확인하세요.

블루/그린 배포 생성 시 변경 사항 지정

블루/그린 배포를 생성할 때 그린 환경의 DB 클러스터에 다음 변경 사항을 적용할 수 있습니다.

배포가 끝나면 그린 환경의 DB 클러스터와 관련 DB 인스턴스를 추가로 수정할 수 있습니다. 예를 들어 데이터베이스의 스키마를 변경할 수 있습니다.

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

더 높은 엔진 버전 지정

DB 엔진 업그레이드를 테스트하고 싶다면 더 높은 엔진 버전을 지정할 수 있습니다. 전환 시 데이터베이스는 지정한 메이저 또는 마이너 DB 엔진 버전으로 업그레이드됩니다.

다른 DB 파라미터 그룹 지정

DB 인스턴스에서 사용하는 그룹과 다른 DB 클러스터 파라미터 그룹을 지정합니다. 그린 환경에서 파라미터 변경이 DB 클러스터에 미치는 영향을 테스트하거나, 업그레이드할 때 새 메이저 DB 엔진 버전에 대한 파라미터 그룹을 지정할 수 있습니다.

다른 DB 클러스터 파라미터 그룹을 지정하면, 지정된 파라미터 그룹이 그린 환경의 DB 클러스터와 연결됩니다. 다른 DB 클러스터 파라미터 그룹을 지정하지 않으면 그린 환경의 DB 클러스터는 블루 DB 클러스터와 동일한 파라미터 그룹과 연결됩니다.

블루/그린 배포 생성

AWS Management Console, AWS CLI 또는 RDS API를 사용하여 블루/그린 배포를 생성할 수 있습니다.

블루/그린 배포를 생성하려면
  1. https://console.aws.amazon.com/rds/에서 AWS Management Console에 로그인한 후 Amazon RDS 콘솔을 엽니다.

  2. 탐색 창에서 Databases(데이터베이스)를 선택한 다음 그린 환경에 복사할 DB 클러스터를 선택합니다.

  3. 작업에서 블루/그린 배포 생성을 선택합니다.

    Aurora PostgreSQL DB 클러스터를 선택하는 경우 논리적 복제 제한 사항을 검토하고 확인하세요. 자세한 내용은 블루/그린 배포를 위한 PostgreSQL 논리적 복제 제한 단원을 참조하십시오.

    Create Blue/Green Deployment(블루/그린 배포 생성) 페이지가 표시됩니다.

    블루/그린 배포 생성
  4. 블루 데이터베이스 식별자를 검토합니다. 해당 식별자가 블루 환경에 있어야 하는 DB 인스턴스와 일치하는지 확인합니다. 일치하지 않는다면 Cancel(취소)를 선택합니다.

  5. Blue/Green Deployment identifier(블루/그린 배포 식별자)에 블루/그린 배포의 이름을 입력합니다.

  6. (선택 사항) Blue/Green Deployment settings(블루/그린 배포 설정)에서 그린 환경에 대한 설정을 지정합니다.

    • DB 엔진 버전 업그레이드를 테스트하려면 DB 엔진 버전을 선택합니다.

    • 그린 환경에 있는 DB 클러스터와 연결할 DB 클러스터 그룹을 선택합니다.

    • 그린 환경에 있는 DB 인스턴스와 연결할 DB 파라미터 그룹을 선택합니다.

    배포가 끝나면 그린 환경의 데이터베이스를 추가로 수정할 수 있습니다.

  7. 스테이징 환경 생성을 선택합니다.

AWS CLI를 사용하여 블루/그린 배포를 생성하려면 다음 옵션을 적용한 create-blue-green-deployment 명령을 사용해야 합니다.

  • --blue-green-deployment-name - 블루/그린 배포의 이름을 지정합니다.

  • --source - 복사할 DB 클러스터의 ARN을 지정합니다.

  • --target-engine-version - 그린 환경에서 DB 엔진 버전 업그레이드를 테스트하려면 엔진 버전을 지정합니다. 이 옵션은 그린 환경의 DB 클러스터를 지정된 DB 엔진 버전으로 업그레이드합니다.

    지정하지 않으면 그린 환경의 DB 클러스터는 블루 환경의 DB 클러스터와 동일한 엔진 버전으로 생성됩니다.

  • --target-db-cluster-parameter-group-name – 그린 환경에 있는 DB 클러스터와 연결할 DB 클러스터 그룹을 지정합니다.

  • --target-db-parameter-group-name – 그린 환경에 있는 DB 인스턴스와 연결할 DB 파라미터 그룹을 지정합니다.

예 블루/그린 배포 생성

대상 LinuxmacOS, 또는Unix:

aws rds create-blue-green-deployment \ --blue-green-deployment-name aurora-blue-green-deployment \ --source arn:aws:rds:us-east-2:123456789012:cluster:auroradb \ --target-engine-version 8.0 \ --target-db-cluster-parameter-group-name mydbclusterparametergroup

Windows의 경우:

aws rds create-blue-green-deployment ^ --blue-green-deployment-name aurora-blue-green-deployment ^ --source arn:aws:rds:us-east-2:123456789012:cluster:auroradb ^ --target-engine-version 8.0 ^ --target-db-cluster-parameter-group-name mydbclusterparametergroup

Amazon RDS API를 사용하여 블루/그린 배포를 생성하려면 다음 파라미터를 적용한 CreateBlueGreenDeployment 작업을 사용해야 합니다.

  • BlueGreenDeploymentName - 블루/그린 배포의 이름을 지정합니다.

  • Source - 그린 환경에 복사할 DB 클러스터의 ARN을 지정합니다.

  • TargetEngineVersion— 그린 환경에서 DB 엔진 버전 업그레이드를 테스트하려면 엔진 버전을 지정하십시오. 이 옵션은 그린 환경의 DB 클러스터를 지정된 DB 엔진 버전으로 업그레이드합니다.

    지정하지 않으면 그린 환경의 DB 클러스터는 블루 환경의 DB 클러스터와 동일한 엔진 버전으로 생성됩니다.

  • TargetDBClusterParameterGroupName – 그린 환경에 있는 DB 클러스터와 연결할 DB 클러스터 그룹을 지정합니다.

  • TargetDBParameterGroupName – 그린 환경에 있는 DB 인스턴스와 연결할 DB 파라미터 그룹을 지정합니다.