DB 인스턴스 읽기 전용 복제본 작업
읽기 전용 복제본은 DB 인스턴스의 읽기 전용 사본입니다. 애플리케이션에서 읽기 전용 복제본으로 쿼리를 라우팅하여 프라이머리 DB 인스턴스의 로드를 줄일 수 있습니다. 이렇게 하면 읽기 중심의 데이터베이스 워크로드에 대한 단일 DB 인스턴스의 용량 제한에서 벗어나 탄력적으로 스케일 아웃할 수 있습니다.
Amazon RDS는 소스 DB 인스턴스의 읽기 전용 복제본을 생성하기 위해 DB 엔진의 기본 복제 기능을 사용합니다. 특정 엔진에서 읽기 전용 복제본을 사용하는 것에 대한 자세한 내용은 다음 단원을 참조하십시오.
소스 DB 인스턴스에서 읽기 전용 복제본을 생성하면 해당 소스가 프라이머리 DB 인스턴스가 됩니다. 프라이머리 DB 인스턴스를 업데이트하면 Amazon RDS가 읽기 전용 복제본에 비동기식으로 복사합니다. 다음 다이어그램은 다른 가용 영역(AZ)의 읽기 전용 복제본으로 복제되는 소스 DB 인스턴스를 보여 줍니다. 클라이언트는 기본 DB 인스턴스에 대한 읽기/쓰기 액세스 권한과 복제본에 대한 읽기 전용 액세스 권한을 가집니다.
읽기 전용 복제본에는 복제본에 사용된 DB 인스턴스 클래스와 동일한 요금이 표준 DB 인스턴스로 청구됩니다. 동일한 AWS 리전 내에서 원본 DB 인스턴스와 읽기 전용 복제본 간의 데이터 복제로 발생한 데이터 전송에 대해서는 요금이 부과되지 않습니다. 자세한 내용은 리전 간 복제 비용 및 Amazon RDS에 대한 DB 인스턴스 결제 단원을 참조하세요.
주제
Amazon RDS 읽기 전용 복제본의 개요
다음 섹션에서는 DB 인스턴스 읽기 전용 복제본에 대해 설명합니다. 다중 AZ DB 클러스터 읽기 전용 복제본에 대한 자세한 내용은 Amazon RDS의 다중 AZ DB 클러스터 읽기 전용 복제본 사용 섹션을 참조하세요.
주제
읽기 전용 복제본에 대한 사용 사례
지정된 원본 DB 인스턴스에 하나 이상의 읽기 전용 복제본을 배포하면 다음을 비롯해 다양한 시나리오에서 적용될 수 있습니다.
-
읽기 중심의 데이터베이스 워크로드를 위해 단일 DB 인스턴스의 컴퓨팅 파워 또는 I/O 용량을 확장합니다. 이 과도한 읽기 트래픽을 하나 이상의 읽기 전용 복제본으로 이동할 수 있습니다.
-
원본 DB 인스턴스를 사용할 수 없는 동안 읽기 트래픽을 처리합니다. 경우에 따라 백업 또는 예약된 유지 관리를 위한 I/O 일시 중단 등으로 인해 원본 DB 인스턴스가 I/O 요청을 처리하지 못할 수 있습니다. 이러한 경우 읽기 트래픽을 읽기 전용 복제본으로 리디렉션할 수 있습니다. 이 사용 사례의 경우 원본 DB 인스턴스를 사용할 수 없으므로 읽기 전용 복제본의 데이터가 "무효"일 수 있다는 점에 유의하십시오.
-
비즈니스 보고 또는 데이터 웨어하우징 시나리오에서는 프로덕션 DB 인스턴스가 아닌 읽기 전용 복제본에 대한 비즈니스 보고 쿼리를 실행할 수 있습니다.
-
재해 복구 구현 기본 DB 인스턴스가 실패할 경우 재해 복구 솔루션으로 읽기 전용 복제본을 독립형 인스턴스로 승격할 수 있습니다.
읽기 전용 복제본의 작동 방식
읽기 전용 복제본을 생성하면 먼저 기존 DB 인스턴스를 원본으로 지정합니다. 그런 다음 Amazon RDS가 소스 인스턴스의 스냅샷을 생성하여 해당 스냅샷에서 읽기 전용 인스턴스를 생성합니다. 그러면 Amazon RDS가 기본 DB 인스턴스를 변경할 때마다 DB 엔진에 비동기식 복제 방법을 사용하여 읽기 전용 복제본을 업데이트합니다.
읽기 전용 복제본은 읽기 전용 연결만을 허용하는 DB 인스턴스로 작동합니다. 탑재된 모드에서 복제본 데이터베이스를 지원하는 RDS for Oracle DB 엔진은 예외입니다. 탑재된 복제본은 사용자 연결을 허용하지 않으므로 읽기 전용 워크로드를 처리할 수 없습니다. 탑재된 복제본의 주된 용도는 리전 간 재해 복구입니다. 자세한 내용은 Amazon RDS의 Oracle의 읽기 전용 복제본 작업 단원을 참조하십시오.
애플리케이션은 DB 인스턴스에 연결되는 방식과 동일하게 읽기 전용 복제본에 연결됩니다. Amazon RDS는 소스 DB 인스턴스에서 모든 데이터베이스를 복제합니다.
다중 AZ 배포의 읽기 전용 복제본
다중 AZ 배포의 고가용성을 위해 구성된 대기 복제본이 있는 DB 인스턴스에 대해 읽기 전용 복제본을 구성할 수 있습니다. 대기 복제본을 사용한 복제는 동기식입니다. 읽기 전용 복제본과 다르게 대기 복제본은 읽기 트래픽을 처리할 수 없습니다.
다음 시나리오에서 클라이언트는 한 AZ의 프라이머리 DB 인스턴스에 대한 읽기/쓰기 액세스 권한을 가집니다. 프라이머리 인스턴스는 업데이트를 두 번째 AZ의 읽기 전용 복제본에 비동기적으로 복사하고 세 번째 AZ의 대기 복제본에도 동기적으로 복사합니다. 클라이언트는 읽기 전용 복제본에 대한 읽기 액세스 권한만 가집니다.
고가용성 및 대기 복제본에 대한 자세한 내용은 Amazon RDS에 대한 다중 AZ 배포 구성 및 관리 섹션을 참조하세요.
리전 간 읽기 전용 복제본
경우에 따라 읽기 전용 복제본이 프라이머리 DB 인스턴스와 다른 AWS 리전에 있습니다. 이러한 경우 Amazon RDS는 기본 DB 인스턴스와 읽기 전용 복제본 사이에 보안 통신 채널을 설정합니다. Amazon RDS는 보안 그룹 항목 추가와 같이 보안 채널을 활성화하는 데 필요한 모든 AWS 보안 구성을 설정합니다. 리전 간 읽기 전용 복제본에 대한 자세한 내용은 다른 AWS 리전에서 읽기 전용 복제본 생성 섹션을 참조하세요.
이 장의 정보는 소스 DB 인스턴스와 동일한 AWS 리전이나 별도의 AWS 리전에 Amazon RDS 읽기 전용 복제본을 생성할 때도 똑같이 적용됩니다. 하지만 Amazon EC2 인스턴스에서 실행되거나 온프레미스인 인스턴스로 복제를 설정할 때는 적용되지 않습니다.
DB 엔진용 읽기 전용 복제본 간의 차이점
Amazon RDS DB 엔진은 복제를 다르게 구현하기 때문에 다음 표와 같이 몇 가지 중요한 차이점을 알아야 합니다.
기능 또는 특성 | MySQL 및 MariaDB | Oracle | PostgreSQL | SQL 서버 |
---|---|---|---|---|
어떤 복제 방식을 사용합니까? |
논리적 복제 |
물리적 복제 |
물리적 복제 |
물리적 복제 |
트랜잭션 로그는 어떻게 삭제합니까? |
RDS for MySQL과 RDS for MariaDB는 적용되지 않은 이진 로그를 유지합니다. |
기본 DB 인스턴스에 리전 간 읽기 전용 복제본이 없는 경우 Amazon RDS for Oracle이 원본 DB 인스턴스에 대한 최소 2시간의 트랜잭션 로그를 유지합니다. 로그는 아카이브 로그 보존 시간 설정이 통과된 후 또는 두 시간 후 중에서 더 긴 시간이 경과한 후 원본 DB 인스턴스에서 제거됩니다. 설정이 데이터베이스에 성공적으로 적용된 경우에만 아카이브 로그 보존 시간 설정 통과 후 로그가 읽기 전용 복제본에서 제거됩니다. 경우에 따라 기본 DB 인스턴스에 하나 이상의 리전 간 읽기 전용 복제본이 있을 수 있습니다. 이 경우 Amazon RDS for Oracle은 원본 DB 인스턴스에 대한 트랜잭션 로그가 전송되어 모든 리전 간 읽기 전용 복제본에 적용될 때까지 이 로그를 유지합니다. 아카이브 로그 보존 시간 설정에 대한 자세한 내용은 보관된 다시 실행 로그 보존 단원을 참조하세요. |
PostgreSQL에는 데이터를 읽기 전용 복제본으로 보낼 때 유지할 Write Ahead Log(WAL) 파일 수를 결정하는 파라미터인 |
보조 복제본에 더 이상 필요하지 않은 경우 기본 복제본에 있는 트랜잭션 로그 파일의 VLF(가상 로그 파일)를 자를 수 있습니다. VLF는 복제본에서 로그 레코드가 강화된 경우에만 비활성으로 표시할 수 있습니다. 기본 복제본에 있는 디스크 하위 시스템의 속도에 관계없이 트랜잭션 로그는 가장 느린 복제본이 VLF를 강화할 때까지 VLF를 유지합니다. |
복제본에 쓰기가 가능합니까? |
예. MySQL 또는 MariaDB 읽기 전용 복제본은 쓰기가 가능하도록 활성화할 수 있습니다. |
아니요. Oracle 읽기 전용 복제본은 인쇄본이며 Oracle은 읽기 전용 복제본에 쓰기를 허용하지 않습니다. 읽기 전용 복제본을 쓰기 가능하도록 승격할 수 있습니다. 승격된 읽기 전용 복제본에는 승격 요청이 이루어진 시점까지 복제된 데이터가 있습니다. |
아니요. PostgreSQL 읽기 전용 복제본은 물리적 복사본이므로 PostgreSQL은 읽기 전용 복제본에 대해 쓰기를 허용하지 않습니다. |
아니요. SQL Server 읽기 전용 복제본은 물리적 복사본이며 쓰기도 허용하지 않습니다. 읽기 전용 복제본을 쓰기 가능하도록 승격할 수 있습니다. 승격된 읽기 전용 복제본에는 승격 요청이 이루어진 시점까지 복제된 데이터가 있습니다. |
복제본에 대해서도 백업이 가능합니까? |
예. RDS for MySQL 또는 RDS for MariaDB 읽기 전용 복제본에서는 자동 백업과 수동 스냅샷이 지원됩니다. |
예. RDS for Oracle 읽기 전용 복제본에서는 자동 백업과 수동 스냅샷이 지원됩니다. |
예. RDS for PostgreSQL 읽기 전용 복제본의 수동 스냅샷을 생성할 수 있습니다. 읽기 전용 복제본에 대한 자동 백업은 RDS for PostgreSQL 14.1 이상 버전에서만 지원됩니다. RDS for PostgreSQL 14.1 이전 버전의 PostgreSQL 읽기 전용 복제본에 대해서는 자동 백업을 설정할 수 없습니다. RDS for PostgreSQL 13 이전 버전의 경우 백업하려면 읽기 전용 복제본에서 스냅샷을 생성하면 됩니다. |
아니요. RDS for SQL Server 읽기 전용 복제본에서는 자동 백업과 수동 스냅샷이 지원되지 않습니다. |
병렬 복제 기능을 사용할 수 있습니까? |
예. 지원되는 모든 MariaDB 및 MySQL 버전은 병렬 복제 스레드가 가능합니다. |
예. 다시 실행 로그 데이터는 항상 기본 데이터베이스에서 모든 읽기 전용 복제본으로 병렬로 전송됩니다. |
아니요. PostgreSQL은 복제를 처리하는 단일 프로세스가 있습니다. |
예. 다시 실행 로그 데이터는 항상 기본 데이터베이스에서 모든 읽기 전용 복제본으로 병렬로 전송됩니다. |
읽기 전용 상태가 아닌 탑재된 상태로 복제본을 유지 관리할 수 있나요? |
아니요. |
예. 탑재된 복제본의 주된 용도는 리전 간 재해 복구입니다. 탑재된 복제본에는 Active Data Guard 라이선스가 필요하지 않습니다. 자세한 내용은 Amazon RDS의 Oracle의 읽기 전용 복제본 작업 섹션을 참조하세요. |
아니요. |
아니요. |
읽기 전용 복제본 스토리지 유형
기본적으로 읽기 전용 복제본은 원본 DB 인스턴스와 동일한 스토리지 유형과 함께 생성됩니다. 하지만 다음 표에 나와 있는 옵션에 따라 원본 DB 인스턴스와 다른 스토리지 유형을 가진 읽기 전용 복제본을 생성할 수도 있습니다.
원본 DB 인스턴스 스토리지 유형 | 원본 DB 인스턴스 스토리지 할당 | 읽기 전용 복제본 스토리지 유형 옵션 |
---|---|---|
프로비저닝된 IOPS | 100GiB–64TiB | 프로비저닝된 IOPS, 범용, 마그네틱 |
범용 | 100GiB–64TiB | 프로비저닝된 IOPS, 범용, 마그네틱 |
범용 | <100GiB | 범용, 마그네틱 |
Magnetic | 100GiB–6TiB | 프로비저닝된 IOPS, 범용, 마그네틱 |
Magnetic | <100GiB | 범용, 마그네틱 |
참고
읽기 복제본의 할당된 스토리지를 늘릴 때는 10% 이상이어야 합니다. 이 값을 10% 미만으로 늘리면 오류가 발생합니다.
복제본에서 복제본을 생성할 때의 제한 사항
Amazon RDS는 순환 복제를 지원하지 않습니다. DB 인스턴스를 기존 DB 인스턴스의 복제 소스로 구성할 수 없습니다. 기존 DB 인스턴스에서 새 읽기 전용 복제본만 생성할 수 있습니다. 예를 들어, MySourceDBInstance
을 ReadReplica1
으로 복제하는 경우, ReadReplica1
을 MySourceDBInstance
로 다시 복제하도록 구성할 수 없습니다.
RDS for MariaDB 및 RDS for MySQL과 특정 RDS for PostgreSQL 버전의 경우 기존 읽기 전용 복제본에서 읽기 전용 복제본을 생성할 수 있습니다. 예를 들어 기존 복제본 ReadReplica1
에서 새로운 읽기 전용 복제본 ReadReplica2
를 생성할 수 있습니다. RDS for Oracle 및 RDS for SQL Server의 경우 기존 읽기 전용 복제본에서 읽기 전용 복제본을 생성할 수 없습니다.
복제본 삭제 시 고려 사항
읽기 전용 복제본이 더 이상 필요하지 않은 경우, DB 인스턴스를 삭제하는 동일한 메커니즘을 사용하여 읽기 전용 복제본을 명시적으로 삭제할 수 있습니다. 동일한 AWS 리전에서 읽기 전용 복제본을 삭제하지 않고 소스 DB 인스턴스를 삭제하면 각 읽기 전용 복제본이 독립 실행형 DB 인스턴스로 승격됩니다. DB 인스턴스 삭제에 대한 자세한 내용은 DB 인스턴스 삭제 단원을 참조하세요. 읽기 전용 복제본 승격에 대한 자세한 내용은 읽기 전용 복제본을 독립 DB 인스턴스로 승격 단원을 참조하십시오.
교차 리전 읽기 전용 복제본이 있는 경우, 교차 리전 읽기 전용 복제본의 소스 DB 인스턴스 삭제와 관련된 고려 사항은 리전 간 복제 시 고려 사항 섹션을 참조하세요.