읽기 전용 복제본을 독립 DB 인스턴스로 승격하기
읽기 전용 복제본을 독립 DB 인스턴스로 승격하기
읽기 전용 복제본(read replica)을 승격하면, 이제 복제가 아니라 독립된 하나의 DB 인스턴스로 사용할 수 있게 돼요. 소스 DB 인스턴스에 읽기 전용 복제본이 여러 개 있어도, 그중 하나만 승격해도 다른 복제본에는 전혀 영향을 주지 않아요.
출처: 문서
본문
읽기 전용 복제본을 독립 DB 인스턴스로 승격합니다.
읽기 전용 복제본을 독립 DB 인스턴스로 승격할 수 있어요. 소스 DB 인스턴스에 읽기 전용 복제본이 여러 개 있는 경우, 그중 하나의 읽기 전용 복제본을 DB 인스턴스로 승격해도 다른 복제본에는 아무런 영향이 없어요.
읽기 전용 복제본을 승격하면, RDS가 DB 인스턴스를 사용 가능하게 만들기 전에 인스턴스를 재부팅해요. 승격 과정은 읽기 전용 복제본의 크기에 따라 몇 분 또는 그 이상 걸릴 수 있어요.
읽기 전용 복제본을 승격하는 사용 사례
어떤 이유든 읽기 전용 복제본을 독립 DB 인스턴스로 승격하고 싶을 수 있어요. 자주 쓰이는 이유는 다음과 같아요.
장애 복구 구현 – 기본(primary) DB 인스턴스가 실패했을 때, 읽기 전용 복제본 승격을 데이터 복구 수단으로 사용할 수 있어요. 이 방식은 동기 복제, 자동 장애 감지, 장애 조치(failover)를 보완해 줘요.
비동기 복제의 영향과 한계를 잘 알고 있고, 그래도 데이터 복구를 위해 읽기 전용 복제본 승격을 사용하고 싶다면 사용하면 돼요. 이렇게 하려면 먼저 읽기 전용 복제본을 만들고, 기본 DB 인스턴스의 장애를 모니터링해야 해요. 장애가 발생하면 다음을 수행해요.
- 읽기 전용 복제본을 승격한다.
- 데이터베이스 트래픽을 승격된 DB 인스턴스로 보낸다.
- 승격된 DB 인스턴스를 소스로 삼아 교체용 읽기 전용 복제본을 새로 만든다.
스토리지 구성 업그레이드 – 소스 DB 인스턴스가 선호하는 스토리지 구성이 아니라면, 인스턴스의 읽기 전용 복제본을 만든 다음 스토리지 파일 시스템 구성을 업그레이드할 수 있어요. 이 옵션은 읽기 전용 복제본의 파일 시스템을 선호하는 구성으로 마이그레이션해 줘요. 그런 다음 읽기 전용 복제본을 독립 인스턴스로 승격하면 돼요.
이 옵션은 구형 32비트 파일 시스템의 스토리지와 파일 크기 제한을 극복하는 데 사용할 수 있어요. 자세한 내용은 DB 인스턴스의 스토리지 파일 시스템 업그레이드를 참고하세요.
이 옵션은 소스 DB 인스턴스가 최신 스토리지 구성이 아니거나, 같은 요청에서 DB 인스턴스 클래스를 수정하는 경우에만 사용할 수 있어요.
샤딩 – 샤딩은 "공유하지 않는(share-nothing)" 아키텍처를 구현하는 방식으로, 본질적으로 큰 데이터베이스를 여러 개의 작은 데이터베이스로 쪼개는 작업이에요. 데이터베이스를 나누는 흔한 방법 중 하나는 같은 쿼리에서 조인되지 않는 테이블을 서로 다른 호스트로 분리하는 것이에요. 또 다른 방법은 테이블을 여러 호스트에 복제해 두고, 해싱 알고리즘으로 특정 업데이트를 어느 호스트가 받을지 결정하는 거예요. 각 샤드(작은 데이터베이스)에 해당하는 읽기 전용 복제본을 만들고, 이들을 독립 샤드로 전환하기로 결정했을 때 승격하면 돼요. 그런 다음 요구사항에 따라 각 샤드의 키 공간(행을 나누는 경우)이나 테이블 분배를 조정할 수 있어요.
DDL 작업 수행(MySQL 및 MariaDB만 해당) – 인덱스 생성이나 재구축 같은 DDL 작업은 시간이 걸릴 뿐 아니라 DB 인스턴스에 상당한 성능 부담을 줘요. 읽기 전용 복제본이 기본 DB 인스턴스와 동기화된 후에는 MySQL 또는 MariaDB 읽기 전용 복제본에서 이런 작업을 수행할 수 있어요. 그런 다음 읽기 전용 복제본을 승격하고 애플리케이션이 승격된 인스턴스를 사용하도록 바꾸면 돼요.
참고
읽기 전용 복제본이 RDS for Oracle DB 인스턴스라면, 승격 대신 전환(switchover)을 수행할 수 있어요. 전환에서는 소스 DB 인스턴스가 새 복제본이 되고, 복제본이 새 소스 DB 인스턴스가 돼요. 자세한 내용은 Oracle Data Guard 전환 수행을 참고하세요.
승격된 읽기 전용 복제본의 특징
읽기 전용 복제본을 승격하면, 이 인스턴스는 읽기 전용 복제본으로 기능하지 않고 독립 DB 인스턴스가 돼요. 새 독립 DB 인스턴스는 다음과 같은 특징을 가져요.
- 독립 DB 인스턴스는 승격 전 읽기 전용 복제본이 가지고 있던 옵션 그룹과 파라미터 그룹을 그대로 유지해요.
- 독립 DB 인스턴스에서 읽기 전용 복제본을 만들고 시점 복구(point-in-time restore) 작업을 수행할 수 있어요.
- 더 이상 읽기 전용 복제본이 아니므로, 이 DB 인스턴스를 복제 대상으로 사용할 수 없어요.
읽기 전용 복제본 승격 전 사전 준비
읽기 전용 복제본을 승격하기 전에 다음을 수행하세요.
- 백업 전략을 검토하세요.
- 백업을 활성화하고 최소한 한 번의 백업을 완료하는 것을 권장해요. 백업 시간은 이전 백업 이후 데이터베이스에 발생한 변경량에 비례해요.
- 읽기 전용 복제본에서 백업을 활성화했다면, 일일 백업이 읽기 전용 복제본 승격을 방해하지 않도록 자동 백업 창을 구성하세요.
- 읽기 전용 복제본에
backing-up상태가 없는지 확인하세요. 이 상태에서는 읽기 전용 복제본을 승격할 수 없어요. - 기본 DB 인스턴스에 트랜잭션이 더 이상 기록되지 않도록 하고, RDS가 모든 업데이트를 읽기 전용 복제본에 적용할 때까지 기다리세요.
- 데이터베이스 업데이트는 기본 DB 인스턴스에서 발생한 후에 읽기 전용 복제본에도 적용돼요. 복제 지연(Replication lag)은 크게 달라질 수 있어요.
Replica Lag지표를 사용해 모든 업데이트가 읽기 전용 복제본에 적용된 시점을 확인하세요.
- 데이터베이스 업데이트는 기본 DB 인스턴스에서 발생한 후에 읽기 전용 복제본에도 적용돼요. 복제 지연(Replication lag)은 크게 달라질 수 있어요.
- (MySQL 및 MariaDB만 해당) 승격하기 전에 MySQL 또는 MariaDB 읽기 전용 복제본에 변경을 가하려면, 읽기 전용 복제본의 DB 파라미터 그룹에서
read_only파라미터를0으로 설정하세요. 그런 다음 인덱스 생성 같은 필요한 DDL 작업을 읽기 전용 복제본에서 수행할 수 있어요. 읽기 전용 복제본에서 수행한 작업은 기본 DB 인스턴스의 성능에 영향을 주지 않아요.
읽기 전용 복제본 승격: 기본 단계
다음 단계는 읽기 전용 복제본을 DB 인스턴스로 승격하는 일반적인 과정을 보여줘요.
-
Amazon RDS 콘솔에서
Promote옵션을 사용하거나, AWS CLI 명령promote-read-replica, 또는 Amazon RDS API 작업PromoteReadReplica를 사용해 읽기 전용 복제본을 승격하세요.참고
승격 과정은 몇 분 정도 걸려요. 읽기 전용 복제본을 승격하면 RDS는 복제를 중지하고 읽기 전용 복제본을 재부팅해요. 재부팅이 완료되면 읽기 전용 복제본은 새 DB 인스턴스로 사용할 수 있게 돼요.
-
(선택 사항) 새 DB 인스턴스를 Multi-AZ 배포로 수정하세요. 자세한 내용은 Amazon RDS DB 인스턴스 수정 및 Amazon RDS용 Multi-AZ 배포 구성 및 관리를 참고하세요.
읽기 전용 복제본을 독립 DB 인스턴스로 승격하려면
- AWS Management Console에 로그인하고 https://console.aws.amazon.com/rds/ 에서 Amazon RDS 콘솔을 엽니다.
- Amazon RDS 콘솔에서 Databases를 선택합니다.
- Databases 창이 나타나요. 각 읽기 전용 복제본은 Role 열에
Replica로 표시돼요.
- Databases 창이 나타나요. 각 읽기 전용 복제본은 Role 열에
- 승격하려는 읽기 전용 복제본을 선택합니다.
- Actions에서 Promote를 선택합니다.
- Promote Read Replica 페이지에서 새로 승격된 DB 인스턴스의 백업 보존 기간과 백업 창을 입력합니다.
- 설정이 원하는 대로 되었으면 Continue를 선택합니다.
- 확인 페이지에서 Promote Read Replica를 선택합니다.
AWS CLI로 승격하기
읽기 전용 복제본을 독립 DB 인스턴스로 승격하려면 AWS CLI promote-read-replica 명령을 사용하세요.
예시
Linux, macOS, Unix의 경우:
aws rds promote-read-replica \
--db-instance-identifier myreadreplica
Windows의 경우:
aws rds promote-read-replica ^
--db-instance-identifier myreadreplica
API로 승격하기
읽기 전용 복제본을 독립 DB 인스턴스로 승격하려면 필수 파라미터 DBInstanceIdentifier와 함께 Amazon RDS API PromoteReadReplica 작업을 호출하세요.