읽기 전용 복제본을 독립 DB 인스턴스로 승격
읽기 전용 복제본을 독립 실행형 DB 인스턴스로 승격할 수 있습니다. 원본 DB 인스턴스에 읽기 전용 복제본이 다수 있을 경우 읽기 전용 복제본 중 하나를 DB 인스턴스로 승격하더라도 나머지 복제본에는 아무런 영향도 끼치지 않습니다.
읽기 전용 복제본을 승격할 때 RDS는 DB 인스턴스를 사용할 수 있도록 하기 전에 DB 인스턴스를 재부팅합니다. 승격 프로세스는 읽기 전용 복제본의 크기에 따라 완료하는 데 몇 분 또는 더 오래도 걸릴 수 있습니다.
읽기 전용 복제본 승격 사용 사례
다음과 같은 이유로 읽기 전용 복제본을 독립형 DB 인스턴스로 승격할 수 있습니다.
-
장애 복구 실행(Implementing failure recovery) – 기본 DB 인스턴스에 장애가 발생할 경우 읽기 전용 복제본을 데이터 복구 체계로 사용할 수 있습니다. 이 방법은 동기식 복제, 장애 자동 감지 및 장애 조치를 보완합니다.
비동기식 복제의 영향이나 한계에 대해 알고 있더라도 데이터 복구를 위해 읽기 전용 복제본 승격을 사용할 수 있습니다. 이를 위해 먼저 읽기 전용 복제본을 생성한 다음 기본 DB 인스턴스의 장애 여부를 모니터링해야 합니다. 그 결과 장애가 발견된 경우에는 다음과 같이 실행합니다.
-
읽기 전용 복제본을 승격합니다.
-
데이터베이스 트래픽을 승격된 DB 인스턴스로 유도합니다.
-
승격된 DB 인스턴스를 원본으로 하는 교체용 읽기 전용 복제본을 생성합니다.
-
-
스토리지 구성 업그레이드 -소스 DB 인스턴스가 원하는 스토리지 구성이 아닌 경우, 인스턴스의 읽기 전용 복제본을 만들고 스토리지 파일 시스템 구성을 업그레이드할 수 있습니다. 이 옵션은 읽기 전용 복제본의 파일 시스템을 원하는 구성으로 마이그레이션합니다. 그런 다음 읽기 전용 복제본을 독립 실행형 인스턴스로 승격할 수 있습니다.
이 옵션을 사용하면 이전 32비트 파일 시스템의 스토리지 및 파일 크기 조정 제한을 극복할 수 있습니다. 자세한 내용은 DB 인스턴스의 스토리지 파일 시스템 업그레이드 단원을 참조하십시오.
이 옵션은 소스 DB 인스턴스가 최신 스토리지 구성을 사용하지 않거나 동일한 요청으로 DB 인스턴스 클래스를 수정하는 경우에만 사용할 수 있습니다.
-
샤딩 – 샤딩이란 "무공유(share-nothing)" 아키텍처를 구현함으로써 기본적으로 대규모 데이터베이스를 다수의 소규모 데이터베이스로 분할하는 기술입니다. 데이터베이스 분할은 동일한 쿼리에 조인되지 않은 테이블을 다른 호스트로 분할하는 방법이 일반적입니다. 그 밖에 테이블을 여러 호스트로 복사한 후 해싱 알고리즘을 사용해 어떤 호스트를 업데이트할지 결정하는 방법도 있습니다. 각 샤드(소규모 데이터베이스)에 해당하는 읽기 전용 복제본을 생성한 후 독립된 샤드로 변환하기로 결정 시 이러한 복제본을 승격할 수 있습니다. 그런 다음 각 샤드마다 요건에 따라 키 범위(행을 분할한 경우)나 배포된 테이블을 얻을 수 있습니다.
-
DDL 작업 실행(MySQL 및 MariaDB에 한함) – 인덱스를 생성하거나 리빌드하는 등의 DDL 작업은 시간이 걸릴 뿐만 아니라 DB 인스턴스에 상당한 성능 저하를 초래할 수 있습니다. MySQL 또는 MariaDB 읽기 전용 복제본에서 이러한 작업을 수행하려면 먼저 읽기 전용 복제본이 기본 DB 인스턴스와 동기화되어 있어야 합니다. 그런 다음 읽기 전용 복제본을 승격해야 애플리케이션이 승격된 인스턴스를 사용하도록 유도할 수 있습니다.
참고
읽기 전용 복제본이 RDS for Oracle DB 인스턴스인 경우 승격 대신 전환을 수행할 수 있습니다. 전환 시 소스 DB 인스턴스는 새 복제본이 되고 복제본은 새 소스 DB 인스턴스가 됩니다. 자세한 내용은 Oracle Data Guard 전환 수행 단원을 참조하십시오.
승격된 읽기 전용 복제본의 특징
일단 읽기 전용 복제본을 승격하고 나면 읽기 전용 복제본은 더 이상 읽기 전용 복제본으로 기능하지 않고 독립형 DB 인스턴스가 됩니다. 새 독립형 DB 인스턴스의 특성은 다음과 같습니다.
-
독립형 DB 인스턴스는 승격 전 읽기 전용 복제본의 옵션 그룹 및 파라미터 그룹을 그대로 보존합니다.
-
독립형 DB 인스턴스에서 읽기 전용 복제본을 생성하고 특정 시점 복원 작업을 수행할 수 있습니다.
-
DB 인스턴스는 더 이상 읽기 전용 복제본이 아니므로, 복제 대상으로 사용할 수 없습니다.
읽기 전용 복제본을 승격하기 위한 사전 조건
읽기 전용 복제본을 승격하려면 먼저 다음을 수행하세요.
-
백업 전략을 검토합니다.
-
백업을 활성화하고 하나 이상의 백업을 완성하는 것이 좋습니다. 백업 기간은 이전 백업 이후 데이터베이스에 대해 이루어진 변경 횟수를 지정하는 기능입니다.
-
읽기 전용 복제본에 대해 백업을 활성화한 경우 일일 백업이 읽기 전용 복제본 승격을 방해하지 않도록 자동 백업 기간을 구성하십시오.
-
읽기 전용 복제본이
backing-up
상태가 아닌지 확인합니다. 이 상태에서는 읽기 전용 복제본을 승격할 수 없습니다.
-
-
트랜잭션이 기본 DB 인스턴스에 기록되지 않도록 한 다음 RDS가 모든 업데이트를 읽기 전용 복제본에 적용할 때까지 기다립니다.
읽기 전용 복제본에서 수행된 데이터베이스 업데이트는 기본 DB 인스턴스의 업데이트가 끝난 후에 이어집니다. 복제 지연은 상당히 다양하게 나타날 수 있습니다.
Replica Lag
지표를 사용하여 읽기 전용 복제본의 업데이트가 모두 완료되는 시간을 측정합니다. -
(MySQL 및 MariaDB에 한함) MySQL 또는 MariaDB 읽기 전용 복제본을 승격하기 전에 변경하려면 읽기 전용 복제본의 DB 파라미터 그룹에서
read_only
파라미터를0
으로 설정합니다. 그래야만 인덱스 생성 등 필요한 DDL 작업을 모두 읽기 전용 복제본에서 실행할 수 있기 때문입니다. 읽기 전용 복제본에서 실행하는 작업은 기본 DB 인스턴스의 성능에 아무런 영향도 끼치지 않습니다.
읽기 전용 복제본 승격: 기본 단계
다음 단계는 읽기 전용 복제본을 DB 인스턴스로 승격하기 위한 일반적인 프로세스입니다.
-
Amazon RDS 콘솔의 승격(Promote) 옵션, AWS CLI 명령
promote-read-replica
또는PromoteReadReplica
Amazon RDS API 작업을 사용하여 읽기 전용 복제본을 승격합니다.참고
승격 프로세스는 완료할 때까지 몇 분 걸립니다. 읽기 전용 복제본을 승격하면 RDS가 복제를 중지하고 읽기 전용 복제본을 재부팅합니다. 재부팅이 완료되면 읽기 전용 복제본을 새 DB 인스턴스로 사용할 수 있습니다.
-
(선택 사항) 다중 AZ 배포가 되도록 새 DB 인스턴스를 수정합니다. 자세한 내용은 Amazon RDS DB 인스턴스 수정 및 Amazon RDS에 대한 다중 AZ 배포 구성 및 관리 단원을 참조하세요.
읽기 전용 복제본을 독립 실행형 DB 인스턴스로 승격하려면
AWS Management Console에 로그인한 후 https://console.aws.amazon.com/rds/
에서 Amazon RDS 콘솔을 엽니다. -
Amazon RDS 콘솔에서 데이터베이스를 선택합니다.
데이터베이스 창이 표시됩니다. 각 읽기 전용 복제본은 역할 열에 복제본이라고 표시됩니다.
-
승격시키려는 읽기 전용 복제본을 선택합니다.
-
작업에서 Promote(승격)를 선택합니다.
-
읽기 전용 복제본 승격(Promote Read Replica) 페이지에서 새롭게 승격된 DB 인스턴스의 백업 보존 기간과 백업 기간을 입력합니다.
-
원하는 대로 설정되었으면 [Continue]를 선택합니다.
-
승인 페이지에서 [Promote Read Replica]를 선택합니다.
읽기 전용 복제본을 독립 실행형 DB 인스턴스로 승격하려면 AWS CLI promote-read-replica
명령을 사용합니다.
예
대상 LinuxmacOS, 또는Unix:
aws rds promote-read-replica \ --db-instance-identifier
myreadreplica
Windows의 경우:
aws rds promote-read-replica ^ --db-instance-identifier
myreadreplica
읽기 전용 복제본을 독립형 DB 인스턴스로 승격하려면 필수 파라미터 DBInstanceIdentifier
를 사용하여 Amazon RDS API PromoteReadReplica
작업을 호출합니다.