블루/그린 배포 생성 - Amazon Relational Database Service

블루/그린 배포 생성

블루/그린 배포를 만들 때는 배포에서 복사할 소스 DB 인스턴스를 지정합니다. 선택한 DB 인스턴스는 프로덕션 DB 인스턴스이며, 블루 환경에서는 이것이 기본 DB 인스턴스가 됩니다. 이 DB 인스턴스는 그린 환경으로 복사되고, RDS는 블루 환경의 DB 인스턴스에서 그린 환경의 DB 인스턴스로의 복제를 구성합니다.

RDS는 블루 환경의 토폴로지를 구성된 기능과 함께 스테이징 영역에 복사합니다. 블루 DB 인스턴스에 읽기 전용 복제본이 있는 경우, 읽기 전용 복제본은 배포 시에 그린 DB 인스턴스의 읽기 전용 복제본으로 복사됩니다. 블루 DB 인스턴스가 다중 AZ DB 인스턴스 배포인 경우, 블루 DB 인스턴스는 다중 AZ DB 인스턴스 배포로서 생성됩니다.

블루/그린 배포 준비

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

블루/그린 배포를 위해 RDS for MySQL DB 인스턴스 준비

RDS for MySQL DB 인스턴스에 블루/그린 배포를 생성하기 전에 먼저 자동 백업을 활성화해야 합니다. 지침은 자동 백업 활성화 단원을 참조하십시오.

블루/그린 배포를 위해 RDS for PostgreSQL DB 인스턴스 준비

RDS for PostgreSQL DB 인스턴스에 블루/그린 배포를 생성하기 전에 먼저 다음을 수행하세요.

  • 논리적 복제(rds.logical_replication)가 켜진 상태에서 인스턴스를 사용자 지정 DB 파라미터 그룹과 연결합니다. 블루 환경에서 그린 환경으로 복제하려면 논리적 복제가 필요합니다. 지침은 Amazon RDS에서 DB 파라미터 그룹의 파라미터 수정 단원을 참조하십시오.

    블루/그린 배포에는 데이터베이스당 최소 1명의 백그라운드 작업자가 필요하므로, 워크로드에 따라 다음 구성 설정을 조정해야 합니다. 각 설정을 조정하는 방법에 대한 지침은 PostgreSQL 설명서의 구성 설정을 참조하세요.

    • max_replication_slots

    • max_wal_senders

    • max_logical_replication_workers

    • max_worker_processes

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

  • DB 인스턴스가 RDS 블루/그린 배포와 호환되는 RDS for PostgreSQL 버전을 실행해야 합니다. 호환 가능한 버전 목록은 Amazon RDS 블루/그린 배포를 지원하는 리전 및 DB 엔진 섹션을 참조하세요.

  • DB 인스턴스가 외부 복제의 소스 또는 대상이 아닌지 확인하세요. 자세한 내용은 블루/그린 배포 관련 일반 제한 사항 단원을 참조하십시오.

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

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

  • UPDATE 및 DELETE 문 성능을 검토하고 WHERE 절에서 사용되는 열에 인덱스를 생성하여 이러한 쿼리를 최적화할 수 있는지 평가합니다. 이렇게 하면 그린 환경에서 작업을 재생할 때 성능이 향상될 수 있습니다.

  • RDS for PostgreSQL은 PostgreSQL의 기본 논리적 복제를 사용하여 그린 환경에서 재생될 때까지 미리 쓰기 로그(WAL) 세그먼트를 블루 인스턴스에 저장합니다. 블루/그린 배포를 시작하기 전에 다음 지표를 확인하여 블루 인스턴스의 용량이 적절한지 확인합니다.

    • FreeStorageSpace

    • TransactionLogsGeneration

    • TransactionLogsDiskUsage

    • OldestReplicationSlotLag

    블루 인스턴스에 필요한 추가 스토리지를 추정하려면 피크 워크로드 기간 동안 TransactionLogGeneration CloudWatch 지표를 모니터링합니다. 예를 들어 워크로드가 24시간 동안 100GB의 WAL 데이터를 생성하는 경우 하루 분량의 WAL 세그먼트를 수용할 수 있는 최소 100GB의 추가 스토리지가 있는지 확인합니다. 자세한 내용은 Amazon RDS 인스턴스에서 지표 모니터링 단원을 참조하십시오.

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

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

배포가 끝나면 그린 환경의 DB 인스턴스 추가로 수정할 수 있습니다. 예를 들어 데이터베이스의 스키마를 변경하거나 그린 환경에 있는 하나 이상의 DB 인스턴스에서 사용하는 DB 인스턴스 클래스를 변경할 수 있습니다.

DB 인스턴스 수정에 대한 자세한 내용은 Amazon RDS DB 인스턴스 수정 단원을 참조하세요.

더 높은 엔진 버전 지정

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

다른 DB 파라미터 그룹 지정

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

다른 DB 파라미터 그룹을 지정하면, 지정된 DB 파라미터 그룹이 그린 환경의 모든 DB 인스턴스와 연결됩니다. 다른 파라미터 그룹을 지정하지 않으면 그린 환경의 각 DB 인스턴스는 대응하는 블루 DB 인스턴스의 파라미터 그룹과 연결됩니다.

RDS 최적화된 쓰기 활성화

RDS 최적화된 쓰기를 지원하는 DB 인스턴스 클래스로 업그레이드하는 데 블루/그린 배포를 사용할 수 있습니다. 지원되는 DB 인스턴스 클래스로 생성된 데이터베이스에서만 RDS 최적화된 쓰기를 활성화할 수 있습니다. 따라서 이 옵션을 사용하면 지원되는 DB 인스턴스 클래스를 사용하는 그린 데이터베이스가 생성되며, 이를 통해 그린 DB 인스턴스에 RDS 최적화된 쓰기를 활성화할 수 있습니다.

RDS 최적화된 쓰기를 지원하지 않는 DB 인스턴스 클래스에서 지원하는 클래스로 업그레이드하는 경우 그린 DB 인스턴스의 스토리지 구성도 업그레이드해야 합니다. 자세한 내용은 스토리지 구성 업그레이드 단원을 참조하십시오.

기본 그린 DB 인스턴스의 DB 인스턴스 클래스만 업그레이드할 수 있습니다. 그린 환경의 읽기 전용 복제본은 블루 환경의 DB 인스턴스 설정을 기본적으로 상속합니다. 그린 환경을 성공적으로 만든 후에는 그린 환경에서 읽기 전용 복제본의 DB 인스턴스 클래스를 수동으로 수정해야 합니다.

블루 DB 인스턴스의 엔진 버전과 인스턴스 클래스에 따라 일부 인스턴스 클래스 업그레이드가 지원되지 않습니다. DB 인스턴스 클래스에 대한 자세한 내용은 DB 인스턴스 클래스 섹션을 참조하세요.

스토리지 구성 업그레이드

블루 데이터베이스가 최신 스토리지 구성에 없는 경우 RDS는 그린 DB 인스턴스를 이전 스토리지 구성(32비트 파일 시스템)에서 원하는 구성으로 마이그레이션할 수 있습니다. RDS 블루/그린 배포를 사용하면 이전 32비트 파일 시스템의 스토리지 및 파일 크기 조정 제한을 극복할 수 있습니다. 또한 이 설정은 지정된 DB 인스턴스 클래스가 최적화된 쓰기를 지원하는 경우 RDS 최적화된 쓰기와 호환되도록 스토리지 구성을 변경합니다.

참고

스토리지 구성 업그레이드는 I/O 집약적인 작업이므로 블루/그린 배포의 생성 시간이 길어집니다. 블루 DB 인스턴스가 프로비저닝된 IOPS SS (io1) 스토리지를 사용하고 그린 환경을 인스턴스 크기가 4xlarge 이상이 되도록 프로비저닝한 경우 스토리지 업그레이드 프로세스가 더 빨라집니다. 범용 SSD(gp2) 스토리지를 사용하는 스토리지 업그레이드는 I/O 크레딧 밸런스를 고갈할 수 있어 업그레이드 시간이 더 오래 걸릴 수 있습니다. 자세한 내용은 Amazon RDS DB 인스턴스 스토리지 단원을 참조하십시오.

스토리지 업그레이드 중에는 그린 DB 인스턴스를 일시적으로 사용할 수 없는 반면 블루 DB 인스턴스는 계속 사용할 수 있습니다. 이 시간 동안 복제가 일시 중지됩니다. 블루 인스턴스의 스토리지를 모니터링하고, 업그레이드 후 그린 인스턴스가 자동으로 10% 확장되므로 스토리지가 90%에 도달하면 규모 조정을 고려하세요.

이 옵션은 블루 데이터베이스가 최신 스토리지 구성을 사용하지 않거나 동일한 요청으로 DB 인스턴스 클래스를 변경하는 경우에만 사용할 수 있습니다. 블루/그린 배포를 처음 생성할 때는 스토리지 구성만 업그레이드할 수 있습니다.

블루/그린 배포를 생성할 때 지연 로드 처리

블루/그린 배포를 생성하면 Amazon RDS는 DB 스냅샷에서 복원하여 그린 환경에서 기본 DB 인스턴스를 생성합니다. 생성된 그린 DB 인스턴스는 백그라운드에서 데이터를 계속 로드하는데, 이를 지연 로딩이라고 합니다. DB 인스턴스에 읽기 전용 복제본이 있는 경우, 이러한 복제본도 DB 스냅샷에서 생성되므로 지연 로딩이 발생할 수 있습니다.

아직 로드되지 않은 데이터에 액세스하는 경우, DB 인스턴스는 Amazon S3에서 요청된 데이터를 즉시 다운로드한 후, 백그라운드에서 데이터의 나머지 로드를 계속 진행합니다. 자세한 내용은 Amazon EBS 스냅샷을 참조하세요.

빠른 액세스가 필요한 테이블에 대한 지연 로딩의 영향을 완화하기 위해 SELECT *와 같은 전체 테이블 스캔과 관련된 작업을 수행할 수 있습니다. 이 작업을 통해 Amazon RDS는 S3에서 백업된 모든 테이블 데이터를 다운로드할 수 있습니다.

애플리케이션이 아직 로드되지 않은 데이터에 액세스하려고 하면, 데이터가 로드되는 동안 애플리케이션의 지연 시간이 평소보다 길어질 수 있습니다. 이렇게 지연 로딩 때문에 지연 시간이 길어지면 지연 시간에 민감한 워크로드의 성능이 저하될 수 있습니다.

중요

데이터 로드가 완료되기 전에 블루/그린 배포로 전환하면, 긴 지연 시간 때문에 애플리케이션에 성능 문제가 발생할 수 있습니다.

블루/그린 배포 생성

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

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

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

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

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

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

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

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

  6. 나머지 섹션에서 그린 환경에 대한 설정을 지정합니다. 각 설정에 대한 자세한 내용은 블루/그린 배포를 생성하기 위한 설정 단원을 참조하세요.

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

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

AWS CLI를 사용하여 블루/그린 배포를 생성하려면 create-blue-green-deployment 명령을 사용해야 합니다. 각 옵션에 대한 자세한 내용은 블루/그린 배포를 생성하기 위한 설정 단원을 참조하세요.

대상 LinuxmacOS, 또는Unix:

aws rds create-blue-green-deployment \ --blue-green-deployment-name my-blue-green-deployment \ --source arn:aws:rds:us-east-2:123456789012:db:mydb1 \ --target-engine-version 8.0.31 \ --target-db-parameter-group-name mydbparametergroup

Windows의 경우:

aws rds create-blue-green-deployment ^ --blue-green-deployment-name my-blue-green-deployment ^ --source arn:aws:rds:us-east-2:123456789012:db:mydb1 ^ --target-engine-version 8.0.31 ^ --target-db-parameter-group-name mydbparametergroup

Amazon RDS API를 사용하여 블루/그린 배포를 생성하려면 CreateBlueGreenDeployment 작업을 사용해야 합니다. 각 옵션에 대한 자세한 내용은 블루/그린 배포를 생성하기 위한 설정 단원을 참조하세요.

블루/그린 배포를 생성하기 위한 설정

블루/그린 배포를 만들 때 선택할 수 있는 설정에 대한 설명은 다음 표에 나와 있습니다. AWS CLI 옵션에 대한 자세한 내용은 create-blue-green-deployment 섹션을 참조하세요. RDS API 파라미터에 대한 자세한 내용은 CreateBlueGreenDeployment를 참조하세요.

콘솔 설정 설정 설명 CLI 옵션 및 RDS API 파라미터

블루/그린 배포 식별자

블루/그린 배포의 이름

CLI 옵션:

--blue-green-deployment-name

API 파라미터:

BlueGreenDeploymentName

블루 데이터베이스 식별자

그린 환경으로 복사할 인스턴스 의 식별자입니다. CLI 또는 API를 사용하는 경우 인스턴스 Amazon 리소스 이름(ARN)을 지정합니다.

CLI 옵션:

--source

API 파라미터:

Source

그린 데이터베이스를 위한 DB 파라미터 그룹 그린 환경의 데이터베이스와 연결할 파라미터 그룹입니다.

CLI 옵션:

--target-db-parameter-group-name

--target-db-cluster-parameter-group-name

API 파라미터:

TargetDBParameterGroupName

TargetDBClusterParameterGroupName

그린 데이터베이스를 위한 최적화된 쓰기 활성화

그린 기본 DB 인스턴스에서 RDS 최적화된 쓰기를 활성화하는 옵션입니다. 자세한 내용은 RDS 최적화된 쓰기 활성화 단원을 참조하십시오.

최적화된 쓰기를 지원하지 않는 DB 인스턴스 클래스에서 지원하는 클래스로 변경하는 경우 스토리지 구성도 업그레이드해야 합니다. 자세한 내용은 스토리지 구성 업그레이드 단원을 참조하십시오.

CLI 및 API의 경우, RDS 최적화된 쓰기를 지원하는 대상 DB 인스턴스 클래스를 지정하면 그린 기본 DB 인스턴스에서 자동으로 활성화됩니다.

그린 데이터베이스를 위한 엔진 버전

그린 환경의 데이터베이스 를 지정된 DB 엔진 버전으로 업그레이드합니다.

지정하지 않으면 그린 환경의 각 데이터베이스는 블루 환경의 해당 DB 인스턴스와 동일한 엔진 버전으로 생성됩니다.

CLI 옵션:

--target-engine-version

RDS API 파라미터:

TargetEngineVersion

그린 DB 인스턴스 클래스

그린 환경에 있는 DB 인스턴스의 컴퓨팅 및 메모리 용량입니다(예: db.m5d.xlarge).

그린 데이터베이스에 대해 RDS 최적화 쓰기를 사용하도록 설정한 경우에만 이 옵션이 표시됩니다.

CLI 옵션:

--target-db-instance-class

RDS API 파라미터:

TargetDBInstanceClass

스토리지 구성 업그레이드

스토리지 파일 시스템 구성을 업그레이드할지 여부를 선택합니다. 이 설정을 활성화하면 RDS는 기존 스토리지 파일 시스템에서 원하는 구성으로 그린 데이터베이스를 마이그레이션합니다.

이 옵션은 블루 데이터베이스가 최신 스토리지 구성을 사용하지 않거나 동일한 요청으로 RDS 최적화된 쓰기를 활성화하는 경우에만 사용할 수 있습니다. 블루/그린 배포를 처음 생성할 때는 스토리지 구성만 업그레이드할 수 있습니다.

자세한 내용은 DB 인스턴스의 스토리지 파일 시스템 업그레이드 단원을 참조하십시오.

CLI 옵션:

--upgrade-target-storage-config

RDS API 파라미터:

UpgradeTargetStorageConfig