Skip to main content

Guidance for Oracle Migrations to Amazon Aurora PostgreSQL Using AWS DMS

Easily migrate large data workloads using AWS migration features

Overview

This Guidance demonstrates best practices for migrating large Oracle databases to Amazon Aurora PostgreSQL, helping you to modernize your data infrastructure cost-effectively. It uses AWS Database Migration Service (AWS DMS) to streamline the migration process, reducing operational overhead and minimizing downtime. With this Guidance, you can optimize costs, enhance scalability, and set yourself up for long-term growth and adaptability while benefiting from AWS robust security and compliance capabilities.

How it works

These technical details feature an architecture diagram to illustrate how to effectively use this solution. The architecture diagram shows the key components and their interactions, providing an overview of the architecture's structure and functionality step-by-step.

Deploy with confidence

Ready to deploy? Review the sample code on GitHub for detailed deployment instructions to deploy as-is or customize to fit your needs. 

Go to sample code

Well-Architected Pillars

The architecture diagram above is an example of a Solution created with Well-Architected best practices in mind. To be fully Well-Architected, you should follow as many Well-Architected best practices as possible.

CloudFormation provisions the AWS resources needed for migration, simplifying the provisioning and operations management. Aurora emits performance and utilization metrics to Amazon CloudWatch. AWS DMS provides metrics for monitoring the migration tasks, including performance statistics for tasks, source and target databases, and the replication instance. These tools help you to proactively monitor and optimize the migration tasks.

Read the Operational Excellence whitepaper 

Amazon Virtual Private Cloud (Amazon VPC), Amazon EC2 security groups, AWS Identity and Access Management (IAM), and AWS Key Management Service (AWS KMS) work collectively to enhance security in this Guidance. Using security groups and IAM policies, access is granted to services based on the principle of least privilege. For example, only the required ports are allowed for AWS DMS replication between source (Oracle) and target (Aurora PostgreSQL) instances. Secrets Manager stores and retrieves the database credentials programmatically, avoiding any hard coding of passwords.

Read the Security whitepaper 

Amazon RDS Oracle, Aurora PostgreSQL, and AWS DMS support multi-Availability Zone (AZ) configuration for high availability and automatic failover, minimizing the interruptions due to AZ failures. AWS DMS tasks are configured to use the Amazon RDS and Aurora cluster endpoints for seamless failover support in case of any issues with the primary database instance. Aurora keeps a copy of the data across three AZs in a Region, providing high durability. Both Amazon RDS and Aurora support databases backups through manual and automatic snapshots for protection against accidental deletions and logical corruptions.

Read the Reliability whitepaper 

This Guidance provides best practices for sizing the AWS DMS replication instances based on the source database transactional load, data size, and number of database objects. The AWS DMS task configurations are optimized to achieve maximum throughput for both full load and CDC migrations. This includes number of tasks, tasks per replication instance, threads, parallelism, and transformation rules. Aurora supports Graviton3-based R7g instances with 50 percent more memory bandwidth than previous generations, enabling high-speed access to data in memory.

Read the Performance Efficiency whitepaper 

Amazon RDS and Aurora database instances can be scaled up and down to meet migration goals. The Aurora Standard configuration delivers cost-effective pricing for applications with moderate I/O usage, while the Aurora I/O-Optimized configuration provides enhanced pricing for I/O-intensive workloads, supporting optimal performance without overspending. Amazon RDS Oracle supports a range of instance types to match the performance and cost needs.

Read the Cost Optimization whitepaper 

Aurora PostgreSQL, AWS DMS, and Amazon EC2 can easily scale up or down to match load for sustainable utilization of resources. Furthermore, by supporting the use of energy-efficient processor instance types, like AWS Graviton processors, this Guidance provides increased sustainability. Using AWS Graviton in Amazon EC2 and Aurora can improve the performance of workloads with fewer resources, decreasing your overall resource footprint.

Read the Sustainability whitepaper 

Disclaimer

The sample code; software libraries; command line tools; proofs of concept; templates; or other related technology (including any of the foregoing that are provided by our personnel) is provided to you as AWS Content under the AWS Customer Agreement, or the relevant written agreement between you and AWS (whichever applies). You should not use this AWS Content in your production accounts, or on production or other critical data. You are responsible for testing, securing, and optimizing the AWS Content, such as sample code, as appropriate for production grade use based on your specific quality control practices and standards. Deploying AWS Content may incur AWS charges for creating or using AWS chargeable resources, such as running Amazon EC2 instances or using Amazon S3 storage.