여러 AWS 리전에 걸쳐 Amazon Aurora MySQL DB 클러스터 복제 - Amazon Aurora

여러 AWS 리전에 걸쳐 Amazon Aurora MySQL DB 클러스터 복제

Amazon Aurora MySQL DB 클러스터를 소스 DB 클러스터와 다른 AWS 리전에 읽기 전용 복제본으로 만들 수 있습니다. 이 방식을 택하면 재해 복구 기능을 개선하고, 읽기 작업을 사용자와 더욱 가까운 AWS 리전으로 확장하고, 한 AWS 리전에서 다른 리전으로 손쉽게 마이그레이션할 수 있습니다.

암호화된 DB 클러스터와 암호화되지 않은 DB 클러스터의 읽기 전용 복제본을 모두 만들 수 있습니다. 원본 DB 클러스터가 암호화되어 있으면 읽기 전용 복제본을 암호화해야 합니다.

원본 DB 클러스터당 최대 5개의 리전 간 DB 클러스터(읽기 전용 복제본)를 만들 수 있습니다.

참고

교차 리전 읽기 전용 복제본의 대안으로, Aurora 전역 데이터베이스를 사용하여 최소한의 지연 시간으로 읽기 작업을 크기 조정할 수 있습니다. Aurora 전역 데이터베이스는 하나의 AWS 리전에 프라이머리 Aurora DB 클러스터를, 그리고 다른 리전에 최대 5개의 읽기 전용 보조 DB 클러스터를 보유합니다. 각 보조 DB 클러스터에는 최대 16개의 (15보다 나음) Aurora 복제본이 포함될 수 있습니다. 프라이머리 DB 클러스터에서 모든 보조 클러스터로의 복제는 데이터베이스 엔진이 아닌 Aurora 스토리지 계층에서 처리되므로 변경 사항 복제를 위한 지연 시간이 최소화됩니다(일반적으로 1초 미만). 데이터베이스 엔진을 복제 프로세스에서 제외하면 데이터베이스 엔진이 작업 로드 처리 전용으로 사용됩니다. 또한 Aurora MySQL의 binlog(바이너리 로깅) 복제를 구성하거나 관리할 필요가 없습니다. 자세한 내용은 Amazon Aurora 글로벌 데이터베이스 사용 단원을 참조하세요.

다른 AWS 리전에 Aurora MySQL DB 클러스터의 읽기 전용 복제본을 만들 때는 다음에 주의해야 합니다.

  • 원본 DB 클러스터와 리전 간 읽기 전용 복제본 DB 클러스터 모두 DB 클러스터의 기본 인스턴스 외에 최대 15개의 Aurora 복제본을 가질 수 있습니다. 이 기능을 통해, 소스 AWS 리전과 복제 대상 AWS 리전에 대해 읽기 작업을 확장할 수 있습니다.

  • 교차 리전 시나리오에서는 AWS 리전 간 네트워크 채널이 더 길어지기 때문에 소스 DB 클러스터와 읽기 전용 복제본 간의 지연 시간이 증가합니다.

  • 리전 간 복제를 위해 데이터를 전송할 때는 Amazon RDS 데이터 전송 요금이 발생합니다. 다음과 같은 교차 리전 복제 작업에서 요금이 발생하는 이유는 소스 AWS 리전을 벗어나 데이터를 전송하기 때문입니다.

    • 읽기 전용 복제본을 생성할 때는 Amazon RDS가 소스 클러스터의 스냅샷을 캡처하여 해당 스냅샷을 읽기 전용 복제본이 있는 AWS 리전으로 전송합니다.

    • 소스 데이터베이스에서 데이터를 변경할 때마다 Amazon RDS가 소스 리전에서 읽기 전용 복제본이 있는 AWS 리전으로 데이터를 전송합니다.

    Amazon RDS 데이터 전송 요금에 대한 자세한 정보는 Amazon Aurora 요금을 참조하십시오.

  • 동일한 원본 DB 클러스터를 참조하는 읽기 전용 복제본에 대해 동시 생성 또는 삭제 작업을 여러 개 실행할 수 있습니다. 하지만 각 원본 DB 클러스터에 대한 읽기 전용 복제본 개수를 5개 이하로 유지해야 합니다.

  • 효과적인 복제를 위해서는 읽기 전용 복제본도 각각 원본 DB 클러스터와 동일한 양의 컴퓨팅 및 스토리지 리소스를 가져야 합니다. 원본 DB 클러스터를 확장하면 읽기 전용 복제본도 확장해야 합니다.

시작하기 전 준비 사항

리전 간 읽기 전용 복제본인 Aurora MySQL DB 클러스터를 만들기 전에 먼저 원본 Aurora MySQL DB 클러스터에 대한 이진 로깅을 설정해야 합니다. Aurora MySQL의 리전 간 복제는 리전 간 읽기 전용 복제본 DB 클러스터에서 MySQL 이진 복제를 사용하여 변경 사항을 반복합니다.

Aurora MySQL DB 클러스터에 대한 이진 로깅을 설정하려면 원본 DB 클러스터의 binlog_format 파라미터를 업데이트해야 합니다. binlog_format 파라미터는 기본 클러스터 파라미터 그룹에 속하는 클러스터 수준 파라미터입니다. DB 클러스터에서 기본 DB 클러스터 파라미터 그룹을 사용하는 경우, binlog_format 설정을 수정하려면 새로운 DB 클러스터 파라미터 그룹을 만들어야 합니다. binlog_formatMIXED로 설정하는 것이 좋습니다. 그러나 특정한 binlog 형식이 필요하다면 binlog_formatROW 또는 STATEMENT로 설정할 수도 있습니다. Aurora DB 클러스터를 재부팅하여 변경 사항을 적용하십시오.

Aurora MySQL을 통한 이진 로깅 사용에 대한 자세한 내용은 Aurora과 MySQL 간의 복제 또는 Aurora와 다른 Aurora DB 클러스터(이진 로그 복제본) 간의 복제을(를) 참조하세요. Aurora MySQL 구성 파라미터 수정에 대한 자세한 내용은 Amazon Aurora DB 클러스터와 DB 인스턴스 파라미터파라미터 그룹 작업을(를) 참조하세요.

리전 간 읽기 전용 복제본인 Amazon Aurora MySQL DB 클러스터 만들기

AWS Management Console, AWS Command Line Interface(AWS CLI) 또는 Amazon RDS API를 사용하여 교차 리전 읽기 전용 복제본인 Aurora DB 클러스터를 만들 수 있습니다. 암호화된 및 암호화되지 않은 DB 클러스터에서 모두 리전 간 읽기 전용 복제본을 만들 수 있습니다.

AWS Management Console을 사용하여 Aurora MySQL에 대한 교차 리전 읽기 전용 복제본을 만드는 경우, Amazon RDS는 대상 AWS 리전에 DB 클러스터를 만든 다음 해당 DB 클러스터의 기본 인스턴스인 DB 인스턴스를 자동으로 만듭니다.

AWS CLI 또는 RDS API를 사용하여 리전 간 읽기 전용 복제본을 만드는 경우, 먼저 대상 AWS 리전에 DB 클러스터를 만들고 활성화될 때까지 기다립니다. 활성화되면 해당 DB 클러스터의 기본 인스턴스인 DB 인스턴스를 만듭니다.

읽기 전용 복제본 DB 클러스터의 기본 인스턴스를 사용할 수 있게 되면 복제가 시작됩니다.

다음 절차를 사용하여 Aurora MySQL DB 클러스터에서 리전 간 읽기 전용 복제본을 만듭니다. 이러한 절차는 암호화되었거나 암호화되지 않은 DB 클러스터에서 읽기 전용 복제본을 만드는 데 사용됩니다.

AWS Management Console을 사용하여 교차 리전 읽기 전용 복제본인 Aurora MySQL DB 클러스터를 만들려면
  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/rds/에서 Amazon RDS 콘솔을 엽니다.

  2. AWS Management Console의 오른쪽 상단 모서리에서 소스 DB 클러스터를 호스팅하는 AWS 리전을 선택합니다.

  3. 탐색 창에서 Databases(데이터베이스)를 선택합니다.

  4. 리전 간 읽기 전용 복제본을 만들 DB 클러스터를 선택합니다.

  5. 작업(Actions)에서 리전 간 읽기 전용 복제본 만들기(Create cross-Region read replica)를 선택합니다.

  6. 다음 표에 설명되어 있는 대로 리전 간 읽기 전용 복제본 만들기 페이지에서 리전 간 읽기 전용 복제본 DB 클러스터의 옵션 설정을 선택합니다.

    옵션 설명

    대상 리전

    새로운 리전 간 읽기 전용 복제본 DB 클러스터를 호스팅할 AWS 리전을 선택합니다.

    [Destination DB subnet group]

    리전 간 읽기 전용 복제본 DB 클러스터에 사용할 DB 서브넷 그룹을 선택합니다.

    공개적으로 액세스할 수 있음(Publicly accessible)

    리전 간 읽기 전용 복제본 DB 클러스터에 퍼블릭 IP 주소를 할당하려면 를 선택하고, 그렇지 않으면 아니요를 선택합니다.

    암호화(Encryption)

    암호화 활성화(Enable Encryption)를 선택하면 이 DB 클러스터에 대해 미사용 데이터 암호화를 설정할 수 있습니다. 자세한 내용은 Amazon Aurora 리소스 암호화 섹션을 참조하세요.

    AWS KMS key

    [Encryption]을 [Enable Encryption]으로 설정한 경우에만 사용할 수 있습니다. 현재 DB 클러스터를 암호화하는 데 사용할 AWS KMS key을(를) 선택합니다. 자세한 내용은 Amazon Aurora 리소스 암호화 섹션을 참조하세요.

    DB 인스턴스 클래스

    DB 클러스터의 기본 인스턴스에 대한 처리 및 메모리 요건을 정의한 DB 인스턴스 클래스를 선택합니다. DB 인스턴스 클래스 옵션에 대한 자세한 정보는 Aurora DB 인스턴스 클래스 단원을 참조하십시오.

    다중 AZ 배포

    장애 조치 지원을 위해 대상 AWS 리전의 다른 가용 영역에 새 DB 클러스터의 읽기 전용 복제본을 만들려면 를 선택합니다. 다중 가용 영역에 대한 자세한 내용은 리전 및 가용 영역 단원을 참조하십시오.

    복제본 소스 읽기

    리전 간 읽기 전용 복제본을 만들 원본 DB 클러스터를 선택합니다.

    DB 인스턴스 식별자

    리전 간 읽기 전용 복제본 DB 클러스터의 기본 인스턴스 이름을 입력합니다. 이 식별자는 새 DB 클러스터의 기본 인스턴스에 대한 엔드포인트 주소로 사용됩니다.

    DB 인스턴스 식별자는 다음과 같은 제약 조건이 있습니다.

    • 1~63자의 영숫자 문자 또는 하이픈으로 구성되어야 합니다.

    • 첫 번째 문자는 글자이어야 합니다.

    • 하이픈으로 끝나거나 하이픈이 2개 연속으로 이어져서는 안 됩니다.

    • 개별 AWS 리전별로 각 AWS 계정의 모든 DB 인스턴스에 대해 고유해야 합니다.

    리전 간 읽기 전용 복제본 DB 클러스터는 원본 DB 클러스터의 스냅샷으로 만드는 것이기 때문에 읽기 전용 복제본의 마스터 사용자 이름과 마스터 암호는 원본 DB 클러스터의 마스터 사용자 이름 및 마스터 암호와 동일합니다.

    DB 클러스터 식별자

    리전 간 읽기 전용 복제본 DB 클러스터의 이름을 입력합니다. 이 이름은 복제본의 대상 AWS 리전에서 사용자 계정에 고유한 이름이어야 합니다. 이 식별자는 DB 클러스터에 대한 클러스터 엔드포인트 주소로 사용됩니다. 클러스터 엔드포인트에 대한 자세한 내용은 Amazon Aurora 연결 관리 단원을 참조하십시오.

    DB 클러스터 식별자는 다음과 같은 제약 조건이 있습니다.

    • 1~63자의 영숫자 문자 또는 하이픈으로 구성되어야 합니다.

    • 첫 번째 문자는 글자이어야 합니다.

    • 하이픈으로 끝나거나 하이픈이 2개 연속으로 이어져서는 안 됩니다.

    • 개별 AWS 계정별로 각 AWS 리전의 모든 DB 클러스터에 대해 고유해야 합니다.

    우선 순위

    새 DB 클러스터의 기본 인스턴스에 대한 장애 조치의 우선 순위를 선택합니다. 기본 인스턴스의 결함으로부터 복구할 때 이 우선 순위에 따라 Aurora 복제본이 승격되는 순서가 결정됩니다. 값을 선택하지 않을 경우 기본값은 tier-1입니다. 자세한 내용은 Aurora DB 클러스터의 내결함성 섹션을 참조하세요.

    데이터베이스 포트

    애플리케이션과 유틸리티가 데이터베이스에 액세스할 때 사용할 포트를 지정합니다. Aurora DB 클러스터는 기본적으로 MySQL 포트, 3306으로 지정됩니다. 일부 기업에서는 방화벽으로 이 포트에 대한 연결을 차단합니다. 이처럼 기업 방화벽이 기본 포트를 차단할 경우 새로운 DB 클러스터에 다른 포트를 선택해야 합니다.

    확장 모니터링

    DB 클러스터가 실행되는 운영 체제에 대한 실시간 지표 수집을 설정하려면 향상된 모니터링 사용 설정(Enable enhanced monitoring)을 선택합니다. 자세한 내용은 Enhanced Monitoring을 사용하여 OS 지표 모니터링 섹션을 참조하세요.

    역할 모니터링

    [Enhanced Monitoring]을 [Enable enhanced monitoring]으로 설정한 경우에만 사용할 수 있습니다. Amazon RDS가 Amazon CloudWatch Logs와 통신할 수 있도록 생성한 IAM 역할을 선택하거나 RDS가 rds-monitoring-role라는 이름의 역할을 생성하도록 기본값을 선택합니다. 자세한 내용은 Enhanced Monitoring을 사용하여 OS 지표 모니터링 섹션을 참조하세요.

    세부 수준

    [Enhanced Monitoring]을 [Enable enhanced monitoring]으로 설정한 경우에만 사용할 수 있습니다. DB 클러스터에 대해 지표를 수집하는 간격(초)을 설정하십시오.

    마이너 버전 자동 업그레이드

    이 설정은 Aurora MySQL DB 클러스터에 적용되지 않습니다.

    Aurora MySQL의 엔진 업데이트에 대한 자세한 내용은 Amazon Aurora MySQL에 대한 데이터베이스 엔진 업데이트 단원을 참조하십시오.

  7. Aurora의 리전 간 읽기 전용 복제본을 만들려면 생성을 선택합니다.

CLI를 사용하여 리전 간 읽기 전용 복제본인 Aurora MySQL DB 클러스터를 만들려면
  1. 읽기 전용 복제본 DB 클러스터를 만들려는 AWS 리전에서 AWS CLI create-db-cluster 명령을 호출합니다. --replication-source-identifier 옵션을 포함시키고, 읽기 전용 복제본을 만들 원본 DB 클러스터의 Amazon 리소스 이름(ARN)을 지정합니다.

    --replication-source-identifier로 식별되는 DB 클러스터가 암호화되는 교차 리전 복제의 경우 --kms-key-id 옵션 및 --storage-encrypted 옵션을 지정합니다.

    참고

    --storage-encrypted를 지정하고 --kms-key-id의 값을 제공하여 암호화되지 않은 DB 클러스터에서 암호화된 읽기 전용 복제본으로 리전 간 복제를 설정할 수 있습니다.

    --master-username--master-user-password 파라미터는 지정할 수 없습니다. 이러한 값은 원본 DB 클러스터에서 가져옵니다.

    다음 코드 예에서는 us-west-2 리전의 암호화되지 않은 DB 클러스터 스냅샷에서 us-east-1 리전에 읽기 전용 복제본을 만듭니다. 이 명령은 us-east-1 리전에서 호출됩니다. 이 예제에서는 마스터 사용자 암호를 생성하고 이를 Secrets Manager에서 관리하는 --manage-master-user-password 옵션을 지정합니다. 자세한 내용은 Amazon Aurora 및 AWS Secrets Manager를 통한 암호 관리 섹션을 참조하세요. 또는 --master-password 옵션을 사용하여 암호를 직접 지정하고 관리할 수 있습니다.

    Linux, macOS, Unix:

    aws rds create-db-cluster \ --db-cluster-identifier sample-replica-cluster \ --engine aurora \ --replication-source-identifier arn:aws:rds:us-west-2:123456789012:cluster:sample-master-cluster

    Windows의 경우:

    aws rds create-db-cluster ^ --db-cluster-identifier sample-replica-cluster ^ --engine aurora ^ --replication-source-identifier arn:aws:rds:us-west-2:123456789012:cluster:sample-master-cluster

    다음 코드 예에서는 us-west-2 리전의 암호화된 DB 클러스터 스냅샷에서 us-east-1 리전에 읽기 전용 복제본을 만듭니다. 이 명령은 us-east-1 리전에서 호출됩니다.

    Linux, macOS, Unix:

    aws rds create-db-cluster \ --db-cluster-identifier sample-replica-cluster \ --engine aurora \ --replication-source-identifier arn:aws:rds:us-west-2:123456789012:cluster:sample-master-cluster \ --kms-key-id my-us-east-1-key \ --storage-encrypted

    Windows의 경우:

    aws rds create-db-cluster ^ --db-cluster-identifier sample-replica-cluster ^ --engine aurora ^ --replication-source-identifier arn:aws:rds:us-west-2:123456789012:cluster:sample-master-cluster ^ --kms-key-id my-us-east-1-key ^ --storage-encrypted

    --source-region 옵션은 --replication-source-identifier에서 식별된 DB 클러스터가 암호화되는 AWS GovCloud(미국 동부)와 AWS GovCloud(미국 서부) 리전 간의 교차 리전 복제에 필요합니다. --source-region의 경우 소스 DB 클러스터의 AWS 리전을 지정합니다.

    --source-region이 지정되지 않은 경우에는 --pre-signed-url 값을 지정합니다. 미리 서명된 URL은 소스 AWS 리전에서 호출되는 create-db-cluster 명령에 대한 서명 버전 4의 서명된 요청이 포함된 URL입니다. pre-signed-url 옵션에 대한 자세한 정보는 AWS CLI 명령 참조에서 create-db-cluster를 참조하세요.

  2. 다음 예제와 같이 AWS CLI describe-db-clusters 명령을 사용하여 DB 클러스터를 사용할 수 있는지 확인합니다.

    aws rds describe-db-clusters --db-cluster-identifier sample-replica-cluster

    describe-db-clusters 결과에 상태가 available로 표시되면 DB 클러스터의 기본 인스턴스를 만들어 복제를 시작합니다. 이렇게 하려면 다음 예제에서와 같이 AWS CLI create-db-instance 명령을 사용하면 됩니다.

    Linux, macOS, Unix:

    aws rds create-db-instance \ --db-cluster-identifier sample-replica-cluster \ --db-instance-class db.r3.large \ --db-instance-identifier sample-replica-instance \ --engine aurora

    Windows의 경우:

    aws rds create-db-instance ^ --db-cluster-identifier sample-replica-cluster ^ --db-instance-class db.r3.large ^ --db-instance-identifier sample-replica-instance ^ --engine aurora

    DB 인스턴스가 생성되어 사용할 수 있게 되면 복제가 시작됩니다. AWS CLI create-db-instance 명령을 호출하여 DB 인스턴스를 사용할 수 있는지를 파악할 수 있습니다.

API를 사용하여 리전 간 읽기 전용 복제본인 Aurora MySQL DB 클러스터를 만들려면
  1. 읽기 전용 복제본 DB 클러스터를 만들려는 AWS 리전에서 RDS API CreateDBCluster 작업을 호출합니다. ReplicationSourceIdentifier 파라미터를 포함시키고, 읽기 전용 복제본을 만들 원본 DB 클러스터의 Amazon 리소스 이름(ARN)을 지정합니다.

    ReplicationSourceIdentifier로 식별되는 DB 클러스터가 암호화되는 교차 리전 복제의 경우 KmsKeyId 파라미터를 지정하고 StorageEncrypted 파라미터를 true로 설정합니다.

    참고

    StorageEncryptedtrue로 지정하고 KmsKeyId의 값을 제공하여 암호화되지 않은 DB 클러스터에서 암호화된 읽기 전용 복제본으로 리전 간 복제를 설정할 수 있습니다. 이 경우 PreSignedUrl을 지정하지 않아도 됩니다.

    MasterUsernameMasterUserPassword 파라미터 값은 원본 DB 클러스터에서 가져오므로 포함시키지 않아도 됩니다.

    다음 코드 예에서는 us-west-2 리전의 암호화되지 않은 DB 클러스터 스냅샷에서 us-east-1 리전에 읽기 전용 복제본을 만듭니다. 이 작업은 us-east-1 리전에서 호출됩니다.

    https://rds.us-east-1.amazonaws.com/ ?Action=CreateDBCluster &ReplicationSourceIdentifier=arn:aws:rds:us-west-2:123456789012:cluster:sample-master-cluster &DBClusterIdentifier=sample-replica-cluster &Engine=aurora &SignatureMethod=HmacSHA256 &SignatureVersion=4 &Version=2014-10-31 &X-Amz-Algorithm=AWS4-HMAC-SHA256 &X-Amz-Credential=AKIADQKE4SARGYLE/20161117/us-east-1/rds/aws4_request &X-Amz-Date=20160201T001547Z &X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date &X-Amz-Signature=a04c831a0b54b5e4cd236a90dcb9f5fab7185eb3b72b5ebe9a70a4e95790c8b7

    다음 코드 예에서는 us-west-2 리전의 암호화된 DB 클러스터 스냅샷에서 us-east-1 리전에 읽기 전용 복제본을 만듭니다. 이 작업은 us-east-1 리전에서 호출됩니다.

    https://rds.us-east-1.amazonaws.com/ ?Action=CreateDBCluster &KmsKeyId=my-us-east-1-key &StorageEncrypted=true &PreSignedUrl=https%253A%252F%252Frds.us-west-2.amazonaws.com%252F %253FAction%253DCreateDBCluster %2526DestinationRegion%253Dus-east-1 %2526KmsKeyId%253Dmy-us-east-1-key %2526ReplicationSourceIdentifier%253Darn%25253Aaws%25253Ards%25253Aus-west-2%25253A123456789012%25253Acluster%25253Asample-master-cluster %2526SignatureMethod%253DHmacSHA256 %2526SignatureVersion%253D4 %2526Version%253D2014-10-31 %2526X-Amz-Algorithm%253DAWS4-HMAC-SHA256 %2526X-Amz-Credential%253DAKIADQKE4SARGYLE%252F20161117%252Fus-west-2%252Frds%252Faws4_request %2526X-Amz-Date%253D20161117T215409Z %2526X-Amz-Expires%253D3600 %2526X-Amz-SignedHeaders%253Dcontent-type%253Bhost%253Buser-agent%253Bx-amz-content-sha256%253Bx-amz-date %2526X-Amz-Signature%253D255a0f17b4e717d3b67fad163c3ec26573b882c03a65523522cf890a67fca613 &ReplicationSourceIdentifier=arn:aws:rds:us-west-2:123456789012:cluster:sample-master-cluster &DBClusterIdentifier=sample-replica-cluster &Engine=aurora &SignatureMethod=HmacSHA256 &SignatureVersion=4 &Version=2014-10-31 &X-Amz-Algorithm=AWS4-HMAC-SHA256 &X-Amz-Credential=AKIADQKE4SARGYLE/20161117/us-east-1/rds/aws4_request &X-Amz-Date=20160201T001547Z &X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date &X-Amz-Signature=a04c831a0b54b5e4cd236a90dcb9f5fab7185eb3b72b5ebe9a70a4e95790c8b7

    ReplicationSourceIdentifier로 식별되는 DB 클러스터가 암호화되는 AWS GovCloud(미국 동부)와 AWS GovCloud(미국 서부) 리전 간의 교차 리전 복제의 경우에도 PreSignedUrl 파라미터를 지정합니다. 미리 서명된 URL은 복제할 암호화된 DB 클러스터가 포함된 소스 AWS 리전에서 수행할 수 있는 CreateDBCluster API 작업에 대한 유효한 요청이어야 합니다. KMS 키 식별자는 읽기 전용 복제본을 암호화하는 데 사용되며, 대상 AWS 리전에 대해 유효한 KMS 키여야 합니다. 미리 서명된 URL을 수동이 아닌 자동으로 생성하려면 --source-region 옵션 대신 AWS CLI create-db-cluster 명령을 사용합니다.

  2. 다음 예제와 같이 RDS API DescribeDBClusters 작업을 사용하여 DB 클러스터를 사용할 수 있는지 확인합니다.

    https://rds.us-east-1.amazonaws.com/ ?Action=DescribeDBClusters &DBClusterIdentifier=sample-replica-cluster &SignatureMethod=HmacSHA256 &SignatureVersion=4 &Version=2014-10-31 &X-Amz-Algorithm=AWS4-HMAC-SHA256 &X-Amz-Credential=AKIADQKE4SARGYLE/20161117/us-east-1/rds/aws4_request &X-Amz-Date=20160201T002223Z &X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date &X-Amz-Signature=84c2e4f8fba7c577ac5d820711e34c6e45ffcd35be8a6b7c50f329a74f35f426

    DescribeDBClusters 결과에 상태가 available로 표시되면 DB 클러스터의 프라이머리 인스턴스를 만들어 복제를 시작합니다. 그러려면 다음 예제와 같이 RDS API CreateDBInstance 작업을 사용하세요.

    https://rds.us-east-1.amazonaws.com/ ?Action=CreateDBInstance &DBClusterIdentifier=sample-replica-cluster &DBInstanceClass=db.r3.large &DBInstanceIdentifier=sample-replica-instance &Engine=aurora &SignatureMethod=HmacSHA256 &SignatureVersion=4 &Version=2014-10-31 &X-Amz-Algorithm=AWS4-HMAC-SHA256 &X-Amz-Credential=AKIADQKE4SARGYLE/20161117/us-east-1/rds/aws4_request &X-Amz-Date=20160201T003808Z &X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date &X-Amz-Signature=125fe575959f5bbcebd53f2365f907179757a08b5d7a16a378dfa59387f58cdb

    DB 인스턴스가 생성되어 사용할 수 있게 되면 복제가 시작됩니다. AWS CLI DescribeDBInstances 명령을 호출하여 DB 인스턴스를 사용할 수 있는지를 파악할 수 있습니다.

Amazon Aurora MySQL 리전 간 복제본 보기

describe-db-clusters AWS CLI 명령 또는 DescribeDBClusters RDS API 작업을 호출하여 Amazon Aurora MySQL DB 클러스터에 대한 교차 리전 복제 관계를 확인할 수 있습니다. 응답에서 교차 리전 읽기 복제본 DB 클러스터의 DB 클러스터 식별자는 ReadReplicaIdentifiers 필드에서 확인하세요. 복제 소스인 소스 DB 클러스터의 ARN은 ReplicationSourceIdentifier 요소를 참조하세요.

읽기 전용 복제본을 DB 클러스터로 승격

Aurora MySQL 읽기 전용 복제본을 독립형 DB 클러스터로 승격할 수 있습니다. Aurora MySQL 읽기 전용 복제본을 승격하면 DB 인스턴스가 재부팅된 후에 사용 가능하게 됩니다.

일반적으로 소스 DB 클러스터가 실패할 경우 데이터 복구 체계로서 Aurora MySQL 읽기 전용 복제본을 독립형 DB 클러스터로 승격합니다.

이렇게 하려면 먼저 읽기 전용 복제본을 생성한 다음 원본 DB 클러스터에 장애가 있는지 모니터링합니다. 그 결과 장애가 발견된 경우에는 다음과 같이 실행합니다.

  1. 읽기 전용 복제본을 승격합니다.

  2. 데이터베이스 트래픽을 승격된 DB 클러스터로 유도합니다.

  3. 승격된 DB 클러스터를 원본으로 하는 교체용 읽기 전용 복제본을 생성합니다.

읽기 전용 복제본을 승격하면 읽기 전용 복제본은 독립형 Aurora DB 클러스터가 됩니다. 승격 프로세스는 읽기 전용 복제본의 크기에 따라 완료하는 데 몇 분 또는 더 오래도 걸릴 수 있습니다. 읽기 전용 복제본이 새 DB 클러스터로 승격된 후에는 다른 DB 인스턴스와 똑같습니다. 예를 들어, 해당 클러스터에서 읽기 전용 복제본을 생성하고 특정 시점으로 복구 작업을 수행할 수 있습니다. 또한 DB 클러스터의 Aurora 복제본을 생성할 수 있습니다.

승격된 DB 클러스터는 더 이상 읽기 전용 복제본이 아니기 때문에 복제 대상으로 사용할 수 없습니다.

다음 단계에서는 읽기 전용 복제본을 DB 클러스터로 승격하기 위한 일반적인 프로세스를 보여줍니다.

  1. 트랜잭션이 읽기 전용 복제본 소스 DB 클러스터에 더 이상 기록되지 않도록 한 다음, 읽기 전용 복제본의 업데이트가 모두 끝날 때까지 기다립니다. 읽기 전용 복제본의 데이터베이스 업데이트는 원본 DB 클러스터의 업데이트 후에 수행되며, 이러한 복제 지연은 경우에 따라 크게 다를 수 있습니다. ReplicaLag 지표를 사용하여 읽기 전용 복제본의 업데이트가 모두 완료되는 시간을 측정합니다. ReplicaLag 지표는 소스 DB 인스턴스를 기준으로 읽기 전용 복제본 DB 인스턴스의 지연 시간을 기록합니다. ReplicaLag 지표가 0에 도달하면 읽기 전용 복제본이 원본 DB 인스턴스를 따라잡은 것입니다.

  2. Amazon RDS 콘솔에서 승격(Promote) 옵션을 사용하거나, AWS CLI 명령 promote-read-replica-db-cluster를 사용하거나, PromoteReadReplicaDBCluster Amazon RDS API 작업을 사용하여 읽기 전용 복제본을 승격합니다.

    읽기 전용 복제본을 승격할 Aurora MySQL DB 인스턴스를 선택합니다. 읽기 전용 복제본이 승격된 후 Aurora MySQL DB 클러스터가 독립형 DB 클러스터로 승격됩니다. 장애 조치 우선 순위가 가장 높은 DB 인스턴스가 DB 클러스터의 기본 DB 인스턴스로 승격됩니다. 다른 DB 인스턴스는 Aurora 복제본이 됩니다.

    참고

    승격 프로세스는 완료할 때까지 몇 분 걸립니다. 읽기 전용 복제본을 승격하면 복제가 중지되고 DB 인스턴스가 재부팅됩니다. 재부팅이 완료되면 읽기 전용 복제본을 새 DB 클러스터로 사용할 수 있습니다.

Aurora MySQL 읽기 전용 복제본을 DB 클러스터로 승격하려면
  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/rds/에서 Amazon RDS 콘솔을 엽니다.

  2. 콘솔에서 인스턴스를 선택합니다.

    인스턴스 창이 표시됩니다.

  3. 인스턴스 창에서 승격하려는 읽기 전용 복제본을 선택합니다.

    읽기 전용 복제본이 Aurora MySQL DB 인스턴스로 나타납니다.

  4. 작업에서 읽기 전용 복제본 승격을 선택합니다.

  5. 승인 페이지에서 Promote Read Replica를 선택합니다.

읽기 전용 복제본을 DB 클러스터로 승격하려면 AWS CLI promote-read-replica-db-cluster 명령을 사용합니다.

Linux, macOS, Unix:

aws rds promote-read-replica-db-cluster \ --db-cluster-identifier mydbcluster

Windows의 경우:

aws rds promote-read-replica-db-cluster ^ --db-cluster-identifier mydbcluster

읽기 전용 복제본을 DB 클러스터로 승격하려면 PromoteReadReplicaDBCluster를 호출합니다.

Amazon Aurora MySQL 리전 간 복제본 문제 해결

Amazon Aurora 리전 간 읽기 전용 복제본을 만들 때 발생할 수 있는 일반적인 오류 메시지와 지정된 오류의 해결 방법이 아래에 목록으로 정리되어 있습니다.

원본 클러스터 [DB 클러스터 ARN]의 binlog가 활성화되어 있지 않음

이 문제를 해결하려면 원본 DB 클러스터에 대한 이진 로깅을 설정합니다. 자세한 내용은 시작하기 전 준비 사항 섹션을 참조하세요.

원본 클러스터 [DB 클러스터 ARN]에 라이터에서 동기화된 클러스터 파라미터 그룹이 없음

binlog_format DB 클러스터 파라미터를 업데이트했지만 DB 클러스터의 기본 인스턴스를 재부팅하지 않은 경우 이 오류가 발생합니다. DB 클러스터의 기본 인스턴스(라이터)를 재부팅하고 다시 시도하십시오.

원본 클러스터 [DB 클러스터 ARN]의 읽기 전용 복제본이 이미 이 리전에 있음

모든 AWS 리전에서 소스 DB 클러스터당 최대 5개의 교차 리전 DB 클러스터(읽기 전용 복제본)를 만들 수 있습니다. 특정 AWS 리전에 DB 클러스터에 대한 읽기 전용 복제본의 최대 개수가 이미 있는 경우, 해당 리전에서 교차 리전 DB 클러스터를 새로 생성하기 전에 기존 읽기 전용 복제본을 삭제해야 합니다.

DB 클러스터 [DB 클러스터 ARN]에서 리전 간 복제를 지원하려면 데이터베이스 엔진 업그레이드 필요

이 문제를 해결하려면 원본 DB 클러스터의 모든 인스턴스에 대해 데이터베이스 엔진 버전을 최신 데이터베이스 엔진 버전으로 업그레이드한 다음, 리전 간 읽기 전용 복제본 DB를 다시 만들어 보십시오.