It's important to note down the Virtual Private Network (VPC) information for both source and target database. In the example, we have
- MySQL RDS database in vpc-9da2f3f5
DB Instance: mysql-rep-test
DB Name: GGMYSQL
Security Group: rds-launch-wizard (sg-7299fa16)
- Aurora RDS database in vpc-9da2f3f5
Version: Aurora 5.6.10a
DB Instance: pmaurora (pmaurora-us-west-2b)
Cluster End Point: jinyu-aurora.cluster-copyxiqzdjjl.us-west-2.rds.amazonaws.com:3306
Security Group: rds-launch-wizard-5 (sg-ea7ab891)
For MySQL RDS database, you need to create a customized parameter group, enable binary logging, change the binary log format to ROW format, and let the the binlog_checksum=NONE. You might need to reboot the MySQL instance after the parameter change.
After having the source and target databases ready, You can start the migration by clicking on the Create Migration button on the home screen of the AWS DMS service. You will then see a Welcome page explaining What the AWS DMS is. Click on the Next button after you understand the service.
When setting up the replication instance, you need to specify its VPC and other options. Note that if you like the replication instance to migrate data outside of the VPC, you have to make it Publicly accessible. After you click on the Next button, the replication instance is then being created.
While the replication instance is being created, you can create the source and target database endpoints. You can test for each endpoint. To enable success test, you need to modify the MySQL and Aurora RDS database security group to accept the connections from all IPs. (0.0.0.0/0). After the replication instance is created, you can whitelist the replication instance with its IP address. Next, you can create the migration task.
- Amazon Documentation -Using a MySQL-Compatible Database as a Source for AWS Database Migration Service
- Amazon Documentation - Accessing MySQL Binlog
- Amazon Documentation - Getting Started (with DMS)