Should I use Amazon Aurora or RDS?
If we are looking for a native HA solution, then we should use Aurora.
For a read-intensive workload within an HA environment, Aurora is a perfect match.
Combined with ProxySQL for RDS, we can get high flexibility.
Aurora performance is great but is not as much as expected for write-intensive workloads when secondary indexes exist. In any case, we should benchmark both RDS MySQL and Aurora before taking the decision to migrate. Performance depends much on workload and schema design.
By choosing Amazon Aurora, we are fully dependent on Amazon for bug fixes or upgrades.
If we need to use MySQL plugins, we should use RDS MySQL.
Aurora only supports InnoDB. If you need other engines, i.e., MyISAM, RDS MySQL is the only option.
With RDS MySQL, we can use specific MySQL releases.
Aurora is not included in the AWS free tier and costs a bit more than RDS MySQL.
If we only need a managed solution to deploy services in a less expensive way and out-of-the-box availability is not your main concern, RDS MySQL is what we need.
If, for any reason, Performance Schema must be ON, we should not enable this on Amazon Aurora MySQL T2 instances. With the Performance Schema enabled, the T2 instance may run out of memory.
For the both products, we should carefully examine the known issues and limitations listed on the original documentation.
Subscribe to my newsletter
Read articles from Dixon Gunasekara directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
Dixon Gunasekara
Dixon Gunasekara
An enthusiastic and dedicated Associate Tech Lead in Software Engineering with over 9 years of experience in enterprise software development. I hold a BSc degree in Computer Science and am an AWS Certified Solutions Architect - Associate (2024). I possess comprehensive expertise in designing, developing, testing, and deploying web-based applications on cloud platforms. A strong team player, I am committed to fostering engineering excellence within an organization. Professional Overview Over 9 years of experience in enterprise software development, covering the entire software lifecycle. Proficient in requirement gathering, architectural design, technology selection, software development, code reviews, test strategy definition, writing unit and integration tests, CI/CD pipeline deployments, and troubleshooting/maintenance. In-depth knowledge of OOP concepts, ORM, RESTful services, MVC patterns, cloud platforms, and industry best practices. Experienced in architecting and designing highly secure and resilient web applications using AWS cloud services. Certified AWS Solutions Architect - Associate (2024). Skilled in Agile methodologies for requirement gathering, planning, estimation, development, testing, and maintenance. Held roles such as Lead Developer, Team Lead, Code Reviewer, Mentor, and Scrum Master across multiple teams. Proficient in direct client communication and management with US-based clients. Technical Expertise Programming Languages & Frameworks: Node.js, JavaScript Frontend Technologies: Angular, CSS, HTML Architectural Patterns: Serverless, MVC Databases: MongoDB, DynamoDB, MySQL, SQL Server, Redis Cloud & DevOps: AWS, Docker, Jenkins Messaging & Servers: RabbitMQ, Nginx, Linux