MemberApril 13, 2023 at 7:38 pm
Hi, I am just doing practice exams. One of the questions is as follows:
An online registration system hosted in an Amazon EKS cluster stores data to a
db.t4g.mediumAmazon Aurora DB cluster. The database performs well during regular hours but is unable to handle the traffic surge that occurs during flash sales. A solutions architect must move the database to Aurora Serverless while minimizing downtime and the impact on the operation of the application.
Which change should be taken to meet the objective?
AWS Database Migration Service helps you migrate your databases to AWS with virtually no downtime. All data changes to the source database that occur during the migration are continuously replicated to the target, allowing the source database to be fully operational during the migration process.
You can set up a DMS task for either one-time migration or ongoing replication. An ongoing replication task keeps your source and target databases in sync. Once set up, the ongoing replication task will continuously apply source changes to the target with minimal latency.
Hence, the correct answer is: Use AWS Database Migration Service (AWS DMS) to migrate data from the existing DB cluster to a new Aurora Serverless database.
The option that says: Change the Aurora Instance class to Serverless is incorrect. Changing the instance class from Provisioned to Serverless is not possible.
The option that says: Take a snapshot of the DB cluster. Use the snapshot to create a new Aurora DB cluster is incorrect. This one involves a long period of downtime since you have to stop the application until the new cluster is created.
The option that says: Add an Aurora Replica to the cluster and set its instance class to Serverless. Failover to the read replica and promote it to primary is incorrect. While this method is valid, the database becomes unavailable for writing for a short period of time during failover.
Check out these AWS DMS and Amazon Aurora Cheat Sheets:
I would argue that:
The option that says: <strong style=”font-family: inherit; font-size: inherit;”>Take a snapshot of the DB cluster. Use the snapshot to create a new Aurora DB cluster is CORRECT.
IMO Snapshot is the better way than DMS. You don’t have to turn off DB while setting up a new one, just give APP a new endpoint (which you have to do with DMS as well). And overhead of doing DMS is also a pain (and cost).
https://aws.amazon.com/rds/aurora/faqs/ has no reference for DMS (but refers to snapshot for migration)
Also here snapshots are recommended:
(btw I tried to put a snippet of the question but ‘Attach photo’ is grayed out when using ‘edit’ on the post.)
After another thought, I can understand that snapshot approach has limitations due to the fact, that after a snapshot creation all traffic to DB should be stopped until a new DB is created from a snapshot.
Question however asks for ‘minimizing downtime and the impact on the operation of the application’. So snapshot option would minimize the downtime, but DMS with Full Load and CDC would do that even better.
AdministratorApril 17, 2023 at 11:26 pm
Thanks for sharing your thoughts.
As you said, between option A and option C, using AWS Database Migration Service (AWS DMS) to migrate to a new Aurora Serverless database (option A) would likely result in the minimum amount of downtime and impact on the application. However, it’s important to note that there may still be a short interruption in service when you switch over to the new database.
Carlo @ Tutorials Dojo
Log in to reply.