새 DB 인스턴스로 액티브-액티브 클러스터 설정
새 Amazon RDS for MySQL DB 인스턴스를 사용하여 액티브-액티브 클러스터를 설정하려면 다음 단계를 완료하세요.
2개 이상의 VPC에 DB 인스턴스가 있는 액티브-액티브 클러스터를 설정하는 경우 교차 VPC 액티브-액티브 클러스터 준비에 나와 있는 사전 조건을 완료해야 합니다.
주제
1단계: 하나 이상의 사용자 지정 파라미터 그룹에서 액티브-액티브 클러스터 파라미터 설정
액티브-액티브 클러스터의 RDS for MySQL DB 인스턴스는 필수 파라미터가 올바르게 설정된 사용자 지정 파라미터 그룹과 연결되어야 합니다. 파라미터 및 각 파라미터에 대한 필수 설정에 대한 정보는 액티브-액티브 클러스터의 필수 파라미터 설정 섹션을 참조하세요.
새 파라미터 그룹이나 기존 파라미터 그룹에서 이러한 파라미터를 설정할 수 있습니다. 하지만 액티브-액티브 클러스터에 속하지 않은 DB 인스턴스에 실수로 영향을 주지 않으려면 새 사용자 지정 파라미터 그룹을 생성하는 것이 좋습니다. 액티브-액티브 클러스터의 DB 인스턴스를 동일한 DB 파라미터 그룹이나 다른 DB 파라미터 그룹과 연결할 수 있습니다.
AWS Management Console 또는 AWS CLI로 사용자 지정 파라미터 그룹을 새로 생성할 수 있습니다. 자세한 내용은 Amazon RDS에서 DB 파라미터 그룹 생성 단원을 참조하십시오. 다음은 create-db-parameter-group AWS CLI 명령을 실행하여 RDS for MySQL 8.0에 대해 이름이
인 사용자 지정 DB 파라미터 그룹을 만드는 예시입니다.myactivepg
대상 LinuxmacOS, 또는Unix:
aws rds create-db-parameter-group \ --db-parameter-group-name
myactivepg
\ --db-parameter-group-family mysql8.0 \ --description "Parameter group for active-active clusters
"
Windows의 경우:
aws rds create-db-parameter-group ^ --db-parameter-group-name
myactivepg
^ --db-parameter-group-family mysql8.0 ^ --description "Parameter group for active-active clusters
"
AWS Management Console 또는 AWS CLI로 사용자 지정 파라미터 그룹에서 파라미터를 설정할 수도 있습니다. 자세한 내용은 Amazon RDS에서 DB 파라미터 그룹의 파라미터 수정 단원을 참조하십시오.
다음 예시에서는 modify-db-parameter-group AWS CLI 명령을 실행하여 RDS for MySQL 8.0에 대해 파라미터를 설정합니다. 이 예시를 RDS for MySQL 8.4와 함께 사용하려면 slave_preserve_commit_order
를 replica_preserve_commit_order
로 변경합니다.
대상 LinuxmacOS, 또는Unix:
aws rds modify-db-parameter-group \ --db-parameter-group-name
myactivepg
\ --parameters "ParameterName='rds.group_replication_enabled',ParameterValue='1',ApplyMethod=pending-reboot" \ "ParameterName='rds.custom_dns_resolution',ParameterValue='1',ApplyMethod=pending-reboot" \ "ParameterName='enforce_gtid_consistency',ParameterValue='ON',ApplyMethod=pending-reboot" \ "ParameterName='gtid-mode',ParameterValue='ON',ApplyMethod=pending-reboot" \ "ParameterName='binlog_format',ParameterValue='ROW',ApplyMethod=immediate" \ "ParameterName='slave_preserve_commit_order',ParameterValue='ON',ApplyMethod=immediate" \ "ParameterName='group_replication_group_name',ParameterValue='11111111-2222-3333-4444-555555555555
',ApplyMethod=pending-reboot"
Windows의 경우:
aws rds modify-db-parameter-group ^ --db-parameter-group-name myactivepg ^ --parameters "ParameterName='rds.group_replication_enabled',ParameterValue='1',ApplyMethod=pending-reboot" ^ "ParameterName='rds.custom_dns_resolution',ParameterValue='1',ApplyMethod=pending-reboot" ^ "ParameterName='enforce_gtid_consistency',ParameterValue='ON',ApplyMethod=pending-reboot" ^ "ParameterName='gtid-mode',ParameterValue='ON',ApplyMethod=pending-reboot" ^ "ParameterName='binlog_format',ParameterValue='ROW',ApplyMethod=immediate" ^ "ParameterName='slave_preserve_commit_order',ParameterValue='ON',ApplyMethod=immediate" ^ "ParameterName='group_replication_group_name',ParameterValue='
11111111-2222-3333-4444-555555555555
',ApplyMethod=pending-reboot"
2단계: 액티브-액티브 클러스터를 위한 새 RDS for MySQL DB 인스턴스 생성
활성-활성 클러스터는 다음 버전의 RDS for MySQL DB 인스턴스에서 지원됩니다.
-
모든 MySQL 8.4 버전
-
MySQL 버전 8.0.35 이상 마이너 버전
클러스터에 대해 새 DB 인스턴스를 9개까지 생성할 수 있습니다.
AWS Management Console 또는 AWS CLI를 사용하여 새 DB 인스턴스를 생성할 수 있습니다. DB 인스턴스를 생성하는 방법에 대한 자세한 내용은 Amazon RDS DB 인스턴스 생성 섹션을 참조하세요. DB 인스턴스를 만들 때 이전 단계에서 만들거나 수정한 DB 파라미터 그룹과 연결합니다.
3단계: 액티브-액티브 클러스터의 DB 인스턴스 지정
각 DB 인스턴스와 연결된 DB 파라미터 그룹에서 클러스터에 포함하려는 DB 인스턴스의 엔드포인트로 group_replication_group_seeds
파라미터를 설정합니다.
AWS Management Console 또는 AWS CLI를 사용하여 파라미터를 설정할 수 있습니다. 이 파라미터를 설정한 후 DB 인스턴스를 재부팅할 필요가 없습니다. 파라미터 설정에 대한 자세한 내용은 Amazon RDS에서 DB 파라미터 그룹의 파라미터 수정 섹션을 참조하세요.
다음 예제에서는 modify-db-parameter-group AWS CLI 명령을 실행하여 파라미터를 설정합니다.
대상 LinuxmacOS, 또는Unix:
aws rds modify-db-parameter-group \ --db-parameter-group-name
myactivepg
\ --parameters "ParameterName='group_replication_group_seeds',ParameterValue='myactivedb1.123456789012.us-east-1.rds.amazonaws.com:3306,myactivedb2.123456789012.us-east-1.rds.amazonaws.com:3306,myactivedb3.123456789012.us-east-1.rds.amazonaws.com:3306
',ApplyMethod=immediate"
Windows의 경우:
aws rds modify-db-parameter-group ^ --db-parameter-group-name
myactivepg
^ --parameters "ParameterName='group_replication_group_seeds',ParameterValue='myactivedb1.123456789012.us-east-1.rds.amazonaws.com:3306,myactivedb2.123456789012.us-east-1.rds.amazonaws.com:3306,myactivedb3.123456789012.us-east-1.rds.amazonaws.com:3306
',ApplyMethod=immediate"
작은 정보
액티브-액티브 클러스터의 DB 인스턴스와 연결된 각 DB 파라미터 그룹에서 group_replication_group_seeds
파라미터를 설정해야 합니다.
4단계: DB 인스턴스에서 그룹 초기화 및 복제 시작
새 DB를 선택하여 그룹을 초기화하고 복제를 시작할 수 있습니다. 이렇게 하려면 다음 단계를 완료합니다.
-
액티브-액티브 클러스터에서 DB 인스턴스를 선택하고 SQL 클라이언트에서 해당 DB 인스턴스에 연결합니다. RDS for MySQL DB 인스턴스 연결에 대한 자세한 내용은 MySQL DB 인스턴스에 연결 섹션을 참조하세요.
-
SQL 클라이언트에서 다음 저장 프로시저를 실행하고
group_replication_user_password
를rdsgrprepladmin
사용자의 암호로 대체합니다.rdsgrprepladmin
사용자는 액티브-액티브 클러스터의 그룹 복제 연결에만 사용할 수 있습니다. 이 사용자의 암호는 액티브-액티브 클러스터의 모든 DB 인스턴스에서 동일해야 합니다.call mysql.rds_set_configuration('binlog retention hours',
168
); -- 7 days binlog call mysql.rds_group_replication_create_user('group_replication_user_password
'); call mysql.rds_group_replication_set_recovery_channel('group_replication_user_password
'); call mysql.rds_group_replication_start(1);이 예제에서는
binlog retention hours
값을168
로 설정합니다. 즉, 이진 로그 파일은 DB 인스턴스에 7일 동안 유지됩니다. 값은 사용자의 요구 사항에 맞게 조정할 수 있습니다.이 예제는
mysql.rds_group_replication_start
저장 프로시저에서 현재 DB 인스턴스로 새 그룹을 초기화하도록1
을 지정합니다.예제에서 호출한 저장 프로시저에 대한 자세한 내용은 활성-활성 클러스터 섹션을 참조하세요.
5단계: 액티브-액티브 클러스터의 다른 DB 인스턴스에서 복제 시작
액티브-액티브 클러스터의 각 DB 인스턴스에 대해 SQL 클라이언트를 사용하여 인스턴스에 연결하고 다음 저장 프로시저를 실행합니다. group_replication_user_password
를 rdsgrprepladmin
사용자의 암호로 대체합니다.
call mysql.rds_set_configuration('binlog retention hours',
168
); -- 7 days binlog call mysql.rds_group_replication_create_user('group_replication_user_password
'); call mysql.rds_group_replication_set_recovery_channel('group_replication_user_password
'); call mysql.rds_group_replication_start(0);
이 예제에서는 binlog retention hours
값을 168
로 설정합니다. 즉, 이진 로그 파일은 각 DB 인스턴스에 7일 동안 유지됩니다. 값은 사용자의 요구 사항에 맞게 조정할 수 있습니다.
이 예제는 mysql.rds_group_replication_start
저장 프로시저에서 현재 DB 인스턴스를 기존 그룹에 조인하도록 0
을 지정합니다.
작은 정보
액티브-액티브 클러스터의 다른 모든 DB 인스턴스에서 이러한 저장 프로시저를 실행해야 합니다.
6단계: (권장) 액티브-액티브 클러스터의 상태 확인
클러스터의 각 멤버가 올바르게 구성되었는지 확인하려면 액티브-액티브 클러스터의 DB 인스턴스에 연결하고 다음 SQL 명령을 실행하여 클러스터의 상태를 확인합니다.
SELECT * FROM performance_schema.replication_group_members;
출력은 다음 샘플 출력과 같이 각 DB 인스턴스의 MEMBER_STATE
에 대해 ONLINE
으로 표시되어야 합니다.
+---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+
| CHANNEL_NAME | MEMBER_ID | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE | MEMBER_ROLE | MEMBER_VERSION | MEMBER_COMMUNICATION_STACK |
+---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+
| group_replication_applier | 9854d4a2-5d7f-11ee-b8ec-0ec88c43c251 | ip-10-15-3-137 | 3306 | ONLINE | PRIMARY | 8.0.35 | MySQL |
| group_replication_applier | 9e2e9c28-5d7f-11ee-8039-0e5d58f05fef | ip-10-15-3-225 | 3306 | ONLINE | PRIMARY | 8.0.35 | MySQL |
| group_replication_applier | a6ba332d-5d7f-11ee-a025-0a5c6971197d | ip-10-15-1-83 | 3306 | ONLINE | PRIMARY | 8.0.35 | MySQL |
+---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+
3 rows in set (0.00 sec)
가능한 MEMBER_STATE
값에 대한 자세한 내용은 MySQL 설명서의 그룹 복제 서버 상태
7단계: (선택 사항) 액티브-액티브 클러스터의 DB 인스턴스로 데이터 가져오기
MySQL 데이터베이스의 데이터를 액티브-액티브 클러스터의 DB 인스턴스로 가져올 수 있습니다. 데이터를 가져온 후 그룹 복제는 데이터를 클러스터의 다른 DB 인스턴스로 복제합니다.
데이터 가져오기에 대한 자세한 내용은 가동 중지 시간을 줄이면서 Amazon RDS for MySQL 데이터베이스로 데이터 가져오기 섹션을 참조하세요.