RDS MariaDB에서 Aurora Mysql로 Migration하는 방법
AWS RDS에서 Mysql을 사용하는 경우 스냅샷 복원 등 간편한 방법으로 Aurora로 마이그레이션할 수 있지만 MariaDB에서는 해당 방법들이 지원되지 않음
그렇기 때문에 단절을 최소화하고 가장 안전하게 데이터를 이전하기 위해서는 MariaDB의 데이터를 mysqldump 유틸리티를 이용해서 덤프를 생성하고 Aurora에 덤프 데이터를 이전한 후에 두 DB를 replication 설정하여 데이터를 동기화하는 방법이 최선임
AWS DMS를 이용한 방법도 있지만 DMS는 데이터를 마이그레이션하는데 필요한 데이터베이스 개체 만을 만들고 이러한 개체에는 테이블과 기본 키가 포함되어있음
즉, 기본적인 데이터만 마이그레이션되어지는 것이고 전체 스키마를 마이그레이션하려면 먼저 대상에서 views, foreign key constraints, stored procedures , triggers 등과 같은 다른 데이터베이스 개체를 미리 만들고 DMS를 사용하여 데이터를 마이그레이션해야 함
그렇기 때문에 auto_increment 속성과 같은 설정들을 유지하기 위해서는 기본 유틸리티인 mysqldump를 이용한 데이터 이전이 최선의 방법임
# mysqldump -u [DBUSER] -p -h [DBENDPOINT] [DBNAME] > mariadbdump.sql
# mysq -u [DBUSER] -p -h [DBENDPOINT] [DBNAME] < mariadbdump.sql
<마스터 설정(MariaDB)>
MariaDB> CALL mysql.rds_set_configuration('binlog retention hours', 24);
2. replication용 사용자 생성
MariaDB> CREATE USER '[USER]'@'%' IDENTIFIED BY '[PASSWORD]';
3. 생성한 사용자에게 외부접근을 허용하는 권한 부여
MariaDB> GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO '[USER]'@'%' IDENTIFIED BY '[PASSWORD]';
사용자가 정상적으로 생성 되었음을 확인
MariaDB의 마스터 정보를 확인하고 기록해둠
MariaDB> show master status\G
<슬레이브 설정(Aurora)>
mysql> CALL mysql.rds_stop_replication;
mysql> CALL mysql.rds_set_external_master(
-> '[DBENDPOINT]',
-> 3306,
-> [USER],
-> [PW],
-> [bin_log],
-> [Position],
-> 0);
mysql> CALL mysql.rds_start_replication;
mysql> show slave status\G