This article is more than 1 year old
Amazon takes RDS performance, scalability and durability to the next level
AWS continues to innovate upon Multi-AZ deployments
Sponsored Feature Open source databases, like MySQL, PostgreSQL or MariaDB, are popular with enterprises due to various benefits they offer compared to proprietary alternatives. Benefits include freedom from traditional licensing models, high flexibility and access to a large ecosystem of community tools and improvements. These technologies are now implemented for a range of use cases, from popular mobile apps to leading ecommerce platforms.
Databases are well known to be difficult and time-consuming to manage. As a result, many enterprises have opted to move their database workloads to the cloud, under a paid as-a-service model that offers a good mix of simplicity, performance, scalability and availability.
AWS found that there was demand for a capability that improved the availability and durability of managed databases. It has now been 12 years since AWS launched a feature that allows customers to create two-node Multi-Availability Zone (Multi-AZ) deployments for Amazon Relational Database Service (Amazon RDS). AWS recently announced the latest release of Amazon RDS Multi-AZ, which supports workloads that demand faster transaction commit latency, faster automatic failovers and additional read capacity.
This new Amazon RDS Multi-AZ deployment option allows customers to create one primary database instance and two readable standbys instances that are deployed across three AZs. With this feature, customers can benefit from automatic failovers that typically take under 35 seconds, split reads and writes, 2x faster transaction commit latency, and access to readable standby instances for increased read capacity. Amazon RDS with two readable standbys is available for Amazon RDS for MySQL (version 8.0.28) and Amazon RDS for PostgreSQL (versions 13.4 and 13.5).
Rewind to the launch of Amazon RDS Multi-AZ
Amazon RDS technology has evolved significantly since its early days to reach this point: "The first Amazon RDS engine to receive Multi-AZ support was RDS for MySQL, back in 2010," recalls Sirish Chandrasekaran, General Manager of Amazon RDS Open Source Databases at AWS. "At the time, MySQL was well established, so it was a natural starting point for developing the Multi-AZ technology."
Chandrasekaran explains that customers had been asking for a version of MySQL that they could use to reliably run their workloads in the cloud: "We investigated how we could create a highly available infrastructure that was appropriately robust," he says.
"This presented two challenges. One was connecting a primary database to a secondary so that if anything happened to the first, you could quickly and easily failover to the standby. We needed a replication technology to accomplish this. Second, we needed control plane components to observe all the instances in the cluster to ensure that if anything goes wrong, action is taken. And you need logic to tell you when to take action."
On the replication side, AWS considered the MySQL technology and determined that modifications were required to assure customers that it could work in the cloud. In designing Amazon RDS Multi-AZ, AWS considered a number of solutions and ultimately decided to build it using storage-based block replication.
"It was a tried, tested and bulletproof solution, so we built Multi-AZ on top of it as a two-node solution – one primary and one standby," explains Chandrasekaran. "I'd say this was a milestone innovation that has and continues to help many customers migrate workloads confidently and safely to the cloud."
Fast forward 12 years and Multi-AZ support has been expanded beyond MySQL to multiple other databases on AWS. The underlying technology has also expanded considerably from where it was in 2010 to serve additional customer use cases.
Expanding the benefits of Amazon RDS Multi-AZ
Chandrasekaran says that AWS continues to look for opportunities to improve features and the customer experience: "As cloud adoption continues to accelerate, we are seeing many customers migrate very demanding workloads. This presented an opportunity for us to think about how we could further build upon the widely adopted Multi-AZ technology to satisfy customers' most stringent requirements," he notes.
"This storage-based approach addresses the needs of many Amazon RDS customers, yet, some have more stringent requirements. In Multi-AZ, the standby is idle and its primary purpose is protection in the event of a failure. However, some customers require the added benefits of an active standby, which helps them switch over faster and minimize downtime when there is a failover."
When building this new deployment option, AWS evaluated alternative replication solutions and opted to use native database replication for the new deployment option. With this innovation, customers can send a read workload to two standby instances. "That's a big win for our customers because it helps them reduce cost," notes Chandrasekaran.
With this deployment option, Amazon RDS Multi-AZ now supports a Reader Endpoint that, when connected, only accepts reads and no writes. This offers customers access to additional read scaling capabilities: "It means the standbys are available," explains Chandrasekaran. "Secondly, you get faster failovers. When you use storage-level replication and you fail over, the database must go through a crash recovery. This usually takes between 60 to 120 seconds. With this new deployment option, you don't have this kind of delay. It might be up to 35 seconds. This improves your availability posture."
In addition to providing read scalability and faster failovers, the new option improves the durability of customer databases. "We ended up deciding on a three-node system – one primary and two secondaries distributed across three AZs. This way when one node goes down, you still have two others that protect you from double node failure," says Chandrasekaran. Then, like in Multi-AZ with one standby, Amazon RDS Multi-AZ disconnects and promotes the primary as needed and transparently repairs or replaces the failed instance in the background.
"Some customers have stringent requirements and are unable to tolerate any data loss. Therefore, we wanted to expand upon Amazon RDS Multi-AZ so customers can customize their workloads for the durability that they need," explains Chandrasekaran.
Performance boosted by transaction throughput
Allowing customers to customize their database workloads for the performance they needed was another big focus of improvement for Amazon RDS. As customers' applications and businesses grow, predictability becomes increasingly important. It is better to have stable average performance than excellent peak performance and high latency. Many applications have little or no tolerance for latency.
This new option is valuable to customers whose workloads are affected by high transaction commit latencies. Amazon RDS Multi-AZ with two readable standbys offers up to 2x faster transaction commit latency compared with Multi-AZ with one standby. One factor that impacts this is differences in replication technology. Multi-AZ with one standby uses synchronous replication. As a result, your data is replicated across AZs to your standby instance and it is protected in the event of an instance failure, but this also creates latency while the transaction is being committed to the network storage. Multi-AZ with two readable standbys uses semi-synchronous replication, meaning only one of the two read replicas must confirm the transaction before the primary continues writing. By using semi-synchronous technology, the database avoids performance issues if one standby instance is working and the other has unexpected latency.
"We decided to launch this new option on instances that have local storage," says Chandrasekaran. "It's an innovation that uses local storage for the write path, but also network storage. This provides performance improvements by way of transaction throughput with no loss of durability."
The aim is that for customers with stringent requirements, they will benefit by minimizing risk of data loss, improving performance as well as higher availability. When customers use database replication, as opposed to storage-based replication, they will find there is a lot more they can do than has been traditionally possible. For example, a cluster-based model makes it possible to update an existing database while reducing the amount of downtime.
This latest Amazon RDS innovation has already received a lot of attention from customers, and more enhancements are planned before the end of the year:
"We're working on helping customers scale reads of Multi-AZ with two readable standbys even higher to meet the needs of their most read-intensive workloads," Chandrasekaran says. "Lots of customers are now gravitating to open source because these are mature technologies that have proven themselves in production workloads. Customers should feel comfortable and confident in using Amazon RDS, which received the highest ever rating in the Gartner Solution Scorecard for dbPaaS this year."
Customers can get started with Amazon RDS Multi-AZ with two readable standbys today using the Amazon RDS Management Console. Also, Amazon RDS specialists are available to answer questions and provide support. If you have questions, go to Contact Us and you'll hear back from AWS in one business day to discuss how AWS can help your organization.
Sponsored by AWS.