

# 액티브-액티브 클러스터의 제한 및 고려 사항
<a name="mysql-active-active-clusters-considerations-limitations"></a>

Amazon RDS의 액티브-액티브 클러스터는 여러 인스턴스에 워크로드를 분산하여 향상된 가용성과 확장성을 제공합니다. 그러나 이 아키텍처를 사용할 때 유의해야 할 중요한 제한 사항과 고려 사항이 있습니다.

다음 섹션에서는 복제 지연, 충돌 해결, 리소스 할당 및 장애 조치 동작과 같은 주요 요인을 간략하게 설명합니다. 이러한 고려 사항을 이해하면 액티브-액티브 클러스터 배포에서 최적의 성능과 안정성을 보장하는 데 도움이 될 수 있습니다.

**Topics**
+ [RDS for MySQL 액티브-액티브 클러스터의 제한 사항](#mysql-active-active-clusters-limitations)
+ [RDS for MySQL 액티브-액티브 클러스터에 대한 고려 사항 및 모범 사례](#mysql-active-active-clusters-considerations)

## RDS for MySQL 액티브-액티브 클러스터의 제한 사항
<a name="mysql-active-active-clusters-limitations"></a>

RDS for MySQL의 액티브-액티브 클러스터에 다음과 같은 제한 사항이 적용됩니다.
+ 액티브-액티브 클러스터의 DB 인스턴스에 대한 마스터 사용자 이름으로 `rdsgrprepladmin`을 지정할 수 없습니다. 이 사용자 이름은 그룹 복제 연결용으로 예약되어 있습니다.
+ 액티브-액티브 클러스터에 읽기 전용 복제본이 있는 DB 인스턴스의 경우, `Replicating` 이외의 연장된 복제 상태가 로그 파일이 저장 제한을 초과하게끔 만들 수 있습니다. 읽기 전용 복제본 상태에 대한 자세한 내용은 [읽기 전용 복제본 모니터링](USER_ReadRepl.Monitoring.md) 섹션을 참조하세요.
+ 액티브-액티브 클러스터의 DB 인스턴스에는 블루/그린 배포가 지원되지 않습니다. 자세한 내용은 [데이터베이스 업데이트에 Amazon RDS 블루/그린 배포 사용](blue-green-deployments.md) 섹션을 참조하세요.
+ 액티브-액티브 클러스터의 DB 인스턴스에는 Kerberos 인증이 지원되지 않습니다. 자세한 내용은 [Amazon RDS for MySQL에 Kerberos 인증 사용](mysql-kerberos.md) 섹션을 참조하세요.
+ 다중 AZ DB 클러스터의 DB 인스턴스는 액티브-액티브 클러스터에 추가할 수 없습니다. 그러나 다중 AZ DB 인스턴스 배포의 DB 인스턴스는 액티브-액티브 클러스터에 추가할 수 있습니다. 자세한 내용은 [Amazon RDS에 대한 다중 AZ 배포 구성 및 관리](Concepts.MultiAZ.md) 섹션을 참조하세요.
+ 그룹 복제 플러그인이 쓰기를 거부하기 때문에 프라이머리 키가 없는 표는 액티브-액티브 클러스터에 복제되지 않습니다.
+ InnoDB가 아닌 표는 액티브-액티브 클러스터에 복제되지 않습니다.
+ 액티브-액티브 클러스터는 클러스터의 여러 DB 인스턴스에 대한 동시 DML 및 DDL 문을 지원하지 않습니다.
+ 그룹의 복제 모드에 단일 기본 모드를 사용하도록 액티브-액티브 클러스터를 구성할 수 없습니다. 이 구성의 경우 다중 AZ DB 클러스터를 대신 사용하는 것이 좋습니다. 자세한 내용은 [Amazon RDS용 다중 AZ DB 클러스터 배포](multi-az-db-clusters-concepts.md) 섹션을 참조하세요.
+ 액티브-액티브 클러스터의 DB 인스턴스에는 다중 소스 복제가 지원되지 않습니다.
+ 리전 간 액티브-액티브 클러스터는 그룹 복제 연결에 인증 기관(CA) 검증을 적용할 수 없습니다.

## RDS for MySQL 액티브-액티브 클러스터에 대한 고려 사항 및 모범 사례
<a name="mysql-active-active-clusters-considerations"></a>

RDS for MySQL 액티브-액티브 클러스터를 사용하려면 먼저 다음 고려 사항 및 모범 사례를 검토하세요.
+ 액티브-액티브 클러스터의 DB 인스턴스는 9개를 초과할 수 없습니다.
+ 그룹 복제 플러그인을 사용하면 액티브-액티브 클러스터의 트랜잭션 일관성 보장을 제어할 수 있습니다. 자세한 내용은 MySQL 설명서의 [트랜잭션 일관성 보장](https://dev.mysql.com/doc/refman/8.0/en/group-replication-consistency-guarantees.html)을 참조하세요.
+ 액티브-액티브 클러스터에서 서로 다른 DB 인스턴스가 동일한 행을 업데이트하는 경우 충돌이 발생할 수 있습니다. 충돌 및 충돌 해결에 대한 자세한 내용은 MySQL 설명서의 [그룹 복제](https://dev.mysql.com/doc/refman/8.0/en/group-replication-summary.html)를 참조하세요.
+ 내결함성을 위해 액티브-액티브 클러스터에 DB 인스턴스를 3개 이상 포함합니다. 1\$12개의 DB 인스턴스만으로도 액티브-액티브 클러스터를 구성할 수는 있지만, 클러스터에 내결함성이 갖춰지지 않습니다. 내결함성에 대한 자세한 내용은 MySQL 설명서의 [내결함성](https://dev.mysql.com/doc/refman/8.0/en/group-replication-fault-tolerance.html)을 참조하세요.
+ DB 인스턴스가 기존 액티브-액티브 클러스터에 조인하고 클러스터에서 가장 낮은 엔진 버전과 동일한 엔진 버전을 실행하는 경우 DB 인스턴스는 읽기-쓰기 모드로 조인됩니다.
+ DB 인스턴스가 기존 액티브-액티브 클러스터에 조인하고 클러스터의 최하위 엔진 버전보다 높은 엔진 버전을 실행하는 경우 DB 인스턴스는 읽기 전용 모드를 유지해야 합니다.
+ DB 파라미터 그룹에서 `rds.group_replication_enabled` 파라미터를 `1`로 설정하여 DB 인스턴스의 그룹 복제를 활성화했지만, 복제가 시작되지 않았거나 시작에 실패한 경우 DB 인스턴스는 슈퍼 읽기 전용 모드로 전환되어 데이터 불일치를 방지합니다. 슈퍼 읽기 전용 모드에 대한 자세한 내용은 [MySQL 설명서](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_super_read_only)를 참조하세요.
+ 액티브-액티브 클러스터에서 DB 인스턴스를 업그레이드할 수 있지만, 액티브-액티브 클러스터의 다른 모든 DB 인스턴스가 동일한 엔진 버전 또는 상위 엔진 버전으로 업그레이드될 때까지 DB 인스턴스는 읽기 전용입니다. DB 인스턴스를 업그레이드한 경우 업그레이드가 완료되면 DB 인스턴스가 동일한 액티브-액티브 클러스터에 자동으로 조인합니다. 의도치 않게 DB 인스턴스가 읽기 전용 모드로 전환되는 것을 방지하려면 해당 인스턴스의 자동 마이너 버전 업그레이드를 비활성화하세요. MySQL DB 인스턴스 업그레이드에 대한 자세한 내용은 [RDS for MySQL DB 엔진 업그레이드](USER_UpgradeDBInstance.MySQL.md)를 참조하십시오.
+ 다중 AZ DB 인스턴스 배포의 DB 인스턴스를 기존 액티브-액티브 클러스터에 추가할 수 있습니다. 액티브-액티브 클러스터의 단일 AZ DB 인스턴스를 다중 AZ DB 인스턴스 배포로 변환할 수도 있습니다. 다중 AZ 배포의 기본 DB 인스턴스에 장애가 발생하면 기본 인스턴스가 대기 인스턴스로 장애 조치됩니다. 새 기본 DB 인스턴스는 장애 조치가 완료된 후 동일한 클러스터에 자동으로 조인합니다. 다중 AZ DB 인스턴스 배포에 대한 자세한 내용은 [Amazon RDS에 대한 다중 AZ 인스턴스 배포](Concepts.MultiAZSingleStandby.md) 섹션을 참조하세요.
+ 액티브-액티브 클러스터의 DB 인스턴스는 유지 관리 기간의 시간 범위를 다르게 설정하는 것이 좋습니다. 이렇게 하면 클러스터의 여러 DB 인스턴스가 유지 관리를 위해 동시에 오프라인 상태가 되는 것을 방지할 수 있습니다. 자세한 내용은 [Amazon RDS 유지 관리 기간](USER_UpgradeDBInstance.Maintenance.md#Concepts.DBMaintenance) 섹션을 참조하세요.
+ 액티브-액티브 클러스터는 DB 인스턴스 간 연결에 SSL을 사용할 수 있습니다. SSL 연결을 구성하려면[ group\$1replication\$1recovery\$1use\$1ssl](https://dev.mysql.com/doc/refman/8.0/en/group-replication-system-variables.html#sysvar_group_replication_recovery_use_ssl) 및[ group\$1replication\$1ssl\$1mode](https://dev.mysql.com/doc/refman/8.0/en/group-replication-system-variables.html#sysvar_group_replication_ssl_mode) 파라미터를 설정하세요. 이러한 파라미터의 값은 액티브-액티브 클러스터의 모든 DB 인스턴스에서 일치해야 합니다.

  현재 액티브-액티브 클러스터는 AWS 리전 간 연결에 대한 인증 기관(CA) 검증을 지원하지 않습니다. 따라서[ group\$1replication\$1ssl\$1mode](https://dev.mysql.com/doc/refman/8.0/en/group-replication-system-variables.html#sysvar_group_replication_ssl_mode) 파라미터를 `DISABLED`(기본값)로 설정하거나, 리전 간 클러스터의 경우 `REQUIRED`로 설정해야 합니다.
+ RDS for MySQL 액티브-액티브 클러스터는 다중 기본 모드에서 실행됩니다. [group\$1replication\$1enforce\$1update\$1everywhere\$1checks](https://dev.mysql.com/doc/refman/8.0/en/group-replication-system-variables.html#sysvar_group_replication_enforce_update_everywhere_checks)의 기본값은 `ON`이며, 파라미터는 정적입니다. 이 파라미터를 `ON`으로 설정하면 애플리케이션은 계단식 외래 키 제약 조건이 있는 표에 삽입할 수 없습니다.
+ RDS for MySQL 액티브-액티브 클러스터는 XCOM 대신 MySQL 통신 스택을 연결 보안에 사용합니다. 자세한 내용은 MySQL 설명서의 [연결 보안 관리를 위한 통신 스택](https://dev.mysql.com/doc/refman/8.0/en/group-replication-connection-security.html)을 참조하세요.
+ DB 파라미터 그룹을 액티브-액티브 클러스터의 DB 인스턴스와 연결할 때는 이 DB 파라미터 그룹을 클러스터에 있는 다른 DB 인스턴스에만 연결하는 것이 좋습니다.
+ 액티브-액티브 클러스터는 RDS for MySQL DB 인스턴스만 지원합니다. 이러한 DB 인스턴스는 지원되는 버전의 DB 엔진을 실행해야 합니다.
+ 액티브-액티브 클러스터의 DB 인스턴스에 예상치 못한 장애가 발생하면 RDS는 자동으로 DB 인스턴스 복구를 시작합니다. DB 인스턴스가 복구되지 않는 경우 클러스터의 정상 DB 인스턴스를 통해 특정 시점으로 복구를 수행하여 새 DB 인스턴스로 교체하는 것이 좋습니다. 지침은 [특정 시점으로 복구를 사용하여 액티브-액티브 클러스터에 DB 인스턴스 추가](mysql-active-active-clusters-adding.md#mysql-active-active-clusters-adding-pitr) 섹션을 참조하세요.
+ 클러스터의 다른 DB 인스턴스에 영향을 주지 않고 액티브-액티브 클러스터의 DB 인스턴스를 삭제할 수 있습니다. DB 인스턴스 삭제에 대한 자세한 내용은 [DB 인스턴스 삭제](USER_DeleteInstance.md) 단원을 참조하세요.
+ DB 인스턴스가 의도치 않게 활성-활성 클러스터를 벗어나면 `group_replication_exit_state_action` 파라미터가 기본적으로 `OFFLINE_MODE`로 변경됩니다. 이 상태에서는 DB 인스턴스에 액세스할 수 없으며 DB 인스턴스를 재부팅하여 다시 온라인 상태로 전환하고 클러스터에 다시 조인해야 합니다. 사용자 지정 파라미터 그룹에서 `group_replication_exit_state_action` 파라미터를 수정하여 이 동작을 변경할 수 있습니다. 파라미터를 `READ_ONLY`로 설정하면 DB 인스턴스가 의도하지 않게 클러스터를 떠날 때 오프라인 상태가 아닌 슈퍼 읽기 전용 상태가 됩니다.