A company is planning on migrating a mySQL database to AWS. Increased client applications have caused poor database performance.The DB is at 20TB and is expected to increase 4TB per year. The database must be available during the migration process. It should also be implemented quickly, cost effective with minimal intervention and offers high performance in the future.
1) Use MySQL running on EC2 instance optimized for storage and high I/O
2)Use Aurora Multi AZ
3) Use RDS MySQL Multi AZ
4) Use DMS to migrate data
5)Use mysqldump utility to migrate data
I feel that the answer is (2) and (4).
But is (3) and (5) correct? If they are wrong, why so?
The size of on-premise DB is 20 TB, and it’s still expecting to grow each year. The max size of RDS is 16 TB. The max size of Aurora DB is 64 TB, so 3 is not a valid option. AWS recommended that if you’re migrating a source data source to target data source running on the same platform, you can use the database native tool to export and import target schema. If you’re migrating a source data source to a target data source running on different platforms, you can use the SCT to generate the target schema.
Also, use DMS ongoing replication to meet the ‘database must be available during the migration process’ requirement. With that, you can start the replication and migrate connections when the replication is complete. The original database stays operational during the process.
Using a tool like mysqldump will require that you stop the database, extract the data, and import the data to the new database. This can involve hours of downtime.