Designing for Failure
Designing for high availability, fault tolerance and cost efficiency
High Availability in RDS
High Availability in Amazon Aurora
High Availability in DynamoDB
The course is part of this learning path
This section of the Solution Architect Associate learning path introduces you to the High Availability concepts and services relevant to the SAA-C03 exam. By the end of this section, you will be familiar with the design options available and know how to select and apply AWS services to meet specific availability scenarios relevant to the Solution Architect Associate exam.
- Learn the fundamentals of high availability, fault tolerance, and back up and disaster recovery
- Understand how a variety of Amazon services such as S3, Snowball, and Storage Gateway can be used for back up purposes
- Learn how to implement high availability practices in Amazon RDS, Amazon Aurora, and DynamoDB
Aurora Serverless is an elastic solution that autoscales the compute layer based on application demand, and only bills you when it's in use. Aurora Serverless ideally suited towards applications which exhibit variable workloads and/or have infrequent data accessing and modification needs.
When provisioning an Aurora Serverless database - you no longer need to plan and allocate instance sizes. Instead, you simply configure lower and upper limits for capacity. Capacity is measured in ACUs - which stands for Aurora Capacity Units. You have the ability to set upper and lower limits for capacity.
Aurora will continually adjust and optimize capacity based on incoming demand - and will stay within the limits specified.
The underlying compute instances are automatically started and stopped based on current demand. Instances can be cold booted in a matter of seconds.
In terms of high availability - the service is underpinned by the same fault-tolerant, self-healing storage layer. There is nothing to configure beyond the capacity settings which if required can be manually tuned.
The service will auto adjust the compute layer and capacity automatically behind the scenes to ensure that the database is available and has the necessary capacity when required. If the traffic starts to drop off it will begin scaling down, and if enabled, actually shut down the compute entirely when there's no demand for it. When the compute is turned off, you only end up paying for the storage capacity used.
Since Aurora Serverless by design takes care of automatically scaling out to meet peak demand, there is no option nor need to add in read replicas.
An Aurora Serverless database is configured with a single connection endpoint which makes sense - given that it is designed to be serverless - this endpoint is obviously used for both read and writes.
Another interesting option when considering how to connect and execute queries against an Aurora Serverless database is the Web Service Data API feature - available only on Aurora Serverless databases. This opt in feature enables an HTTP web service interface into the database meaning you can execute and run queries against the database without the need for a JDBC driver nor connection - hence why this feature is often termed connectionless. The Web Service Data API makes implementing Lambda functions which need to perform data lookups and or mutations within an Aurora serverless database a breeze. Another benefit when using this feature is that the AWS CLI has been updated to allow you to execute queries through it from the command line.
Aurora Serverless performs a continuous automatic backup of the database with a default retention period of 1 day - which can be manually increased to a maximum retention period of 35 days. This style of backup gives you the capability of restoring to a point in time within the currently configured backup retention period. Restores are performed to a new serverless database cluster.
Stuart has been working within the IT industry for two decades covering a huge range of topic areas and technologies, from data center and network infrastructure design, to cloud architecture and implementation.
To date, Stuart has created 150+ courses relating to Cloud reaching over 180,000 students, mostly within the AWS category and with a heavy focus on security and compliance.
Stuart is a member of the AWS Community Builders Program for his contributions towards AWS.
He is AWS certified and accredited in addition to being a published author covering topics across the AWS landscape.
In January 2016 Stuart was awarded ‘Expert of the Year Award 2015’ from Experts Exchange for his knowledge share within cloud services to the community.
Stuart enjoys writing about cloud technologies and you will find many of his articles within our blog pages.