Which database migration solution will result in the LEAST amount of impact to the application’s availability?
Provision an Amazon RDS for Oracle instance. Host the RDS database within a virtual private cloud (VPC) subnet with internet access, and set up the RDS database as an encrypted Read Replica of the source database. Use SSL to encrypt the connection between the two databases. Monitor the replication performance by watching the RDS ReplicaLag metric. During the application maintenance window, shut down the on-premises database and switch over the application connection to the RDS instance when there is no more replication lag. Promote the Read Replica into a standalone database instance.
Provision an Amazon EC2 instance and install the same Oracle database software. Create a backup of the source database using the supported tools. During the application maintenance window, restore the backup into the Oracle database running in the EC2 instance. Set up an Amazon RDS for Oracle instance, and create an import job between the databases hosted in AWS. Shut down the source database and switch over the database connections to the RDS instance when the job is complete.
Use AWS DMS to load and replicate the dataset between the on-premises Oracle database and the replication instance hosted on AWS. Provision an Amazon RDS for Oracle instance with Transparent Data Encryption (TDE) enabled and configure it as a target for the replication instance. Create a customer-managed AWS KMS master key to set it as the encryption key for the replication instance. Use AWS DMS tasks to load the data into the target RDS instance. During the application maintenance window and after the load tasks reach the ongoing replication phase, switch the database connections to the new database.
Create a compressed full database backup of the on-premises Oracle database during an application maintenance window. While the backup is being performed, provision a 10 Gbps AWS Direct Connect connection to increase the transfer speed of the database backup files to Amazon S3, and shorten the maintenance window period. Use SSL/TLS to copy the files over the Direct Connect connection. When the backup files are successfully copied, start the maintenance window, and rise any of the Amazon RDS supported tools to import the data into a newly provisioned Amazon RDS for Oracle instance with encryption enabled. Wait until the data is fully loaded and switch over the database connections to the new database. Delete the Direct Connect connection to cut unnecessary charges.
Explanations:
This option involves creating a Read Replica of the on-premises database, which can be complex and potentially increase downtime if there are any issues with replication lag. Additionally, maintaining a direct connection to the on-premises database may not be the most efficient for data migration.
While using an EC2 instance may provide more control, it requires taking a full backup and restoring it, which can lead to significant downtime during the maintenance window. This method does not utilize AWS managed services effectively and could also involve more operational overhead.
AWS DMS allows for minimal downtime by enabling ongoing replication. It can efficiently handle BLOB data and allows the application to switch to the new RDS instance with little to no disruption once the data is fully loaded and in sync. This approach also leverages managed services effectively.
Although using Direct Connect for transferring data is a good approach to speed up the backup process, this method requires a longer maintenance window. The need to take a compressed backup and then import it into RDS can lead to significant downtime, and the entire process is not as streamlined as AWS DMS, which minimizes the impact on availability.