기존 DB 인스턴스를 액티브-액티브 클러스터로 변환
액티브-액티브 클러스터로 마이그레이션하려는 RDS for MySQL DB 인스턴스의 DB 엔진 버전은 MySQL 8.0.35 이상이어야 합니다. 엔진 버전을 업그레이드해야 하는 경우 RDS for MySQL DB 엔진 업그레이드 섹션을 참조하세요.
2개 이상의 VPC에 DB 인스턴스가 있는 액티브-액티브 클러스터를 설정하는 경우 교차 VPC 액티브-액티브 클러스터 준비에 나와 있는 사전 조건을 완료해야 합니다.
다음 단계를 완료하여 기존 DB 인스턴스를 RDS for MySQL용 액티브-액티브 클러스터로 마이그레이션하세요.
주제
1단계: 하나 이상의 사용자 지정 파라미터 그룹에서 액티브-액티브 클러스터 파라미터 설정
액티브-액티브 클러스터의 RDS for MySQL DB 인스턴스는 필수 파라미터가 올바르게 설정된 사용자 지정 파라미터 그룹과 연결되어야 합니다. 파라미터 및 각 파라미터에 대한 필수 설정에 대한 정보는 액티브-액티브 클러스터의 필수 파라미터 설정 섹션을 참조하세요.
새 파라미터 그룹이나 기존 파라미터 그룹에서 이러한 파라미터를 설정할 수 있습니다. 하지만 액티브-액티브 클러스터에 속하지 않은 DB 인스턴스에 실수로 영향을 주지 않으려면 새 사용자 지정 파라미터 그룹을 생성하는 것이 좋습니다. 액티브-액티브 클러스터의 DB 인스턴스를 동일한 DB 파라미터 그룹이나 다른 DB 파라미터 그룹과 연결할 수 있습니다.
AWS Management Console 또는 AWS CLI로 사용자 지정 파라미터 그룹을 새로 생성할 수 있습니다. 자세한 내용은 Amazon RDS에서 DB 파라미터 그룹 생성 단원을 참조하십시오. 다음은 create-db-parameter-group AWS CLI 명령을 실행하여
로 이름이 지정된 사용자 지정 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 명령을 실행하여 파라미터를 설정합니다.
대상 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단계: 필수 그룹 복제 파라미터가 설정된 DB 파라미터 그룹과 DB 인스턴스 연결
DB 인스턴스를 이전 단계에서 만들거나 수정한 파라미터 그룹과 연결합니다. 지침은 Amazon RDS의 DB 인스턴스에 DB 파라미터 그룹 연결 단원을 참조하십시오.
새 파라미터 설정을 적용하려면 DB 인스턴스를 재부팅하세요. 지침은 DB 인스턴스 재부팅 단원을 참조하십시오.
3단계: 액티브-액티브 클러스터 생성
DB 인스턴스와 연결된 DB 파라미터 그룹에서 group_replication_group_seeds
파라미터를 변환할 DB 인스턴스의 엔드포인트로 설정합니다.
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
',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
',ApplyMethod=immediate"
4단계: 액티브-액티브 클러스터를 위한 추가 RDS for MySQL DB 인스턴스 생성
액티브-액티브 클러스터용 추가 DB 인스턴스를 만들려면 변환하려는 DB 인스턴스에서 특정 시점으로 복구를 수행합니다. 지침은 특정 시점으로 복구를 사용하여 액티브-액티브 클러스터에 DB 인스턴스 추가 단원을 참조하십시오.
액티브-액티브 클러스터에는 최대 9개의 DB 인스턴스가 있을 수 있습니다. 클러스터에 사용할 DB 인스턴스 수를 원하는 수준으로 갖출 때까지 DB 인스턴스에서 특정 시점으로 복구를 수행합니다. 특정 시점으로 복구를 수행할 때 추가할 DB 인스턴스를 rds.group_replication_enabled
가 1
로 설정된 DB 파라미터 그룹과 연결해야 합니다. 그렇지 않으면 새로 추가된 DB 인스턴스에서 그룹 복제가 시작되지 않습니다.
5단계: 변환하려는 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
을 지정합니다.예제에서 호출한 저장 프로시저에 대한 자세한 내용은 활성-활성 클러스터 섹션을 참조하세요.
6단계: 액티브-액티브 클러스터의 다른 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 인스턴스에서 이러한 저장 프로시저를 실행해야 합니다.
7단계: (권장) 액티브-액티브 클러스터의 상태 확인
클러스터의 각 멤버가 올바르게 구성되었는지 확인하려면 액티브-액티브 클러스터의 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 설명서의 그룹 복제 서버 상태