

# Amazon RDS에 대한 다중 AZ 배포 구성 및 관리
<a name="Concepts.MultiAZ"></a>

다중 AZ 배포에는 대기 DB 인스턴스가 하나 또는 두 개 있을 수 있습니다. 배포에 하나의 대기 DB 인스턴스가 있는 경우를 *다중 AZ DB 인스턴스 배포*라고 합니다. 다중 AZ DB 인스턴스 배포에는 장애 조치 지원을 제공하지만, 읽기 트래픽은 처리하지 않는 대기 DB 인스턴스가 하나 있습니다. 배포에 두 개의 대기 DB 인스턴스가 있는 경우를 *다중 AZ DB 클러스터 배포*라고 합니다. 다중 AZ DB 클러스터 배포에는 장애 조치 지원을 제공하고 읽기 트래픽도 처리할 수 있는 대기 DB 인스턴스가 있습니다.

AWS Management Console을 사용하여 다중 AZ 배포가 다중 AZ DB 인스턴스 배포인지 다중 AZ DB 클러스터 배포인지 확인할 수 있습니다. 탐색 창에서 **데이터베이스(Databases)**를 선택한 후 **DB 식별자(DB identifier)**를 선택합니다.
+ 다중 AZ DB 인스턴스 배포의 특징은 다음과 같습니다.
  + DB 인스턴스에는 행이 하나만 있습니다.
  + **역할(Role)** 값은 **인스턴스(Instance)** 또는 **기본(Primary)**입니다.
  + **다중 AZ(Multi-AZ)** 값은 **예(Yes)**입니다.
+ 다중 AZ DB 클러스터 배포의 특징은 다음과 같습니다.
  + 클러스터 수준 행에는 세 개의 DB 인스턴스 행이 있습니다.
  + 클러스터 수준 행의 경우 **역할(Role)** 값은 **다중 AZ DB 클러스터(Multi-AZ DB cluster)**입니다.
  + 각 인스턴스 수준 행에서 **역할(Role)** 값은 **라이터 인스턴스(Writer instance)** 또는 **리더 인스턴스(Reader instance)**입니다.
  + 각 인스턴스 수준 행에서 **다중 AZ(Multi-AZ)** 값은 **3 영역(3 Zones)**입니다.

**Topics**
+ [Amazon RDS에 대한 다중 AZ 인스턴스 배포](Concepts.MultiAZSingleStandby.md)
+ [Amazon RDS용 다중 AZ DB 클러스터 배포](multi-az-db-clusters-concepts.md)

또한 다음 주제는 DB 인스턴스와 다중 AZ DB 클러스터에 모두 적용됩니다.
+ [Amazon RDS 리소스에 태그 지정](USER_Tagging.md)
+ [Amazon RDS의 Amazon 리소스 이름(ARN)](USER_Tagging.ARN.md)
+ [Amazon RDS DB 인스턴스 스토리지 작업](USER_PIOPS.StorageTypes.md)
+ [DB 인스턴스 유지 관리](USER_UpgradeDBInstance.Maintenance.md)
+ [DB 인스턴스 엔진 버전 업그레이드](USER_UpgradeDBInstance.Upgrading.md)

# Amazon RDS에 대한 다중 AZ 인스턴스 배포
<a name="Concepts.MultiAZSingleStandby"></a>

Amazon RDS는 단일 대기 DB 인스턴스와 함께 다중 AZ 배포를 사용하여 DB 인스턴스에 대한 고가용성 및 장애 조치 지원을 제공합니다. 이러한 유형의 배포를 *다중 AZ DB 인스턴스 배포*라고 합니다. Amazon RDS는 다양한 기술을 통해 장애 조치 지원을 제공합니다. MariaDB, MySQL, Oracle, RDS Custom for SQL Server DB인스턴스용 다중 AZ 배포는 Amazon의 장애 조치 기술을 사용합니다. Microsoft SQL Server DB 인스턴스는 SQL Server 데이터베이스 미러링(DBM) 또는 상시 가동 가용성 그룹(AG)을 사용합니다. 다중 AZ에 대한 SQL Server 버전 지원에 대한 자세한 내용은 [Amazon RDS for Microsoft SQL Server의 다중 AZ 배포](USER_SQLServerMultiAZ.md) 섹션을 참조하세요. RDS Custom for SQL Server로 다중 AZ 작업을 수행하는 방법에 대한 내용은 [RDS Custom for SQL Server에 대한 다중 AZ 배포 구성 및 관리](custom-sqlserver-multiaz.md) 섹션을 참조하세요.

다중 AZ DB 인스턴스 배포에서 Amazon RDS는 자동으로 서로 다른 가용 영역에 동기식 대기 복제본을 프로비저닝하고 유지합니다. 프라이머리 DB 인스턴스는 전체 가용 영역에서 대기 복제본으로 동기식으로 복제되어 시스템 백업 중에 데이터 이중화를 제공하고 대기 시간 급증을 최소화합니다. DB 인스턴스를 고가용성으로 실행하면 계획된 시스템 유지 관리 중 가용성을 높일 수 있습니다. 또한, DB 인스턴스 오류 및 가용 영역 중단이 일어나지 않도록 방지할 수 있습니다. 가용 영역에 대한 자세한 내용은 [리전, 가용 영역 및 로컬 영역](Concepts.RegionsAndAvailabilityZones.md) 섹션을 참조하세요.

**참고**  
고가용성 옵션은 읽기 전용 시나리오에서는 확장 솔루션이 아닙니다. 대기 복제본을 사용하여 읽기 트래픽을 처리할 수 없습니다. 읽기 전용 트래픽을 처리하려면 대신 다중 AZ DB 클러스터 또는 읽기 전용 복제본을 사용해야 합니다. 다중 AZ DB 클러스터에 대한 자세한 내용은 [Amazon RDS용 다중 AZ DB 클러스터 배포](multi-az-db-clusters-concepts.md) 섹션을 참조하세요. 읽기 전용 복제본에 대한 자세한 내용은 [DB 인스턴스 읽기 전용 복제본 작업](USER_ReadRepl.md)을 참조하세요.

![\[고가용성 시나리오\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/images/con-multi-AZ.png)


RDS 콘솔을 통해 DB 인스턴스 생성 시 다중 AZ를 지정하여 간편하게 다중 AZ DB 인스턴스 배포를 생성할 수 있습니다. 콘솔을 통해 DB 인스턴스를 수정하고 다중 AZ 옵션을 지정하여 기존 DB 인스턴스를 다중 AZ DB 인스턴스 배포로 변환할 수 있습니다. 또한, AWS CLI 또는 Amazon RDS API를 사용하여 다중 AZ DB 인스턴스 배포를 지정할 수도 있습니다. [create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) 또는 [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) CLI 명령을 사용하거나 [CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) 또는 [ModifyDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) API 작업을 사용합니다.

RDS 콘솔에 예비 복제본(보조 AZ라고 함)의 가용 영역이 표시됩니다. 또한 [describe-db-instances](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) CLI 명령 또는 [DescribeDBInstances](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBInstances.html) API 작업을 사용하여 보조 AZ를 찾을 수도 있습니다.

다중 AZ DB 인스턴스 배포를 사용하는 DB 인스턴스는 단일 AZ 배포에 비해 쓰기 및 커밋 대기 시간이 길어질 수 있습니다. 이러한 현상은 동기식 데이터 복제가 발생하기 때문에 일어날 수 있습니다. AWS는 가용 영역 간 지연 시간이 짧은 네트워크 연결을 제공하도록 설계되었지만 배포가 예비 복제본으로 장애 조치될 경우 지연 시간이 변경될 수 있습니다. 프로덕션 워크로드의 경우 빠르고 일관된 성능을 제공할 수 있도록 프로비저닝된 IOPS(초당 입/출력 작업)를 사용하는 것이 좋습니다. DB 인스턴스 클래스에 대한 자세한 내용은 [DB 인스턴스 클래스](Concepts.DBInstanceClass.md) 섹션을 참조하세요.

# DB 인스턴스를 Amazon RDS용 다중 AZ 배포로 변환
<a name="Concepts.MultiAZ.Migrating"></a>

DB 인스턴스를 다중 AZ 배포로 수정하면 다른 가용 영역에 대기 인스턴스를 추가하여 가용성이 향상됩니다. 이 프로세스에는 가동 중지 시간이 최소화되며 스토리지 및 성능 영향에 대한 신중한 계획이 필요합니다. 이 변경 사항은 내결함성을 향상시키고 장애가 발생할 경우 복구 시간을 단축하므로 고가용성 환경에 이상적입니다.

단일 AZ 배포에 DB 인스턴스가 있고 이를 다중 AZ DB 인스턴스 배포로 수정하는 경우 Amazon RDS는 다음과 같은 작업을 수행합니다.

1. 기본 DB 인스턴스의 Amazon Elastic Block Store(EBS) 볼륨의 스냅샷을 만듭니다.

1. 스냅샷에서 스탠바이 복제본용 새 볼륨을 생성합니다. 이러한 볼륨은 백그라운드에서 초기화되며 데이터가 완전히 초기화된 후에 최대 볼륨 성능이 달성됩니다.

1. 기본 복제본과 대기 복제본의 볼륨 간의 동기 블록 수준 복제를 켭니다.

**중요**  
단일 AZ에서 다중 AZ로 변환하는 동안 스냅샷에서 대기 DB 인스턴스를 생성하면 가동 중지가 방지되지만 특히 쓰기에 민감한 워크로드의 경우 성능에 영향을 미칠 수 있습니다. 동기식 복제는 I/O 지연 시간을 늘려 데이터베이스 성능에 영향을 미칠 수 있습니다. 프로덕션 DB 인스턴스를 다중 AZ DB 인스턴스로 변환하지 않는 것이 가장 좋습니다.  
대신 읽기 전용 복제본을 생성하고, 백업을 활성화하고, 다중 AZ로 변환하고, 데이터를 볼륨으로 로드한 다음 프라이머리 DB 인스턴스로 승격합니다. 자세한 내용은 [DB 인스턴스 읽기 전용 복제본 작업](USER_ReadRepl.md) 섹션을 참조하세요.

다중 AZ DB 인스턴스 배포가 되도록 DB 인스턴스 수정하는 방법은 2가지가 있습니다.

**Topics**
+ [RDS 콘솔을 사용하여 다중 AZ DB 인스턴스 배포로 변환](#Concepts.MultiAZ.Migrating.Convert)
+ [다중 AZ DB 인스턴스 배포가 되도록 DB 인스턴스 수정](#Concepts.MultiAZ.Migrating.Modify)

## RDS 콘솔을 사용하여 다중 AZ DB 인스턴스 배포로 변환
<a name="Concepts.MultiAZ.Migrating.Convert"></a>

RDS 콘솔을 사용하여 DB 인스턴스를 다중 AZ DB 인스턴스 배포로 변환할 수 있습니다.

콘솔만 사용하여 변환을 완료할 수 있습니다. AWS CLI 또는 RDS API를 사용하려면 [다중 AZ DB 인스턴스 배포가 되도록 DB 인스턴스 수정](#Concepts.MultiAZ.Migrating.Modify)의 지침을 따르십시오.

**RDS 콘솔을 사용하여 다중 AZ DB 인스턴스 배포로 변환하려면**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

1. 탐색 창에서 **데이터베이스**를 선택한 다음 변경하려는 DB 인스턴스를 선택합니다.

1. **Actions**(작업)에서 **Convert to Multi-AZ deployment**(다중 AZ 배포로 변환)를 선택합니다.

1. 확인 페이지에서 **Apply immediately**(즉시 적용)을 선택하여 변경 사항을 즉시 적용합니다. 이 옵션을 선택하면 다운타임이 발생하지 않지만 성능이 영향을 받을 수 있습니다. 다음 유지 관리 기간에 업데이트를 적용하도록 선택할 수도 있습니다. 자세한 내용은 [수정 예약 설정 사용](USER_ModifyInstance.ApplyImmediately.md) 섹션을 참조하세요.

1. **Convert to Multi-AZ**(다중 AZ로 변환)를 선택합니다.

## 다중 AZ DB 인스턴스 배포가 되도록 DB 인스턴스 수정
<a name="Concepts.MultiAZ.Migrating.Modify"></a>

다음과 같은 방법으로 다중 AZ DB 인스턴스 배포가 되도록 DB 인스턴스를 수정할 수 있습니다.
+ RDS 콘솔을 사용하여 DB 인스턴스를 수정하고 **Multi-AZ deployment**(다중 AZ 배포)를 **Yes**(예)로 설정합니다.
+ AWS CLI를 사용하여 [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) 명령을 호출하고 `--multi-az` 옵션을 설정합니다.
+ RDS API를 사용하여 [ModifyDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) 작업을 호출하고 `MultiAZ` 파라미터를 `true`로 설정합니다.

DB 인스턴스 수정에 대한 자세한 내용은 [Amazon RDS DB 인스턴스 수정](Overview.DBInstance.Modifying.md) 섹션을 참조하세요. 수정이 완료되면 Amazon RDS는 과정 완료를 표시하는 이벤트(RDS-EVENT-0025)를 트리거합니다. Amazon RDS 이벤트를 모니터링할 수 있습니다. 이벤트에 대한 자세한 내용은 [Amazon RDS 이벤트 알림 작업](USER_Events.md) 단원을 참조하세요.

# Amazon RDS에 대한 다중 AZ DB 인스턴스 장애 조치
<a name="Concepts.MultiAZ.Failover"></a>

계획되거나 계획되지 않은 다중 AZ DB 인스턴스의 운영 중단으로 인해 인프라 장애가 발생한 경우, Amazon RDS는 자동으로 다른 가용 영역의 대기 복제본으로 전환됩니다.

장애 조치가 완료되는 데 소요되는 시간은 프라이머리 DB 인스턴스를 사용할 수 없게 된 시점의 데이터베이스 활동 및 기타 조건에 따라 달라집니다. 장애 조치에 소요되는 시간은 일반적으로 60–120초입니다. 그러나 트랜잭션의 규모가 크거나 복구 프로세스가 복잡한 경우 장애 조치에 소요되는 시간이 증가할 수 있습니다. 장애 조치가 완료되면 RDS 콘솔에 새 가용 영역이 반영되는 데 시간이 더 걸릴 수 있습니다.

**참고**  
다중 AZ DB 인스턴스를 재부팅할 때 장애 조치를 수동으로 강제할 수 있습니다. 자세한 내용은 [ DB 인스턴스 재부팅](USER_RebootInstance.md) 단원을 참조하십시오.

Amazon RDS는 자동으로 장애 조치를 취하여 관리자의 개입 없이 데이터베이스 작업을 신속하게 재개할 수 있도록 합니다. 다음 표에 설명된 조건 중 하나가 발생하면 기본 DB 인스턴스는 자동으로 예비 복제본으로 전환됩니다. 이 장애 조치 이유는 이벤트 로그에서 확인할 수 있습니다.


| 장애 조치 이유 | 설명 | 
| --- | --- | 
| RDS 데이터베이스 인스턴스 기반의 운영 체제가 오프라인 작업에서 패치되고 있습니다. |  OS 패치 또는 보안 업데이트를 위한 유지 관리 기간 동안 장애 조치가 트리거되었습니다. 자세한 내용은 [DB 인스턴스 유지 관리](USER_UpgradeDBInstance.Maintenance.md) 섹션을 참조하세요.  | 
| RDS 다중 AZ 인스턴스의 기본 호스트가 비정상입니다. | 다중 AZ DB 인스턴스 배포에서 손상된 프라이머리 DB 인스턴스를 감지하여 장애 조치를 수행했습니다. | 
| 네트워크 연결 손실로 인해 RDS 다중 AZ 인스턴스의 기본 호스트에 연결할 수 없습니다. |  RDS 모니터링이 기본 DB 인스턴스에 대한 네트워크 연결 실패를 감지하여 장애 조치를 트리거했습니다.  | 
| RDS 인스턴스를 고객이 수정했습니다. |  RDS DB 인스턴스 수정 때문에 장애 조치가 트리거되었습니다. 자세한 내용은 [Amazon RDS DB 인스턴스 수정](Overview.DBInstance.Modifying.md) 섹션을 참조하세요.  | 
| RDS 다중 AZ 기본 인스턴스가 사용 중이며 응답하지 않습니다. |  기본 DB 인스턴스가 응답하지 않습니다. 다음을 수행하는 것이 좋습니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/Concepts.MultiAZ.Failover.html) 이러한 권장 사항에 대한 자세한 내용은 [Amazon RDS의 모니터링 도구](MonitoringOverview.md) 및 [Amazon RDS의 모범 사례](CHAP_BestPractices.md) 단원을 참조하세요.  | 
| RDS 다중 AZ 인스턴스의 기본 호스트 기반의 스토리지 볼륨에 오류가 발생했습니다. | 다중 AZ DB 인스턴스 배포가 프라이머리 DB 인스턴스에서 스토리지 문제를 감지하여 장애 조치를 수행했습니다. | 
| 사용자가 DB 인스턴스의 장애 조치를 요청했습니다. |  사용자가 DB 인스턴스를 재부팅하고 **장애 조치를 사용하여 재부팅**을 선택했습니다. 자세한 내용은 [ DB 인스턴스 재부팅](USER_RebootInstance.md)을 참조하세요.  | 

다음 단계에 따라 다중 AZ DB 인스턴스가 장애 조치를 수행했는지 확인할 수 있습니다.
+ 장애 조치가 시작되었음을 이메일 또는 SMS로 사용자에게 알리도록 DB 이벤트 구독을 설정합니다. 이벤트에 대한 자세한 내용은 [Amazon RDS 이벤트 알림 작업](USER_Events.md) 단원을 참조하세요.
+ RDS 콘솔 또는 API 작업을 사용하여 DB 이벤트를 확인합니다.
+ RDS 콘솔 또는 API 작업을 사용하여 다중 AZ DB 인스턴스 배포의 현재 상태를 확인합니다.

장애 조치, 복구 시간 절감 및 기타 Amazon RDS 모범 사례에 대한 자세한 내용은 [Amazon RDS의 모범 사례](CHAP_BestPractices.md) 단원을 참조하세요.

## DNS 이름 조회를 위한 JVM TTL 설정
<a name="Concepts.MultiAZ.Failover.Java-DNS"></a>

장애 조치 메커니즘은 DB 인스턴스의 Domain Name System(DNS) 레코드가 예비 DB 인스턴스를 가리키도록 자동으로 변경합니다. 그 결과 DB 인스턴스의 기존 연결을 모두 재설정해야 합니다. Java 가상 머신(JVM) 환경에서 Java DNS 캐싱 메커니즘이 작동하는 방식 때문에 JVM 설정을 다시 구성해야 할 수 있습니다.

JVM은 DNS 이름 조회를 캐시합니다. JVM은 호스트 이름을 IP 주소로 확인하는 경우 *유지 시간*(TTL)이라고 하는 지정된 기간 동안 IP 주소를 캐싱합니다.

AWS 리소스는 간헐적으로 변경되는 DNS 이름 항목을 사용하므로 TTL 값을 60초 이하로 하여 JVM을 구성하는 것이 좋습니다. 이렇게 하면 리소스의 IP 주소가 변경될 때 애플리케이션이 DNS를 다시 쿼리하여 리소스의 새 IP 주소를 수신하고 사용할 수 있습니다.

일부 Java 구성에서는 JVM이 재시작될 때까지 DNS 항목을 새로 고치지 않도록 JVM 기본 TTL이 설정됩니다. 따라서 애플리케이션이 여전히 실행되는 동안 AWS 리소스의 IP 주소가 변경되는 경우 JVM을 수동으로 재시작하여 캐시된 IP 정보가 새로 고쳐질 때까지는 해당 리소스를 사용할 수 없습니다. 이 경우 캐시된 IP 정보를 정기적으로 새로 고치도록 JVM의 TTL을 설정하는 것이 중요합니다.

[https://docs.oracle.com/javase/7/docs/technotes/guides/net/properties.html](https://docs.oracle.com/javase/7/docs/technotes/guides/net/properties.html) 속성 값을 검색하여 JVM 기본 TTL을 가져올 수 있습니다.

```
String ttl = java.security.Security.getProperty("networkaddress.cache.ttl");
```

**참고**  
기본 TTL은 JVM 버전과 보안 관리자 설치 여부에 따라 다를 수 있습니다. 대부분의 JVM은 60초 미만의 기본 TTL을 제공합니다. 이러한 JVM을 사용 중이며 보안 관리자는 사용하지 않는 경우 이 주제의 나머지 내용을 무시해도 좋습니다. Oracle의 보안 관리자에 대한 자세한 내용은 Oracle 설명서의 [The Security Manager](https://docs.oracle.com/javase/tutorial/essential/environment/security.html)를 참조하십시오.

JVM의 TTL을 수정하려면 `networkaddress.cache.ttl` 속성 값을 설정합니다. 필요에 따라 다음 방법 중 하나를 사용합니다.
+ JVM을 사용하는 모든 애플리케이션에 대해 전역적으로 속성 값을 설정하려면 `networkaddress.cache.ttl` 파일에서 `$JAVA_HOME/jre/lib/security/java.security`을 설정합니다.

  ```
  networkaddress.cache.ttl=60									
  ```
+ 애플리케이션에만 로컬로 속성을 설정하려면 네트워크 연결이 설정되기 전에 애플리케이션의 초기화 코드에서 `networkaddress.cache.ttl`을 설정합니다.

  ```
  java.security.Security.setProperty("networkaddress.cache.ttl" , "60");								
  ```

# 추가 스토리지 볼륨이 있는 다중 AZ 장애 조치
<a name="MultiAZ.AdditionalStorageVolumes"></a>

다중 AZ 배포는 추가 스토리지 볼륨이 있는 DB 인스턴스를 지원합니다. 장애 조치 중에 RDS는 DB 인스턴스에 연결된 추가 스토리지 볼륨을 사용하여 대기 인스턴스로 자동으로 장애 조치합니다. 이 프로세스는 데이터 일관성과 가용성을 보장합니다.

추가 스토리지 볼륨이 있는 DB 인스턴스에 대해 다중 AZ 배포를 구성하면 Amazon RDS는 다른 가용 영역의 대기 인스턴스에 모든 볼륨을 자동으로 복제합니다. 복제된 스토리지에는 다음이 포함됩니다.
+ 기본 스토리지 볼륨
+ DB 인스턴스에 연결된 모든 추가 스토리지 볼륨

장애 조치 중에 Amazon RDS는 대기 인스턴스를 승격하고 모든 스토리지 볼륨을 사용할 수 있고 일관되게 유지합니다. 장애 조치는 볼륨 이름, 스토리지 유형 및 성능 특성을 포함하여 동일한 스토리지 구성을 유지합니다.

장애 조치가 성공하면 스토리지 구성 세부 정보를 확인하여 모든 스토리지 볼륨이 제대로 연결되고 액세스할 수 있는지 확인할 수 있습니다. 자세한 내용은 [DB 인스턴스의 스토리지 볼륨 세부 정보 보기](rds-storage-viewing.md) 섹션을 참조하세요.

추가 스토리지 볼륨이 있는 DB 인스턴스의 장애 조치 시간은 기본 스토리지만 있는 DB 인스턴스와 유사합니다.

# Amazon RDS용 다중 AZ DB 클러스터 배포
<a name="multi-az-db-clusters-concepts"></a>

**다중 AZ DB 클러스터 배포는 읽을 수 있는 복제 DB 인스턴스가 2개 있는 Amazon RDS의 반동기식 고가용성 배포 모드입니다. 다중 AZ DB 클러스터에는 동일한 AWS 리전에 있는 세 개의 개별 가용 영역에 라이터 DB 인스턴스와 두 개의 리더 DB 인스턴스가 있습니다. 다중 AZ DB 클러스터는 다중 AZ DB 인스턴스 배포에 비해 고가용성, 높은 읽기 워크로드 용량, 낮은 쓰기 대기 시간을 지원합니다.

[가동 중지 시간을 줄이면서 Amazon RDS for MySQL 데이터베이스로 데이터 가져오기](mysql-importing-data-reduced-downtime.md)의 지침에 따라 온프레미스 데이터베이스의 데이터를 다중 AZ DB 클러스터로 가져올 수 있습니다.

다중 AZ DB 클러스터에 대한 예약 DB 인스턴스를 구매할 수 있습니다. 자세한 내용은 [다중 AZ DB 클러스터에 대한 예약 DB 인스턴스](USER_WorkingWithReservedDBInstances.md#USER_WorkingWithReservedDBInstances.MultiAZDBClusters) 섹션을 참조하세요.

기능 가용성 및 해당 지원은 각 데이터베이스 엔진의 특정 버전 및 AWS 리전 리전에 따라 다릅니다. 다중 AZ DB 클러스터가 포함된 Amazon RDS의 버전 및 리전 가용성에 대한 자세한 내용은 [Amazon RDS에서 다중 AZ DB 클러스터를 지원하는 리전 및 DB 엔진](Concepts.RDS_Fea_Regions_DB-eng.Feature.MultiAZDBClusters.md) 단원을 참조하세요.

**Topics**
+ [다중 AZ DB 클러스터에서 사용 가능한 인스턴스 클래스](#multi-az-db-clusters-concepts.InstanceAvailability)
+ [다중 AZ DB 클러스터 아키텍처](#multi-az-db-clusters-concepts-overview)
+ [다중 AZ DB 클러스터용 파라미터 그룹](#multi-az-db-clusters-concepts-parameter-groups)
+ [RDS 프록시를 다중 AZ DB 클러스터와 함께 사용](#multi-az-db-clusters-proxy)
+ [복제본 지연 시간 및 다중 AZ DB 클러스터](#multi-az-db-clusters-concepts-replica-lag)
+ [다중 AZ DB 클러스터 스냅샷](#multi-az-db-clusters-concepts-snapshot)
+ [Amazon RDS용 다중 AZ DB 클러스터 생성](create-multi-az-db-cluster.md)
+ [Amazon RDS에서 다중 AZ DB 클러스터에 연결](multi-az-db-clusters-concepts-connection-management.md)
+ [AWS 컴퓨팅 리소스와 다중 AZ DB 클러스터 자동 연결](multi-az-compute-rds-connect.md)
+ [Amazon RDS용 다중 AZ DB 클러스터 수정](modify-multi-az-db-cluster.md)
+ [Amazon RDS에서 다중 AZ DB 클러스터의 엔진 버전 업그레이드](multi-az-db-clusters-upgrading.md)
+ [Amazon RDS용 다중 AZ DB 클러스터 이름 변경](multi-az-db-cluster-rename.md)
+ [Amazon RDS에서 다중 AZ DB 클러스터 및 리더 DB 인스턴스 재부팅](multi-az-db-clusters-concepts-rebooting.md)
+ [Amazon RDS용 다중 AZ DB 클러스터 장애 조치](multi-az-db-clusters-concepts-failover.md)
+ [Amazon RDS의 다중 AZ DB 클러스터에 PostgreSQL 논리적 복제 설정](USER_MultiAZDBCluster_LogicalRepl.md)
+ [Amazon RDS의 다중 AZ DB 클러스터 읽기 전용 복제본 사용](USER_MultiAZDBCluster_ReadRepl.md)
+ [Amazon RDS의 다중 AZ DB 클러스터에서 외부 복제 설정](multi-az-db-clusters-external-replication.md)
+ [Amazon RDS용 다중 AZ DB 클러스터 삭제](USER_DeleteMultiAZDBCluster.Deleting.md)
+ [Amazon RDS 다중 AZ DB 클러스터의 제한](multi-az-db-clusters-concepts.Limitations.md)

**중요**  
다중 AZ DB 클러스터는 Aurora DB 클러스터와 동일하지 않습니다. Aurora DB 클러스터에 대한 자세한 내용은 [Amazon Aurora 사용 설명서](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html)를 참조하세요.

## 다중 AZ DB 클러스터에서 사용 가능한 인스턴스 클래스
<a name="multi-az-db-clusters-concepts.InstanceAvailability"></a>

다중 AZ DB 클러스터 배포는 `db.m5d`, `db.m6gd`, `db.m6id`, `db.m6idn`, `db.r5d`, `db.r6gd`, `db.x2iedn`, `db.r6id`, `db.r6idn` 및 `db.c6gd` DB 인스턴스 클래스에 지원됩니다.

**참고**  
c6gd 인스턴스 클래스는 `medium` 인스턴스 크기를 지원하는 유일한 인스턴스 클래스입니다.

DB 인스턴스 클래스에 대한 자세한 내용은 [DB 인스턴스 클래스](Concepts.DBInstanceClass.md) 섹션을 참조하세요.

## 다중 AZ DB 클러스터 아키텍처
<a name="multi-az-db-clusters-concepts-overview"></a>

다중 AZ DB 클러스터에서는 Amazon RDS가 DB 엔진의 네이티브 복제 기능을 사용하여 라이터 DB 인스턴스의 데이터를 두 리더 DB 인스턴스로 복제합니다. 라이터 DB 인스턴스가 변경되면 각 리더 DB 인스턴스로 전송됩니다.

다중 AZ DB 클러스터 배포에서는 변경 사항을 커밋하려면 하나 이상의 리더 DB 인스턴스의 승인을 받아야 하는 반동기식 복제를 사용합니다. *모든* 복제본에서 이벤트가 완전히 실행되고 커밋되었음을 승인하는 작업은 필요하지 않습니다.

리더 DB 인스턴스는 자동 장애 조치 대상 역할을 하며 읽기 트래픽을 제공하여 애플리케이션 읽기 처리량을 높입니다. 라이터 DB 인스턴스에서 중단이 발생하는 경우 RDS는 어느 리더 DB 인스턴스가 장애 조치 대상이 되는지를 관리합니다. RDS는 어느 리더 DB 인스턴스의 가장 최근 변경 기록을 기준으로 이를 수행합니다.

다음 다이어그램은 다중 AZ DB 클러스터를 보여줍니다.

![\[다중 AZ DB 클러스터\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/images/multi-az-db-cluster.png)


일반적으로 다중 AZ DB 클러스터는 다중 AZ DB 인스턴스 배포에 비해 쓰기 대기 시간이 짧습니다. 또한 읽기 전용 워크로드가 리더 DB 인스턴스에서 실행되도록 허용합니다. RDS 콘솔에는 라이터 DB 인스턴스의 가용 영역과 리더 DB 인스턴스의 가용 영역이 표시됩니다. [describe-db-clusters](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-clusters.html) CLI 명령이나 [DescribeDBClusters](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBClusters.html) API 작업을 사용하여 이 정보를 찾아볼 수도 있습니다.

**중요**  
RDS for MySQL 다중 AZ DB 클러스터의 복제 오류를 방지하려면 모든 테이블에 프라이머리 키가 있는 것이 좋습니다.

## 다중 AZ DB 클러스터용 파라미터 그룹
<a name="multi-az-db-clusters-concepts-parameter-groups"></a>

다중 AZ DB 클러스터에서 *DB 클러스터 파라미터 그룹*은 다중 AZ DB 클러스터의 모든 DB 인스턴스에 적용되는 엔진 구성 값에 대한 컨테이너 역할을 합니다.

다중 AZ DB 클러스터에서 *DB 파라미터 그룹*은 DB 엔진 및 DB 엔진 버전에 대한 기본 DB 파라미터 그룹으로 설정됩니다. DB 클러스터 파라미터 그룹의 설정은 클러스터의 모든 DB 인스턴스에 사용됩니다.

파라미터 그룹에 대한 자세한 내용은 [다중 AZ DB 클러스터용 DB 클러스터 파라미터 그룹 작업](USER_WorkingWithDBClusterParamGroups.md) 단원을 참조하세요.

## RDS 프록시를 다중 AZ DB 클러스터와 함께 사용
<a name="multi-az-db-clusters-proxy"></a>

Amazon RDS 프록시를 사용하여 다중 AZ DB 클러스터의 프록시를 만들 수 있습니다. RDS 프록시를 사용하면 애플리케이션이 데이터베이스 연결을 풀링하고 공유할 수 있어 확장 기능을 향상할 수 있습니다. 각 프록시는 연결 재사용이라고도 하는 연결 **멀티플렉싱을 수행합니다. 멀티플렉싱을 사용하면 RDS 프록시가 하나의 기본 데이터베이스 연결을 사용하여 한 트랜잭션에 대한 모든 작업을 수행합니다. 또한, RDS 프록시는 다중 AZ DB 클러스터의 마이너 버전 업그레이드로 인한 가동 중지 시간을 1초 이하로 줄일 수 있습니다. RDS 프록시의 이점에 대한 자세한 내용은 [ Amazon RDS Proxy](rds-proxy.md) 섹션을 참조하세요.

다중 AZ DB 클러스터에 프록시를 설정하려면 클러스터를 생성할 때 **RDS 프록시 생성**을 선택합니다. RDS 프록시 엔드포인트를 생성하고 관리하는 방법에 대한 지침은 [Amazon RDS 프록시 엔드포인트 작업](rds-proxy-endpoints.md) 섹션을 참조하세요.

## 복제본 지연 시간 및 다중 AZ DB 클러스터
<a name="multi-az-db-clusters-concepts-replica-lag"></a>

*복제본 지연 시간*은 리더 DB 인스턴스에서 가장 최근에 적용된 트랜잭션과 라이터 DB 인스턴스에서 가장 최근 트랜잭션 사이의 시간 차이입니다. Amazon CloudWatch 지표 `ReplicaLag`는 이 시차를 나타냅니다. CloudWatch 지표에 대한 자세한 내용은 [Amazon CloudWatch로 Amazon RDS 지표 모니터링](monitoring-cloudwatch.md) 섹션을 참조하세요.

다중 AZ DB 클러스터는 높은 쓰기 성능을 허용하지만 엔진 기반 복제의 특성으로 인해 복제본 지연이 계속 발생할 수 있습니다. 모든 장애 조치는 새 라이터 DB 인스턴스를 승격하기 전에 먼저 복제본 지연을 해결해야 하므로 이 복제본 지연을 모니터링하고 관리하는 것이 고려 사항입니다.

RDS for MySQL 다중 AZ DB 클러스터용 장애 조치 시간은 나머지 리더 DB 인스턴스의 복제본 지연에 따라 달라집니다. 두 리더 DB 인스턴스는 모두 적용되지 않은 트랜잭션을 적용해야 그 중 하나가 새 라이터 DB 인스턴스로 승격됩니다.

RDS for PostgreSQL 다중 AZ DB 클러스터용 장애 조치 시간은 가장 낮은 나머지 리더 DB 인스턴스의 복제본 지연에 따라 달라집니다. 가장 낮은 복제본 지연을 가진 리더 DB 인스턴스는 모두 적용되지 않은 트랜잭션을 적용해야 새 라이터 DB 인스턴스로 승격됩니다.

복제본 지연이 설정된 시간을 초과할 때 CloudWatch 경보를 생성하는 방법을 보여주는 자습서는 [자습서: Amazon RDS에 대한 다중 AZ DB 클러스터 복제본 지연에 대한 Amazon CloudWatch 경보 생성](multi-az-db-cluster-cloudwatch-alarm.md) 섹션을 참조하세요.

### 복제본 지연의 일반적인 원인
<a name="multi-az-db-clusters-concepts-replica-lag-causes"></a>

일반적으로 복제본 지연은 쓰기 워크로드가 너무 높아 리더 DB 인스턴스가 트랜잭션을 효율적으로 적용할 수 없을 때 발생합니다. 다양한 워크로드로 인해 일시적 또는 지속적인 복제본 지연이 발생할 수 있습니다. 다음은 몇 가지 일반적인 원인의 예입니다.
+ 라이터 DB 인스턴스의 높은 쓰기 동시성 또는 대량 일괄 업데이트로 인해 리더 DB 인스턴스의 적용 프로세스가 뒤쳐집니다.
+ 하나 이상의 리더 DB 인스턴스의 리소스를 사용하는 대량 읽기 워크로드입니다. 느리거나 큰 쿼리를 실행하면 적용 프로세스에 영향이 있고 복제본 지연이 발생할 수 있습니다.
+ 데이터베이스가 커밋 순서를 유지해야 하기 때문에 대량의 데이터 또는 DDL 문을 수정하는 트랜잭션으로 인해 복제본 지연 시간이 일시적으로 증가하는 경우가 있습니다.

### 복제본 지연 완화
<a name="multi-az-db-clusters-concepts-replica-lag-mitigating"></a>

RDS for MySQL 및 RDS for PostgreSQL용 다중 AZ DB 클러스터의 경우 라이터 DB 인스턴스의 로드를 줄여 복제본 지연을 완화할 수 있습니다. 흐름 제어를 사용하여 복제본 지연을 줄일 수도 있습니다. *흐름 제어*는 라이터 DB 인스턴스에서 쓰기를 제한하여 작동하므로 복제본 지연 시간이 계속해서 무제한으로 증가하지 않도록 합니다. 쓰기 제한은 트랜잭션 끝에 지연을 추가하여 수행되며, 이로 인해 라이터 DB 인스턴스의 쓰기 처리량이 감소합니다. 흐름 제어가 지연 제거를 보장하지는 않지만 많은 워크로드에서 전반적인 지연을 줄이는 데 도움이 될 수 있습니다. 다음 섹션에서는 RDS for MySQL 및 RDS PostgreSQL로 흐름 제어를 사용하는 방법을 제공합니다.

#### RDS for MySQL에 대한 흐름 제어를 통해 복제본 지연 완화
<a name="multi-az-db-clusters-concepts-replica-lag-mitigating.mysql"></a>

RDS for MySQL 다중 AZ DB 클러스터를 사용하는 경우 동적 파라미터 `rpl_semi_sync_master_target_apply_lag`을 사용하면 흐름 제어가 기본적으로 활성화됩니다. 이 파라미터는 복제본 지연에 대해 원하는 상한을 지정합니다. 복제본 지연이 구성된 제한에 가까워지면 흐름 제어는 라이터 DB 인스턴스의 쓰기 트랜잭션을 제한하여 지정된 값보다 낮은 복제본 지연을 포함하려고 시도합니다. 경우에 따라 복제본 지연이 지정된 제한을 초과할 수 있습니다. 기본적으로 이 파라미터는 120초로 설정됩니다. 흐름 제어를 비활성화하려면 이 파라미터를 최대 값 86,400초(하루)로 설정합니다.

흐름 제어에 의해 주입된 현재 지연을 보려면 다음 쿼리를 실행하여 `Rpl_semi_sync_master_flow_control_current_delay` 파라미터를 표시하세요.

```
SHOW GLOBAL STATUS like '%flow_control%';
```

출력은 다음과 비슷한 형태가 됩니다.

```
+-------------------------------------------------+-------+
| Variable_name                                   | Value |
+-------------------------------------------------+-------+
| Rpl_semi_sync_master_flow_control_current_delay | 2010  |
+-------------------------------------------------+-------+
1 row in set (0.00 sec)
```

**참고**  
지연은 마이크로초 단위로 표시됩니다.

RDS for MySQL Multi-AZ DB 클러스터에서 성능 개선 도우미를 활성화하면 흐름 제어에 의해 쿼리가 지연되었음을 나타내는 해당 SQL 문 대기 이벤트를 모니터링할 수 있습니다. 흐름 제어에 의해 지연이 발생했을 때 성능 개선 도우미 대시보드의 해당 SQL 문에서 `/wait/synch/cond/semisync/semi_sync_flow_control_delay_cond` 대기 이벤트를 볼 수 있습니다. 이러한 지표를 보려면 성능 스키마가 켜져 있는지 확인합니다. 성능 개선 도우미에 대한 자세한 내용은 [성능 개선 도우미를 통한 Amazon RDS 모니터링](USER_PerfInsights.md) 섹션을 참조하세요.

#### RDS for PostgreSQL에 대한 흐름 제어를 통해 복제본 지연 완화
<a name="multi-az-db-clusters-concepts-replica-lag-mitigating.postgresql"></a>

RDS for PostgreSQL용 다중 AZ DB 클러스터를 사용하면 흐름 제어가 확장으로 배포됩니다. 이는 DB 클러스터의 모든 DB 인스턴스에 대해 백그라운드 작업자를 켭니다. 기본적으로 리더 DB 인스턴스의 백그라운드 작업자는 현재 복제본 지연을 라이터 DB 인스턴스의 백그라운드 작업자에게 알립니다. 리더 DB 인스턴스에서 지연이 2분을 초과하면 라이터 DB 인스턴스의 백그라운드 작업자가 트랜잭션 종료 시 지연을 추가합니다. 지연 임계값을 제어하려면 `flow_control.target_standby_apply_lag` 파라미터를 사용합니다.

흐름 제어가 PostgreSQL 프로세스를 제한하면 `pg_stat_activity` 및 성능 개선 도우미의 `Extension` 대기 이벤트가 이를 나타냅니다. 함수 `get_flow_control_stats`는 현재 추가되고 있는 지연 시간에 대한 세부 정보를 표시합니다.

흐름 제어는 짧지만 동시 트랜잭션이 많은 대부분의 온라인 트랜잭션 처리(OLTP) 워크로드에 이상적입니다. 배치 작업과 같은 장기 실행 트랜잭션으로 인해 지연이 발생하는 경우 흐름 제어는 큰 이점을 제공하지 않습니다.

`shared_preload_libraries`에서 확장을 제거하고 DB 인스턴스를 재부팅하여 흐름 제어를 해제할 수 있습니다.

## 다중 AZ DB 클러스터 스냅샷
<a name="multi-az-db-clusters-concepts-snapshot"></a>

Amazon RDS는 구성된 백업 기간 동안 다중 AZ DB 클러스터의 자동 백업을 생성하고 저장합니다. RDS는 개별 인스턴스가 아닌 전체 클러스터를 백업하여 DB 클러스터의 스토리지 볼륨 스냅샷을 생성합니다.

다중 AZ DB 클러스터의 수동 백업을 수행할 수도 있습니다. 매우 장기간 백업하려면 스냅샷 데이터를 Amazon S3로 내보내는 것을 고려합니다. 자세한 내용은 [Amazon RDS용 다중 AZ DB 클러스터 스냅샷 생성](USER_CreateMultiAZDBClusterSnapshot.md) 섹션을 참조하세요.

다중 AZ DB 클러스터를 특정 시점으로 복원하여 새 다중 AZ DB 클러스터를 생성할 수 있습니다. 지침은 [다중 AZ DB 클러스터를 특정 시점으로 복원](USER_PIT.MultiAZDBCluster.md) 섹션을 참조하세요.

또는 다중 AZ DB 클러스터 스냅샷을 단일 AZ 배포 또는 다중 AZ DB 인스턴스 배포에 복원할 수 있습니다. 지침은 [다중 AZ DB 클러스터 스냅샷에서 DB 인스턴스로 복원](USER_RestoreFromMultiAZDBClusterSnapshot.md) 단원을 참조하세요.

# Amazon RDS용 다중 AZ DB 클러스터 생성
<a name="create-multi-az-db-cluster"></a>

다중 AZ DB 클러스터에는 라이터 DB 인스턴스와 두 개의 리더 DB 인스턴스가 세 개의 개별 가용 영역에 있습니다. 다중 AZ DB 클러스터는 다중 AZ 배포에 비해 고가용성, 높은 읽기 워크로드 용량 및 짧은 대기 시간을 제공합니다. 다중 AZ DB 클러스터에 대한 자세한 내용은 [Amazon RDS용 다중 AZ DB 클러스터 배포](multi-az-db-clusters-concepts.md) 섹션을 참조하세요.

**참고**  
다중 AZ DB 클러스터는 MySQL 및 PostgreSQL DB 엔진에서만 지원됩니다.

## DB 클러스터 사전 조건
<a name="create-multi-az-db-cluster-prerequisites"></a>

**중요**  
다중 AZ DB 클러스터를 생성할 수 있으려면 먼저 [Amazon RDS 환경 설정](CHAP_SettingUp.md) 단원의 작업들을 완료해야 합니다.

다음은 다중 AZ DB 클러스터를 생성하기 전에 완료해야 하는 전제 조건입니다.

**Topics**
+ [DB 클러스터의 네트워크 구성](#create-multi-az-db-cluster-prerequisites-VPC)
+ [추가 사전 조건](#create-multi-az-db-cluster-prerequisites-additional)

### DB 클러스터의 네트워크 구성
<a name="create-multi-az-db-cluster-prerequisites-VPC"></a>

Amazon VPC 서비스 기반의 Virtual Private Cloud(VPC)에서만 다중 AZ DB 클러스터를 생성할 수 있습니다. 가용 영역이 3개 이상 있는 AWS 리전에 있어야 합니다. DB 클러스터에 대해 선택한 DB 서브넷 그룹은 세 개 이상의 가용 영역을 포함해야 합니다. 이 구성은 DB 클러스터의 각 DB 인스턴스가 서로 다른 가용 영역에 있도록 합니다.

새 DB 클러스터와 동일한 VPC의 Amazon EC2 인스턴스 간에 연결을 설정하려는 경우 DB 클러스터 생성 시 설정합니다. 동일한 VPC의 EC2 인스턴스 이외의 리소스에서 DB 클러스터에 연결하려는 경우 네트워크 연결을 수동으로 구성합니다.

**Topics**
+ [EC2 인스턴스와의 자동 네트워크 연결 구성](#create-multi-az-db-cluster-prerequisites-VPC-automatic)
+ [네트워크 수동 구성](#create-multi-az-db-cluster-prerequisites-VPC-manual)

#### EC2 인스턴스와의 자동 네트워크 연결 구성
<a name="create-multi-az-db-cluster-prerequisites-VPC-automatic"></a>

다중 AZ DB 클러스터를 생성할 때 AWS Management Console을 사용하여 EC2 인스턴스와 새 DB 클러스터 간의 연결을 설정할 수 있습니다. 이렇게 하면 RDS가 VPC 및 네트워크 설정을 자동으로 구성합니다. DB 클러스터는 EC2 인스턴스가 DB 클러스터에 액세스할 수 있도록 EC2 인스턴스와 동일한 VPC에 생성됩니다.

다음은 EC2 인스턴스를 DB 클러스터와 연결하기 위한 요구 사항입니다.
+ DB 클러스터를 생성하려면 먼저 EC2 인스턴스가 AWS 리전에 있어야 합니다.

  AWS 리전에 EC2 인스턴스가 없는 경우 콘솔은 인스턴스를 생성할 수 있는 링크를 제공합니다.
+ DB 인스턴스를 만드는 사용자는 다음 작업을 수행할 수 있는 권한이 있어야 합니다.
  + `ec2:AssociateRouteTable` 
  + `ec2:AuthorizeSecurityGroupEgress` 
  + `ec2:AuthorizeSecurityGroupIngress` 
  + `ec2:CreateRouteTable` 
  + `ec2:CreateSubnet` 
  + `ec2:CreateSecurityGroup` 
  + `ec2:DescribeInstances` 
  + `ec2:DescribeNetworkInterfaces` 
  + `ec2:DescribeRouteTables` 
  + `ec2:DescribeSecurityGroups` 
  + `ec2:DescribeSubnets` 
  + `ec2:ModifyNetworkInterfaceAttribute` 
  + `ec2:RevokeSecurityGroupEgress` 

이 옵션을 사용하면 프라이빗 DB 클러스터가 생성됩니다. DB 클러스터는 프라이빗 서브넷만 있는 DB 서브넷 그룹을 사용하여 VPC 내 리소스에 대한 액세스를 제한합니다.

EC2 인스턴스를 DB 클러스터에 연결하려면 **Create database**(데이터베이스 생성) 페이지의 **Connectivity**(연결) 섹션에서 **Connect to an EC2 compute resource**(EC2 컴퓨팅 리소스에 연결)을 선택합니다.

![\[EC2 인스턴스 연결\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/images/ec2-set-up-connection-create.png)


**Connect to an EC2 compute resource**(EC2 컴퓨팅 리소스에 연결)를 선택하면 RDS가 다음 옵션을 자동으로 설정합니다. **Don't connect to an EC2 compute resource**(EC2 컴퓨팅 리소스에 연결하지 않음)를 선택하여 EC2 인스턴스와의 연결을 설정하지 않도록 선택하지 않는 한 이러한 설정을 변경할 수 없습니다.


****  

| 콘솔 옵션 | 자동 설정 | 
| --- | --- | 
|  **가상 프라이빗 클라우드(VPC)**  |  RDS는 VPC를 EC2 인스턴스와 연결된 VPC로 설정합니다.  | 
|  **DB 서브넷 그룹**  | RDS에는 EC2 인스턴스와 동일한 가용 영역에 프라이빗 서브넷이 있는 DB 서브넷 그룹이 필요합니다. 이 요구 사항을 충족하는 DB 서브넷 그룹이 있다면 RDS는 기존 DB 서브넷 그룹을 사용합니다. 기본적으로 이 옵션은 Automatic setup(자동 설정)으로 설정되어 있습니다.**Automatic setup**(자동 설정)을 선택하고 이 요구 사항을 충족하는 DB 서브넷 그룹이 없으면 다음 작업이 수행됩니다. RDS는 가용 영역 중 하나가 EC2 인스턴스와 동일한 3개의 가용 영역에서 3개의 사용 가능한 프라이빗 서브넷을 사용합니다. 가용 영역에서 프라이빗 서브넷을 사용할 수 없는 경우 RDS는 가용 영역에 프라이빗 서브넷을 생성합니다. 그런 다음 RDS는 DB 서브넷 그룹을 생성합니다.프라이빗 서브넷을 사용할 수 있는 경우 RDS는 서브넷과 연결된 라우팅 테이블을 사용하고 생성된 모든 서브넷을 이 라우팅 테이블에 추가합니다. 프라이빗 서브넷을 사용할 수 없는 경우 RDS는 인터넷 게이트웨이 액세스가 없는 라우팅 테이블을 생성하고 생성한 서브넷을 라우팅 테이블에 추가합니다.RDS를 사용하면 기존 DB 서브넷 그룹도 사용할 수 있습니다. 선택한 기존 DB 서브넷 그룹을 사용하려면 **Choose existing**(기존 항목 선택)을 선택합니다. | 
|  **공개 액세스(Public access**  |  RDS는 DB 클러스터에 공개적으로 액세스할 수 없도록 **아니요**를 선택합니다. 보안을 위해 데이터베이스를 비공개로 유지하고 인터넷에서 액세스할 수 없도록 하는 것이 가장 좋습니다.  | 
|  **VPC 보안 그룹(방화벽)**  |  RDS는 DB 클러스터와 연결된 새 보안 그룹을 생성합니다. 보안 그룹의 이름은 `rds-ec2-n`이며, 여기서 `n`은 숫자입니다. 이 보안 그룹에는 EC2 VPC 보안 그룹(방화벽)이 소스인 인바운드 규칙이 포함됩니다. DB 클러스터와 연결된 이 보안 그룹을 통해 EC2 인스턴스가 DB 클러스터에 액세스할 수 있습니다. RDS는 DB 인스턴스와 연결된 새 보안 그룹도 생성합니다. 보안 그룹의 이름은 `ec2-rds-n`이며, 여기서 `n`은 숫자입니다. 이 보안 그룹에는 DB 클러스터의 VPC 보안 그룹을 소스로 하는 아웃바운드 규칙이 포함됩니다. 이 보안 그룹을 사용하면 EC2 인스턴스가 DB 클러스터에 트래픽을 보내도록 허용할 수 있습니다. **Create new**(새로 생성)를 선택하고 새 보안 그룹의 이름을 입력하여 다른 새 보안 그룹을 추가할 수 있습니다. **Choose existing**(기존 항목 선택)을 선택하고 추가할 보안 그룹을 선택하여 기존 보안 그룹을 추가할 수 있습니다.  | 
|  **가용 영역**  |  RDS는 다중 AZ DB 클러스터 배포에서 하나의 DB 인스턴스에 대해 EC2 인스턴스의 가용 영역을 선택합니다. RDS는 다른 두 DB 인스턴스에 대해 서로 다른 가용 영역을 임의로 선택합니다. 라이터 DB 인스턴스는 EC2 인스턴스와 동일한 가용 영역에 생성됩니다. 장애 조치가 발생하고 라이터 DB 인스턴스가 다른 가용 영역에 있는 경우 교차 가용 영역 비용이 발생할 가능성이 있습니다.  | 

이러한 설정에 대한 자세한 내용은 [다중 AZ DB 클러스터를 생성하기 위한 설정](#create-multi-az-db-cluster-settings) 단원을 참조하세요.

DB 클러스터를 생성한 후에 이러한 설정을 변경할 경우 변경 사항이 EC2 인스턴스와 DB 클러스터 간의 연결에 영향을 미칠 수 있습니다.

#### 네트워크 수동 구성
<a name="create-multi-az-db-cluster-prerequisites-VPC-manual"></a>

동일한 VPC의 EC2 인스턴스 이외의 리소스에서 DB 클러스터에 연결하려는 경우 네트워크 연결을 수동으로 구성합니다. AWS Management Console을 사용하여 다중 AZ DB 클러스터를 생성하는 경우 Amazon RDS에서 자동으로 VPC를 생성하도록 할 수 있습니다. 또는 다중 AZ DB 클러스터에서 기존 VPC를 사용하거나 새 VPC를 생성할 수도 있습니다. 다중 AZ DB 클러스터에서 VPC를 사용하려면 세 개 이상의 가용 영역마다 VPC에 서브넷이 한 개 이상 있어야 합니다. VPC에 대한 자세한 내용은 다음([Amazon VPC 및 Amazon RDS](USER_VPC.md))을 참조하세요.

기본 VPC를 사용하지 않거나 VPC를 생성하지 않았고 콘솔을 사용할 계획이 없다면 다음을 수행하면 됩니다.
+ DB 클러스터를 배포하려는 AWS 리전에서 세 개 이상의 가용 영역에 각각 한 개 이상의 서브넷을 갖는 VPC를 생성합니다. 자세한 내용은 [VPC에서 DB 인스턴스를 사용한 작업](USER_VPC.WorkingWithRDSInstanceinaVPC.md#Overview.RDSVPC.Create)을 참조하세요.
+ DB 클러스터에 대한 연결 권한을 부여할 수 있도록 VPC 보안 그룹을 지정합니다. 자세한 내용은 [보안 그룹을 생성하여 VPC 내부의 DB 인스턴스에 대한 액세스를 제공](CHAP_SettingUp.md#CHAP_SettingUp.SecurityGroup) 및 [보안 그룹을 통한 액세스 제어](Overview.RDSSecurityGroups.md) 단원을 참조하세요.
+ VPC에서 다중 AZ DB 클러스터에서 사용할 수 있는 서브넷을 세 개 이상 정의하는 RDS DB 서브넷 그룹을 지정합니다. 자세한 내용은 [DB 서브넷 그룹을 사용한 작업](USER_VPC.WorkingWithRDSInstanceinaVPC.md#USER_VPC.Subnets)을 참조하세요.

다중 AZ DB 클러스터에 적용되는 제한 사항에 대한 자세한 내용은 [Amazon RDS 다중 AZ DB 클러스터의 제한](multi-az-db-clusters-concepts.Limitations.md) 페이지를 참조하세요.

다중 AZ DB 클러스터와 동일한 VPC에 있지 않은 리소스에 연결하려는 경우 [VPC에서 DB 인스턴스에 액세스하는 시나리오](USER_VPC.Scenarios.md)에서 적절한 시나리오를 참조하십시오.

### 추가 사전 조건
<a name="create-multi-az-db-cluster-prerequisites-additional"></a>

다중 AZ DB 클러스터를 만들려면 먼저 다음과 같은 추가 사전 조건을 고려하세요.
+ DB 클러스터에 대한 구성 파라미터를 사용자 지정하려면 필요한 파라미터 설정으로 DB 클러스터 파라미터 그룹을 지정해야 합니다. DB 클러스터 파라미터 그룹 생성 또는 수정에 대한 자세한 내용은 [다중 AZ DB 클러스터용 파라미터 그룹](multi-az-db-clusters-concepts.md#multi-az-db-clusters-concepts-parameter-groups) 섹션을 참조하세요.
+ DB 클러스터에 지정할 TCP/IP 포트 번호를 정합니다. 일부 기업에서는 방화벽이 이러한 기본 포트 연결을 차단하는 경우도 있습니다. 이처럼 기업 방화벽이 기본 포트를 차단할 경우 DB 클러스터에 다른 포트를 선택해야 합니다. DB 클러스터의 DB 인스턴스는 모두 동일한 포트를 사용합니다.
+ 데이터베이스의 메이저 엔진 버전이 RDS 표준 지원 종료일에 다다른 경우 추가 지원 CLI 옵션 또는 RDS API 파라미터를 사용해야 합니다. 자세한 내용은 [다중 AZ DB 클러스터를 생성하기 위한 설정](#create-multi-az-db-cluster-settings)의 RDS 추가 지원을 참조하세요.

## DB 클러스터 생성
<a name="create-multi-az-db-cluster-creating"></a>

AWS Management Console, AWS CLI 또는 RDS API를 사용하여 다중 AZ DB 클러스터를 생성할 수 있습니다.

### 콘솔
<a name="create-multi-az-db-cluster-creating-console"></a>

**가용성 및 지속성(Availability and durability)** 섹션에서 **다중 AZ DB 클러스터(Multi-AZ DB cluster)**를 선택하여 다중 AZ DB 클러스터를 생성할 수 있습니다.

**콘솔을 사용하여 다중 AZ DB 클러스터를 생성하는 방법**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

1. AWS Management Console의 오른쪽 상단 모서리에서 DB 인스턴스를 생성하려는 AWS 리전을 선택합니다.

   다중 AZ DB 클러스터를 지원하는 AWS 리전에 대한 자세한 내용은 [Amazon RDS 다중 AZ DB 클러스터의 제한](multi-az-db-clusters-concepts.Limitations.md) 페이지를 참조하세요.

1. 탐색 창에서 **데이터베이스**를 선택합니다.

1. **데이터베이스 생성**을 선택합니다.

   다중 AZ DB 클러스터를 생성하려면 **표준 생성(Standard Create)**이 선택되어 있고 **간편 생성(Easy Create)**이 선택되어 있지 않은지 확인하세요.

1. **엔진 유형(Engine type)**에서 **MySQL** 또는 **PostgreSQL**을 선택합니다.

1. **버전(Version)**으로 DB 엔진 버전을 선택합니다.

   다중 AZ DB 클러스터를 지원하는 에 대한 자세한 내용은 [Amazon RDS 다중 AZ DB 클러스터의 제한](multi-az-db-clusters-concepts.Limitations.md) 페이지를 참조하세요.

1. **템플릿(Templates)**에서 배포에 사용할 적합한 템플릿을 선택합니다.

1. **가용성 및 지속성(Availability and durability)**에서 **다중 AZ DB 클러스터(Multi-AZ DB cluster)**를 선택합니다.  
![\[다중 AZ DB 클러스터 선택\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/images/multi-az-db-cluster-create.png)

1. **DB 클러스터 식별자(DB cluster identifier)**에 DB 클러스터의 식별자를 입력합니다.

1. **마스터 사용자 이름(Master username)**에 마스터 사용자 이름을 입력하거나 기본 설정을 그대로 사용합니다.

1. 다음과 같이 기본 암호를 입력합니다.

   1. **Settings**(설정) 섹션에서 **Credential Settings**(보안 인증 정보 설정)를 엽니다.

   1. 암호를 지정하려는 경우 **암호 자동 생성(Auto generate a password)** 확인란이 선택되어 있으면 선택을 해제합니다.

   1. (선택 사항) **마스터 사용자 이름(Master username)** 값을 변경합니다.

   1. **마스터 암호** 및 **암호 확인**에 동일한 암호를 입력합니다.

1. **DB 인스턴스 클래스**에서 DB 인스턴스 클래스를 선택합니다. 지원되는 DB 인스턴스 클래스 목록은 [다중 AZ DB 클러스터에서 사용 가능한 인스턴스 클래스](multi-az-db-clusters-concepts.md#multi-az-db-clusters-concepts.InstanceAvailability) 섹션을 참조하세요.

1. (선택 사항) 이 DB 클러스터의 컴퓨팅 리소스에 대한 연결을 설정합니다.

   DB 클러스터를 생성하는 동안 Amazon EC2 인스턴스와 새 DB 클러스터 간의 연결을 구성할 수 있습니다. 자세한 내용은 [EC2 인스턴스와의 자동 네트워크 연결 구성](#create-multi-az-db-cluster-prerequisites-VPC-automatic) 섹션을 참조하세요.

1. **VPC 보안 그룹(방화벽)** 아래의 **연결** 섹션에서 **새로 만들기**를 선택하면 로컬 컴퓨터의 IP 주소가 데이터베이스에 액세스할 수 있도록 허용하는 인바운드 규칙과 함께 VPC 보안 그룹이 생성됩니다.

1. 나머지 섹션에서 DB 클러스터 설정을 지정합니다. 각 설정에 대한 자세한 내용은 [다중 AZ DB 클러스터를 생성하기 위한 설정](#create-multi-az-db-cluster-settings) 단원을 참조하십시오.

1. **데이터베이스 생성**을 선택합니다.

   자동 생성된 암호를 사용하기로 한 경우에는 **Databases**(데이터베이스) 페이지에 **View credential details**(자격 증명 세부 정보 보기) 버튼이 나타납니다.

   DB 클러스터의 마스터 사용자 이름 및 암호를 보려면 **자격 증명 세부 정보 보기**를 선택합니다.

   DB 클러스터를 마스터 사용자로 연결하려면 화면에 나타난 사용자 이름과 암호를 사용합니다.
**중요**  
마스터 사용자 암호를 다시 볼 수는 없습니다.

1. **데이터베이스(Databases)**의 경우 새 DB 클러스터의 이름을 선택합니다.

RDS 콘솔에 새 DB 클러스터의 세부 정보가 표시됩니다. DB 클러스터를 생성하고 사용할 준비가 될 때까지 DB 클러스터의 상태는 **생성 중(Creating)**입니다. 상태가 **사용 가능(Available)**으로 변경되면 DB 클러스터에 연결할 수 있습니다. 할당된 DB 클러스터 클래스 및 스토리지에 따라 새 DB 클러스터를 사용할 수 있기까지 몇 분 정도 걸릴 수 있습니다.

### AWS CLI
<a name="create-multi-az-db-cluster-creating-cli"></a>

AWS CLI를 사용하여 다중 AZ DB 클러스터를 생성하기 전에 필수 사전 조건을 이행해야 합니다. 여기에는 VPC 및 RDS DB 서브넷 그룹 생성이 포함됩니다. 자세한 내용은 [DB 클러스터 사전 조건](#create-multi-az-db-cluster-prerequisites) 섹션을 참조하세요.

AWS CLI를 사용하여 다중 AZ DB 클러스터를 생성하려면 [create-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-cluster.html) 명령을 호출하면 됩니다. `--db-cluster-identifier`를 지정합니다. `--engine` 옵션으로 `mysql` 또는 `postgres`를 지정합니다.

각 옵션에 대한 자세한 내용은 [다중 AZ DB 클러스터를 생성하기 위한 설정](#create-multi-az-db-cluster-settings) 단원을 참조하세요.

다중 AZ DB 클러스터를 지원하는 AWS 리전, DB 엔진 및 DB 엔진 버전에 대한 자세한 내용은 [Amazon RDS 다중 AZ DB 클러스터의 제한](multi-az-db-clusters-concepts.Limitations.md) 페이지를 참조하세요.

`create-db-cluster` 명령은 DB 클러스터를 위한 라이터 DB 인스턴스와 두 개의 리더 DB 인스턴스를 생성합니다. 각 DB 인스턴스는 서로 다른 가용 영역에 있습니다.

예를 들어, 다음 명령을 사용하면 이름이 `mysql-multi-az-db-cluster`인 MySQL 8.0 다중 AZ DB 클러스터가 생성됩니다.

**Example**  
대상 LinuxmacOS, 또는Unix:  

```
 1. aws rds create-db-cluster \
 2.    --db-cluster-identifier mysql-multi-az-db-cluster \
 3.    --engine mysql \
 4.    --engine-version 8.0.32  \
 5.    --master-username admin \
 6.    --manage-master-user-password  \
 7.    --port 3306 \
 8.    --backup-retention-period 1  \
 9.    --db-subnet-group-name default \
10.    --allocated-storage 4000 \
11.    --storage-type io1 \
12.    --iops 10000 \
13.    --db-cluster-instance-class db.m5d.xlarge
```
Windows의 경우:  

```
 1. aws rds create-db-cluster ^
 2.    --db-cluster-identifier mysql-multi-az-db-cluster ^
 3.    --engine mysql ^
 4.    --engine-version 8.0.32 ^
 5.    --manage-master-user-password ^
 6.    --master-username admin ^
 7.    --port 3306 ^
 8.    --backup-retention-period 1 ^
 9.    --db-subnet-group-name default ^
10.    --allocated-storage 4000 ^
11.    --storage-type io1 ^
12.    --iops 10000 ^
13.    --db-cluster-instance-class db.m5d.xlarge
```

다음 명령을 사용하면 이름이 `postgresql-multi-az-db-cluster`인 PostgreSQL 13.4 다중 AZ DB 클러스터가 생성됩니다.

**Example**  
대상 LinuxmacOS, 또는Unix:  

```
 1. aws rds create-db-cluster \
 2.    --db-cluster-identifier postgresql-multi-az-db-cluster \
 3.    --engine postgres \
 4.    --engine-version 13.4 \
 5.    --manage-master-user-password \
 6.    --master-username postgres \
 7.    --port 5432 \
 8.    --backup-retention-period 1  \
 9.    --db-subnet-group-name default \
10.    --allocated-storage 4000 \
11.    --storage-type io1 \
12.    --iops 10000 \
13.    --db-cluster-instance-class db.m5d.xlarge
```
Windows의 경우:  

```
 1. aws rds create-db-cluster ^
 2.    --db-cluster-identifier postgresql-multi-az-db-cluster ^
 3.    --engine postgres ^
 4.    --engine-version 13.4 ^
 5.    --manage-master-user-password ^
 6.    --master-username postgres ^
 7.    --port 5432 ^
 8.    --backup-retention-period 1 ^
 9.    --db-subnet-group-name default ^
10.    --allocated-storage 4000 ^
11.    --storage-type io1 ^
12.    --iops 10000 ^
13.    --db-cluster-instance-class db.m5d.xlarge
```

### RDS API
<a name="create-multi-az-db-cluster-creating-api"></a>

RDS API를 사용하여 다중 AZ DB 클러스터를 생성하려면 먼저 VPC 및 RDS DB 서브넷 그룹 생성과 같은 필수 사전 조건을 이행해야 합니다. 자세한 내용은 [DB 클러스터 사전 조건](#create-multi-az-db-cluster-prerequisites)을 참조하세요.

RDS API를 사용하여 다중 AZ DB 클러스터를 생성하려면 [CreateDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html) 작업을 호출합니다. `DBClusterIdentifier`를 지정합니다. `Engine` 파라미터에 대해 `mysql` 또는 `postgresql`을 지정합니다.

각 옵션에 대한 자세한 내용은 [다중 AZ DB 클러스터를 생성하기 위한 설정](#create-multi-az-db-cluster-settings) 단원을 참조하세요.

`CreateDBCluster` 작업을 통해 DB 클러스터에 대한 라이터 DB 인스턴스와 리더 DB 인스턴스가 생성됩니다. 각 DB 인스턴스는 서로 다른 가용 영역에 있습니다.

## 다중 AZ DB 클러스터를 생성하기 위한 설정
<a name="create-multi-az-db-cluster-settings"></a>

다중 AZ DB 클러스터를 생성할 때 선택하는 설정에 대한 자세한 내용은 다음 표를 참조하세요. AWS CLI 옵션에 대한 자세한 정보는 [create-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-cluster.html)를 참조하세요. RDS API 파라미터에 대한 자세한 내용은 [CreateDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html)를 참조하세요.


| 콘솔 설정 | 설정 설명 | CLI 옵션 및 RDS API 파라미터 | 
| --- | --- | --- | 
|  **할당된 스토리지**  |  DB 클러스터의 각 DB 인스턴스에 할당할 스토리지 양(기비바이트)입니다. 자세한 내용은 [Amazon RDS DB 인스턴스 스토리지](CHAP_Storage.md)을 참조하세요.  |  **CLI 옵션:**  `--allocated-storage` **API 파라미터:**  `AllocatedStorage`  | 
| 자동 마이너 버전 업그레이드 |  **자동 마이너 버전 업그레이드(Enable auto minor version upgrade)**를 선택하면 DB 클러스터가 지원되는 경우 기본 마이너 DB 엔진 버전 업그레이드를 자동으로 수신하도록 할 수 있습니다. Amazon RDS는 유지 관리 기간에 자동 마이너 버전 업그레이드를 수행합니다.  |  **CLI 옵션:**  `--auto-minor-version-upgrade` `--no-auto-minor-version-upgrade` **API 파라미터:** `AutoMinorVersionUpgrade`  | 
|  백업 보관 기간  |  DB 클러스터의 자동 백업을 보존할 기간(단위: 일)입니다. 다중 AZ DB 클러스터의 경우 이 값을 **1** 이상으로 설정해야 합니다. 자세한 내용은 [백업 소개](USER_WorkingWithAutomatedBackups.md)을 참조하세요.  |  **CLI 옵션:**  `--backup-retention-period` **API 파라미터:** `BackupRetentionPeriod`  | 
|  백업 기간: |  Amazon RDS가 DB 클러스터의 백업을 자동으로 수행하는 기간입니다. 데이터베이스를 백업할 특정 기간을 지정하지 않으려면 기본값으로 **기본 설정 없음(No preference)**을 사용합니다. 자세한 내용은 [백업 소개](USER_WorkingWithAutomatedBackups.md) 섹션을 참조하세요.  |  **CLI 옵션:**  `--preferred-backup-window` **API 파라미터:** `PreferredBackupWindow`  | 
|  **인증 기관**  |  DB 클러스터에서 사용하는 서버 인증서의 CA(인증 기관)입니다. 자세한 내용은 [SSL/TLS를 사용하여 DB 인스턴스 또는 클러스터 에 대한 연결 암호화](UsingWithRDS.SSL.md) 섹션을 참조하세요.  |  **CLI 옵션:**  `--ca-certificate-identifier` **RDS API 파라미터:** `CACertificateIdentifier`  | 
|  스냅샷으로 태그 복사  |  이 옵션은 스냅샷을 생성할 때 DB 클러스터 태그를 DB 스냅샷에 복사합니다. 자세한 내용은 [Amazon RDS 리소스에 태그 지정](USER_Tagging.md)을 참조하세요.  |  **CLI 옵션:**  `-copy-tags-to-snapshot` `-no-copy-tags-to-snapshot` **RDS API 파라미터:** `CopyTagsToSnapshot`  | 
|  Database authentication(데이터베이스 인증  |  사용하려는 데이터베이스 인증 옵션입니다. 데이터베이스 암호로만 데이터베이스 사용자를 인증할 수 있도록 **Password authentication(암호 인증)**을 선택합니다. 사용자 및 역할을 통해 데이터베이스 암호 및 사용자 자격 증명으로 데이터베이스 사용자를 인증할 수 있도록 **Password and IAM DB authentication**(암호 및 IAM DB 인증)을 선택합니다. 자세한 내용은 [MariaDB, MySQL 및 PostgreSQL IAM 데이터베이스 인증](UsingWithRDS.IAMDBAuth.md) 섹션을 참조하세요.  |  **CLI 옵션:**  `--enable-iam-database-authentication` `--no-enable-iam-database-authentication` **RDS API 파라미터:** `EnableIAMDatabaseAuthentication`  | 
|  데이터베이스 포트  |  DB 클러스터에 액세스할 포트입니다. 기본 포트가 표시됩니다. DB 클러스터를 생성한 후에는 포트를 변경할 수 없습니다. 일부 기업에서는 방화벽이 이러한 기본 포트 연결을 차단하는 경우도 있습니다. 이처럼 기업 방화벽이 기본 포트를 차단할 경우 DB 클러스터에 다른 포트를 입력해야 합니다.  |  **CLI 옵션:** `--port` **RDS API 파라미터:** `Port`  | 
|  DB 클러스터 식별자  |  DB 클러스터의 이름입니다. 온프레미스 서버와 동일한 방식으로 DB 클러스터의 이름을 지정합니다. DB 클러스터 식별자는 최대 63자의 영숫자를 포함할 수 있으며 선택한 AWS 리전의 계정에 대해 고유해야 합니다.  |  **CLI 옵션:** `--db-cluster-identifier` **RDS API 파라미터:** `DBClusterIdentifier`  | 
|  DB 인스턴스 클래스:  |  다중 AZ DB 클러스터에 있는 각 DB 인스턴스의 컴퓨팅 및 메모리 용량입니다(예: `db.m5d.xlarge`). 가능하면 일반 쿼리 작업 세트가 메모리에 상주할 수 있을 정도로 큰 DB 인스턴스 클래스를 선택합니다. 작업 세트가 메모리에 상주할 경우 시스템의 디스크 쓰기가 불필요하여 성능이 향상됩니다. 지원되는 DB 인스턴스 클래스 목록은 [다중 AZ DB 클러스터에서 사용 가능한 인스턴스 클래스](multi-az-db-clusters-concepts.md#multi-az-db-clusters-concepts.InstanceAvailability) 섹션을 참조하세요.  |  **CLI 옵션:** `--db-cluster-instance-class` **RDS API 파라미터:** `DBClusterInstanceClass`  | 
|  **DB 클러스터 파라미터 그룹**  |  DB 클러스터와 연결할 DB 클러스터 파라미터 그룹. 자세한 내용은 [다중 AZ DB 클러스터용 파라미터 그룹](multi-az-db-clusters-concepts.md#multi-az-db-clusters-concepts-parameter-groups)을 참조하세요.  |  **CLI 옵션:**  `--db-cluster-parameter-group-name` **RDS API 파라미터:** `DBClusterParameterGroupName`  | 
|  DB 엔진 버전  |  사용할 데이터베이스 엔진의 버전입니다.  |  **CLI 옵션:** `--engine-version` **RDS API 파라미터:** `EngineVersion`  | 
|  DB 클러스터 파라미터 그룹  |  DB 클러스터와 연결할 DB 인스턴스 파라미터 그룹입니다. 자세한 내용은 [다중 AZ DB 클러스터용 파라미터 그룹](multi-az-db-clusters-concepts.md#multi-az-db-clusters-concepts-parameter-groups) 섹션을 참조하세요.  |  **CLI 옵션:**  `--db-cluster-parameter-group-name` **RDS API 파라미터:** `DBClusterParameterGroupName`  | 
|  DB 서브넷 그룹:  | DB 클러스터에 사용할 DB 서브넷 그룹입니다.기존 DB 서브넷 그룹을 사용하려면 Choose existing(기존 항목 선택)을 선택합니다. 그런 다음 Existing DB subnet groups(기존 DB 서브넷 그룹) 드롭다운 목록에서 필요한 서브넷 그룹을 선택합니다.RDS가 호환되는 DB 서브넷 그룹을 선택하도록 하려면 **Automatic setup**(자동 설정)을 선택합니다. 해당 그룹이 없으면 RDS는 클러스터에 대한 새 서브넷 그룹을 생성합니다.자세한 내용은 [DB 서브넷 그룹을 사용한 작업](USER_VPC.WorkingWithRDSInstanceinaVPC.md#USER_VPC.Subnets) 섹션을 참조하세요. |  **CLI 옵션:**  `--db-subnet-group-name` **RDS API 파라미터:** `DBSubnetGroupName`  | 
| 삭제 방지 |  DB 클러스터가 삭제되지 않도록 방지하기 위한 **삭제 방지 활성화** 콘솔에서 프로덕션 DB 클러스터를 생성하면 삭제 방지가 기본적으로 설정됩니다. 자세한 내용은 [DB 인스턴스 삭제](USER_DeleteInstance.md)을 참조하세요.  |  **CLI 옵션:**  `--deletion-protection` `--no-deletion-protection` **RDS API 파라미터:** `DeletionProtection`  | 
|  암호화  |  **암호화 활성화(Enable Encryption)**를 선택하면 DB 클러스터에 대해 비활성화되어 있는 암호화를 설정할 수 있습니다. 다중 AZ DB 클러스터의 경우 암호화가 기본적으로 켜져 있습니다. 자세한 내용은 [Amazon RDS 리소스 암호화](Overview.Encryption.md)을 참조하세요.  |  **CLI 옵션:** `--kms-key-id` `--storage-encrypted` `--no-storage-encrypted` **RDS API 파라미터:** `KmsKeyId` `StorageEncrypted`  | 
|  확장 모니터링  |  **고급 모니터링 활성화(Enable enhanced monitoring)**를 선택하면 DB 클러스터가 실행되는 운영 체제에 대해 지표를 실시간으로 수집할 수 있습니다. 자세한 내용은 [Enhanced Monitoring을 사용하여 OS 지표 모니터링](USER_Monitoring.OS.md)을 참조하세요.  |  **CLI 옵션:** `--monitoring-interval` `--monitoring-role-arn` **RDS API 파라미터:** `MonitoringInterval` `MonitoringRoleArn`  | 
|  초기 데이터베이스 이름:  |  DB 클러스터에 있는 데이터베이스의 이름입니다. 이름을 제공하지 않으면 Amazon RDS는 MySQL용 DB 클러스터에 데이터베이스를 생성하지 않습니다. 하지만 PostgreSQL용 DB 클러스터에는 데이터베이스를 생성합니다. 이름은 데이터베이스 엔진에서 예약한 단어는 사용할 수 없습니다. DB 엔진에 따라 다른 제약이 있습니다. MySQL: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/create-multi-az-db-cluster.html) PostgreSQL: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/create-multi-az-db-cluster.html)  |  **CLI 옵션:** `--database-name` **RDS API 파라미터:** `DatabaseName`  | 
|  **로그 내보내기**  |  Amazon CloudWatch Logs에 게시할 데이터베이스 로그 파일의 유형입니다. 자세한 내용은 [Amazon CloudWatch Logs에 데이터베이스 로그 게시](USER_LogAccess.Procedural.UploadtoCloudWatch.md) 섹션을 참조하세요.  |  **CLI 옵션:**  `-enable-cloudwatch-logs-exports` **RDS API 파라미터:** `EnableCloudwatchLogsExports`  | 
|  유지 관리 윈도우  |  대기 중인 DB 클러스터 설정 변경이 적용되기 위해 경과해야 하는 기간(30분)입니다. 기간이 중요하지 않은 경우 **기본 설정 없음**을 선택합니다. 자세한 내용은 [Amazon RDS 유지 관리 기간](USER_UpgradeDBInstance.Maintenance.md#Concepts.DBMaintenance) 섹션을 참조하세요.  |  **CLI 옵션:**  `--preferred-maintenance-window` **RDS API 파라미터:** `PreferredMaintenanceWindow`  | 
|  에서 마스터 보안 인증 정보 관리AWS Secrets Manager  |  Secrets Manager에서 보안 암호의 마스터 사용자 암호를 관리하려면 **AWS Secrets Manager에서 마스터 자격 증명 관리**를 선택합니다. 원하는 경우 보안 암호를 보호하는 데 사용할 KMS 키를 선택합니다. 자신의 계정에서 KMS 키를 선택하거나 다른 계정의 키를 입력할 수 있습니다. 자세한 내용은 [Amazon RDS 및 AWS Secrets Manager를 통한 암호 관리](rds-secrets-manager.md) 섹션을 참조하세요.  |  **CLI 옵션:**  `--manage-master-user-password \| --no-manage-master-user-password` `--master-user-secret-kms-key-id` **RDS API 파라미터:** `ManageMasterUserPassword` `MasterUserSecretKmsKeyId`  | 
|  마스터 암호  |  마스터 사용자 계정의 암호입니다.  |  **CLI 옵션:** `--master-user-password` **RDS API 파라미터:** `MasterUserPassword`  | 
|  마스터 사용자 이름  |  모든 데이터베이스 권한을 사용하여 DB 클러스터에 로그인하기 위해 마스터 사용자 이름으로 사용할 이름입니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/create-multi-az-db-cluster.html) 다중 AZ DB 클러스터를 생성한 후에는 마스터 사용자 이름을 변경할 수 없습니다. 마스터 사용자에게 부여된 권한에 대한 자세한 내용은 [마스터 사용자 계정 권한](UsingWithRDS.MasterAccounts.md) 섹션을 참조하세요.  |  **CLI 옵션:** `--master-username` **RDS API 파라미터:** `MasterUsername`  | 
| 성능 개선 도우미  |  **성능 개선 도우미 활성화(Enable Performance Insights)**를 선택하면 DB 클러스터 로드를 모니터링하여 데이터베이스 성능을 분석하고 문제를 해결할 수 있습니다. 보존 기간을 선택하여 성능 개선 도우미 데이터 기록을 얼마나 유지할지 결정합니다. 보존 설정은 **기본값(7일)**입니다. 성능 데이터를 더 오래 보존하려면 1\$124개월을 지정하십시오. 보존 기간에 대한 자세한 내용은 [성능 개선 도우미의 요금 및 데이터 보존](USER_PerfInsights.Overview.cost.md) 섹션을 참조하세요. 이 데이터베이스 볼륨을 암호화하는 데 사용되는 키를 보호하는 데 사용할 KMS 키를 선택합니다. 자신의 계정에서 KMS 키를 선택하거나 다른 계정의 키를 입력할 수 있습니다. 자세한 내용은 [성능 개선 도우미를 통한 Amazon RDS 모니터링](USER_PerfInsights.md) 섹션을 참조하세요.  |  **CLI 옵션:** `--enable-performance-insights` `--no-enable-performance-insights` `--performance-insights-retention-period` `--performance-insights-kms-key-id` **RDS API 파라미터:** `EnablePerformanceInsights` `PerformanceInsightsRetentionPeriod` `PerformanceInsightsKMSKeyId`  | 
|  프로비저닝된 IOPS  |  DB 클러스터에 처음 할당될 프로비저닝된 IOPS의 양(초당 입력/출력 작업 수)입니다.  |  **CLI 옵션:** `--iops` **RDS API 파라미터:** `Iops`  | 
|  공개 액세스(Public access  |  **공개적으로 액세스할 수 있음(Publicly accessible)**을 선택하면 DB 클러스터에 퍼블릭 IP 주소를 제공하여 VPC 외부에서 액세스할 수 있습니다. 공개적으로 액세스가 가능하려면 DB 클러스터도 VPC의 퍼블릭 서브넷에 있어야 합니다. **공개적으로 액세스할 수 없음(Not publicly accessible)**을 선택하면 VPC 내에서만 DB 클러스터에 액세스할 수 있습니다. 자세한 내용은 [VPC에 있는 DB 인스턴스를 인터넷에서 숨기기](USER_VPC.WorkingWithRDSInstanceinaVPC.md#USER_VPC.Hiding)을 참조하세요. VPC 외부에서 DB 클러스터에 연결하려면 DB 클러스터에 공개적으로 액세스할 수 있어야 합니다. 또한, DB 클러스터 보안 그룹의 인바운드 규칙을 사용하여 액세스 권한을 부여하고 다른 요구 사항을 충족해야 합니다. 자세한 내용은 [Amazon RDS DB 인스턴스에 연결할 수 없음](CHAP_Troubleshooting.md#CHAP_Troubleshooting.Connecting)을 참조하세요. DB 클러스터에 공개적으로 액세스할 수 없는 경우 AWS Site-to-Site VPN 연결 또는 Direct Connect 연결을 사용하여 프라이빗 네트워크에서 액세스할 수 있습니다. 자세한 내용은 [인터네트워크 트래픽 개인 정보](inter-network-traffic-privacy.md)을 참조하세요.  |  **CLI 옵션:**  `--publicly-accessible` `--no-publicly-accessible` **RDS API 파라미터:** `PubliclyAccessible`  | 
| RDS 추가 지원 | 지원되는 메이저 엔진 버전이 RDS 표준 지원 종료 날짜를 지나서도 계속 실행되도록 하려면 **RDS 추가 지원 활성화**를 선택합니다. DB 클러스터를 생성할 때 Amazon RDS는 기본적으로 RDS 확장 지원을 사용합니다. RDS 표준 지원 종료일 후에 새 DB 클러스터가 생성되지 않도록 하고 RDS 확장 지원에 대한 요금이 부과되지 않도록 하려면 이 설정을 비활성화하세요. 기존 DB 클러스터에는 RDS 확장 지원 요금 시작일이 되기 전까지는 요금이 부과되지 않습니다. 자세한 내용은 [Amazon RDS를 사용한 Amazon RDS 추가 지원](extended-support.md) 섹션을 참조하세요. |  **CLI 옵션:**  `--engine-lifecycle-support` **RDS API 파라미터:** `EngineLifecycleSupport`  | 
|  **스토리지 처리량(throughput**  |  DB 클러스터의 스토리지 처리량 값입니다. 이 설정은 스토리지 유형으로 범용 SSD(gp3)를 선택한 경우에만 표시됩니다. 이 설정은 구성할 수 없으며, 지정한 IOPS에 따라 자동으로 설정됩니다. 자세한 내용은 [gp3 스토리지(권장)](CHAP_Storage.md#gp3-storage) 섹션을 참조하세요.  |  이 값은 자동으로 계산되며 CLI 옵션이 없습니다.  | 
|  **RDS 프록시**  |  **Create an RDS Proxy(RDS 프록시 생성)**를 선택하여 DB 클러스터용 프록시를 생성합니다. Amazon RDS는 프록시에 대한 IAM 역할과 Secrets Manager 암호를 자동으로 생성합니다.  |  DB 클러스터를 생성할 때는 사용할 수 없습니다.  | 
|  스토리지 유형  |  DB 클러스터의 스토리지 유형입니다. 범용 SSD(gp3), 프로비저닝된 IOPS(io1) 및 프로비저닝된 IOPS SSD(io2) 스토리지만 지원됩니다. 자세한 내용은 [Amazon RDS 스토리지 유형](CHAP_Storage.md#Concepts.Storage) 섹션을 참조하세요.  |  **CLI 옵션:**  `--storage-type` **RDS API 파라미터:** `StorageType`  | 
|  가상 프라이빗 클라우드(VPC)  |  이 DB 클러스터와 연결할 Amazon VPC 서비스 기반 VPC입니다. 자세한 내용은 [Amazon VPC 및 Amazon RDS](USER_VPC.md) 섹션을 참조하세요.  |  CLI 및 API의 경우 VPC 보안 그룹 ID를 지정합니다.  | 
|  VPC 보안 그룹(방화벽)  |  DB 클러스터와 연결할 보안 그룹입니다. 자세한 내용은 [VPC 보안 그룹 개요](Overview.RDSSecurityGroups.md#Overview.RDSSecurityGroups.VPCSec)을 참조하세요.  |  **CLI 옵션:**  `--vpc-security-group-ids` **RDS API 파라미터:** `VpcSecurityGroupIds`  | 

## 다중 AZ DB 클러스터를 생성할 때 적용되지 않는 설정
<a name="create-multi-az-db-cluster-settings-not-applicable"></a>

AWS CLI 명령 [https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-cluster.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-cluster.html) 및 RDS API 작업 [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html)의 다음 설정은 다중 AZ DB 클러스터에 적용되지 않습니다.

또한, 콘솔에서 다중 AZ DB 클러스터에 대해 이러한 설정을 지정할 수 없습니다.


| AWS CLI 설정 | RDS API 설정 | 
| --- | --- | 
|  `--availability-zones`  |  `AvailabilityZones`  | 
|  `--backtrack-window`  |  `BacktrackWindow`  | 
|  `--character-set-name`  |  `CharacterSetName`  | 
|  `--domain`  |  `Domain`  | 
|  `--domain-iam-role-name`  |  `DomainIAMRoleName`  | 
|  `--enable-global-write-forwarding \| --no-enable-global-write-forwarding`  |  `EnableGlobalWriteForwarding`  | 
|  `--enable-http-endpoint \| --no-enable-http-endpoint`  |  `EnableHttpEndpoint`  | 
|  `--global-cluster-identifier`  |  `GlobalClusterIdentifier`  | 
|  `--option-group-name`  |  `OptionGroupName`  | 
|  `--pre-signed-url`  |  `PreSignedUrl`  | 
|  `--replication-source-identifier`  |  `ReplicationSourceIdentifier`  | 
|  `--scaling-configuration`  |  `ScalingConfiguration`  | 

# Amazon RDS에서 다중 AZ DB 클러스터에 연결
<a name="multi-az-db-clusters-concepts-connection-management"></a>

 다중 AZ DB 클러스터에는 단일 DB 인스턴스 대신 세 개의 DB 인스턴스가 있습니다. 각 연결은 특정 DB 인스턴스에서 처리합니다. 다중 AZ DB 클러스터에 연결하면 지정한 호스트 이름과 포트가 *엔드포인트*라는 정규화된 도메인 이름으로 연결됩니다. 다중 AZ DB 클러스터는 엔드포인트 메커니즘을 사용하여 이러한 연결을 추상화합니다. 따라서 DB 클러스터 내에서 연결할 DB 인스턴스를 정확히 지정할 필요가 없습니다. 따라서 일부 DB 인스턴스를 사용할 수 없을 때 모든 호스트 이름을 하드코딩하거나, 연결을 다시 라우팅하기 위해 자체 로직을 작성할 필요가 없습니다.

라이터 엔드포인트는 읽기 및 쓰기 작업을 모두 지원하는 DB 클러스터의 라이터 DB 인스턴스에 연결됩니다. 리더 엔드포인트는 읽기 작업만 지원하는 두 리더 DB 인스턴스 중 하나에 연결됩니다.

 엔드포인트를 사용하면 사용 사례에 따라 각 연결을 적절한 DB 인스턴스 또는 DB 인스턴스 그룹에 매핑할 수 있습니다. 예를 들어, DDL 및 DML 문을 수행하기 위해 라이터 DB 인스턴스인 어떤 DB 인스턴스에나 연결할 수 있습니다. 쿼리를 수행하려는 경우 리더 엔드포인트에 연결하면 다중 AZ DB 클러스터가 자동으로 리더 DB 인스턴스 간에 연결을 관리합니다. 진단 또는 튜닝의 경우 특정 DB 인스턴스 엔드포인트에 연결하여 특정 DB 인스턴스에 대한 세부 정보를 검토할 수 있습니다.

DB 인스턴스 연결에 대한 정보는 [Amazon RDS DB 인스턴스에 연결](CHAP_CommonTasks.Connect.md) 섹션을 참조하세요.

다중 AZ DB 클러스터 연결에 대한 자세한 내용은 다음 주제를 참조하세요.

**주제**
+ [클러스터 엔드포인트](#multi-az-db-clusters-concepts-connection-management-endpoints-cluster)
+ [리더 엔드포인트](#multi-az-db-clusters-concepts-connection-management-endpoints-reader)
+ [인스턴스 엔드포인트](#multi-az-db-clusters-concepts-connection-management-endpoints-instance)
+ [고가용성 연결](#multi-az-db-clusters-concepts-connection-management-endpoints-ha)
+ [Amazon RDS용 AWS 드라이버를 사용하여 다중 AZ DB 클러스터에 연결Amazon Web Service(AWS) JDBC 드라이버를 사용하여 다중 AZ DB 클러스터에 연결](maz-cluster-connect-drivers.md)

## 다중 AZ DB 클러스터 엔드포인트
<a name="multi-az-db-clusters-concepts-connection-management-endpoint-types"></a>

 엔드포인트는 호스트 주소를 포함하는 고유 식별자로 표시됩니다. 다중 AZ DB 클러스터에서 제공하는 엔드포인트 유형은 다음과 같습니다.

**클러스터 엔드포인트**  
 다중 AZ DB 클러스터의 *클러스터 엔드포인트*(또는 *라이터 엔드포인트*)는 해당 DB 클러스터의 현재 라이터 DB 인스턴스에 연결됩니다. 이 엔드포인트는 DDL 및 DML 문과 같은 쓰기 작업을 수행할 수 있는 유일한 엔드포인트로, 읽기 작업도 수행할 수 있습니다.  
 각 다중 AZ DB 클러스터에는 클러스터 엔드포인트와 라이터 DB 인스턴스가 하나씩 있습니다.  
 삽입, 업데이트, 삭제 및 DDL 변경을 비롯하여 DB 클러스터의 모든 쓰기 작업에 대해 클러스터 엔드포인트를 사용합니다. 또한 쿼리와 같은 읽기 작업에도 클러스터 엔드포인트를 사용할 수 있습니다.  
 DB 클러스터의 현재 라이터 DB 인스턴스에 장애가 발생하면 다중 AZ DB 클러스터가 자동으로 새 라이터 DB 인스턴스로 장애 조치를 수행합니다. 장애 조치가 이루어지는 동안에도 DB 클러스터가 새로운 라이터 DB 인스턴스의 클러스터 엔드포인트 연결 요청을 처리하여 서비스 중단 시간을 최소화합니다.  
 다음은 다중 AZ DB 클러스터의 클러스터 엔드포인트를 보여주는 예제입니다.  
 `mydbcluster.cluster-123456789012.us-east-1.rds.amazonaws.com`   
클러스터 엔드포인트에 연결하는 방법에 대한 자세한 내용은 [클러스터 엔드포인트](#multi-az-db-clusters-concepts-connection-management-endpoints-cluster) 섹션을 참조하세요.

**리더 엔드포인트**  
 다중 AZ DB 클러스터의 *리더 엔드포인트*는 DB 클러스터에 대한 읽기 전용 연결을 위한 지원을 제공합니다. `SELECT` 쿼리와 같은 읽기 작업에 리더 엔드포인트를 사용합니다. 리더 DB 인스턴스에서 이러한 문을 처리하여 이 엔드포인트에서 라이터 DB 인스턴스의 오버헤드를 줄입니다. 또한, 클러스터가 동시 `SELECT` 쿼리를 처리할 수 있는 용량을 확장할 수 있습니다. 각 다중 AZ DB 클러스터에는 리더 엔드포인트가 하나씩 있습니다.  
 리더 엔드포인트는 리더 DB 인스턴스 중 하나로 각 연결 요청을 전송합니다. 리더 엔드포인트를 세션에 사용하는 경우 해당 세션에서 `SELECT`와 같은 읽기 전용 문만 수행할 수 있습니다.  
 다음은 다중 AZ DB 클러스터의 리더 엔드포인트를 보여주는 예제입니다. 리더 엔드포인트의 읽기 전용 인텐트는 클러스터 엔드포인트 이름 내에서 `-ro`로 표시됩니다.  
 `mydbcluster.cluster-ro-123456789012.us-east-1.rds.amazonaws.com`   
리더 엔드포인트에 연결하는 방법에 대한 자세한 내용은 [리더 엔드포인트](#multi-az-db-clusters-concepts-connection-management-endpoints-reader) 섹션을 참조하세요.

**인스턴스 엔드포인트**  
 *인스턴스 엔드포인트*는 다중 AZ DB 클러스터에 있는 특정 DB 인스턴스에 연결됩니다. DB 클러스터의 DB 인스턴스에는 각각 고유한 인스턴스 엔드포인트가 있습니다. 따라서 DB 클러스터의 현재 라이터 DB 인스턴스에 대해 인스턴스 엔드포인트가 하나씩 있고 DB 클러스터의 각 리더 DB 인스턴스에 대해 인스턴스 엔드포인트가 하나씩 있습니다.  
 인스턴스 엔드포인트에서는 DB 클러스터에 대한 연결을 직접 제어할 수 있습니다. 이 제어 기능은 클러스터 엔드포인트 또는 리더 엔드포인트를 사용하는 것이 적절하지 않을 수 있는 상황에서 문제를 해결하는 데 도움이 될 수 있습니다. 예를 들어 클라이언트 애플리케이션에서 워크로드 유형에 따라 더욱 세분화된 로드 밸런싱이 필요할 수 있습니다. 이 경우, 여러 클라이언트가 DB 클러스터의 다른 리더 DB 인스턴스에 연결하여 읽기 워크로드를 분산하도록 구성할 수 있습니다.  
 다음은 다중 AZ DB 클러스터의 DB 인스턴스에 대한 인스턴스 엔드포인트를 보여주는 예제입니다.  
 `mydbinstance.123456789012.us-east-1.rds.amazonaws.com`   
인스턴스 엔드포인트에 연결하는 방법에 대한 자세한 내용은 [인스턴스 엔드포인트](#multi-az-db-clusters-concepts-connection-management-endpoints-instance) 섹션을 참조하세요.

## 엔드포인트 보기
<a name="multi-az-db-clusters-concepts-connection-management-viewing"></a>

콘솔, AWS CLI 또는 Amazon RDS API를 사용하여 클러스터, 리더 및 인스턴스 엔드포인트를 봅니다.

------
#### [ Console ]

 AWS Management Console에서 각 다중 AZ DB 클러스터의 세부 정보 페이지에 클러스터 엔드포인트와 리더 엔드포인트가 표시됩니다. 각 DB 인스턴스의 세부 정보 페이지에서 인스턴스 엔드포인트를 확인할 수 있습니다.

------
#### [ AWS CLI ]

AWS CLI을 사용하여 [describe-db-clusters](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-clusters.html) 명령의 출력에서 라이터 및 리더 엔드포인트를 확인할 수 있습니다. 예를 들어, 다음 명령은 현재 AWS 리전의 모든 클러스터에 대한 엔드포인트 속성을 보여줍니다.

```
aws rds describe-db-cluster-endpoints
```

------
#### [ Amazon RDS API ]

 Amazon RDS API로 [DescribeDBClusterEndpoints](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBClusterEndpoints.html) 작업을 호출하여 엔드포인트를 검색합니다. 출력에는 Amazon Aurora DB 클러스터 엔드포인트(있는 경우)도 표시됩니다.

------

## 클러스터 엔드포인트
<a name="multi-az-db-clusters-concepts-connection-management-endpoints-cluster"></a>

각 다중 AZ 클러스터에는 기본 제공되는 단일 클러스터 엔드포인트가 있으며, Amazon RDS에서 이 엔드포인트의 이름과 기타 속성을 관리합니다. 이 종류의 엔드포인트는 생성, 삭제 또는 수정할 수 없습니다.

DB 클러스터를 관리하거나, 추출, 변환, 로드(ETL) 작업을 수행하거나, 애플리케이션을 개발 및 테스트할 때 클러스터 엔드포인트를 사용하게 됩니다. 클러스터 엔드포인트는 클러스터의 라이터 DB 인스턴스에 연결됩니다. 라이터 DB 인스턴스는 테이블 및 인덱스를 생성하고, `INSERT` 문을 실행하며, 기타 DDL 및 DML 작업을 수행할 수 있는 유일한 DB 인스턴스입니다.

장애 조치 메커니즘에서 새 DB 인스턴스가 클러스터의 라이터 DB 인스턴스가 되도록 승격하면 클러스터 엔드포인트와 연결되는 물리적 IP 주소가 변경됩니다. 어떤 형식의 연결 풀링이나 기타 멀티플렉싱을 사용하는 경우, 캐싱된 DNS 정보의 TTL(Time to Live)을 플러시하거나 줄이도록 준비합니다. 이렇게 하면 사용할 수 없게 되었거나 장애 조치 후 이제 읽기 전용인 DB 인스턴스에 읽기/쓰기 연결 설정을 시도하지 않아도 됩니다.

## 리더 엔드포인트
<a name="multi-az-db-clusters-concepts-connection-management-endpoints-reader"></a>

다중 AZ DB 클러스터의 읽기 전용 연결에 리더 엔드포인트를 사용합니다. 이 엔드포인트는 DB 클러스터가 쿼리 집약적인 워크로드를 처리할 수 있도록 도와줍니다. 리더 엔드포인트는 클러스터에서 보고 또는 기타 읽기 전용 작업을 수행하는 애플리케이션에 제공하는 엔드포인트입니다. 리더 엔드포인트는 다중 AZ DB 클러스터에서 사용 가능한 리더 DB 인스턴스에 대한 연결을 전송합니다.

 각 다중 AZ 클러스터에는 기본 제공되는 단일 리더 엔드포인트가 있으며, Amazon RDS에서 이 엔드포인트의 이름과 기타 속성을 관리합니다. 이 종류의 엔드포인트는 생성, 삭제 또는 수정할 수 없습니다.

## 인스턴스 엔드포인트
<a name="multi-az-db-clusters-concepts-connection-management-endpoints-instance"></a>

다중 AZ DB 클러스터의 각 DB 인스턴스에는 Amazon RDS에서 관리하는 고유한 기본 제공 인스턴스 엔드포인트가 있습니다. 이 종류의 엔드포인트는 생성, 삭제 또는 수정할 수 없습니다. 다중 AZ DB 클러스터에서는 일반적으로 인스턴스 엔드포인트보다 라이터 및 리더 엔드포인트를 더 자주 사용합니다.

일상적인 작업에서 인스턴스 엔드포인트를 사용하는 주요 방법은 다중 AZ DB 클러스터의 특정 DB 인스턴스 하나에 영향을 주는 용량 또는 성능 문제를 진단하는 것입니다. 특정 DB 인스턴스에 연결되어 있는 동안 해당 인스턴스의 상태 변수, 지표 등을 검토할 수 있습니다. 이렇게 하면 클러스터의 다른 인스턴스에 일어난 일과 별개로 해당 DB 인스턴스에 일어난 일을 확인하는 데 도움이 됩니다.

## 고가용성 연결
<a name="multi-az-db-clusters-concepts-connection-management-endpoints-ha"></a>

고가용성이 중요한 다중 AZ DB 클러스터의 경우 라이터 엔드포인트를 읽기/쓰기 또는 범용 연결에 사용하고 리더 엔드포인트를 읽기 전용 연결에 사용합니다. 라이터 및 리더 엔드포인트는 인스턴스 엔드포인트보다 DB 인스턴스 장애 조치를 더 잘 관리합니다. 인스턴스 엔드포인트와 달리, 라이터 및 리더 엔드포인트는 클러스터의 DB 인스턴스를 사용할 수 없게 되면 연결된 DB 인스턴스를 자동으로 변경합니다.

 DB 클러스터의 기본 DB 인스턴스에 장애가 발생하면 Amazon RDS가 자동으로 새로운 라이터 DB 인스턴스로 장애 조치하는데, 리더 DB 인스턴스를 새로운 라이터 DB 인스턴스로 승격하여 이를 수행합니다. 장애 조치가 발생하면 라이터 엔드포인트를 사용하여 새롭게 승격된 라이터 DB 인스턴스에 다시 연결할 수 있습니다. 또는 리더 엔드포인트를 사용하여 DB 클러스터에서 리더 DB 인스턴스 중 하나에 다시 연결할 수 있습니다. 장애 조치 중에 리더 DB 인스턴스가 새로운 라이터 DB 인스턴스로 승격된 후 리더 엔드포인트가 잠시 동안 DB 클러스터의 새 라이터 DB 인스턴스에 직접 연결할 수 있습니다. 인스턴스 엔드포인트 연결을 관리하는 애플리케이션 로직을 직접 설계하면 DB 클러스터에서 사용 가능한 DB 인스턴스 집합을 수동으로 또는 프로그래밍 방식으로 검색할 수 있습니다.

# Amazon RDS용 AWS 드라이버를 사용하여 다중 AZ DB 클러스터에 연결
<a name="maz-cluster-connect-drivers"></a>

더 빠른 전환 및 장애 조치 시간, AWS Secrets Manager, AWS Identity and Access Management(IAM) 및 페더레이션 ID를 사용한 인증을 지원하도록 설계된 AWS 드라이버 제품군입니다. AWS 드라이버는 DB 클러스터 상태 모니터링과 클러스터 토폴로지 파악을 통해 새 라이터를 결정합니다. 이 접근 방식은 전환 및 장애 조치 시간을 오픈 소스 드라이버의 경우 수십 초였던 것에 비해 10초 미만으로 단축합니다.

새로운 서비스 기능이 도입됨에 따라 AWS 드라이버 제품군의 목표는 이러한 서비스 기능에 대한 지원을 기본 제공하는 것입니다.

## Amazon Web Service(AWS) JDBC 드라이버를 사용하여 다중 AZ DB 클러스터에 연결
<a name="maz-cluster-connect-jdbc"></a>

Amazon Web Services(AWS) JDBC 드라이버는 애플리케이션이 클러스터링된 데이터베이스의 기능을 활용할 수 있도록 지원하는 고급 JDBC 래퍼로 설계되었습니다. 이 래퍼는 기존 JDBC 드라이버의 기능을 보완하고 확장합니다. 이 드라이버는 다음 커뮤니티 드라이버와 드롭인 호환됩니다.
+ MySQL Connector/J
+ MariaDB 커넥터/J
+ pgJDBC

AWS JDBC 드라이버를 설치하려면 `CLASSPATH` 애플리케이션에 있는 AWS JDBC 드라이버 .jar 파일을 추가하고 해당 커뮤니티 드라이버에 대한 참조를 보관해 두세요. 다음과 같이 해당 연결 URL 접두사를 업데이트하세요.
+ `jdbc:mysql://`\$1`jdbc:aws-wrapper:mysql://`
+ `jdbc:mariadb://`\$1`jdbc:aws-wrapper:mariadb://`
+ `jdbc:postgresql://`\$1`jdbc:aws-wrapper:postgresql://`

AWS JDBC 드라이버에 대한 자세한 내용 및 사용 방법에 대한 전체 지침은 [Amazon Web Services (AWS) JDBC Driver GitHub repository](https://github.com/awslabs/aws-advanced-jdbc-wrapper)를 참조하세요.

## Amazon Web Service(AWS) Python 드라이버를 사용하여 다중 AZ DB 클러스터에 연결
<a name="maz-cluster-connect-py"></a>

Amazon Web Services(AWS) Python 드라이버는 고급 Python 래퍼로 설계되었습니다. 이 래퍼는 오픈 소스 Psycopg 드라이버의 기능을 보완하고 확장합니다. AWS Python 드라이버는 Python 버전 3.8 이상을 지원합니다. `pip` 명령을 사용하여 `psycopg` 오픈 소스 패키지와 함께 `aws-advanced-python-wrapper` 패키지를 설치할 수 있습니다.

AWS Python 드라이버에 대한 자세한 내용 및 사용 방법에 대한 전체 지침은 [Amazon Web Services (AWS) JDBC Python GitHub repository](https://github.com/awslabs/aws-advanced-python-wrapper)를 참조하세요.

# AWS 컴퓨팅 리소스와 다중 AZ DB 클러스터 자동 연결
<a name="multi-az-compute-rds-connect"></a>

다중 AZ DB 클러스터와 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스와 같은 AWS 컴퓨팅 리소스 및 AWS Lambda 함수를 자동으로 연결할 수 있습니다.

다음 주제에서는 다중 AZ DB 클러스터 배포 내에서 Amazon RDS DB 인스턴스에 안정적으로 연결하기 위해 네트워크 설정, 보안 그룹 및 연결 파라미터를 구성하는 방법에 대한 자세한 지침을 제공합니다. 다중 AZ DB 클러스터와 상호 작용하는 애플리케이션의 네트워크 연결 및 성능을 최적화하여 안전하고 효율적인 데이터 운영을 보장하는 데 중점을 둡니다.

**Topics**
+ [EC2 인스턴스와 다중 AZ DB 클러스터 자동 연결](multiaz-ec2-rds-connect.md)
+ [Lambda 함수와 다중 AZ DB 클러스터 자동 연결](multiaz-lambda-rds-connect.md)

# EC2 인스턴스와 다중 AZ DB 클러스터 자동 연결
<a name="multiaz-ec2-rds-connect"></a>

Amazon RDS 콘솔을 사용하여 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스와 다중 AZ DB 클러스터 간의 연결 설정을 간소화할 수 있습니다. 다중 AZ DB 클러스터는 프라이빗 서브넷에 있고, EC2 인스턴스는 VPC 내의 퍼블릭 서브넷에 있는 경우가 많습니다. EC2 인스턴스의 SQL 클라이언트를 사용하여 다중 AZ DB 클러스터에 연결할 수 있습니다. EC2 인스턴스는 프라이빗 다중 AZ DB 클러스터에 액세스하는 웹 서버 또는 애플리케이션을 실행할 수도 있습니다.

![\[다중 AZ DB 클러스터와 EC2 인스턴스 자동 연결\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/images/multi-az-ec2-connect-overview.png)


다중 AZ DB 클러스터와 동일한 VPC에 있지 않은 EC2 인스턴스에 연결하려는 경우 [VPC에서 DB 인스턴스에 액세스하는 시나리오](USER_VPC.Scenarios.md)의 시나리오를 참조하세요.

**Topics**
+ [EC2 인스턴스와의 자동 연결 개요](#multiaz-ec2-rds-connect-overview)
+ [EC2 인스턴스와 다중 AZ DB 클러스터 자동 연결](#multiaz-ec2-rds-connect-connecting)
+ [연결된 컴퓨팅 리소스 보기](#multiaz-ec2-rds-connect-viewing)

## EC2 인스턴스와의 자동 연결 개요
<a name="multiaz-ec2-rds-connect-overview"></a>

EC2 인스턴스와 다중 AZ DB 클러스터 간의 연결을 자동으로 설정할 때 Amazon RDS는 EC2 인스턴스 및 DB 클러스터에 대한 VPC 보안 그룹을 구성합니다.

다음은 EC2 인스턴스를 다중 AZ DB 클러스터와 연결하기 위한 요구 사항입니다.
+ EC2 인스턴스는 다중 AZ DB 클러스터와 동일한 VPC에 있어야 합니다.

  EC2 인스턴스가 동일한 VPC에 없는 경우 콘솔은 EC2 인스턴스를 생성하기 위한 링크를 제공합니다.
+ 연결을 설정하는 사용자는 다음 EC2 작업을 수행할 수 있는 권한이 있어야 합니다.
  + `ec2:AuthorizeSecurityGroupEgress` 
  + `ec2:AuthorizeSecurityGroupIngress` 
  + `ec2:CreateSecurityGroup` 
  + `ec2:DescribeInstances` 
  + `ec2:DescribeNetworkInterfaces` 
  + `ec2:DescribeSecurityGroups` 
  + `ec2:ModifyNetworkInterfaceAttribute` 
  + `ec2:RevokeSecurityGroupEgress` 

EC2 인스턴스에 대한 연결을 설정하면 Amazon RDS는 다음 테이블에 설명된 대로 다중 AZ DB 클러스터 및 EC2 인스턴스와 연결된 보안 그룹의 현재 구성을 기반으로 조치를 취합니다.


| 현재 RDS 보안 그룹 구성 | 현재 EC2 보안 그룹 구성 | RDS 작업 | 
| --- | --- | --- | 
|  `rds-ec2-n` 패턴(`n`은 숫자를 나타냄)과 일치하는 이름의 다중 AZ DB 클러스터와 연결된 보안 그룹이 하나 이상 있습니다. 해당 패턴과 일치하는 보안 그룹이 수정되지 않았습니다. 이 보안 그룹에는 EC2 인스턴스의 VPC 보안 그룹을 소스로 하는 인바운드 규칙이 하나만 포함됩니다.  |  `rds-ec2-n`(`n`은 숫자를 나타냄) 패턴과 일치하는 이름을 가진 EC2 인스턴스와 연결된 보안 그룹이 하나 이상 있습니다. 해당 패턴과 일치하는 보안 그룹이 수정되지 않았습니다. 이 보안 그룹에는 다중 AZ DB 클러스터의 VPC 보안 그룹을 소스로 하는 아웃바운드 규칙이 하나만 포함됩니다.  |  Amazon RDS는 아무런 조치도 취하지 않습니다. EC2 인스턴스와 다중 AZ DB 클러스터 간의 연결이 이미 자동으로 구성되었습니다. EC2 인스턴스와 RDS 데이터베이스 사이에 이미 연결이 존재하기 때문에 보안 그룹은 수정되지 않습니다.  | 
|  다음 중 하나의 조건이 적용됩니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/multiaz-ec2-rds-connect.html)  |  다음 중 하나의 조건이 적용됩니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/multiaz-ec2-rds-connect.html)  |  [RDS action: create new security groups](ec2-rds-connect.md#rds-action-create-new-security-groups)  | 
|  `rds-ec2-n` 패턴과 일치하는 이름의 다중 AZ DB 클러스터와 연결된 보안 그룹이 하나 이상 있습니다. 해당 패턴과 일치하는 보안 그룹이 수정되지 않았습니다. 이 보안 그룹에는 EC2 인스턴스의 VPC 보안 그룹을 소스로 하는 인바운드 규칙이 하나만 포함됩니다.  |  `ec2-rds-n` 패턴과 일치하는 이름을 가진 EC2 인스턴스와 연결된 보안 그룹이 하나 이상 있습니다. 하지만 이러한 보안 그룹 중 어느 것도 다중 AZ DB 클러스터와의 연결에 사용할 수 없습니다. 보안 그룹에 다중 AZ DB 클러스터의 VPC 보안 그룹을 소스로 하는 아웃바운드 규칙 하나가 없는 경우 보안 그룹을 사용할 수 없습니다. 보안 그룹이 수정된 경우에도 사용할 수 없습니다.  |  [RDS action: create new security groups](ec2-rds-connect.md#rds-action-create-new-security-groups)  | 
|  `rds-ec2-n` 패턴과 일치하는 이름의 다중 AZ DB 클러스터와 연결된 보안 그룹이 하나 이상 있습니다. 해당 패턴과 일치하는 보안 그룹이 수정되지 않았습니다. 이 보안 그룹에는 EC2 인스턴스의 VPC 보안 그룹을 소스로 하는 인바운드 규칙이 하나만 포함됩니다.  |  연결에 유효한 EC2 보안 그룹이 있지만 EC2 인스턴스와 연결되어 있지 않습니다. 이 보안 그룹의 이름이 `rds-ec2-n` 패턴과 일치합니다. 수정되지 않았습니다. 여기에는 다중 AZ DB 클러스터의 VPC 보안 그룹을 소스로 하는 아웃바운드 규칙이 하나만 포함됩니다.  |  [RDS action: associate EC2 security group](ec2-rds-connect.md#rds-action-associate-ec2-security-group)  | 
|  다음 중 하나의 조건이 적용됩니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/multiaz-ec2-rds-connect.html)  |  `rds-ec2-n` 패턴과 일치하는 이름을 가진 EC2 인스턴스와 연결된 보안 그룹이 하나 이상 있습니다. 해당 패턴과 일치하는 보안 그룹이 수정되지 않았습니다. 이 보안 그룹에는 다중 AZ DB 클러스터의 VPC 보안 그룹을 소스로 하는 아웃바운드 규칙이 하나만 포함됩니다.  |  [RDS action: create new security groups](ec2-rds-connect.md#rds-action-create-new-security-groups)  | 

**RDS 작업: 새 보안 그룹 생성**  
Amazon RDS에서 다음 작업을 수행합니다.
+ `rds-ec2-n` 패턴과 일치하는 새 보안 그룹을 생성합니다. 이 보안 그룹에는 EC2 인스턴스의 VPC 보안 그룹을 소스로 하는 인바운드 규칙이 하나 포함됩니다. 이 보안 그룹은 다중 AZ DB 클러스터와 연결되어 있으며 EC2 인스턴스가 다중 AZ DB 클러스터에 액세스하도록 허용합니다.
+ `ec2-rds-n` 패턴과 일치하는 새 보안 그룹을 생성합니다. 이 보안 그룹에는 다중 AZ DB 클러스터의 VPC 보안 그룹을 소스로 하는 아웃바운드 규칙이 하나 포함됩니다. 이 보안 그룹은 EC2 인스턴스와 연결되어 있으며 EC2 인스턴스가 다중 AZ DB 클러스터에 트래픽을 보내도록 허용합니다.

**RDS 작업: EC2 보안 그룹 연결**  
Amazon RDS는 유효한 기존 EC2 보안 그룹을 EC2 인스턴스와 연결합니다. 이 보안 그룹은 EC2 인스턴스가 다중 AZ DB 클러스터에 트래픽을 보내도록 허용합니다.

## EC2 인스턴스와 다중 AZ DB 클러스터 자동 연결
<a name="multiaz-ec2-rds-connect-connecting"></a>

EC2 인스턴스와 RDS 데이터베이스 간의 연결을 설정하기 전에 [EC2 인스턴스와의 자동 연결 개요](ec2-rds-connect.md#ec2-rds-connect-overview)에 설명된 요구 사항을 충족하는지 확인하세요.

연결을 구성한 후에 보안 그룹을 변경할 경우 변경 사항이 EC2 인스턴스와 RDS 데이터베이스 간의 연결에 영향을 미칠 수 있습니다.

**참고**  
AWS Management Console을 사용해야만 EC2 인스턴스와 RDS 데이터베이스 간의 연결을 자동으로 설정할 수 있습니다. AWS CLI 또는 RDS API로는 연결을 자동으로 설정할 수 없습니다.

**EC2 인스턴스와 RDS 데이터베이스를 자동으로 연결하는 방법**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

1. 탐색 창에서 **데이터베이스**를 선택하고 RDS 데이터베이스를 선택합니다.

1. **작업**에서 **EC2 연결 설정**을 선택합니다.

   **EC2 연결 설정** 페이지가 나타납니다.

1. **EC2 연결 설정** 페이지에서 EC2 인스턴스를 선택합니다.  
![\[EC2 연결 설정 페이지.\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/images/auto-connect-rds-ec2-set-up.png)

   동일한 VPC에 EC2 인스턴스가 없는 경우 **EC2 인스턴스 생성**을 선택하여 인스턴스를 생성합니다. 이 경우 새 EC2 인스턴스가 RDS 데이터베이스와 동일한 VPC 있어야 합니다.

1. **계속**을 선택합니다.

   **검토 및 확인** 페이지가 나타납니다.  
![\[EC2 연결 검토 및 확인 페이지.\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/images/auto-connect-rds-ec2-confirm.png)

1. **검토 및 확인** 페이지에서 RDS가 EC2 인스턴스와의 연결을 설정하기 위해 적용할 변경 사항을 검토합니다.

   변경 내용이 올바르면 **확인 및 설정**을 선택합니다.

   변경 내용이 올바르지 않으면 **이전** 또는 **취소**를 선택합니다.

## 연결된 컴퓨팅 리소스 보기
<a name="multiaz-ec2-rds-connect-viewing"></a>

AWS Management Console을 사용하여 RDS 데이터베이스에 연결된 컴퓨팅 리소스를 볼 수 있습니다. 표시되는 리소스에는 자동으로 설정된 컴퓨팅 리소스 연결이 포함됩니다. 다음과 같은 방법으로 컴퓨팅 리소스와의 연결을 자동으로 설정할 수 있습니다.
+ 데이터베이스를 생성할 때 컴퓨팅 리소스를 선택할 수 있습니다.

  자세한 내용은 [Amazon RDS DB 인스턴스 생성](USER_CreateDBInstance.md) 및 [Amazon RDS용 다중 AZ DB 클러스터 생성](create-multi-az-db-cluster.md) 섹션을 참조하세요.
+ 기존 데이터베이스와 컴퓨팅 리소스 간의 연결을 설정할 수 있습니다.

  자세한 내용은 [EC2 인스턴스와 RDS 데이터베이스 자동 연결](ec2-rds-connect.md#ec2-rds-connect-connecting) 섹션을 참조하세요.

나열된 컴퓨팅 리소스에는 데이터베이스에 수동으로 연결된 리소스는 포함되지 않습니다. 예를 들어 데이터베이스와 연결된 VPC 보안 그룹에 규칙을 추가하여 컴퓨팅 리소스가 데이터베이스에 수동으로 액세스하도록 허용할 수 있습니다.

컴퓨팅 리소스가 나열되려면 다음 조건이 적용되어야 합니다.
+ 컴퓨팅 리소스와 연결된 보안 그룹의 이름은 패턴 `ec2-rds-n`(여기서`n`은 숫자)과 일치합니다.
+ 컴퓨팅 리소스와 연결된 보안 그룹에는 포트 범위가 RDS 데이터베이스에서 사용하는 포트로 설정된 아웃바운드 규칙이 있습니다.
+ 컴퓨팅 리소스와 연결된 보안 그룹에는 소스가 RDS 데이터베이스에 연결된 보안 그룹으로 설정된 아웃바운드 규칙이 있습니다.
+ RDS 데이터베이스와 연결된 보안 그룹의 이름은 패턴 `rds-ec2-n`(여기서 `n`은 숫자)과 일치합니다.
+ RDS 데이터베이스와 연결된 보안 그룹에는 포트 범위가 RDS 데이터베이스에서 사용하는 포트로 설정된 인바운드 규칙이 있습니다.
+ RDS 데이터베이스와 연결된 보안 그룹에는 소스가 컴퓨팅 리소스에 연결된 보안 그룹으로 설정된 인바운드 규칙이 있습니다.

**RDS 데이터베이스에 연결된 컴퓨팅 리소스를 보는 방법**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

1. 탐색 창에서 **데이터베이스**를 선택한 다음 RDS 데이터베이스의 이름을 선택합니다.

1. **연결 및 보안** 탭의 **연결된 컴퓨팅 리소스**에서 컴퓨팅 리소스를 확인합니다.  
![\[연결된 컴퓨팅 리소스.\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/images/ec2-connected-compute-resources.png)

# Lambda 함수와 다중 AZ DB 클러스터 자동 연결
<a name="multiaz-lambda-rds-connect"></a>

RDS 콘솔을 사용하여 Lambda 함수와 다중 AZ DB 클러스터 간의 연결 설정을 간소화할 수 있습니다. RDS 콘솔을 사용하여 Lambda 함수와 다중 AZ DB 클러스터 간의 연결 설정을 간소화할 수 있습니다. 다중 AZ DB 클러스터가 VPC 내 프라이빗 서브넷에 있는 경우가 많습니다. 애플리케이션에서 프라이빗 다중 AZ DB 클러스터에 액세스하는 데 Lambda 함수를 사용할 수 있습니다.

다음 이미지는 다중 AZ DB 클러스터와 Lambda 함수 간의 직접 연결을 보여줍니다.

![\[다중 AZ DB 클러스터와 Lambda 함수를 자동으로 연결합니다.\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/images/auto-connect-maz-lambda.png)


RDS 프록시를 통해 Lambda 함수와 다중 AZ DB 클러스터 간의 연결을 설정하여 데이터베이스 성능과 복원력을 개선할 수 있습니다. Lambda 함수는 RDS 프록시가 제공하는 연결 풀링의 이점을 누릴 수 있는 단기 데이터베이스 연결을 자주 만드는 경우가 많습니다. Lambda 애플리케이션 코드에서 데이터베이스 보안 인증 정보를 관리하는 대신 Lambda 함수에 대해 이미 가지고 있는 IAM 인증을 활용할 수 있습니다. 자세한 내용은 [ Amazon RDS Proxy](rds-proxy.md) 섹션을 참조하세요.

콘솔을 사용하여 연결용 프록시를 자동으로 만들 수 있습니다. 기존 프록시를 선택할 수도 있습니다. 콘솔은 데이터베이스 및 Lambda 함수와의 연결을 허용하도록 프록시 보안 그룹을 업데이트합니다. 데이터베이스 보안 인증 정보를 입력하거나 데이터베이스에 액세스하는 데 필요한 Secrets Manager 보안 암호를 선택할 수 있습니다.

![\[RDS 프록시를 통해 다중 AZ DB 클러스터와 Lambda 함수를 자동으로 연결합니다.\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/images/auto-connect-maz-lambda-Proxy.png)


**Topics**
+ [Lambda 함수와의 자동 연결 개요](#multiaz-lambda-rds-connect-overview)
+ [Lambda 함수와 다중 AZ DB 클러스터 자동 연결](#multiaz-lambda-rds-connect-connecting)
+ [연결된 컴퓨팅 리소스 보기](#multiaz-lambda-rds-connect-viewing)

## Lambda 함수와의 자동 연결 개요
<a name="multiaz-lambda-rds-connect-overview"></a>

Lambda 함수와 다중 AZ DB 클러스터 간의 연결을 자동으로 설정할 때 Amazon RDS는 Lambda 함수 및 DB 클러스터에 대한 VPC 보안 그룹을 구성합니다.

다음은 Lambda 함수를 다중 AZ DB 클러스터와 연결하기 위한 요구 사항입니다.
+ Lambda 함수가 다중 AZ DB 클러스터와 같은 VPC에 있어야 합니다.

  Lambda 함수가 동일한 VPC에 없는 경우 콘솔은 생성을 위한 링크를 제공합니다.
+ 연결을 설정하는 사용자는 다음과 같은 Amazon RDS, Amazon EC2, Lambda, Secrets Manager 및 IAM 작업을 수행할 권한이 있어야 합니다.
  + Amazon RDS
    + `rds:CreateDBProxies`
    + `rds:DescribeDBInstances`
    + `rds:DescribeDBProxies`
    + `rds:ModifyDBInstance`
    + `rds:ModifyDBProxy`
    + `rds:RegisterProxyTargets`
  + Amazon EC2
    + `ec2:AuthorizeSecurityGroupEgress` 
    + `ec2:AuthorizeSecurityGroupIngress` 
    + `ec2:CreateSecurityGroup` 
    + `ec2:DeleteSecurityGroup`
    + `ec2:DescribeSecurityGroups` 
    + `ec2:RevokeSecurityGroupEgress` 
    + `ec2:RevokeSecurityGroupIngress`
  + Lambda
    + `lambda:CreateFunctions`
    + `lambda:ListFunctions`
    + `lambda:UpdateFunctionConfiguration`
  + Secrets Manager
    + `sercetsmanager:CreateSecret`
    + `secretsmanager:DescribeSecret`
  + IAM
    + `iam:AttachPolicy`
    + `iam:CreateRole`
    + `iam:CreatePolicy`
  + AWS KMS
    + `kms:describeKey`

Lambda 함수와 다중 AZ DB 클러스터 간의 연결을 설정할 때 Amazon RDS는 함수 및 다중 AZ DB 클러스터에 대한 VPC 보안 그룹을 구성합니다. RDS 프록시를 사용하는 경우 Amazon RDS는 프록시에 대한 VPC 보안 그룹도 구성합니다. Amazon RDS는 다음 테이블에 설명된 것과 같이 다중 AZ DB 클러스터, Lambda 함수 및 프록시와 관련된 보안 그룹의 현재 구성에 따라 작동합니다.


| 현재 RDS 보안 그룹 구성 | 현재 Lambda 보안 그룹 구성 | 현재 프록시 보안 그룹 구성 | RDS 작업 | 
| --- | --- | --- | --- | 
|  모든 리소스의 보안 그룹이 올바른 명명 패턴을 따르고 올바른 인바운드 및 아웃바운드 규칙을 적용하기 때문에 Amazon RDS가 아무런 작업을 수행하지 않습니다.  |  이름이 `rds-lambda-n` 패턴(`n`은 숫자를 나타냄)과 일치하며 다중 AZ DB 클러스터와 연결된 보안 그룹이 하나 이상 있거나 연결된 프록시의 `TargetHealth`가 `AVAILABLE`입니다. 해당 패턴과 일치하는 보안 그룹이 수정되지 않았습니다. 이 보안 그룹에는 Lambda 함수 또는 프록시의 VPC 보안 그룹을 소스로 하는 인바운드 규칙이 하나만 있습니다.  |  이름이 `lambda-rds-n` 또는 `lambda-rdsproxy-n`(`n`은 숫자를 나타냄) 패턴과 일치하며 Lambda 함수와 연결된 보안 그룹이 하나 이상 있습니다. 해당 패턴과 일치하는 보안 그룹이 수정되지 않았습니다. 이 보안 그룹에는 다중 AZ DB 클러스터 또는 프록시의 VPC 보안 그룹을 대상으로 하는 아웃바운드 규칙이 하나만 있습니다.  |  이름이 `rdsproxy-lambda-n`(`n`은 숫자를 나타냄) 패턴과 일치하며 프록시와 연결된 보안 그룹이 하나 이상 있습니다. 해당 패턴과 일치하는 보안 그룹이 수정되지 않았습니다. 이 보안 그룹에는 Lambda 함수 및 다중 AZ DB 클러스터의 VPC 보안 그룹이 포함된 인바운드 및 아웃바운드 규칙이 있습니다.  | 
|  다음 중 하나의 조건이 적용됩니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/multiaz-lambda-rds-connect.html) Amazon RDS는 Lambda 함수 또는 프록시의 VPC 보안 그룹을 소스로 하는 인바운드 규칙 하나가 포함되지 않은 보안 그룹을 사용할 수 없습니다. 또한 수정된 보안 그룹을 사용할 수 없습니다. 수정 사항의 예로는 규칙 추가 또는 기존 규칙의 포트 변경이 있습니다.  |  다음 중 하나의 조건이 적용됩니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/multiaz-lambda-rds-connect.html) Amazon RDS는 다중 AZ DB 클러스터 또는 프록시의 VPC 보안 그룹을 소스로 하는 아웃바운드 규칙 하나가 포함되지 않은 보안 그룹을 사용할 수 없습니다. 또한 수정된 보안 그룹을 사용할 수 없습니다.  | 다음 중 하나의 조건이 적용됩니다.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/multiaz-lambda-rds-connect.html)Amazon RDS는 다중 AZ DB 클러스터 및 Lambda 함수의 VPC 보안 그룹을 대상으로 하는 인바운드 및 아웃바운드 규칙이 포함되지 않은 보안 그룹을 사용할 수 없습니다. 또한 수정된 보안 그룹을 사용할 수 없습니다. | [RDS action: create new security groups](#maz-lam-action-create-new-security-groups)  | 
|  이름이 `rds-lambda-n` 패턴과 일치하며 다중 AZ DB 클러스터와 연결된 보안 그룹이 하나 이상 있거나 연결된 프록시의 `TargetHealth`가 `AVAILABLE`입니다. 해당 패턴과 일치하는 보안 그룹이 수정되지 않았습니다. 이 보안 그룹에는 Lambda 함수 또는 프록시의 VPC 보안 그룹을 소스로 하는 인바운드 규칙이 하나만 있습니다.  |  이름이 `lambda-rds-n` 또는 `lambda-rdsproxy-n` 패턴과 일치하며 Lambda 함수와 연결된 보안 그룹이 하나 이상 있습니다. 그러나 Amazon RDS는 다중 AZ DB 클러스터와의 연결에 이러한 보안 그룹을 사용할 수 없습니다. Amazon RDS는 다중 AZ DB 클러스터 또는 프록시의 VPC 보안 그룹을 대상으로 하는 아웃바운드 규칙 하나가 포함되지 않은 보안 그룹을 사용할 수 없습니다. 또한 수정된 보안 그룹을 사용할 수 없습니다.  |  이름이 `rdsproxy-lambda-n` 패턴과 일치하며 프록시와 연결된 보안 그룹이 하나 이상 있습니다. 그러나 Amazon RDS는 다중 AZ DB 클러스터 또는 Lambda 함수와의 연결에 이러한 보안 그룹을 사용할 수 없습니다. Amazon RDS는 다중 AZ DB 클러스터 및 Lambda 함수의 VPC 보안 그룹을 대상으로 하는 인바운드 및 아웃바운드 규칙이 포함되지 않은 보안 그룹을 사용할 수 없습니다. 또한 수정된 보안 그룹을 사용할 수 없습니다.  | [RDS action: create new security groups](#maz-lam-action-create-new-security-groups)  | 
|  이름이 `rds-lambda-n` 패턴과 일치하며 다중 AZ DB 클러스터와 연결된 보안 그룹이 하나 이상 있거나 연결된 프록시의 `TargetHealth`가 `AVAILABLE`입니다. 해당 패턴과 일치하는 보안 그룹이 수정되지 않았습니다. 이 보안 그룹에는 Lambda 함수 또는 프록시의 VPC 보안 그룹을 소스로 하는 인바운드 규칙이 하나만 있습니다.  |  연결에 유효한 Lambda 보안 그룹이 존재하지만 Lambda 함수와 연결되어 있지 않습니다. 이 보안 그룹의 이름이 `lambda-rds-n` 또는 `lambda-rdsproxy-n` 패턴과 일치합니다. 수정되지 않았습니다. 다중 AZ DB 클러스터 또는 프록시의 VPC 보안 그룹을 대상으로 하는 아웃바운드 규칙이 하나만 있습니다.  |  연결에 유효한 프록시 보안 그룹이 있지만 프록시와 연결되어 있지 않습니다. 이 보안 그룹의 이름이 `rdsproxy-lambda-n` 패턴과 일치합니다. 수정되지 않았습니다. 다중 AZ DB 클러스터 및 Lambda 함수의 VPC 보안 그룹이 포함된 인바운드 및 아웃바운드 규칙이 있습니다.  |  [RDS action: associate Lambda security group](#maz-lam-action-associate-lam-security-group)  | 
|  다음 중 하나의 조건이 적용됩니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/multiaz-lambda-rds-connect.html)  |  이름이 `lambda-rds-n` 또는 `lambda-rdsproxy-n` 패턴과 일치하며 Lambda 함수와 연결된 보안 그룹이 하나 이상 있습니다. 해당 패턴과 일치하는 보안 그룹이 수정되지 않았습니다. 이 보안 그룹에는 다중 AZ DB 클러스터 또는 프록시의 VPC 보안 그룹을 대상으로 하는 아웃바운드 규칙이 하나만 있습니다.  |  이름이 `rdsproxy-lambda-n` 패턴과 일치하며 프록시와 연결된 보안 그룹이 하나 이상 있습니다. 해당 패턴과 일치하는 보안 그룹이 수정되지 않았습니다. 이 보안 그룹에는 다중 AZ DB 클러스터 및 Lambda 함수의 VPC 보안 그룹이 포함된 인바운드 및 아웃바운드 규칙이 있습니다.  |  [RDS action: create new security groups](#maz-lam-action-create-new-security-groups)  | 
|  `rds-rdsproxy-n` 패턴(`n`은 숫자를 나타냄)과 일치하는 이름의 다중 AZ DB 클러스터와 연결된 보안 그룹이 하나 이상 있습니다.  |  다음 중 하나의 조건이 적용됩니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/multiaz-lambda-rds-connect.html) Amazon RDS는 다중 AZ DB 클러스터 또는 프록시의 VPC 보안 그룹을 대상으로 하는 아웃바운드 규칙 하나가 포함되지 않은 보안 그룹을 사용할 수 없습니다. 또한 수정된 보안 그룹을 사용할 수 없습니다.  | 다음 중 하나의 조건이 적용됩니다.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/multiaz-lambda-rds-connect.html)Amazon RDS는 다중 AZ DB 클러스터 및 Lambda 함수의 VPC 보안 그룹을 대상으로 하는 인바운드 및 아웃바운드 규칙이 포함되지 않은 보안 그룹을 사용할 수 없습니다. 또한 수정된 보안 그룹을 사용할 수 없습니다. |  [RDS action: create new security groups](#maz-lam-action-create-new-security-groups)  | 

**RDS 작업: 새 보안 그룹 생성**  
Amazon RDS에서 다음 작업을 수행합니다.
+ `rds-lambda-n` 패턴과 일치하는 새 보안 그룹을 생성합니다. 이 보안 그룹에는 Lambda 함수 또는 프록시의 VPC 보안 그룹을 소스로 하는 인바운드 규칙이 하나 있습니다. 이 보안 그룹은 다중 AZ DB 클러스터와 연결되어 있으며 함수 또는 프록시가 다중 AZ DB 클러스터에 액세스하도록 허용합니다.
+ `lambda-rds-n` 패턴과 일치하는 새 보안 그룹을 생성합니다. 이 보안 그룹에는 다중 AZ DB 클러스터 또는 프록시의 VPC 보안 그룹을 대상으로 하는 아웃바운드 규칙이 하나 있습니다. 이 보안 그룹은 Lambda 함수와 연결되어 있으며, Lambda 함수가 트래픽을 다중 AZ DB 클러스터로 보내거나 프록시를 통해 보내도록 허용합니다.
+ `rdsproxy-lambda-n` 패턴과 일치하는 새 보안 그룹을 생성합니다. 이 보안 그룹에는 다중 AZ DB 클러스터 및 Lambda 함수의 VPC 보안 그룹이 포함된 인바운드 및 아웃바운드 규칙이 있습니다.

**RDS 작업: Lambda 보안 그룹 연결**  
Amazon RDS는 유효한 기존 Lambda 보안 그룹을 Lambda 함수와 연결합니다. 이 보안 그룹은 함수가 트래픽을 다중 AZ DB 클러스터로 보내거나 프록시를 통해 보내도록 허용합니다.

## Lambda 함수와 다중 AZ DB 클러스터 자동 연결
<a name="multiaz-lambda-rds-connect-connecting"></a>

Amazon RDS 콘솔을 사용하여 Lambda 함수를 다중 AZ DB 클러스터에 자동으로 연결할 수 있습니다. 이렇게 하면 이러한 리소스 간의 연결을 설정하는 프로세스가 간소화됩니다.

RDS 프록시를 사용하여 연결에 프록시를 포함할 수도 있습니다. Lambda 함수는 RDS 프록시가 제공하는 연결 풀링의 이점을 누릴 수 있는 단기 데이터베이스 연결을 자주 만듭니다. Lambda 애플리케이션 코드에서 데이터베이스 보안 인증 정보를 관리하는 대신 Lambda 함수에 대해 이미 설정한 IAM 인증을 사용할 수도 있습니다.

**Lambda 연결 설정** 페이지를 사용하여 기존 다중 AZ DB 클러스터를 신규 및 기존 Lambda 함수에 연결할 수 있습니다. 이 설정 프로세스는 필요한 보안 그룹을 자동으로 설정합니다.

Lambda 함수와 다중 AZ DB 클러스터 간의 연결을 설정하기 전에 다음 요구 사항을 충족해야 합니다.
+ Lambda 함수와 다중 AZ DB 클러스터가 동일한 VPC에 있습니다.
+ 사용자 계정에 대한 올바른 권한이 있습니다. 요구 사항에 대한 자세한 내용은 [Lambda 함수와의 자동 연결 개요](lambda-rds-connect.md#lambda-rds-connect-overview) 섹션을 참조하세요.

연결을 구성한 후에 보안 그룹을 변경할 경우 변경 사항이 Lambda 함수와 다중 AZ DB 클러스터 간의 연결에 영향을 미칠 수 있습니다.

**참고**  
AWS Management Console에서만 다중 AZ DB 클러스터와 Lambda 함수의 연결을 자동으로 설정할 수 있습니다. Lambda 함수를 연결하려면 다중 AZ DB 클러스터의 모든 인스턴스가 **사용 가능** 상태여야 합니다.

**Lambda 함수와 다중 AZ DB 클러스터를 자동으로 연결하는 방법**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

1. 탐색 창에서 **데이터베이스**를 선택한 다음, Lambda 함수에 연결할 다중 AZ DB 클러스터를 선택합니다.

1. **작업**에서 **Lambda 연결 설정**을 선택합니다.

1. **Lambda 연결 설정** 페이지의 **Lambda 함수 선택**에서 다음 중 하나를 수행합니다.
   + 다중 AZ DB 클러스터와 동일한 VPC에 기존 Lambda 함수가 있는 경우 **기존 함수 선택**을 선택하고 해당 함수를 선택합니다.
   + 동일한 VPC에 Lambda 함수가 없는 경우 **새 함수 생성**을 선택한 다음 **함수 이름**을 입력합니다. 기본 런타임은 Nodejs.18로 설정되어 있습니다. 연결 설정을 완료한 후 Lambda 콘솔에서 새 Lambda 함수의 설정을 수정할 수 있습니다.

1. (선택 사항) **RDS 프록시**에서 **RDS 프록시를 사용하여 연결**을 선택하고 다음 중 하나를 수행합니다.
   + 사용하려는 기존 프록시가 있는 경우 **기존 프록시 선택**을 선택하고 해당 프록시를 선택합니다.
   + 프록시가 없고 Amazon RDS에서 자동으로 프록시를 생성하도록 하려면 **새 프록시 생성**을 선택합니다. 그런 다음, **데이터베이스 보안 인증 정보**에서 다음 중 하나를 수행합니다.

     1. **데이터베이스 사용자 이름 및 암호**를 선택한 다음, 다중 AZ DB 클러스터의 **사용자 이름**과 **암호**를 입력합니다.

     1. **Secrets Manager 보안 암호**를 선택합니다. 그런 다음, **보안 암호 선택**에서 AWS Secrets Manager 보안 암호를 선택합니다. Secrets Manager 보안 암호가 없다면 **새 Secrets Manager 보안 암호 생성**을 선택하여 [새 보안 암호를 생성](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html)합니다. 보안 암호를 생성한 후 **보안 암호 선택**에서 새 보안 암호를 선택합니다.

     새 프록시를 생성한 후 **기존 프록시 선택**을 선택하고 해당 프록시를 선택합니다. 프록시를 연결에 사용하려면 다소 시간이 걸릴 수 있습니다.

1. (선택 사항) **연결 요약**을 확장하고 리소스에서 강조 표시된 업데이트를 확인합니다.

1. **설정**을 선택합니다.

설정을 확인하면 Amazon RDS가 Lambda 함수, RDS 프록시(프록시를 사용한 경우) 및 다중 AZ DB 클러스터 연결 프로세스를 시작합니다. 콘솔에 **연결 세부 정보** 대화 상자가 표시되며, 여기에 리소스 간 연결을 허용하는 보안 그룹 변경 사항이 나열됩니다.

## 연결된 컴퓨팅 리소스 보기
<a name="multiaz-lambda-rds-connect-viewing"></a>

AWS Management Console을 사용하여 다중 AZ DB 클러스터에 연결된 컴퓨팅 리소스를 볼 수 있습니다. 표시되는 리소스에는 Amazon RDS가 자동으로 설정한 컴퓨팅 리소스 연결이 포함됩니다.

나열된 컴퓨팅 리소스에는 다중 AZ DB 클러스터에 수동으로 연결된 컴퓨팅 리소스가 포함되지 않습니다. 예를 들어 클러스터와 연결된 VPC 보안 그룹에 규칙을 추가하여 컴퓨팅 리소스가 다중 AZ DB 클러스터에 수동으로 액세스하도록 허용할 수 있습니다.

콘솔에 Lambda 함수를 나열하려면 다음 조건을 적용해야 합니다.
+ 컴퓨팅 리소스와 연결된 보안 그룹의 이름이 `lambda-rds-n` 또는 `lambda-rdsproxy-n`(`n`은 숫자를 나타냄) 패턴과 일치합니다.
+ 컴퓨팅 리소스와 연결된 보안 그룹에 포트 범위가 다중 AZ DB 클러스터 또는 프록시의 포트로 설정된 아웃바운드 규칙이 있습니다. 아웃바운드 규칙의 대상이 다중 AZ DB 클러스터 또는 관련 프록시와 연결된 보안 그룹으로 설정되어 있어야 합니다.
+ 데이터베이스와 연결된 프록시에 연결된 보안 그룹의 이름이 `rds-rdsproxy-n`(`n`은 숫자를 나타냄) 패턴과 일치합니다.
+ 함수와 연결된 보안 그룹에 포트가 다중 AZ DB 클러스터 또는 관련 프록시가 사용하는 포트로 설정된 아웃바운드 규칙이 있습니다. 대상이 다중 AZ DB 클러스터 또는 관련 프록시와 연결된 보안 그룹으로 설정되어 있어야 합니다.

**다중 AZ DB 클러스터에 자동으로 연결된 컴퓨팅 리소스를 보는 방법**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

1. 탐색 창에서 **데이터베이스**를 선택한 후 다중 AZ DB 클러스터를 선택합니다.

1. **연결 및 보안** 탭의 **연결된 컴퓨팅 리소스**에서 컴퓨팅 리소스를 확인합니다.

# Amazon RDS용 다중 AZ DB 클러스터 수정
<a name="modify-multi-az-db-cluster"></a>

다중 AZ DB 클러스터에는 라이터 DB 인스턴스와 두 개의 리더 DB 인스턴스가 세 개의 개별 가용 영역에 있습니다. 다중 AZ DB 클러스터는 다중 AZ 배포에 비해 고가용성, 높은 읽기 워크로드 용량 및 짧은 대기 시간을 제공합니다. 다중 AZ DB 클러스터에 대한 자세한 내용은 [Amazon RDS용 다중 AZ DB 클러스터 배포](multi-az-db-clusters-concepts.md) 섹션을 참조하세요.

다중 AZ DB 클러스터를 수정하여 설정을 변경할 수 있습니다. 다중 AZ DB 클러스터에서 스냅샷을 만드는 등의 작업을 수행할 수도 있습니다.

**중요**  
다중 AZ DB 클러스터에 있는 DB 인스턴스를 수정할 수 없습니다. 모든 수정은 DB 클러스터 수준에서 이루어져야 합니다. 다중 AZ DB 클러스터에 있는 DB 인스턴스에 대한 수행할 수 있는 유일한 작업은 인스턴스를 재부팅하는 것입니다.

AWS Management Console, AWS CLI 또는 RDS API를 사용하여 다중 AZ DB 클러스터를 수정할 수 있습니다.

## 콘솔
<a name="modify-multi-az-db-cluster-console"></a>

**다중 AZ DB 클러스터를 수정하는 방법**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

1. 탐색 창에서 **데이터베이스(Databases)**를 선택한 다음 수정하려는 다중 AZ DB 클러스터를 선택합니다.

1. **수정**을 선택합니다. **Modify DB cluster(DB 클러스터 수정)** 페이지가 나타납니다.

1. 원하는 설정을 모두 변경합니다. 각 설정에 대한 자세한 내용은 [다중 AZ DB 클러스터를 수정하기 위한 설정](#modify-multi-az-db-cluster-settings) 섹션을 참조하세요.

1. 원하는 대로 모두 변경되었으면 [**Continue**]를 선택하고 수정 사항 요약을 확인합니다.

1. (선택 사항) **즉시 적용**을 선택하여 변경 내용을 즉시 적용합니다. 일부의 경우 이 옵션을 선택하면 가동 중지 시간이 발생할 수 있습니다. 자세한 내용은 [변경 사항 즉시 적용](#modify-multi-az-db-cluster-apply-immediately) 섹션을 참조하세요.

1. 확인 페이지에서 변경 내용을 검토합니다. 변경 내용이 올바른 경우 **DB 클러스터 수정(Modify DB cluster)**을 선택하여 변경 내용을 저장합니다.

   또는 **뒤로**를 선택하여 변경 내용을 편집하거나 **취소**를 선택하여 변경 내용을 취소합니다.

## AWS CLI
<a name="modify-multi-az-db-cluster-cli"></a>

AWS CLI를 사용하여 다중 AZ DB 클러스터를 수정하려면 [modify-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster.html) 명령을 호출하면 됩니다. 수정할 옵션의 DB 클러스터 식별자 및 값을 지정합니다. 각 옵션에 대한 자세한 내용은 [다중 AZ DB 클러스터를 수정하기 위한 설정](#modify-multi-az-db-cluster-settings) 섹션을 참조하세요.

**Example**  
다음 코드는 백업 보존 기간을 1주(7일)로 설정하여 `my-multi-az-dbcluster`를 수정합니다. 이 코드는 `--deletion-protection`을 사용하여 삭제 방지를 활성화합니다. `--no-deletion-protection`을 사용하여 삭제 방지를 끌 수 있습니다. 변경 사항은 `--no-apply-immediately`를 사용하여 다음 유지 관리 기간에 적용됩니다. 변경 사항을 바로 적용하려면 `--apply-immediately`를 사용합니다. 자세한 내용은 [변경 사항 즉시 적용](#modify-multi-az-db-cluster-apply-immediately) 섹션을 참조하세요.  
대상 LinuxmacOS, 또는Unix:  

```
aws rds modify-db-cluster \
    --db-cluster-identifier my-multi-az-dbcluster \
    --backup-retention-period 7 \
    --deletion-protection \
    --no-apply-immediately
```
Windows의 경우:  

```
aws rds modify-db-cluster ^
    --db-cluster-identifier my-multi-az-dbcluster ^
    --backup-retention-period 7 ^
    --deletion-protection ^
    --no-apply-immediately
```

## RDS API
<a name="modify-multi-az-db-cluster-api"></a>

Amazon RDS API를 사용하여 다중 AZ DB 클러스터를 수정하려면 [ModifyDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBCluster.html) 작업을 호출합니다. DB 클러스터 식별자 및 수정하려는 설정의 파라미터를 지정합니다. 각 파라미터에 대한 자세한 내용은 [다중 AZ DB 클러스터를 수정하기 위한 설정](#modify-multi-az-db-cluster-settings) 섹션을 참조하세요.

## 변경 사항 즉시 적용
<a name="modify-multi-az-db-cluster-apply-immediately"></a>

다중 AZ DB 클러스터를 수정할 때 변경 사항을 즉시 적용할 수 있습니다. 변경 사항을 즉시 적용하려면 AWS Management Console에서 **즉시 적용** 옵션을 선택합니다. 또는 AWS CLI를 호출할 때 `--apply-immediately` 옵션을 사용하거나 Amazon RDS API를 사용할 때 `ApplyImmediately` 파라미터를 `true`로 설정합니다.

변경 사항을 즉시 적용하지 않기로 선택하면 변경 사항이 보류 중 수정 사항 대기열로 보내집니다. 다음 유지 관리 기간에 대기열에 있는 보류 중 변경 사항이 적용됩니다. 변경 사항을 즉시 적용하기로 선택하면 새로운 변경 사항과 보류 중인 수정 사항 대기열에 있는 모든 변경 사항이 적용됩니다.

**중요**  
보류 중인 수정 사항 중에 DB 클러스터가 일시적으로 사용 중단(*다운타임*)되어야 하는 변경 내용이 하나라도 있으면 즉시 적용 옵션을 선택하는 경우 예기치 않은 다운타임이 발생할 수 있습니다.  
변경 사항을 즉시 적용하도록 선택하면, 보류 중인 수정 사항도 다음 유지 관리 기간이 아니라 즉시 적용됩니다.  
보류 중인 변경 사항을 다음 유지 관리 기간에 적용하지 않으려면 변경 사항을 되돌리도록 DB 인스턴스를 수정하면 됩니다. AWS CLI를 사용하고 `--apply-immediately` 옵션을 지정하여 이 작업을 수행할 수 있습니다.

변경을 지연하기로 선택하더라도 일부 데이터베이스 설정 변경 사항은 즉시 적용됩니다. 다른 데이터베이스 설정이 즉시 적용 설정과 상호 작용하는 방식을 보려면 [다중 AZ DB 클러스터를 수정하기 위한 설정](#modify-multi-az-db-cluster-settings) 섹션을 참조하세요.

## 다중 AZ DB 클러스터를 수정하기 위한 설정
<a name="modify-multi-az-db-cluster-settings"></a>

다중 AZ DB 클러스터를 수정하는 데 사용할 수 있는 설정에 대한 자세한 내용은 다음 표를 참조하세요. AWS CLI 옵션에 대한 자세한 정보는 [modify-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster.html)를 참조하세요. RDS API 파라미터에 대한 자세한 내용은 [ModifyDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBCluster.html)를 참조하세요.


| 콘솔 설정 | 설정 설명 | CLI 옵션 및 RDS API 파라미터 | 변경이 발생할 때 | 가동 중지 참고 사항 | 
| --- | --- | --- | --- | --- | 
|  **할당된 스토리지**  |  DB 클러스터의 각 DB 인스턴스에 할당할 스토리지 양(기비바이트)입니다. 자세한 내용은 [Amazon RDS DB 인스턴스 스토리지](CHAP_Storage.md)을 참조하세요.    |  **CLI 옵션:**  `--allocated-storage` **RDS API 파라미터:**  `AllocatedStorage`  |  변경 사항을 즉시 적용하도록 선택하면 즉시 적용됩니다. 변경 사항을 즉시 적용하도록 선택하지 않으면 다음 유지 관리 기간 중 적용됩니다.  |  이 변경 도중에는 가동 중지 시간이 발생하지 않습니다.  | 
| 자동 마이너 버전 업그레이드 |  **자동 마이너 버전 업그레이드(Enable auto minor version upgrade)**를 선택하면 DB 클러스터가 지원되는 경우 기본 마이너 DB 엔진 버전 업그레이드를 자동으로 수신하도록 할 수 있습니다. Amazon RDS는 유지 관리 기간에 자동 마이너 버전 업그레이드를 수행합니다.  |  **CLI 옵션:** `--auto-minor-version-upgrade` `--no-auto-minor-version-upgrade` **RDS API 파라미터:** `AutoMinorVersionUpgrade`  |  변경 사항이 즉시 적용됩니다. 이 설정은 즉시 적용 설정을 무시합니다.  |  이 변경 도중에는 가동 중지 시간이 발생합니다.  | 
| 백업 보관 기간  |  DB 클러스터의 자동 백업을 유지할 기간(단위: 일)입니다. 이 값은 0보다 커야 합니다. 자세한 내용은 [백업 소개](USER_WorkingWithAutomatedBackups.md) 섹션을 참조하세요.  |  **CLI 옵션:**  `--backup-retention-period` **RDS API 파라미터:** `BackupRetentionPeriod`  |  변경 사항을 즉시 적용하도록 선택하면 즉시 적용됩니다. 변경 사항을 즉시 적용하도록 선택하지 않으면 다음 유지 관리 기간 중 적용됩니다.    | 이 변경 도중에는 가동 중지 시간이 발생하지 않습니다. | 
| 백업 기간: |  Amazon RDS가 DB 클러스터의 백업을 자동으로 수행하는 기간입니다. 데이터베이스를 백업할 특정 기간을 지정하지 않으려면 기본값으로 **기본 설정 없음(No preference)**을 사용합니다. 자세한 내용은 [백업 소개](USER_WorkingWithAutomatedBackups.md) 섹션을 참조하세요.  |  **CLI 옵션:**  `--preferred-backup-window` **RDS API 파라미터:** `PreferredBackupWindow`  |  비동기 방식이지만 최대한 빠른 시간 내에 변경 사항이 적용됩니다.  |  이 변경 도중에는 가동 중지 시간이 발생하지 않습니다.  | 
|  **인증 기관**  |  DB 클러스터에서 사용하는 서버 인증서의 CA(인증 기관)입니다. 자세한 내용은 [SSL/TLS를 사용하여 DB 인스턴스 또는 클러스터 에 대한 연결 암호화](UsingWithRDS.SSL.md) 섹션을 참조하세요.  |  **CLI 옵션:**  `--ca-certificate-identifier` **RDS API 파라미터:** `CACertificateIdentifier`  |  변경 사항을 즉시 적용하도록 선택하면 즉시 적용됩니다. 변경 사항을 즉시 적용하도록 선택하지 않으면 다음 유지 관리 기간 중 적용됩니다.  | 가동 중단 시간은 DB 엔진이 재시작 없는 교체를 지원하지 않는 경우에만 발생합니다. [describe-db-engine-versions](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-engine-versions.html) AWS CLI 명령을 사용하여 DB 엔진이 재시작 없는 교체를 지원하는지 여부를 확인할 수 있습니다. | 
|  스냅샷으로 태그 복사  |  이 옵션은 스냅샷을 생성할 때 DB 클러스터 태그를 DB 스냅샷에 복사합니다. 자세한 내용은 [Amazon RDS 리소스에 태그 지정](USER_Tagging.md)을 참조하세요.  |  **CLI 옵션:**  `-copy-tags-to-snapshot` `-no-copy-tags-to-snapshot` **RDS API 파라미터:** `CopyTagsToSnapshot`  |  변경 사항이 즉시 적용됩니다. 이 설정은 즉시 적용 설정을 무시합니다.  |  이 변경 도중에는 가동 중지 시간이 발생하지 않습니다.  | 
|  데이터베이스 인증  |  다중 AZ DB 클러스터에만 **암호 인증**이 지원됩니다.  |  암호 인증이 기본값이므로 지원되지 않습니다.  |  변경 사항을 즉시 적용하도록 선택하면 즉시 적용됩니다. 변경 사항을 즉시 적용하도록 선택하지 않으면 다음 유지 관리 기간 중 적용됩니다.  |  이 변경 도중에는 가동 중지 시간이 발생하지 않습니다.  | 
|  **DB 클러스터 식별자**  |  DB 클러스터 식별자입니다. 이 값은 소문자 문자열로 저장됩니다. DB 클러스터 식별자를 변경하면 DB 클러스터 엔드포인트가 변경됩니다. DB 클러스터에 있는 DB 인스턴스의 식별자와 엔드포인트도 변경됩니다. 새 DB 클러스터 이름은 고유해야 합니다. 최대 길이는 63자입니다. DB 클러스터의 DB 인스턴스 이름이 DB 클러스터의 새 이름에 맞게 변경됩니다. 새 DB 인스턴스 이름은 기존 DB 인스턴스의 이름과 같으면 안 됩니다. 예를 들어 DB 클러스터 이름을 `maz`로 변경하면 DB 인스턴스 이름도 `maz-instance-1`로 변경될 수 있습니다. 이 경우에는 이름이 `maz-instance-1`로 지정된 기존 DB 인스턴스가 있을 수 없습니다. 자세한 내용은 [Amazon RDS용 다중 AZ DB 클러스터 이름 변경](multi-az-db-cluster-rename.md) 섹션을 참조하세요.  |  **CLI 옵션:**  `--new-db-cluster-identifier` **RDS API 파라미터:** `NewDBClusterIdentifier`  |  변경 사항을 즉시 적용하도록 선택하면 즉시 적용됩니다. 변경 사항을 즉시 적용하도록 선택하지 않으면 다음 유지 관리 기간 중 적용됩니다.  |  이 변경 도중에는 가동 중지 시간이 발생하지 않습니다.  | 
|  DB 클러스터 인스턴스 클래스  |  다중 AZ DB 클러스터에 있는 각 DB 인스턴스의 컴퓨팅 및 메모리 용량입니다(예: `db.r6gd.xlarge`). 가능하면 일반 쿼리 작업 세트가 메모리에 상주할 수 있을 정도로 큰 DB 인스턴스 클래스를 선택합니다. 작업 세트가 메모리에 상주할 경우 시스템의 디스크 쓰기가 불필요하여 성능이 향상됩니다. 자세한 내용은 [다중 AZ DB 클러스터에서 사용 가능한 인스턴스 클래스](multi-az-db-clusters-concepts.md#multi-az-db-clusters-concepts.InstanceAvailability) 섹션을 참조하세요.  |  **CLI 옵션:**  `--db-cluster-instance-class` **RDS API 파라미터:** `DBClusterInstanceClass`  |  변경 사항을 즉시 적용하도록 선택하면 즉시 적용됩니다. 변경 사항을 즉시 적용하도록 선택하지 않으면 다음 유지 관리 기간 중 적용됩니다.  |  이 변경 도중에는 가동 중지 시간이 발생합니다.  | 
|  **DB 클러스터 파라미터 그룹**  |  DB 클러스터와 연결할 DB 클러스터 파라미터 그룹. 자세한 내용은 [다중 AZ DB 클러스터용 파라미터 그룹](multi-az-db-clusters-concepts.md#multi-az-db-clusters-concepts-parameter-groups)을 참조하세요.  |  **CLI 옵션:**  `--db-cluster-parameter-group-name` **RDS API 파라미터:** `DBClusterParameterGroupName`  |  파라미터 그룹 변경 사항은 즉시 적용됩니다.  |  이 변경 도중에는 가동 중지 시간이 발생하지 않습니다. 파라미터 그룹을 변경하면 일부 파라미터의 변경 내용이 재부팅 없이 다중 AZ DB 클러스터의 DB 인스턴스에 즉시 적용됩니다. 다른 파라미터의 변경 사항은 DB 인스턴스를 재부팅한 후에만 적용됩니다.  | 
|  DB 엔진 버전  |  사용할 데이터베이스 엔진의 버전입니다.  |  **CLI 옵션:** `--engine-version` **RDS API 파라미터:** `EngineVersion`  |  변경 사항을 즉시 적용하도록 선택하면 즉시 적용됩니다. 변경 사항을 즉시 적용하도록 선택하지 않으면 다음 유지 관리 기간 중 적용됩니다.  |  이 변경 도중에는 가동 중지 시간이 발생합니다.  | 
| 삭제 방지 |  DB 클러스터가 삭제되지 않도록 방지하기 위한 **삭제 방지 활성화** 자세한 내용은 [DB 인스턴스 삭제](USER_DeleteInstance.md) 섹션을 참조하세요.  |  **CLI 옵션:**  `--deletion-protection` `--no-deletion-protection` **RDS API 파라미터:** `DeletionProtection`  |  변경 사항이 즉시 적용됩니다. 이 설정은 즉시 적용 설정을 무시합니다.  |  이 변경 도중에는 가동 중지 시간이 발생하지 않습니다.  | 
|  유지 관리 윈도우  |  대기 중인 DB 클러스터 설정 변경이 적용되기 위해 경과해야 하는 기간(30분)입니다. 기간이 중요하지 않은 경우 **기본 설정 없음**을 선택합니다. 자세한 내용은 [Amazon RDS 유지 관리 기간](USER_UpgradeDBInstance.Maintenance.md#Concepts.DBMaintenance) 섹션을 참조하세요.  |  **CLI 옵션:**  `--preferred-maintenance-window` **RDS API 파라미터:** `PreferredMaintenanceWindow`  |  변경 사항이 즉시 적용됩니다. 이 설정은 즉시 적용 설정을 무시합니다.  |  가동 중지를 유발할 수 있는 작업이 하나 이상 보류 중이고, 유지 관리 기간이 현재 시간을 포함하여 변경된 경우 보류 중인 작업이 즉시 적용되고 가동 중지 시간이 발생합니다.  | 
|  에서 마스터 자격 증명 관리AWS Secrets Manager  |  Secrets Manager에서 보안 암호의 마스터 사용자 암호를 관리하려면 **AWS Secrets Manager에서 마스터 자격 증명 관리**를 선택합니다. 원하는 경우 보안 암호를 보호하는 데 사용할 KMS 키를 선택합니다. 자신의 계정에서 KMS 키를 선택하거나 다른 계정의 키를 입력할 수 있습니다. RDS에서 이미 DB 클러스터의 마스터 사용자 암호를 관리하고 있는 경우 **보안 암호 즉시 교체**를 선택하여 마스터 사용자 암호를 교체할 수 있습니다. 자세한 내용은 [Amazon RDS 및 AWS Secrets Manager를 통한 암호 관리](rds-secrets-manager.md) 섹션을 참조하세요.  |  **CLI 옵션:**  `--manage-master-user-password \| --no-manage-master-user-password` `--master-user-secret-kms-key-id` `--rotate-master-user-password \| --no-rotate-master-user-password` **RDS API 파라미터:** `ManageMasterUserPassword` `MasterUserSecretKmsKeyId` `RotateMasterUserPassword`  |  자동 마스터 사용자 암호 관리를 켜거나 해제하면 변경 내용이 즉시 적용됩니다. 이 변경은 즉시 적용 설정을 무시합니다. 마스터 사용자 암호를 교체하는 경우 변경 내용이 즉시 적용되도록 지정해야 합니다.  |  이 변경 도중에는 가동 중지 시간이 발생하지 않습니다.  | 
|  새 마스터 암호  |  마스터 사용자 계정의 암호입니다.  |  **CLI 옵션:** `--master-user-password` **RDS API 파라미터:** `MasterUserPassword`  |  비동기 방식이지만 최대한 빠른 시간 내에 변경 사항이 적용됩니다. 이 설정은 즉시 적용 설정을 무시합니다.  |  이 변경 도중에는 가동 중지 시간이 발생하지 않습니다.  | 
|  프로비저닝된 IOPS  |  DB 클러스터에 처음 할당될 프로비저닝된 IOPS의 양(초당 입력/출력 작업 수)입니다.  |  **CLI 옵션:** `--iops` **RDS API 파라미터:** `Iops`  |  변경 사항을 즉시 적용하도록 선택하면 즉시 적용됩니다. 변경 사항을 즉시 적용하도록 선택하지 않으면 다음 유지 관리 기간 중 적용됩니다.  |  이 변경 도중에는 가동 중지 시간이 발생하지 않습니다.  | 
|  공개 액세스(Public access  |  **공개적으로 액세스할 수 있음(Publicly accessible)**을 선택하면 DB 클러스터에 퍼블릭 IP 주소를 부여하여 Virtual Private Cloud(VPC) 외부에서 액세스할 수 있습니다. 공개적으로 액세스가 가능하려면 DB 클러스터도 VPC의 퍼블릭 서브넷에 있어야 합니다. **공개적으로 액세스할 수 없음(Not publicly accessible)**을 선택하면 VPC 내에서만 DB 클러스터에 액세스할 수 있습니다. 자세한 내용은 [VPC에 있는 DB 인스턴스를 인터넷에서 숨기기](USER_VPC.WorkingWithRDSInstanceinaVPC.md#USER_VPC.Hiding)을 참조하세요. VPC 외부에서 DB 클러스터에 연결하려면 DB 클러스터에 공개적으로 액세스할 수 있어야 합니다. 또한, DB 클러스터 보안 그룹의 인바운드 규칙을 사용하여 액세스 권한을 부여하고 다른 요구 사항을 충족해야 합니다. 자세한 내용은 [Amazon RDS DB 인스턴스에 연결할 수 없음](CHAP_Troubleshooting.md#CHAP_Troubleshooting.Connecting)을 참조하세요. DB 클러스터에 공개적으로 액세스할 수 없는 경우 AWS Site-to-Site VPN 연결 또는 Direct Connect 연결을 사용하여 프라이빗 네트워크에서 액세스할 수 있습니다. 자세한 내용은 [인터네트워크 트래픽 개인 정보](inter-network-traffic-privacy.md) 섹션을 참조하세요.  | DB 클러스터를 수정할 때는 사용할 수 없습니다. |  변경 사항이 즉시 적용됩니다. 이 설정은 즉시 적용 설정을 무시합니다.  |  이 변경 도중에는 가동 중지 시간이 발생하지 않습니다.  | 
| 스토리지 유형 |  DB 클러스터의 스토리지 유형입니다. 범용 SSD(gp3), 프로비저닝된 IOPS(io1) 및 프로비저닝된 IOPS SSD(io2) 스토리지만 지원됩니다. 자세한 내용은 [Amazon RDS 스토리지 유형](CHAP_Storage.md#Concepts.Storage) 섹션을 참조하세요.  |  **CLI 옵션:**  `--storage-type` **RDS API 파라미터:** `StorageType`  |  변경 사항을 즉시 적용하도록 선택하면 즉시 적용됩니다. 변경 사항을 즉시 적용하도록 선택하지 않으면 다음 유지 관리 기간 중 적용됩니다.  |  이 변경 도중에는 가동 중지 시간이 발생하지 않습니다.  | 
|  VPC 보안 그룹  |  DB 클러스터와 연결할 보안 그룹입니다. 자세한 내용은 [VPC 보안 그룹 개요](Overview.RDSSecurityGroups.md#Overview.RDSSecurityGroups.VPCSec)을 참조하세요.  |  **CLI 옵션:**  `--vpc-security-group-ids` **RDS API 파라미터:** `VpcSecurityGroupIds`  |  비동기 방식이지만 최대한 빠른 시간 내에 변경 사항이 적용됩니다. 이 설정은 즉시 적용 설정을 무시합니다.  |  이 변경 도중에는 가동 중지 시간이 발생하지 않습니다.  | 

## 다중 AZ DB 클러스터를 수정할 때 적용되지 않는 설정
<a name="modify-multi-az-db-cluster-settings-not-applicable"></a>

AWS CLI 명령 [modify-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster.html) 및 RDS API 작업 [ModifyDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBCluster.html)의 다음 설정은 다중 AZ DB 클러스터에 적용되지 않습니다.

또한, 콘솔에서 다중 AZ DB 클러스터에 대한 관련 설정을 수정할 수 없습니다.


| AWS CLI 설정 | RDS API 설정 | 
| --- | --- | 
|  `--backtrack-window`  |  `BacktrackWindow`  | 
|  `--cloudwatch-logs-export-configuration`  |  `CloudwatchLogsExportConfiguration`  | 
|  `--copy-tags-to-snapshot \| --no-copy-tags-to-snapshot`  |  `CopyTagsToSnapshot`  | 
|  `--db-instance-parameter-group-name`  |  `DBInstanceParameterGroupName`  | 
|  `--domain`  |  `Domain`  | 
|  `--domain-iam-role-name`  |  `DomainIAMRoleName`  | 
|  `--enable-global-write-forwarding \| --no-enable-global-write-forwarding`  |  `EnableGlobalWriteForwarding`  | 
|  `--enable-http-endpoint \| --no-enable-http-endpoint`  |  `EnableHttpEndpoint`  | 
|  `--option-group-name`  |  `OptionGroupName`  | 
|  `--port`  |  `Port`  | 
|  `--scaling-configuration`  |  `ScalingConfiguration`  | 
|  `--storage-type`  |  `StorageType`  | 

# Amazon RDS에서 다중 AZ DB 클러스터의 엔진 버전 업그레이드
<a name="multi-az-db-clusters-upgrading"></a>

Amazon RDS는 지원되는 각 데이터베이스 엔진의 최신 버전을 제공하여 다중 AZ DB 클러스터를 최신 상태로 유지합니다. 이 주제에서는 다중 AZ DB 클러스터를 최신 버전으로 업그레이드하는 프로세스를 설명합니다.

다중 AZ DB 클러스터를 업그레이드하려면 새 호환 엔진 버전을 선택하고 잠재적 가동 중지 시간을 계획해야 합니다. 이 프로세스는 다중 AZ 아키텍처의 장애 조치 기능을 활용하여 중단을 최소화합니다. 모범 사례에는 트래픽이 적은 기간 동안 업그레이드 수행, 비프로덕션 환경에서 테스트, 새 버전과의 애플리케이션 호환성 확인이 포함됩니다.

**Topics**
+ [마이너 버전 업그레이드.](#multi-az-db-clusters-upgrade-minor)
+ [메이저 버전 업그레이드](#multi-az-db-clusters-upgrade-major)
+ [다중 AZ DB 클러스터 업그레이드](#multi-az-db-clusters-upgrade-process)
+ [다중 AZ DB 클러스터 읽기 전용 복제본 업그레이드](#multi-az-db-clusters-upgrade-replicas)
+ [이벤트를 사용하여 다중 AZ DB 클러스터 업그레이드 모니터링](#multi-az-db-clusters-upgrade-monitoring)

## 마이너 버전 업그레이드.
<a name="multi-az-db-clusters-upgrade-minor"></a>

마이너 버전 업그레이드에는 기존 애플리케이션과 호환되는 변경 사항만 포함됩니다. 마이너 버전 업그레이드를 시작하면 Amazon RDS는 먼저 리더 DB 인스턴스를 한 번에 하나씩 업그레이드합니다. 그러면 리더 DB 인스턴스 중 하나가 새 라이터 DB 인스턴스로 전환됩니다. 그러면 Amazon RDS가 이전 라이터 인스턴스(현재는 리더 인스턴스)를 업그레이드합니다.

업그레이드 중의 가동 중지 시간이 리더 DB 인스턴스가 새 라이터 DB 인스턴스가 되는 데 걸리는 시간으로 제한됩니다. 이 가동 중지는 자동 장애 조치와 같은 역할을 합니다. 자세한 내용은 [Amazon RDS용 다중 AZ DB 클러스터 장애 조치](multi-az-db-clusters-concepts-failover.md) 섹션을 참조하세요. 다중 AZ DB 클러스터의 복제 지연이 가동 중지 시간에 영향을 줄 수 있습니다. 자세한 내용은 [복제본 지연 시간 및 다중 AZ DB 클러스터](multi-az-db-clusters-concepts.md#multi-az-db-clusters-concepts-replica-lag) 섹션을 참조하세요.

RDS for PostgreSQL 다중 AZ DB 클러스터 읽기 전용 복제본의 경우 Amazon RDS는 클러스터 멤버 인스턴스를 한 번에 하나씩 업그레이드합니다. 리더 및 라이터 클러스터 역할은 업그레이드 중에 전환되지 않습니다. 따라서 Amazon RDS가 클러스터 라이터 인스턴스를 업그레이드하는 동안 DB 클러스터에 가동 중지가 발생할 수 있습니다.

**참고**  
다중 AZ DB 클러스터 마이너 버전 업그레이드의 가동 중지 시간은 일반적으로 35초입니다. RDS 프록시와 함께 사용하면 가동 중지 시간을 1초 이하로 더 줄일 수 있습니다. 자세한 내용은 [ Amazon RDS Proxy](rds-proxy.md) 섹션을 참조하세요. 또는 [ProxySQL](https://aws.amazon.com/blogs/database/achieve-one-second-or-less-of-downtime-with-proxysql-when-upgrading-amazon-rds-multi-az-deployments-with-two-readable-standbys/), [PgBouncer](https://aws.amazon.com/blogs/database/fast-switchovers-with-pgbouncer-on-amazon-rds-multi-az-deployments-with-two-readable-standbys-for-postgresql/) 또는 [AWS 고급 JDBC 래퍼 드라이버](https://aws.amazon.com/blogs/database/achieve-one-second-or-less-downtime-with-the-advanced-jdbc-wrapper-driver-when-upgrading-amazon-rds-multi-az-db-clusters/)와 같은 오픈 소스 데이터베이스 프록시를 사용할 수 있습니다.

## 메이저 버전 업그레이드
<a name="multi-az-db-clusters-upgrade-major"></a>

메이저 버전 업그레이드로 기존 애플리케이션과 호환되지 않는 변경 사항이 도입될 수 있습니다.

RDS for PostgreSQL 다중 AZ DB 클러스터의 메이저 버전 업그레이드를 시작하면 Amazon RDS가 리더 및 라이터 인스턴스를 동시에 업그레이드합니다. 따라서 업그레이드가 완료될 때까지 DB 클러스터를 사용할 수 없습니다.

RDS for MySQL 다중 AZ DB 클러스터의 메이저 버전 업그레이드를 시작하면 Amazon RDS는 클러스터 멤버 인스턴스를 한 번에 하나씩 업그레이드하므로 낮은 엔진 버전에서 높은 엔진 버전으로 복제가 이루어집니다. 엔진 버전은 구문과 기능이 다를 수 있으므로 메이저 버전 업그레이드 중에 워크로드가 소스 및 대상 엔진 버전 둘 다와 호환되는지 확인하는 것이 중요합니다.

**참고**  
마이너 버전 업그레이드와 마찬가지로 RDS for MySQL 메이저 버전 업그레이드의 가동 중지 시간은 일반적으로 35초입니다. RDS 프록시와 함께 사용하면 다운타임을 1초 이하로 더 줄일 수 있습니다. 자세한 내용은 [ Amazon RDS Proxy](rds-proxy.md) 섹션을 참조하세요.

## 다중 AZ DB 클러스터 업그레이드
<a name="multi-az-db-clusters-upgrade-process"></a>

다중 AZ DB 클러스터의 엔진 버전을 업그레이드하는 프로세스는 DB 인스턴스 엔진 버전을 업그레이드하는 프로세스와 동일합니다. 지침은 [DB 인스턴스 엔진 버전 업그레이드](USER_UpgradeDBInstance.Upgrading.md) 섹션을 참조하세요. 유일한 차이점은 AWS Command Line Interface(AWS CLI)를 사용할 때 [modify-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster.html) 명령을 사용하고 `--allow-major-version-upgrade` 파라미터와 함께 `--db-cluster-identifier` 파라미터를 지정한다는 것입니다.

메이저 및 마이너 버전 업그레이드에 대한 자세한 내용은 다음 DB 엔진 설명서를 참조하세요.
+ [RDS for PostgreSQL DB 엔진 업그레이드](USER_UpgradeDBInstance.PostgreSQL.md)
+ [RDS for MySQL DB 엔진 업그레이드](USER_UpgradeDBInstance.MySQL.md)

## 다중 AZ DB 클러스터 읽기 전용 복제본 업그레이드
<a name="multi-az-db-clusters-upgrade-replicas"></a>

Amazon RDS는 다중 AZ DB 클러스터 읽기 전용 복제본을 자동으로 업그레이드하지 않습니다. 마이너 버전 업그레이드 시 먼저 모든 읽기 전용 복제본을 수동으로 업그레이드한 다음 클러스터를 업그레이드해야 합니다.** 그렇지 않으면 업그레이드가 차단됩니다. 클러스터의 메이저 버전 업그레이드를 수행할 때 모든 읽기 전용 복제본의 복제 상태가 **종료**로 변경됩니다.** 업그레이드가 완료된 다음, 읽기 전용 복제본을 삭제하고 재생성해야 합니다. 자세한 내용은 [읽기 전용 복제본 모니터링](USER_ReadRepl.Monitoring.md) 섹션을 참조하세요.

## 이벤트를 사용하여 다중 AZ DB 클러스터 업그레이드 모니터링
<a name="multi-az-db-clusters-upgrade-monitoring"></a>

다중 AZ DB 클러스터의 엔진 버전을 업그레이드하면 Amazon RDS는 프로세스의 각 단계에서 특정 이벤트를 내보냅니다. 업그레이드 진행 상황을 추적하기 위해 이러한 이벤트를 보거나 구독할 수 있습니다.

 RDS 이벤트에 대한 자세한 내용은 [Amazon RDS 이벤트 모니터링](working-with-events.md) 섹션을 참조하세요.

엔진 업그레이드 중에 발생하는 특정 Amazon RDS 이벤트에 대한 자세한 내용은 [Amazon RDS 이벤트 카테고리 및 이벤트 메시지](USER_Events.Messages.md) 섹션을 참조하세요.

# Amazon RDS용 다중 AZ DB 클러스터 이름 변경
<a name="multi-az-db-cluster-rename"></a>

AWS Management Console, AWS CLI `modify-db-cluster` 명령 또는 Amazon RDS API `ModifyDBCluster` 작업을 사용하여 다중 AZ DB 클러스터의 이름을 바꿀 수 있습니다. 다중 AZ DB 클러스터의 이름 바꾸기는 상당한 영향을 미칠 수 있습니다. 다음은 다중 AZ DB 클러스터의 이름을 바꾸기 전에 고려해야 할 사항의 목록입니다.
+ 다중 AZ DB 클러스터의 이름을 바꾸면 다중 AZ DB 클러스터의 클러스터 엔드포인트가 변경됩니다. 이러한 엔드포인트는 다중 AZ DB 클러스터에 할당한 이름을 포함하므로 변경됩니다. 이전 엔드포인트에서 새 엔드포인트로 트래픽을 리디렉션할 수 있습니다. 다중 AZ DB 클러스터 엔드포인트에 대한 자세한 내용은 [Amazon RDS에서 다중 AZ DB 클러스터에 연결](multi-az-db-clusters-concepts-connection-management.md) 섹션을 참조하세요.
+ 다중 AZ DB 클러스터 이름을 변경하면 다중 AZ DB 클러스터에서 이전에 사용된 DNS 이름은 삭제되지만 캐시는 몇 분 더 남을 수도 있습니다. 이름이 바뀐 다중 AZ DB 클러스터의 새로운 DNS 이름은 약 2분 내에 적용됩니다. 이름이 바뀐 다중 AZ DB 클러스터를 사용하려면 새로운 이름이 적용될 때까지 기다려야 합니다.
+ 클러스터 이름을 바꾸면 기존 다중 AZ DB 클러스터 이름을 사용할 수 없습니다.
+ 다중 AZ DB 클러스터 이름을 재사용하면 DB 클러스터 이름에 연결된 지표와 이벤트가 유지됩니다.
+ 다중 AZ DB 클러스터 태그는 이름 바꾸기에 관계없이 다중 AZ DB 클러스터에 유지됩니다.
+ DB 클러스터 스냅샷은 바뀐 이름의 다중 AZ DB 클러스터에 유지됩니다.

**참고**  
다중 AZ DB 클러스터는 클라우드에서 실행되는 격리된 데이터베이스 환경입니다. 다중 AZ DB 클러스터는 여러 데이터베이스를 호스팅할 수 있습니다. 데이터베이스 이름 변경에 대한 자세한 내용은 DB 엔진 설명서를 참조하세요.

## 기존 다중 AZ DB 클러스터 교체를 위한 이름 바꾸기
<a name="multi-az-db-cluster-rename-to-replace"></a>

가장 일반적인 다중 AZ DB 클러스터 이름 바꾸기 시나리오에는 DB 클러스터 스냅샷에서 데이터를 복구하거나 시점 복구(PITR)를 수행하는 것이 포함됩니다. 다중 AZ DB 클러스터의 이름을 바꾸면 다중 AZ DB 클러스터를 참조하는 애플리케이션 코드를 변경하지 않고도 다중 AZ DB 클러스터를 교체할 수 있습니다. 이러한 경우 다음 단계를 완료합니다.

1. 다중 AZ DB 클러스터로 전송되는 트래픽을 모두 차단합니다. 다중 AZ DB 클러스터의 데이터베이스에 액세스하는 트래픽을 리디렉션하거나 트래픽이 DB 클러스터의 데이터베이스에 액세스하지 못하도록 차단하는 또 다른 방법을 선택할 수 있습니다.

1. 기존 다중 AZ DB 클러스터의 이름을 바꿉니다.

1. DB 클러스터 스냅샷에서 복원하거나 특정 시점으로 복구하여 새로운 다중 AZ DB 클러스터를 생성합니다. 그런 다음 새 다중 AZ DB 클러스터에 이전 다중 AZ DB 클러스터의 이름을 지정합니다.

이전 다중 AZ DB 클러스터를 삭제할 때 이전 다중 AZ DB 클러스터의 원하지 않는 DB 클러스터 스냅샷까지 삭제되는 경우 사용자 본인에게 책임이 있습니다.

## 콘솔
<a name="multi-az-db-cluster-rename.CON"></a>

**다중 AZ DB 클러스터 이름을 바꾸는 방법**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

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

1. 이름을 바꾸려는 다중 AZ DB 클러스터를 선택합니다.

1. **수정**을 선택합니다.

1. **Settings**(설정)에서 **DB 클러스터 식별자**에 새 이름을 입력합니다.

1. **Continue**(계속)를 선택합니다.

1. 변경 사항을 즉시 적용하려면 **즉시 적용**을 선택합니다. 일부의 경우 이 옵션을 선택하면 중단이 발생할 수 있습니다. 자세한 내용은 [변경 사항 즉시 적용](modify-multi-az-db-cluster.md#modify-multi-az-db-cluster-apply-immediately) 단원을 참조하십시오.

1. 확인 페이지에서 변경 내용을 검토합니다. 변경 내용이 올바른 경우 **클러스터 수정**을 선택하여 변경 내용을 저장합니다.

   그렇지 않으면 **Back**(뒤로)을 선택하여 변경 내용을 편집하거나 **Cancel**(취소)을 선택하여 변경 내용을 취소합니다.

## AWS CLI
<a name="multi-az-db-cluster-rename.CLI"></a>

다중 AZ DB 클러스터의 이름을 바꾸려면 AWS CLI 명령 [modify-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster.html)를 사용합니다. 현재 `--db-cluster-identifier` 값 및 `--new-db-cluster-identifier` 파라미터를 다중 AZ DB 클러스터의 새 이름과 함께 제공합니다.

**Example**  
대상 LinuxmacOS, 또는Unix:  

```
1. aws rds modify-db-cluster \
2.     --db-cluster-identifier DBClusterIdentifier \
3.     --new-db-cluster-identifier NewDBClusterIdentifier
```
Windows의 경우:  

```
1. aws rds modify-db-cluster ^
2.     --db-cluster-identifier DBClusterIdentifier ^
3.     --new-db-cluster-identifier NewDBClusterIdentifier
```

## RDS API
<a name="multi-az-db-cluster-rename.API"></a>

다중 AZ DB 클러스터 이름을 바꾸려면 Amazon RDS API 작업 [ModifyDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBCluster.html)를 다음 파라미터와 함께 호출합니다.
+ `DBClusterIdentifier` – DB 클러스터의 기존 이름입니다.
+ `NewDBClusterIdentifier` – DB 클러스터의 새 이름입니다.

# Amazon RDS에서 다중 AZ DB 클러스터 및 리더 DB 인스턴스 재부팅
<a name="multi-az-db-clusters-concepts-rebooting"></a>

일반적으로 유지 보수 목적으로 다중 AZ DB 클러스터를 재부팅해야 하는 경우가 있습니다. 예를 들어, 특정 내용을 수정하거나 DB 클러스터와 연결된 DB 클러스터 파라미터 그룹을 변경하는 경우 DB 클러스터를 재부팅해야 합니다. 이렇게 하면 변경 사항이 적용됩니다.

DB 클러스터에서 연결된 DB 클러스터 파라미터 그룹의 최신 변경 사항을 사용하지 않는 경우 AWS Management Console에서는 **보류 중-재부팅(pending-reboot)** 상태의 DB 클러스터 파라미터 그룹이 표시됩니다. **재시작 보류중** 파라미터 그룹 상태로 인해 다음번 유지 관리 기간 중에 자동 재부팅이 되지는 않습니다. 최신 파라미터 변경 사항을 해당 DB 클러스터에 적용하려면 DB 클러스터를 수동으로 재부팅하면 됩니다. 파라미터 그룹에 대한 자세한 내용은 [다중 AZ DB 클러스터용 파라미터 그룹](multi-az-db-clusters-concepts.md#multi-az-db-clusters-concepts-parameter-groups) 섹션을 참조하세요.

DB 클러스터를 재부팅하면 데이터베이스 엔진 서비스가 재시작됩니다. DB 클러스터를 재부팅하면 DB 클러스터 상태가 **재부팅(rebooting)**으로 설정되면서 잠시 중단됩니다.

**사용 가능(Available)** 상태가 아닌 경우 DB 클러스터를 재부팅할 수 없습니다. 백업이 진행 중이거나 이전에 수정을 요청했거나 유지 관리 기간 작업 등 여러 원인으로 인해 데이터베이스를 사용할 수 없습니다.

DB 클러스터를 재부팅하는 데 걸리는 시간은 충돌 복구 프로세스, 재부팅 시 데이터베이스 활동 및 특정 DB 클러스터의 동작에 따라 달라집니다. 따라서 재부팅 시간을 단축하려면 재부팅 프로세스에서 데이터베이스 작업을 최소화하는 것이 좋습니다. 데이터베이스 작업을 줄이면 중간 트랜잭션의 롤백 작업이 줄어듭니다.

**중요**  
다중 AZ DB 클러스터는 장애 조치와 함께 재부팅을 지원하지 않습니다. 다중 AZ DB 클러스터의 라이터 인스턴스를 재부팅하면 해당 DB 클러스터의 리더 DB 인스턴스에는 영향을 주지 않으며, 장애 조치가 발생하지 않습니다. 리더 DB 인스턴스를 재부팅하면 장애 조치가 발생하지 않습니다. 다중 AZ DB 클러스터를 장애 조치하려면 콘솔에서 **장애 조치(Failover)**를 선택하거나, AWS CLI 명령 [https://docs.aws.amazon.com/cli/latest/reference/rds/failover-db-cluster.html](https://docs.aws.amazon.com/cli/latest/reference/rds/failover-db-cluster.html)를 호출하거나, API 작업 [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_FailoverDBCluster.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_FailoverDBCluster.html)를 호출합니다.

## 콘솔
<a name="USER_RebootMultiAZDBCluster.Console"></a>

**DB 클러스터를 재부팅하는 방법**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

1. 탐색 창에서 **데이터베이스(Databases)**를 선택한 다음 재부팅하려는 다중 AZ DB 클러스터를 선택합니다.

1. **작업**에서 **재부팅**을 선택합니다.

   **DB 클러스터 재부팅(Reboot DB cluster)** 페이지가 표시됩니다.

1. DB 클러스터를 재부팅하려면 **재부팅(Reboot)**을 선택합니다.

   또는 [**취소(Cancel)**]를 선택합니다.

## AWS CLI
<a name="USER_RebootMultiAZDBCluster.CLI"></a>

AWS CLI를 사용하여 다중 AZ DB 클러스터를 재부팅하려면 [reboot-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/reboot-db-cluster.html) 명령을 호출합니다.

```
aws rds reboot-db-cluster --db-cluster-identifier mymultiazdbcluster
```

## RDS API
<a name="USER_RebootMultiAZDBCluster.API"></a>

Amazon RDS API를 사용하여 다중 AZ DB 클러스터를 재부팅하려면 [RebootDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RebootDBCluster.html) 작업을 호출하면 됩니다.

# Amazon RDS용 다중 AZ DB 클러스터 장애 조치
<a name="multi-az-db-clusters-concepts-failover"></a>

다중 AZ DB 클러스터의 라이터 DB 인스턴스에 계획되거나 계획되지 않은 중단이 발생하면 Amazon RDS는 자동으로 다른 가용 영역에 있는 리더 DB 인스턴스로 장애 조치합니다. 이를 통해 중단 시간을 최소화하면서 고가용성을 보장할 수 있습니다. 장애 조치는 하드웨어 장애, 네트워크 문제 또는 수동 요청 중에 발생할 수 있습니다. 이 주제에서는 실패 자동 감지, 장애 조치 중 이벤트 시퀀스, 읽기 및 쓰기 작업에 미치는 영향을 간략하게 설명합니다. 또한 장애 조치 시간을 모니터링하고 최소화하기 위한 모범 사례를 제공합니다.

장애 조치가 완료되는 데 걸리는 시간은 라이터 DB 인스턴스를 사용할 수 없게 된 데이터베이스 활동 및 기타 조건에 따라 달라집니다. 장애 조치에 소요되는 시간은 일반적으로 35초 아래입니다. 장애 조치는 두 리더 DB 인스턴스에 모두 장애가 발생한 라이터의 처리되지 않은 트랜잭션이 적용되면 완료됩니다. 장애 조치가 완료되면 RDS 콘솔에 새 가용 영역이 반영되는 데 시간이 더 걸릴 수 있습니다.

**Topics**
+ [자동 장애 조치](#multi-az-db-clusters-concepts-failover-automatic)
+ [다중 AZ DB 클러스터 수동 장애 조치](#multi-az-db-clusters-concepts-failover-manual)
+ [다중 AZ DB 클러스터가 장애 조치되었는지 여부 확인](#multi-az-db-clusters-concepts-failover-determining)
+ [DNS 이름 조회를 위한 JVM TTL 설정](#multi-az-db-clusters-concepts-failover-java-dns)

## 자동 장애 조치
<a name="multi-az-db-clusters-concepts-failover-automatic"></a>

Amazon RDS는 자동으로 장애 조치를 취하여 관리자의 개입 없이 데이터베이스 작업을 신속하게 재개할 수 있도록 합니다. 장애 조치를 수행하려면 라이터 DB 인스턴스가 자동으로 리더 DB 인스턴스로 전환합니다.

## 다중 AZ DB 클러스터 수동 장애 조치
<a name="multi-az-db-clusters-concepts-failover-manual"></a>

다중 AZ DB 클러스터를 수동으로 장애 조치하는 경우 RDS는 먼저 기본 DB 인스턴스를 종료합니다. 그러면 내부 모니터링 시스템이 기본 DB 인스턴스가 비정상임을 감지하고 읽기 가능한 복제 DB 인스턴스로 승격합니다. 장애 조치에 소요되는 시간은 일반적으로 35초 아래입니다.

AWS Management Console, AWS CLI 또는 RDS API를 사용하여 다중 AZ DB 클러스터를 수동으로 장애 조치할 수 있습니다.

### 콘솔
<a name="multi-az-db-clusters-concepts-failover-manual-con"></a>

**다중 AZ DB 클러스터를 수동으로 장애 조치하는 방법**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

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

1. 장애 조치하려는 다중 AZ DB 클러스터를 선택합니다.

1. **작업(Actions)**으로 **장애 조치(Failover)**를 선택합니다.

   **DB 클러스터 장애 조치** 페이지가 표시됩니다.

1. **장애 조치(Failover)**를 선택하여 수동 장애 조치를 확인합니다.

### AWS CLI
<a name="multi-az-db-clusters-concepts-failover-manual-cli"></a>

다중 AZ DB 클러스터를 수동으로 장애 조치하려면 AWS CLI 명령 [ failover-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/failover-db-cluster.html)를 사용하세요.

**Example**  

```
1. aws rds failover-db-cluster --db-cluster-identifier mymultiazdbcluster
```

### RDS API
<a name="multi-az-db-clusters-concepts-failover-manual-api"></a>

다중 AZ DB 클러스터를 수동으로 장애 조치하려면 Amazon RDS API [FailoverDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_FailoverDBCluster.html)를 호출하고 `DBClusterIdentifier`를 지정하면 됩니다.

## 다중 AZ DB 클러스터가 장애 조치되었는지 여부 확인
<a name="multi-az-db-clusters-concepts-failover-determining"></a>

다음 단계에 따라 다중 AZ DB 클러스터가 장애 조치를 수행했는지 확인할 수 있습니다.
+ 장애 조치가 시작되었음을 이메일 또는 SMS로 사용자에게 알리도록 DB 이벤트 구독을 설정합니다. 이벤트에 대한 자세한 내용은 [Amazon RDS 이벤트 알림 작업](USER_Events.md) 단원을 참조하세요.
+ Amazon RDS 콘솔 또는 API 작업을 사용하여 DB 이벤트를 확인합니다.
+ Amazon RDS 콘솔, AWS CLI 및 RDS API를 사용하여 다중 AZ DB 클러스터의 현재 상태를 확인합니다.

장애 조치, 복구 시간 절감 및 기타 Amazon RDS 모범 사례에 대한 자세한 내용은 [Amazon RDS의 모범 사례](CHAP_BestPractices.md) 단원을 참조하세요.

## DNS 이름 조회를 위한 JVM TTL 설정
<a name="multi-az-db-clusters-concepts-failover-java-dns"></a>

장애 조치 메커니즘은 리더 DB 인스턴스로 연결되도록 DB 인스턴스의 도메인 이름 시스템(DNS) 레코드를 자동으로 변경합니다. 그 결과 DB 인스턴스의 기존 연결을 모두 재설정해야 합니다. Java 가상 머신(JVM) 환경에서 Java DNS 캐싱 메커니즘이 작동하는 방식 때문에 JVM 설정을 다시 구성해야 할 수 있습니다.

JVM은 DNS 이름 조회를 캐시합니다. JVM은 호스트 이름을 IP 주소로 확인하는 경우 *유지 시간*(TTL)이라고 하는 지정된 기간 동안 IP 주소를 캐싱합니다.

AWS 리소스는 간헐적으로 변경되는 DNS 이름 항목을 사용하므로 TTL 값을 60초 이하로 하여 JVM을 구성하는 것이 좋습니다. 이렇게 하면 리소스의 IP 주소가 변경될 때 애플리케이션이 DNS를 다시 쿼리하여 리소스의 새 IP 주소를 수신하고 사용할 수 있습니다.

일부 Java 구성에서는 JVM이 재시작될 때까지 DNS 항목을 새로 고치지 않도록 JVM 기본 TTL이 설정됩니다. 따라서 애플리케이션이 여전히 실행되는 동안 AWS 리소스의 IP 주소가 변경되는 경우 JVM을 수동으로 재시작하여 캐시된 IP 정보가 새로 고쳐질 때까지는 해당 리소스를 사용할 수 없습니다. 이 경우 캐시된 IP 정보를 정기적으로 새로 고치도록 JVM의 TTL을 설정하는 것이 중요합니다.

**참고**  
기본 TTL은 JVM 버전과 보안 관리자 설치 여부에 따라 다를 수 있습니다. 대부분의 JVM은 60초 미만의 기본 TTL을 제공합니다. 이러한 JVM을 사용 중이며 보안 관리자는 사용하지 않는 경우 이 주제의 나머지 내용을 무시해도 좋습니다. Oracle의 보안 관리자에 대한 자세한 내용은 Oracle 설명서의 [The Security Manager](https://docs.oracle.com/javase/tutorial/essential/environment/security.html)를 참조하십시오.

JVM의 TTL을 수정하려면 [https://docs.oracle.com/javase/7/docs/technotes/guides/net/properties.html](https://docs.oracle.com/javase/7/docs/technotes/guides/net/properties.html) 속성 값을 설정합니다. 필요에 따라 다음 방법 중 하나를 사용합니다.
+ JVM을 사용하는 모든 애플리케이션에 대해 전역적으로 속성 값을 설정하려면 `networkaddress.cache.ttl` 파일에서 `$JAVA_HOME/jre/lib/security/java.security`을 설정합니다.

  ```
  networkaddress.cache.ttl=60								
  ```
+ 애플리케이션에만 로컬로 속성을 설정하려면 네트워크 연결이 설정되기 전에 애플리케이션의 초기화 코드에서 `networkaddress.cache.ttl`을 설정합니다.

  ```
  java.security.Security.setProperty("networkaddress.cache.ttl" , "60");									
  ```

# Amazon RDS의 다중 AZ DB 클러스터에 PostgreSQL 논리적 복제 설정
<a name="USER_MultiAZDBCluster_LogicalRepl"></a>

PostgreSQL의 논리적 복제 기능을 다중 AZ DB 클러스터와 함께 사용하면 전체 데이터베이스 인스턴스가 아닌 개별 테이블을 복제하고 동기화할 수 있습니다. 논리적 복제에서는 게시 및 구독 모델을 사용하여 원본에서 한 명 이상의 수신자에게 변경 내용을 복제합니다. 이 작업은 PostgreSQL 미리 쓰기 로그(WAL)의 변경 레코드를 사용하여 작동합니다. 자세한 내용은 [Amazon RDS for PostgreSQL에 대한 논리적 복제 수행](PostgreSQL.Concepts.General.FeatureSupport.LogicalReplication.md) 섹션을 참조하세요.

다중 AZ DB 클러스터의 라이터 DB 인스턴스에 새 논리적 복제 슬롯을 만들면 해당 슬롯이 클러스터의 각 리더 DB 인스턴스에 비동기적으로 복사됩니다. 리더 DB 인스턴스의 슬롯은 라이터 DB 인스턴스의 슬롯과 지속적으로 동기화됩니다.

논리적 복제는 RDS for PostgreSQL 버전 14.8-R2 이상 및 15.3-R2 이상을 실행하는 다중 AZ DB 클러스터에서 지원됩니다.

**참고**  
기본 PostgreSQL 논리적 복제 기능 외에 RDS for PostgreSQL을 실행하는 다중 AZ DB 클러스터도 `pglogical` 확장을 지원합니다.

PostgreSQL 논리적 복제에 대한 자세한 내용은 PostgreSQL 설명서의 [논리적 복제](https://www.postgresql.org/docs/current/logical-replication.html)를 참조하세요.

**Topics**
+ [사전 조건](#multi-az-db-clusters-logical-replication-prereqs)
+ [논리적 복제 설정](#multi-az-db-clusters-logical-replication)
+ [제한 및 권장 사항](#multi-az-db-clusters-logical-replication-limitations)

## 사전 조건
<a name="multi-az-db-clusters-logical-replication-prereqs"></a>

다중 AZ DB 클러스터를 위한 PostgreSQL 논리적 복제를 구성하려면 다음 사전 조건을 충족해야 합니다.
+ 사용자 계정이 `rds_superuser` 그룹의 구성원이어야 하며 `rds_superuser` 권한을 보유해야 합니다. 자세한 내용은 [PostgreSQL 역할 및 권한 이해](Appendix.PostgreSQL.CommonDBATasks.Roles.md) 섹션을 참조하세요.
+ 다중 AZ DB 클러스터를 사용자 지정 DB 클러스터 파라미터 그룹과 연결해야 다음 절차에 설명된 파라미터 값을 구성할 수 있습니다. 자세한 내용은 [다중 AZ DB 클러스터용 DB 클러스터 파라미터 그룹 작업](USER_WorkingWithDBClusterParamGroups.md) 섹션을 참조하세요.

## 논리적 복제 설정
<a name="multi-az-db-clusters-logical-replication"></a>

다중 AZ DB 클러스터의 논리적 복제를 설정하려면 연결된 DB 클러스터 파라미터 그룹 내에서 특정 파라미터를 활성화한 후 논리적 복제 슬롯을 생성해야 합니다.

**참고**  
PostgreSQL 버전 16부터는 다중 AZ DB 클러스터의 리더 DB 인스턴스를 논리적 복제에 사용할 수 있습니다.

**RDS for PostgreSQL 다중 AZ DB 클러스터의 논리적 복제를 설정하려면**

1. RDS for PostgreSQL 다중 AZ DB 클러스터와 연결된 사용자 지정 DB 클러스터 파라미터 그룹을 엽니다.

1. **파라미터** 검색 필드에서 `rds.logical_replication` 정적 파라미터를 찾고 값을 `1`로 설정합니다. 이 파라미터 변경은 WAL 생성을 증가시킬 수 있으므로, 논리적 슬롯을 사용하는 경우에만 활성화해야 합니다.

1. 이러한 변경의 하나로 다음과 같은 DB 클러스터 파라미터를 구성합니다.
   + `max_wal_senders`
   + `max_replication_slots`
   + `max_connections`

   예상 사용량에 따라 다음 파라미터의 값을 변경해야 할 수도 있습니다. 하지만 대부분의 경우 기본값이면 충분합니다.
   + `max_logical_replication_workers`
   + `max_sync_workers_per_subscription`

1. 파라미터 값을 적용하려면 다중 AZ DB 클러스터를 재부팅합니다. 지침은 [Amazon RDS에서 다중 AZ DB 클러스터 및 리더 DB 인스턴스 재부팅](multi-az-db-clusters-concepts-rebooting.md) 섹션을 참조하세요.

1. [논리적 복제 슬롯 작업](PostgreSQL.Concepts.General.FeatureSupport.LogicalReplication.md#PostgreSQL.Concepts.General.FeatureSupport.LogicalReplicationSlots)에 설명된 대로 다중 AZ DB 클러스터의 라이터 DB 인스턴스에 논리적 복제 슬롯을 생성합니다. 이 프로세스에서는 디코딩 플러그인을 지정해야 합니다. 현재 RDS for PostgreSQL은 PostgreSQL과 함께 전송되는 `test_decoding`, `wal2json`, `pgoutput` 플러그인을 지원합니다.

   슬롯은 클러스터의 각 리더 DB 인스턴스에 비동기적으로 복사됩니다.

1. 다중 AZ DB 클러스터의 모든 리더 DB 인스턴스에 있는 슬롯의 상태를 확인합니다. 이렇게 하려면 모든 리더 DB 인스턴스의 `pg_replication_slots` 보기를 검사하고 애플리케이션이 논리적 변경 사항을 적극적으로 소비하는 동안 `confirmed_flush_lsn` 상태가 진행되고 있는지 확인해야 합니다.

   다음 명령은 리더 DB 인스턴스의 복제 상태를 검사하는 방법을 보여줍니다.

   ```
   % psql -h test-postgres-instance-2.abcdefabcdef.us-west-2.rds.amazonaws.com
   
   postgres=> select slot_name, slot_type, confirmed_flush_lsn from pg_replication_slots;
     slot_name   | slot_type | confirmed_flush_lsn
   --------------+-----------+---------------------
    logical_slot | logical   | 32/D0001700
   (1 row)
   
   postgres=> select slot_name, slot_type, confirmed_flush_lsn from pg_replication_slots;
     slot_name   | slot_type | confirmed_flush_lsn
   --------------+-----------+---------------------
    logical_slot | logical   | 32/D8003628
   (1 row)
   
   % psql -h test-postgres-instance-3.abcdefabcdef.us-west-2.rds.amazonaws.com
   
   postgres=> select slot_name, slot_type, confirmed_flush_lsn from pg_replication_slots;
     slot_name   | slot_type | confirmed_flush_lsn
   --------------+-----------+---------------------
    logical_slot | logical   | 32/D0001700
   (1 row)
   
   postgres=> select slot_name, slot_type, confirmed_flush_lsn from pg_replication_slots;
     slot_name   | slot_type | confirmed_flush_lsn
   --------------+-----------+---------------------
    logical_slot | logical   | 32/D8003628
   (1 row)
   ```

복제 작업을 완료한 후에는 복제 프로세스를 중지하고 복제 슬롯을 삭제한 다음 논리적 복제를 비활성화합니다. 논리적 복제를 비활성화하려면 DB 클러스터 파라미터 그룹을 수정하고 `rds.logical_replication` 값을 다시 `0`으로 설정합니다. 파라미터 변경 사항을 적용하려면 클러스터를 재부팅하세요.

## 제한 및 권장 사항
<a name="multi-az-db-clusters-logical-replication-limitations"></a>

PostgreSQL 버전 16을 실행하는 다중 AZ DB 클러스터에서 논리적 복제를 사용하는 경우 다음과 같은 제한 및 권장 사항이 적용됩니다.
+ 라이터 DB 인스턴스만 사용하여 논리적 복제 슬롯을 만들거나 삭제할 수 있습니다. 예를 들어, `CREATE SUBSCRIPTION` 명령은 호스트 연결 문자열에서 클러스터 라이터 엔드포인트를 사용해야 합니다.
+ 테이블 동기화 또는 재동기화 중에는 클러스터 라이터 엔드포인트를 사용해야 합니다. 예를 들어, 다음 명령을 사용하여 새로 추가된 테이블을 다시 동기화할 수 있습니다.

  ```
  Postgres=>ALTER SUBSCRIPTION subscription-name CONNECTION host=writer-endpoint
  Postgres=>ALTER SUBSCRIPTION subscription-name REFRESH PUBLICATION
  ```
+ 논리적 복제에 리더 DB 인스턴스를 사용하기 전에 테이블 동기화가 완료될 때까지 기다려야 합니다. `[pg\$1subscription\$1rel](https://www.postgresql.org/docs/current/catalog-pg-subscription-rel.html)` 카탈로그 테이블을 사용하여 테이블 동기화를 모니터링할 수 있습니다. `srsubstate` 열이 준비 상태(`r`)로 설정되면 테이블 동기화가 완료됩니다.
+ 초기 테이블 동기화가 완료되면 논리적 복제 연결에 인스턴스 엔드포인트를 사용하는 것이 좋습니다. 다음 명령은 리더 DB 인스턴스 중 하나로 복제를 오프로드하여 라이터 DB 인스턴스의 부하를 줄여줍니다.

  ```
  Postgres=>ALTER SUBSCRIPTION subscription-name CONNECTION host=reader-instance-endpoint
  ```

  한 번에 둘 이상의 DB 인스턴스에서 동일한 슬롯을 사용할 수 없습니다. 둘 이상의 애플리케이션이 클러스터의 서로 다른 DB 인스턴스에서 논리적 변경 사항을 복제하는 경우 클러스터 장애 조치 또는 네트워크 문제로 인해 일부 변경 사항이 손실될 수 있습니다. 이러한 상황에서는 호스트 연결 문자열의 논리적 복제에 인스턴스 엔드포인트를 사용할 수 있습니다. 동일한 구성을 사용하는 다른 애플리케이션은 다음과 같은 오류 메시지를 표시합니다.

  ```
  replication slot slot_name is already active for PID x providing immediate feedback.
  ```
+ `pglogical` 확장을 사용하는 동안에는 클러스터 라이터 엔드포인트만 사용할 수 있습니다. 확장에는 테이블 동기화 중에 사용되지 않는 논리적 복제 슬롯을 생성할 수 있는 알려진 제한 사항이 있습니다. 오래된 복제 슬롯은 미리 쓰기 로그(WAL) 파일을 예약하므로, 디스크 공간 문제가 발생할 수 있습니다.

# Amazon RDS의 다중 AZ DB 클러스터 읽기 전용 복제본 사용
<a name="USER_MultiAZDBCluster_ReadRepl"></a>

DB 클러스터 읽기 전용 복제본은 소스 DB 인스턴스에서 생성하는 특수한 유형의 클러스터입니다. 읽기 전용 복제본 생성 후 기본 DB 인스턴스에 적용되는 업데이트는 다중 AZ DB 클러스터 읽기 전용 복제본에 비동기식으로 복사됩니다. 애플리케이션에서 읽기 전용 복제본으로 읽기 쿼리를 라우팅하여 기본 DB 인스턴스의 로드를 줄일 수 있습니다. 읽기 전용 복제본을 사용하면 읽기 중심의 데이터베이스 워크로드에 대한 단일 DB 인스턴스의 용량 제한에서 벗어나 탄력적으로 늘릴 수 있습니다.

다중 AZ DB 클러스터에서 하나 이상의 DB 인스턴스 전용 복제본을 생성할 수도 있습니다. DB 인스턴스 읽기 전용 복제본을 사용하면 초과 읽기 트래픽을 읽기 전용 복제본으로 전달하여 소스 다중 AZ DB 클러스터의 컴퓨팅 또는 I/O 용량을 초과하여 확장할 수 있습니다. 현재는 기존 다중 AZ DB 클러스터에서 읽기 전용 복제본을 생성할 수 없습니다.

읽기 전용 복제본을 사용하여 다중 AZ DB 클러스터로 마이그레이션하거나 다중 AZ DB 클러스터에서 DB 인스턴스 읽기 전용 복제본을 생성할 때 특정 사용 사례 및 성능 요구 사항을 고려하세요.

**읽기 전용 복제본을 사용하여 다중 AZ DB 클러스터로 마이그레이션**  
이 접근 방식은 가동 중지 시간을 최소화하면서 데이터베이스의 가용성과 내구성을 개선해야 하는 경우에 적합합니다. 읽기 전용 복제본을 사용하여 다중 AZ DB 클러스터로 전환하면 지속적인 작업과 데이터 일관성을 보장할 수 있습니다. 이 방법은 가용성을 유지하고 라이브 워크로드에 미치는 영향을 줄이는 것이 중요한 프로덕션 환경에 특히 유용합니다.

**다중 AZ DB 클러스터에서 DB 인스턴스 읽기 전용 복제본 생성**  
이 방법은 읽기 작업을 확장하거나 기본 데이터베이스 인스턴스에서 읽기 트래픽을 오프로드하려는 경우에 적합합니다. 기존 다중 AZ DB 클러스터에서 읽기 전용 복제본을 생성하면 프라이머리 인스턴스의 안정성에 영향을 주지 않고 읽기 작업이 많은 워크로드를 배포하고 성능을 개선할 수 있습니다.

올바른 접근 방식을 선택하는 것은 고가용성 및 내구성을 보장하는 것이 우선순위인지 아니면 읽기 성능을 확장하는 것이 우선순위인지에 따라 달라집니다. 워크로드 특성 및 운영 요구 사항을 평가하여 정보에 입각한 결정을 내립니다.

**Topics**
+ [읽기 전용 복제본을 사용하여 다중 AZ DB 클러스터로 마이그레이션](multi-az-db-clusters-migrating-to-with-read-replica.md)
+ [다중 AZ DB 클러스터에서 DB 인스턴스 읽기 전용 복제본 생성](multi-az-db-clusters-create-instance-read-replica.md)

# 읽기 전용 복제본을 사용하여 다중 AZ DB 클러스터로 마이그레이션
<a name="multi-az-db-clusters-migrating-to-with-read-replica"></a>

단일 AZ 배포 또는 다중 AZ DB 인스턴스 배포를 다중 AZ DB 클러스터 배포로 마이그레이션하여 가동 중지 시간을 줄이려면 다중 AZ DB 클러스터 읽기 전용 복제본을 생성할 수 있습니다. 소스의 경우 단일 AZ 배포의 DB 인스턴스 또는 다중 AZ DB 인스턴스 배포의 기본 DB 인스턴스를 지정합니다. DB 인스턴스는 다중 AZ DB 클러스터로의 마이그레이션 중에 쓰기 트랜잭션을 처리할 수 있습니다.

다중 AZ DB 클러스터 읽기 전용 복제본을 생성하기 전에 다음 사항을 고려하세요.
+ 소스 DB 인스턴스는 다중 AZ DB 클러스터를 지원하는 버전에 있어야 합니다. 자세한 내용은 [Amazon RDS에서 다중 AZ DB 클러스터를 지원하는 리전 및 DB 엔진](Concepts.RDS_Fea_Regions_DB-eng.Feature.MultiAZDBClusters.md) 단원을 참조하십시오.
+ 다중 AZ DB 클러스터 읽기 전용 복제본은 소스와 동일한 메이저 버전 또는 같거나 더 높은 마이너 버전에 있어야 합니다.
+ 백업 보존 기간을 0이 아닌 다른 값으로 설정하여 소스 DB 인스턴스의 자동 백업을 켜야 합니다.
+ 소스 DB 인스턴스의 할당된 스토리지는 100GiB 이상이어야 합니다.
+ RDS for MySQL의 경우 소스 DB 인스턴스에 대해 `gtid-mode` 및 `enforce_gtid_consistency` 파라미터를 모두 `ON`으로 설정해야 합니다. 기본 파라미터 그룹이 아니라 사용자 지정 파라미터 그룹을 사용해야 합니다. 자세한 내용은 [Amazon RDS DB 인스턴스용 DB 파라미터 그룹](USER_WorkingWithDBInstanceParamGroups.md) 단원을 참조하십시오.
+ 활성 상태의 장기 실행 트랜잭션은 읽기 전용 복제본 생성 프로세스를 늦출 수 있습니다. 읽기 전용 복제본을 생성하기 전에 장기 실행 트랜잭션이 완료되기를 기다리는 것이 좋습니다.
+ 다중 AZ DB 클러스터 읽기 전용 복제본의 소스 DB 인스턴스를 삭제하는 경우 읽기 전용 복제본이 독립된 다중 AZ DB 클러스터로 승격됩니다.

## 다중 AZ DB 클러스터 읽기 전용 복제본 생성 및 승격
<a name="multi-az-db-clusters-migrating-to-create-promote"></a>

AWS Management Console, AWS CLI 또는 RDS API를 사용하여 다중 AZ DB 클러스터를 생성하고 승격할 수 있습니다.

**참고**  
모든 읽기 전용 복제본은 소스 DB 인스턴스와 동일한 Amazon VPC 기반의 Virtual Private Cloud(VPC)에 생성하는 것이 좋습니다.  
소스 DB 인스턴스와 다른 VPC에 읽기 전용 복제본을 생성하는 경우 Classless Inter-Domain Routing(CIDR) 범위가 복제본과 RDS 시스템 간에 겹칠 수 있습니다. CIDR이 겹치면 복제본이 불안정해져 복제본에 연결하는 애플리케이션에 부정적인 영향을 줄 수 있습니다. 읽기 전용 복제본을 생성할 때 오류가 발생하면 다른 대상 DB 서브넷 그룹을 선택합니다. 자세한 내용은 [VPC에서 DB 인스턴스를 사용한 작업](USER_VPC.WorkingWithRDSInstanceinaVPC.md) 단원을 참조하십시오.

### 콘솔
<a name="multi-az-db-clusters-migrating-to-create-promote-console"></a>

읽기 전용 복제본을 사용하여 단일 AZ 배포 또는 다중 AZ DB 인스턴스 배포를 다중 AZ DB 클러스터로 마이그레이션하려면 AWS Management Console을 사용하여 다음 단계를 완료합니다.

1. [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 AWS Management Console에 로그인한 후 Amazon RDS 콘솔을 엽니다.

1. 다중 AZ DB 클러스터 읽기 전용 복제본을 생성합니다.

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

   1. 읽기 전용 복제본의 소스로 사용할 DB 인스턴스를 선택합니다.

   1. **작업**에서 **읽기 전용 복제본 만들기**를 선택합니다.

   1. **Availability and durability**(가용성 및 내구성)에서 **Multi-AZ DB cluster**(다중 AZ DB 클러스터)를 선택합니다.

   1. **DB 인스턴스 식별자**에 읽기 전용 복제본의 이름을 입력합니다.

   1. 나머지 섹션에서 DB 클러스터 설정을 지정합니다. 설정에 대한 자세한 내용은 [다중 AZ DB 클러스터를 생성하기 위한 설정](create-multi-az-db-cluster.md#create-multi-az-db-cluster-settings) 섹션을 참조하세요.

   1. **읽기 전용 복제본 생성**을 선택합니다.

1. 준비가 되면 읽기 복제본을 독립형 다중 AZ DB 클러스터로 승격합니다.

   1. 어떤 트랜잭션도 소스 DB 인스턴스에 쓰지 못하도록 한 후 읽기 전용 복제본의 업데이트가 모두 끝날 때까지 기다립니다.

      읽기 전용 복제본에서 수행된 데이터베이스 업데이트는 기본 DB 인스턴스의 업데이트가 끝난 후에 이어집니다. 이 복제 지연은 서로 크게 다를 수 있습니다. `ReplicaLag` 지표를 사용하여 읽기 전용 복제본의 업데이트가 모두 완료되는 시간을 측정합니다. 복제 지연에 대한 자세한 내용은 [읽기 전용 복제본 모니터링](USER_ReadRepl.Monitoring.md) 섹션을 참조하세요.

   1. [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 AWS Management Console에 로그인한 후 Amazon RDS 콘솔을 엽니다.

   1. Amazon RDS 콘솔에서 **데이터베이스**를 선택합니다.

      **데이터베이스** 창이 표시됩니다. 각 읽기 전용 복제본은 **역할** 열에 **복제본**이라고 표시됩니다.

   1. 승격하려는 다중 AZ DB 클러스터 읽기 전용 복제본을 선택합니다.

   1. **Actions**(작업)에서 **Promote**(승격)를 선택합니다.

   1. **Promote read replica**(읽기 전용 복제본 승격) 페이지에서 새롭게 승격된 다중 AZ DB 클러스터의 백업 보존 기간과 백업 기간을 입력합니다.

   1. 원하는 대로 설정되었으면 **Promote read replica**(읽기 전용 복제본 승격)를 선택합니다.

   1. 승격된 다중 AZ DB 클러스터의 상태가 `Available`이 될 때까지 기다립니다.

   1. 애플리케이션이 승격된 다중 AZ DB 클러스터를 사용하도록 설정합니다.

   더 이상 필요하지 않은 경우 선택적으로 단일 AZ 배포 또는 다중 AZ DB 인스턴스 배포를 삭제하세요. 지침은 [DB 인스턴스 삭제](USER_DeleteInstance.md) 단원을 참조하십시오.

### AWS CLI
<a name="multi-az-db-clusters-migrating-to-create-promote-cli"></a>

읽기 전용 복제본을 사용하여 단일 AZ 배포 또는 다중 AZ DB 인스턴스 배포를 다중 AZ DB 클러스터로 마이그레이션하려면 AWS CLI을 사용하여 다음 단계를 완료합니다.

1. 다중 AZ DB 클러스터 읽기 전용 복제본을 생성합니다.

   소스 DB 인스턴스에서 읽기 복제본을 생성하려면 AWS CLI 명령 [https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-cluster.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-cluster.html)를 사용합니다. `--replication-source-identifier`의 경우 소스 DB 인스턴스의 Amazon 리소스 이름(ARN)을 지정합니다.

   대상 LinuxmacOS, 또는Unix:

   ```
   aws rds create-db-cluster \
     --db-cluster-identifier mymultiazdbcluster \
     --replication-source-identifier arn:aws:rds:us-east-2:123456789012:db:mydbinstance
     --engine postgres \
     --db-cluster-instance-class db.m5d.large \
     --storage-type io1 \
     --iops 1000 \
     --db-subnet-group-name defaultvpc \
     --backup-retention-period 1
   ```

   Windows의 경우:

   ```
   aws rds create-db-cluster ^
     --db-cluster-identifier mymultiazdbcluster ^
     --replication-source-identifier arn:aws:rds:us-east-2:123456789012:db:mydbinstance
     --engine postgres ^
     --db-cluster-instance-class db.m5d.large ^
     --storage-type io1 ^
     --iops 1000 ^
     --db-subnet-group-name defaultvpc ^
     --backup-retention-period 1
   ```

1. 어떤 트랜잭션도 소스 DB 인스턴스에 쓰지 못하도록 한 후 읽기 전용 복제본의 업데이트가 모두 끝날 때까지 기다립니다.

   읽기 전용 복제본에서 수행된 데이터베이스 업데이트는 기본 DB 인스턴스의 업데이트가 끝난 후에 이어집니다. 이 복제 지연은 서로 크게 다를 수 있습니다. `Replica Lag` 지표를 사용하여 읽기 전용 복제본의 업데이트가 모두 완료되는 시간을 측정합니다. 복제 지연에 대한 자세한 내용은 [읽기 전용 복제본 모니터링](USER_ReadRepl.Monitoring.md) 섹션을 참조하세요.

1. 준비가 되면 읽기 복제본을 독립형 다중 AZ DB 클러스터로 승격합니다.

   다중 AZ DB 클러스터 읽기 전용 복제본을 승격하려면 AWS CLI 명령 [https://docs.aws.amazon.com/cli/latest/reference/rds/promote-read-replica-db-cluster.html](https://docs.aws.amazon.com/cli/latest/reference/rds/promote-read-replica-db-cluster.html)를 사용합니다. `--db-cluster-identifier`의 경우 다중 AZ DB 클러스터 읽기 전용 복제의 식별자를 지정합니다.

   ```
   aws rds promote-read-replica-db-cluster --db-cluster-identifier mymultiazdbcluster
   ```

1. 승격된 다중 AZ DB 클러스터의 상태가 `Available`이 될 때까지 기다립니다.

1. 애플리케이션이 승격된 다중 AZ DB 클러스터를 사용하도록 설정합니다.

더 이상 필요하지 않은 경우 선택적으로 단일 AZ 배포 또는 다중 AZ DB 인스턴스 배포를 삭제하세요. 지침은 [DB 인스턴스 삭제](USER_DeleteInstance.md) 단원을 참조하십시오.

### RDS API
<a name="multi-az-db-clusters-migrating-to-create-promote-api"></a>

읽기 전용 복제본을 사용하여 단일 AZ 배포 또는 다중 AZ DB 인스턴스 배포를 다중 AZ DB 클러스터로 마이그레이션하려면 RDS API를 사용하여 다음 단계를 완료합니다.

1. 다중 AZ DB 클러스터 읽기 전용 복제본을 생성합니다.

   다중 AZ DB 클러스터 읽기 전용 복제본을 생성하려면 필요한 파라미터 `DBClusterIdentifier`와 함께 [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html) 작업을 사용합니다. `ReplicationSourceIdentifier`의 경우 소스 DB 인스턴스의 Amazon 리소스 이름(ARN)을 지정합니다.

1. 어떤 트랜잭션도 소스 DB 인스턴스에 쓰지 못하도록 한 후 읽기 전용 복제본의 업데이트가 모두 끝날 때까지 기다립니다.

   읽기 전용 복제본에서 수행된 데이터베이스 업데이트는 기본 DB 인스턴스의 업데이트가 끝난 후에 이어집니다. 이 복제 지연은 서로 크게 다를 수 있습니다. `Replica Lag` 지표를 사용하여 읽기 전용 복제본의 업데이트가 모두 완료되는 시간을 측정합니다. 복제 지연에 대한 자세한 내용은 [읽기 전용 복제본 모니터링](USER_ReadRepl.Monitoring.md) 섹션을 참조하세요.

1. 준비가 되면 읽기 복제본을 독립형 다중 AZ DB 클러스터로 승격합니다.

   다중 AZ DB 클러스터 읽기 전용 복제본을 승격하려면 필요한 파라미터 `DBClusterIdentifier`와 함께 [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_PromoteReadReplicaDBCluster.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_PromoteReadReplicaDBCluster.html) 작업을 사용합니다. 다중 AZ DB 클러스터 읽기 전용 복제의 식별자를 지정합니다.

1. 승격된 다중 AZ DB 클러스터의 상태가 `Available`이 될 때까지 기다립니다.

1. 애플리케이션이 승격된 다중 AZ DB 클러스터를 사용하도록 설정합니다.

더 이상 필요하지 않은 경우 선택적으로 단일 AZ 배포 또는 다중 AZ DB 인스턴스 배포를 삭제하세요. 지침은 [DB 인스턴스 삭제](USER_DeleteInstance.md) 단원을 참조하십시오.

## 다중 AZ DB 클러스터 읽기 전용 복제본 생성 시 제한
<a name="multi-az-db-clusters-migrating-to-limitations"></a>

단일 AZ 배포 또는 다중 AZ DB 인스턴스 배포에서 다중 AZ DB 클러스터 읽기 전용 복제본을 생성하는 데는 다음과 같은 제한이 적용됩니다.
+ 소스 DB 인스턴스를 소유한 AWS 계정와 다른 AWS 계정에서는 다중 AZ DB 클러스터 읽기 전용 복제본을 생성할 수 없습니다.
+ 소스 DB 인스턴스와 다른 AWS 리전에는 다중 AZ DB 클러스터 읽기 전용 복제본을 생성할 수 없습니다.
+ 다중 AZ DB 클러스터 읽기 전용 복제본을 특정 시점으로 복구할 수 없습니다.
+ 스토리지 암호화는 소스 DB 인스턴스와 다중 AZ DB 클러스터에서 동일한 설정을 가져야 합니다.
+ 소스 DB 인스턴스가 암호화된 경우 다중 AZ DB 클러스터 읽기 전용 복제본은 동일한 KMS 키를 사용하여 암호화되어야 합니다.
+ 소스 DB 인스턴스가 범용 SSD(gp3) 스토리지를 사용하고 할당된 스토리지가 400GiB 미만인 경우 다중 AZ DB 클러스터 읽기 전용 복제본의 프로비저닝된 IOPS를 수정할 수 없습니다.
+ 소스 DB 인스턴스에서 마이너 버전 업그레이드를 수행하려면 먼저 다중 AZ DB 클러스터 읽기 전용 복제본에서 마이너 버전 업그레이드를 수행해야 합니다.
+ PostgreSQL 다중 AZ DB 클러스터 읽기 전용 복제본용 RDS에서 마이너 버전 업그레이드를 수행할 때, 업그레이드 후 리더 DB 인스턴스가 라이터 DB 인스턴스로 전환되지 않습니다. 따라서 Amazon RDS가 라이터 인스턴스를 업그레이드하는 동안 DB 클러스터에 가동 중지가 발생할 수 있습니다.
+ 다중 AZ DB 클러스터 읽기 전용 복제본에서 메이저 버전 업그레이드를 수행할 수 없습니다.
+ 다중 AZ DB 클러스터 읽기 전용 복제본의 소스 DB 인스턴스에서 메이저 버전 업그레이드를 수행할 수 있지만, 읽기 전용 복제본으로의 복제가 중지되고 다시 시작할 수 없습니다.
+ 다중 AZ DB 클러스터 읽기 전용 복제본은 읽기 전용 복제본 계단식 읽기를 지원하지 않습니다.
+ RDS for PostgreSQL의 경우 다중 AZ DB 클러스터 읽기 전용 복제본은 장애 조치할 수 없습니다.

# 다중 AZ DB 클러스터에서 DB 인스턴스 읽기 전용 복제본 생성
<a name="multi-az-db-clusters-create-instance-read-replica"></a>

읽기 중심의 데이터베이스 워크로드를 위해 클러스터의 컴퓨팅 또는 I/O 용량을 초과하여 확장하려는 경우, 다중 AZ DB 클러스터에서 DB 인스턴스 읽기 전용 복제본을 생성할 수 있습니다. 이 과도한 읽기 트래픽을 하나 이상의 DB 인스턴스 읽기 전용 복제본으로 이동할 수 있습니다. 읽기 전용 복제본을 사용하여 다중 AZ DB 클러스터에서 DB 인스턴스로 마이그레션할 수도 있습니다.

읽기 전용 복제본을 만들려면 다중 AZ DB 클러스터를 복제 소스로 지정합니다. 다중 AZ DB 클러스터의 리더 인스턴스 중 하나는 항상 복제 소스이며 라이터 인스턴스가 아닙니다. 이 조건은 장애 조치가 발생한 경우에도 복제본이 항상 소스 클러스터와 동기화되도록 보장합니다.

**Topics**
+ [리더 DB 인스턴스와 DB 인스턴스 읽기 전용 복제본 비교](#multi-az-db-clusters-readerdb-vs-dbrr)
+ [고려 사항](#multi-az-db-clusters-instance-read-replica-considerations)
+ [DB 인스턴스 전용 복제본 생성](#multi-az-db-clusters-instance-read-replica-create)
+ [DB 인스턴스 읽기 전용 복제본 승격](#multi-az-db-clusters-promote-instance-read-replica)
+ [다중 AZ DB 클러스터에서 DB 인스턴스 읽기 전용 복제본 생성 시 제한](#multi-az-db-clusters-create-instance-read-replica-limitations)

## 리더 DB 인스턴스와 DB 인스턴스 읽기 전용 복제본 비교
<a name="multi-az-db-clusters-readerdb-vs-dbrr"></a>

다중 AZ DB 클러스터의 *DB 인스턴스 읽기 전용 복제본*과 다중 AZ DB 클러스터의 *리더 DB 인스턴스*의 차이점은 다음과 같습니다.
+ 리더 DB 인스턴스는 자동 장애 조치 대상으로 작동하지만, DB 인스턴스 읽기 전용 복제본은 그렇지 않습니다.
+ 리더 DB 인스턴스는 변경 사항을 커밋하기 전에 라이터 DB 인스턴스에서 변경 사항을 승인해야 합니다. 그러나 DB 인스턴스 전용 복제본의 업데이트는 승인 없이도 읽기 전용 복제본에 비동기식으로 복사됩니다.
+ 리더 DB 인스턴스는 다중 AZ DB 클러스터의 라이터 DB 인스턴스와 동일한 인스턴스 클래스, 스토리지 유형, 엔진 버전을 공유합니다. 하지만 DB 인스턴스 읽기 전용 복제본이 반드시 소스 클러스터와 동일한 구성을 공유할 필요는 없습니다.
+ DB 인스턴스 읽기 전용 복제본을 독립 실행형 DB 인스턴스로 승격시킬 수 있습니다. 다중 AZ DB 클러스터의 리더 DB 인스턴스는 독립 실행형 인스턴스로 승격시킬 수 없습니다.
+ 리더 엔드포인트는 다중 AZ DB 클러스터의 리더 DB 인스턴스에 대한 요청만 라우팅합니다. 이는 요청을 DB 인스턴스 읽기 전용 복제본으로 라우팅하지 않습니다.

리더 및 라이터 DB 인스턴스에 대한 자세한 내용은 [다중 AZ DB 클러스터 아키텍처](multi-az-db-clusters-concepts.md#multi-az-db-clusters-concepts-overview) 섹션을 참조하세요.

## 고려 사항
<a name="multi-az-db-clusters-instance-read-replica-considerations"></a>

다중 AZ DB 클러스터에서 DB 인스턴스 읽기 전용 복제본을 생성하기 전에 다음 사항을 고려하세요.
+ DB 인스턴스를 생성할 경우, 이는 소스 클러스터와 동일한 메이저 버전 또는 같거나 더 높은 마이너 버전에 있어야 합니다. 읽기 전용 복제본을 생성한 후 선택에 따라, 읽기 전용 복제본을 소스 클러스터보다 상위 마이너 버전으로 업그레이드할 수 있습니다.
+ DB 인스턴스 읽기 전용 복제본을 생성할 경우, 할당된 스토리지는 소스 다중 AZ DB 클러스터의 할당된 스토리지와 동일해야 합니다. 읽기 전용 복제본을 생성한 후 할당된 스토리지를 변경할 수 있습니다.
+ RDS for MySQL의 경우 소스 다중 AZ DB 클러스터의 `gtid-mode` 파라미터를 `ON`으로 설정해야 합니다. 자세한 내용은 [다중 AZ DB 클러스터용 DB 클러스터 파라미터 그룹 작업](USER_WorkingWithDBClusterParamGroups.md) 섹션을 참조하세요.
+ 활성 상태의 장기 실행 트랜잭션은 읽기 전용 복제본 생성 프로세스를 늦출 수 있습니다. 읽기 전용 복제본을 생성하기 전에 장기 실행 트랜잭션이 완료되기를 기다리는 것이 좋습니다.
+ DB 인스턴스 전용 복제본에 대한 다중 AZ DB 클러스터를 삭제할 경우, 쓰기 작업을 수행 중인 모든 읽기 전용 복제본은 독립 실행형 DB 인스턴스로 승격됩니다.

## DB 인스턴스 전용 복제본 생성
<a name="multi-az-db-clusters-instance-read-replica-create"></a>

AWS Management Console, AWS CLI 또는 RDS API를 사용하여 다중 AZ DB 클러스터에서 DB 인스턴스 읽기 전용 복제본을 생성할 수 있습니다.

**참고**  
모든 읽기 전용 복제본은 소스 다중 AZ DB 클러스터와 동일한 Amazon VPC 기반의 Virtual Private Cloud(VPC)에 생성하는 것이 좋습니다.  
소스 AZ DB 클러스터와 다른 VPC에 읽기 전용 복제본을 생성하는 경우 Classless Inter-Domain Routing(CIDR) 범위가 복제본과 RDS 시스템 간에 겹칠 수 있습니다. CIDR이 겹치면 복제본이 불안정해져 복제본에 연결하는 애플리케이션에 부정적인 영향을 줄 수 있습니다. 읽기 전용 복제본을 생성할 때 오류가 발생하면 다른 대상 DB 서브넷 그룹을 선택합니다. 자세한 내용은 [VPC에서 DB 인스턴스를 사용한 작업](USER_VPC.WorkingWithRDSInstanceinaVPC.md) 섹션을 참조하세요.

### 콘솔
<a name="multi-az-db-clusters-create-instance-read-replica-console"></a>

다중 AZ DB 클러스터에서 DB 인스턴스 전용 복제본을 생성하려면 AWS Management Console을 사용하여 다음 단계를 완료합니다.

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

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

1. 읽기 전용 복제본의 소스로 사용할 다중 AZ DB 인스턴스를 선택합니다.

1. **작업**에서 **읽기 전용 복제본 만들기**를 선택합니다.

1. **복제본 소스**의 경우 올바른 다중 AZ DB 클러스터를 선택했는지 확인하세요.

1. **DB 식별자**에 읽기 전용 복제본의 이름을 입력합니다.

1. 나머지 섹션에서 DB 인스턴스 설정을 지정합니다. 설정에 대한 자세한 내용은 [DB 인스턴스에 대한 설정](USER_CreateDBInstance.Settings.md) 섹션을 참조하세요.
**참고**  
DB 인스턴스 읽기 전용 복제본의 할당된 스토리지는 소스 다중 AZ DB 클러스터의 할당된 스토리지와 동일해야 합니다.

1. **읽기 전용 복제본 생성**을 선택합니다.

### AWS CLI
<a name="multi-az-db-clusters-create-instance-read-replica-cli"></a>

다중 AZ DB 클러스터에서 DB 인스턴스 전용 복제본을 생성하려면 AWS CLI 명령 [https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance-read-replica.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance-read-replica.html)를 사용하세요. `--source-db-cluster-identifier`의 경우 다중 AZ DB 클러스터의 식별자를 지정합니다.

대상 LinuxmacOS, 또는Unix:

```
aws rds create-db-instance-read-replica \
  --db-instance-identifier myreadreplica \
  --source-db-cluster-identifier mymultiazdbcluster
```

Windows의 경우:

```
aws rds create-db-instance-read-replica ^
  --db-instance-identifier myreadreplica ^
  --source-db-cluster-identifier mymultiazdbcluster
```

### RDS API
<a name="multi-az-db-clusters-create-instance-read-replica-api"></a>

다중 AZ DB 클러스터에서 DB 인스턴스 전용 복제본을 생성하려면 [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstanceReadReplica.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstanceReadReplica.html) 작업을 사용하세요.

## DB 인스턴스 읽기 전용 복제본 승격
<a name="multi-az-db-clusters-promote-instance-read-replica"></a>

DB 인스턴스 읽기 전용 복제본이 더 이상 필요하지 않은 경우 이를 독립 실행형 DB 인스턴스로 승격시킬 수 있습니다. 읽기 전용 복제본을 승격하면 DB 인스턴스가 먼저 재부팅된 후에 사용할 수 있습니다. 지침은 [읽기 전용 복제본을 독립 DB 인스턴스로 승격](USER_ReadRepl.Promote.md) 섹션을 참조하세요.

읽기 전용 복제본을 사용하여 다중 AZ DB 클러스터 배포를 단일 AZ 또는 다중 AZ DB 인스턴스 배포로 마이그레이션하려면 소스 DB 클러스터에 쓰기 작업을 수행 중인 모든 트랜잭션을 중단해야 합니다. 그런 다음, 읽기 전용 복제본의 업데이트가 모두 끝날 때까지 기다립니다. 다중 AZ DB 클러스터의 리더 DB 인스턴스 중 하나에서 업데이트가 실행되면 읽기 전용 복제본에서 데이터베이스 업데이트가 실행됩니다. 이 복제 지연은 서로 크게 다를 수 있습니다. `ReplicaLag` 지표를 사용하여 읽기 전용 복제본의 업데이트가 모두 완료되는 시간을 측정합니다. 복제 지연에 대한 자세한 내용은 [읽기 전용 복제본 모니터링](USER_ReadRepl.Monitoring.md) 섹션을 참조하세요.

읽기 전용 복제본을 승격시킨 후, 승격된 DB 인스턴스를 사용하도록 애플리케이션을 리디렉션하려면 우선 승격된 DB 인스턴스의 상태가 `Available`이 될 때까지 기다려야 합니다. 또는 더 이상 필요하지 않은 경우에는 다중 AZ DB 클러스터 배포를 삭제합니다. 지침은 [Amazon RDS용 다중 AZ DB 클러스터 삭제](USER_DeleteMultiAZDBCluster.Deleting.md) 섹션을 참조하세요.

## 다중 AZ DB 클러스터에서 DB 인스턴스 읽기 전용 복제본 생성 시 제한
<a name="multi-az-db-clusters-create-instance-read-replica-limitations"></a>

다중 AZ DB 인스턴스 배포에서 DB 클러스터 읽기 전용 복제본을 생성하는 데는 다음과 같은 제한이 적용됩니다.
+ 소스 DB 클러스터를 소유한 AWS 계정와 다른 AWS 계정에서는 DB 인스턴스 읽기 전용 복제본을 생성할 수 없습니다.
+ 소스 다중 AZ DB 클러스터와 다른 AWS 리전에는 다중 DB 인스턴스 읽기 전용 복제본을 생성할 수 없습니다.
+ DB 인스턴스 읽기 전용 복제본을 특정 시점으로 복구할 수 없습니다.
+ 스토리지 암호화는 소스 다중 AZ DB 클러스터와 DB 인스턴스 읽기 전용 복제본에서 동일한 설정을 가져야 합니다.
+ 다중 AZ DB 클러스터가 암호화된 경우 DB 인스턴스 읽기 전용 복제본은 동일한 KMS 키를 사용하여 암호화되어야 합니다.
+ 소스 다중 AZ DB 클러스터에서 마이너 버전 업그레이드를 수행하려면 먼저 다중 DB 인스턴스 읽기 전용 복제본에서 마이너 버전 업그레이드를 수행해야 합니다.
+ DB 인스턴스 읽기 전용 복제본은 읽기 전용 복제본 계단식 읽기를 지원하지 않습니다.
+ RDS for PostgreSQL의 경우 DB 인스턴스 읽기 전용 복제본을 만들려면 소스 다중 AZ DB 클러스터에서 PostgreSQL 버전 13.11, 14.8 또는 15.2.R2 이상을 실행해야 합니다.
+ DB 인스턴스 읽기 전용 복제본의 소스 다중 AZ DB 클러스터에서 메이저 버전 업그레이드를 수행할 수 있지만, 읽기 전용 복제본으로의 복제가 중지되고 다시 시작할 수 없습니다.

# Amazon RDS의 다중 AZ DB 클러스터에서 외부 복제 설정
<a name="multi-az-db-clusters-external-replication"></a>

다중 AZ DB 클러스터와 Amazon RDS 외부에 있는 데이터베이스 간의 복제를 설정할 수 있습니다.

외부 복제를 통해 다중 AZ DB 클러스터는 온프레미스 또는 다른 클라우드 환경에서 RDS DB 인스턴스와 외부 데이터베이스 간에 데이터를 복제할 수 있습니다. 재해 복구, 데이터 마이그레이션 및 서로 다른 위치에 있는 시스템 간의 일관성 유지에 유용합니다. 이 섹션에서는 복제를 설정하기 위한 사전 조건, 프로세스를 구성하는 방법 및 복제 지연 시간, 대역폭, 다양한 데이터베이스 엔진과의 호환성과 같은 주요 고려 사항을 다룹니다.

## RDS for MySQL
<a name="multi-az-db-clusters-external-mysql"></a>

RDS for MySQL 다중 AZ DB 클러스터의 외부 복제를 설정하려면 Amazon RDS가 binlog 파일을 삭제하기 전에 변경 내용이 복제본에 적용되도록 클러스터 내 DB 인스턴스에 이진 로그 파일을 충분히 오랫동안 유지해야 합니다. 이렇게 하려면 `mysql.rds_set_configuration` 저장 절차를 직접적으로 호출하고 `binlog retention hours` 파라미터를 지정하여 이진 로그 유지를 구성하세요. 자세한 내용은 [binlog retention hours](mysql-stored-proc-configuring.md#mysql_rds_set_configuration-usage-notes.binlog-retention-hours) 섹션을 참조하세요.

`binlog retention hours`의 기본값은 `NULL`이며, 이는 이진 로그가 유지되지 않음을 의미합니다(0시간). 다중 AZ DB 클러스터에 대한 외부 복제를 설정하려면 파라미터를 `NULL` 이외의 값으로 설정해야 합니다.

다중 AZ DB 클러스터의 라이터 DB 인스턴스에서만 이진 로그 유지를 구성할 수 있으며, 설정은 모든 리더 DB 인스턴스에 비동기적으로 전파됩니다.

또한 외부 복제본에서 GTID 기반 복제를 활성화하는 것이 좋습니다. 그러면 DB 인스턴스 중 하나에 장애가 발생하는 경우 클러스터 내의 다른 정상 DB 인스턴스에서 복제를 재개할 수 있습니다. 자세한 내용은 MySQL 설명서의 [전역 트랜잭션 ID를 사용한 복제](https://dev.mysql.com/doc/refman/8.0/en/replication-gtids.html)를 참조하세요.

## RDS for PostgreSQL
<a name="multi-az-db-clusters-external-postgres"></a>

RDS for PostgreSQL 다중 AZ DB 클러스터의 외부 복제를 설정하려면 논리 복제를 활성화해야 합니다. 지침은 [Amazon RDS의 다중 AZ DB 클러스터에 PostgreSQL 논리적 복제 설정](USER_MultiAZDBCluster_LogicalRepl.md) 단원을 참조하세요.

# Amazon RDS용 다중 AZ DB 클러스터 삭제
<a name="USER_DeleteMultiAZDBCluster.Deleting"></a>

AWS Management Console, AWS CLI 또는 RDS API를 사용하여 DB 다중 AZ DB 클러스터를 삭제할 수 있습니다.

다중 AZ DB 클러스터를 삭제하는 데 필요한 시간은 다음과 같은 요인에 따라 달라질 수 있습니다.
+ 백업 보존 기간(삭제할 백업 수).
+ 삭제되는 데이터의 양.
+ 최종 스냅샷 생성 여부.

다중 AZ DB 클러스터를 삭제하려면 먼저 삭제 방지를 비활성화해야 합니다. 자세한 내용은 [DB 인스턴스를 삭제하기 위한 사전 조건](USER_DeleteInstance.md#USER_DeleteInstance.DeletionProtection) 단원을 참조하십시오. 다중 AZ DB 클러스터를 수정하여 삭제 방지를 비활성화할 수 있습니다. 자세한 내용은 [Amazon RDS용 다중 AZ DB 클러스터 수정](modify-multi-az-db-cluster.md) 단원을 참조하십시오.

## 콘솔
<a name="USER_DeleteMultiAZDBCluster.Deleting.CON"></a>

**다중 AZ DB 클러스터를 삭제하는 방법**

1. [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 AWS Management Console에 로그인한 후 Amazon RDS 콘솔을 엽니다.

1. 탐색 창에서 **데이터베이스(Databases)**를 선택한 다음 삭제하려는 다중 AZ DB 클러스터를 선택합니다.

1. **작업**에 대해 **삭제**를 선택합니다.

1. **최종 스냅샷을 생성하시겠습니까?(Create final snapshot?)**를 선택하여 다중 AZ DB 클러스터의 최종 DB 스냅샷을 생성합니다.

   최종 스냅샷을 생성한 경우 **최종 스냅샷 이름(Final snapshot name)**에 이름을 입력합니다.

1. **자동 백업 보관(Retain automated backups)**을 선택하여 자동 백업을 보관합니다.

1. 상자에 **delete me**를 입력합니다.

1. **삭제**를 선택합니다.

## AWS CLI
<a name="USER_DeleteMultiAZDBCluster.Deleting.CLI"></a>

AWS CLI를 사용하여 다중 AZ DB 클러스터를 삭제하려면 다음 옵션과 함께 [delete-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/delete-db-cluster.html) 명령을 호출합니다.
+ `--db-cluster-identifier`
+ `--final-db-snapshot-identifier` 또는 `--skip-final-snapshot`

**Example 최종 스냅샷 포함**  
대상 LinuxmacOS, 또는Unix:  

```
aws rds delete-db-cluster \
    --db-cluster-identifier mymultiazdbcluster \
    --final-db-snapshot-identifier mymultiazdbclusterfinalsnapshot
```
Windows의 경우:  

```
aws rds delete-db-cluster ^
    --db-cluster-identifier mymultiazdbcluster ^
    --final-db-snapshot-identifier mymultiazdbclusterfinalsnapshot
```

**Example 최종 스냅샷 제외**  
대상 LinuxmacOS, 또는Unix:  

```
aws rds delete-db-cluster \
    --db-cluster-identifier mymultiazdbcluster \
    --skip-final-snapshot
```
Windows의 경우:  

```
aws rds delete-db-cluster ^
    --db-cluster-identifier mymultiazdbcluster ^
    --skip-final-snapshot
```

## RDS API
<a name="USER_DeleteMultiAZDBCluster.Deleting.API"></a>

Amazon RDS API를 사용하여 다중 AZ DB 클러스터를 삭제하려면 다음 파라미터와 함께 [DeleteDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeleteDBCluster.html) 작업을 호출합니다.
+ `DBClusterIdentifier`
+ `FinalDBSnapshotIdentifier` 또는 `SkipFinalSnapshot`

# Amazon RDS 다중 AZ DB 클러스터의 제한
<a name="multi-az-db-clusters-concepts.Limitations"></a>

다중 AZ DB 클러스터에는 라이터 DB 인스턴스와 두 개의 리더 DB 인스턴스가 세 개의 개별 가용 영역에 있습니다. 다중 AZ DB 클러스터는 다중 AZ 배포에 비해 고가용성, 높은 읽기 워크로드 용량 및 짧은 대기 시간을 제공합니다. 다중 AZ DB 클러스터에 대한 자세한 내용은 [Amazon RDS용 다중 AZ DB 클러스터 배포](multi-az-db-clusters-concepts.md) 섹션을 참조하세요.

다중 AZ DB 클러스터에는 다음과 같은 제한 사항이 적용됩니다.
+ 다중 AZ DB 클러스터는 다음 기능을 지원하지 않습니다.
  + IPv6 연결(듀얼 스택 모드)
  + 교차 리전 자동 백업
  + Kerberos 인증
  + 포트 수정 또는 다중 AZ DB 클러스터를 특정 시점으로 복원하고 다른 포트 지정 가능
  + 옵션 그룹 수
  + 삭제된 클러스터의 시점 복구(PITR)
  + 할당된 최대 스토리지를 설정하여 스토리지 자동 크기 조정 또는 수동으로 스토리지 크기 조정 가능
  + 다중 AZ DB 클러스터 중지 및 시작
  + 다중 AZ DB 클러스터의 스냅샷 복사
  + 암호화되지 않은 다중 AZ DB 클러스터 암호화
+ RDS for MySQL 다중 AZ DB 클러스터는 다음 시스템 저장 프로시저만 지원합니다.
  + `mysql.rds_rotate_general_log`
  + `mysql.rds_rotate_slow_log`
  + `mysql.rds_show_configuration`
  + `mysql.rds_set_external_master_with_auto_position`
  + `mysql.rds_set_configuration`
+ RDS for PostgreSQL 다중 AZ DB 클러스터는 `aws_s3` 및 `pg_transport`와 같은 확장을 지원하지 않습니다.
+ PostgreSQL 다중 AZ DB 클러스터용 RDS는 아웃바운드 네트워크 액세스에 사용자 지정 DNS 서버 사용을 지원하지 않습니다.