liveBook · Manning

Uptime

As explained in Amazon Web Services in Action, Third Edition: An in-depth guide to AWS

High availability is the property of a system remaining operational with minimal interruption despite component failures.

Uptime is the time a website or application remains available to its users. High availability aims to keep interruptions short when components fail; it does not mean that every request survives a failure. A WordPress blog with several outages per month might set a target of 99.99% uptime, but that target must be checked against the availability of the whole system. section 2.0 section 16.0

Build for the failures each component can experience:

  • Run multiple web servers in different data centers, with a load balancer checking their health and sending requests to healthy servers. A single virtual machine is not highly available by default. section 1.2.3
  • For a production database, consider RDS Multi-AZ: a primary and standby run in different availability zones. RDS replicates data synchronously and automatically promotes the standby if the primary fails. section 10.5 section 10.5.1
  • Check each service’s resilience rather than assuming all services behave alike. A single-node Redis cluster, for example, remains a single point of failure even though it supports backup and restore. section 13.3.2 section 11.2.2
Figure 1.5 Building a highly available system on AWS by using a load balancer, multiple virtual machines, and a database with primary-standby replication

The diagram connects the three main defenses: a health-checking load balancer, multiple virtual machines, and primary–standby database replication. section 1.2.3

Enable database high availability

For an existing WordPress RDS deployment managed by CloudFormation, set `MultiAZ: true` on the `AWS::RDS::DBInstance` resource and update the stack. Deployment takes several minutes. The standby adds cost, but Multi-AZ can also reduce downtime during database maintenance. Failover can still interrupt requests briefly. section 10.5.1 section 10.5

Monitor availability from outside the application, too. One health check runs a Lambda function every five minutes using an EventBridge rule. The function requests the website and checks its response; a CloudWatch alarm emails an operator when checks fail. Monitoring reveals an outage—it does not itself prevent one. When setting an uptime target, inspect the SLA and resilience documentation for every AWS service the application depends on. section 6.2 section 13.3.2

How Amazon Web Services in Action, Third Edition: An in-depth guide to AWS covers it

How deep it goes
Explains component failures, replication, failover, a CloudFormation setting, and monitoring; does not establish that the example architecture achieves its uptime target.
Examples
Uses a WordPress uptime target, a Multi-AZ database setting, and a scheduled external website health check.
What it assumes
Assumes an existing WordPress RDS deployment for the update, while defining availability zones as independent data centers.
What you can do after
Operate/configure it by enabling RDS Multi-AZ and setting up scheduled checks and alarms for a website.
How it connects
Connects uptime to load balancing, availability zones, RDS Multi-AZ, failover, fault tolerance, and health checks.

Also explained in

Compare how 20 books explain uptime →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Amazon Web Services in Action, Third Edition: An in-depth guide to AWS. The section links point to the parts of the book it draws on.