Skip to main content

Hard Lessons of Public Cloud: Designing for When AWS Goes Down

Eric Wright

So, your site is down because AWS S3 went away. Too soon? It's never too soon to talk about why the responsibility for designing resilient infrastructure belongs in your camp. It's like when Smokey the Bear used to say that "only you can prevent forest fires." The difference is that it's Jeff Bezos saying it this time.

We have some real insight into what design for cloud resiliency really means thanks to a chat that I had recently.

Cloud Goes Down, so Design for It

There is no special text in the terms and conditions. These are hard facts. AWS designs its infrastructure to be as resilient as possible, but clearly tells you that you should design with the intention of surviving partial service outages. It isn't that AWS plans on being down a lot, but they have been hit by specific DDoS attacks, and also have had to reboot EC2 hosts in order to patch for security vulnerabilities.

At the time I was writing this, AWS S3 was fighting its way back to life in the US-east-1 Region. This means that there were multiple Availability Zones in the throes of recovery, and that potentially hundreds of thousands of web sites, and applications were experiencing issues retrieving objects from the widely used object storage platform.

So, how do we do this better? Let's ask someone who does design and see how the developers think about things. With that, I wanted to share a great discussion that I had with former Disney lead architect and current Principal Software Architect at Turbonomic, Steve Haines.

Q&A: Understanding the Developer's Reaction to the AWS Outage

EW: What does it mean to think about designing across regions inside the public cloud?

SH: Designing an application to run across multiple AWS regions is not a trivial task. While you can deploy stateless services or micro-services to multiple regions and then configure Route53 (Amazon's DNS Service) to point to Elastic Load Balancers (ELBs) in each region, that doesn't completely solve the problem.

First, it's crucial to consider the cost of redundancy. How many regions and how many availability zones (AZ) in each region do we want to deploy to? From historical outages, you're probably safe with two regions, but you do not want to keep a full copy of your application deployed in another region just for disaster recovery: you want to use it and distribute workloads across those regions!

For some use cases this will be easy, but for others you will need to design your application so that it is close to the resources it needs to access. If you design your application with failure in mind and to run in multiple regions then you can manage the cost because both regions will be running your workloads.

EW: That seems to be a bit of the cost of doing business for design and resiliency, but what is the impact below the presentation layers? It feels like that is the sort of "low hanging fruit" as we know it, but there is much more to the application architecture than that, right?

SH: Exactly! That leads to the next challenge: resources, such as databases and files. While AWS provides users multi-A to Z database replication free of charge for databases running behind RDS, users are still paying for storage, IOPS, etc. However, this model changes if a user wants to replicate across regions. For example, Oracle provides a product called GoldenGate for performing cross-region replication, which is a great tool but can significantly impact your IT budget.

Alternatively, you can consider one of Amazon's native offerings, Aurora, which supports cross- region replication out-of-the-box, but that needs to be a design decision you make when you're building or refactoring your application. And, if you store files in S3, be sure that you enable cross- region replication, it will cost you more, but it will ensure that files stored in one region will be available in the event of a regional outage.

EW: Sounds like we have already got some challenges in front of us with just porting our designs to cloud platforms, but when you're already leaning into the cloud as a first-class destination for your apps we have to already think about big outages. We do disaster recovery testing on-premises because that's something we can control. How do we do that type of testing out in the public cloud?

SH: Good question. It's important to remember that while designing an application to run in a cross-region capacity is one thing, having the confidence that it will work when you lose a region is another beast altogether!

This is where I'll defer to Netflix's practice of designing for failure and regularly testing failure scenarios. They have a "Simian Army" (https://github.com/Netflix/SimianArmy) that simulates various failure scenarios in production and ensures that everything continues to work. One of the members of the Simian Army is the Chaos Gorilla that regularly kills a region and ensures that Netflix continues to function, which is one of the reasons they were able to sustain the previous full region outage.

If you're serious about running across regions then you need to regularly validate that it works!

But maybe we should think bigger than cross-region – what if we could design across clouds for the ultimate protection?

EW: Thanks for the background and advice, Steve. Good food for thought for all of us in the IT industry. I'm sure there are a lot of people having this discussion in the coming weeks after the recent outage.

Eric Wright is Principal Solutions Engineer at Turbonomic.

Hot Topics

The Latest

In today’s data and AI driven world, enterprises across industries are utilizing AI to invent new business models, reimagine business and achieve efficiency in operations. However, enterprises may face challenges like flawed or biased AI decisions, sensitive data breaches and rising regulatory risks ...

In MEAN TIME TO INSIGHT Episode 12, Shamus McGillicuddy, VP of Research, Network Infrastructure and Operations, at EMA discusses purchasing new network observability solutions.... 

There's an image problem with mobile app security. While it's critical for highly regulated industries like financial services, it is often overlooked in others. This usually comes down to development priorities, which typically fall into three categories: user experience, app performance, and app security. When dealing with finite resources such as time, shifting priorities, and team skill sets, engineering teams often have to prioritize one over the others. Usually, security is the odd man out ...

Image
Guardsquare

IT outages, caused by poor-quality software updates, are no longer rare incidents but rather frequent occurrences, directly impacting over half of US consumers. According to the 2024 Software Failure Sentiment Report from Harness, many now equate these failures to critical public health crises ...

In just a few months, Google will again head to Washington DC and meet with the government for a two-week remedy trial to cement the fate of what happens to Chrome and its search business in the face of ongoing antitrust court case(s). Or, Google may proactively decide to make changes, putting the power in its hands to outline a suitable remedy. Regardless of the outcome, one thing is sure: there will be far more implications for AI than just a shift in Google's Search business ... 

Image
Chrome

In today's fast-paced digital world, Application Performance Monitoring (APM) is crucial for maintaining the health of an organization's digital ecosystem. However, the complexities of modern IT environments, including distributed architectures, hybrid clouds, and dynamic workloads, present significant challenges ... This blog explores the challenges of implementing application performance monitoring (APM) and offers strategies for overcoming them ...

Service disruptions remain a critical concern for IT and business executives, with 88% of respondents saying they believe another major incident will occur in the next 12 months, according to a study from PagerDuty ...

IT infrastructure (on-premises, cloud, or hybrid) is becoming larger and more complex. IT management tools need data to drive better decision making and more process automation to complement manual intervention by IT staff. That is why smart organizations invest in the systems and strategies needed to make their IT infrastructure more resilient in the event of disruption, and why many are turning to application performance monitoring (APM) in conjunction with high availability (HA) clusters ...

In today's data-driven world, the management of databases has become increasingly complex and critical. The following are findings from Redgate's 2025 The State of the Database Landscape report ...

With the 2027 deadline for SAP S/4HANA migrations fast approaching, organizations are accelerating their transition plans ... For organizations that intend to remain on SAP ECC in the near-term, the focus has shifted to improving operational efficiencies and meeting demands for faster cycle times ...

Hard Lessons of Public Cloud: Designing for When AWS Goes Down

Eric Wright

So, your site is down because AWS S3 went away. Too soon? It's never too soon to talk about why the responsibility for designing resilient infrastructure belongs in your camp. It's like when Smokey the Bear used to say that "only you can prevent forest fires." The difference is that it's Jeff Bezos saying it this time.

We have some real insight into what design for cloud resiliency really means thanks to a chat that I had recently.

Cloud Goes Down, so Design for It

There is no special text in the terms and conditions. These are hard facts. AWS designs its infrastructure to be as resilient as possible, but clearly tells you that you should design with the intention of surviving partial service outages. It isn't that AWS plans on being down a lot, but they have been hit by specific DDoS attacks, and also have had to reboot EC2 hosts in order to patch for security vulnerabilities.

At the time I was writing this, AWS S3 was fighting its way back to life in the US-east-1 Region. This means that there were multiple Availability Zones in the throes of recovery, and that potentially hundreds of thousands of web sites, and applications were experiencing issues retrieving objects from the widely used object storage platform.

So, how do we do this better? Let's ask someone who does design and see how the developers think about things. With that, I wanted to share a great discussion that I had with former Disney lead architect and current Principal Software Architect at Turbonomic, Steve Haines.

Q&A: Understanding the Developer's Reaction to the AWS Outage

EW: What does it mean to think about designing across regions inside the public cloud?

SH: Designing an application to run across multiple AWS regions is not a trivial task. While you can deploy stateless services or micro-services to multiple regions and then configure Route53 (Amazon's DNS Service) to point to Elastic Load Balancers (ELBs) in each region, that doesn't completely solve the problem.

First, it's crucial to consider the cost of redundancy. How many regions and how many availability zones (AZ) in each region do we want to deploy to? From historical outages, you're probably safe with two regions, but you do not want to keep a full copy of your application deployed in another region just for disaster recovery: you want to use it and distribute workloads across those regions!

For some use cases this will be easy, but for others you will need to design your application so that it is close to the resources it needs to access. If you design your application with failure in mind and to run in multiple regions then you can manage the cost because both regions will be running your workloads.

EW: That seems to be a bit of the cost of doing business for design and resiliency, but what is the impact below the presentation layers? It feels like that is the sort of "low hanging fruit" as we know it, but there is much more to the application architecture than that, right?

SH: Exactly! That leads to the next challenge: resources, such as databases and files. While AWS provides users multi-A to Z database replication free of charge for databases running behind RDS, users are still paying for storage, IOPS, etc. However, this model changes if a user wants to replicate across regions. For example, Oracle provides a product called GoldenGate for performing cross-region replication, which is a great tool but can significantly impact your IT budget.

Alternatively, you can consider one of Amazon's native offerings, Aurora, which supports cross- region replication out-of-the-box, but that needs to be a design decision you make when you're building or refactoring your application. And, if you store files in S3, be sure that you enable cross- region replication, it will cost you more, but it will ensure that files stored in one region will be available in the event of a regional outage.

EW: Sounds like we have already got some challenges in front of us with just porting our designs to cloud platforms, but when you're already leaning into the cloud as a first-class destination for your apps we have to already think about big outages. We do disaster recovery testing on-premises because that's something we can control. How do we do that type of testing out in the public cloud?

SH: Good question. It's important to remember that while designing an application to run in a cross-region capacity is one thing, having the confidence that it will work when you lose a region is another beast altogether!

This is where I'll defer to Netflix's practice of designing for failure and regularly testing failure scenarios. They have a "Simian Army" (https://github.com/Netflix/SimianArmy) that simulates various failure scenarios in production and ensures that everything continues to work. One of the members of the Simian Army is the Chaos Gorilla that regularly kills a region and ensures that Netflix continues to function, which is one of the reasons they were able to sustain the previous full region outage.

If you're serious about running across regions then you need to regularly validate that it works!

But maybe we should think bigger than cross-region – what if we could design across clouds for the ultimate protection?

EW: Thanks for the background and advice, Steve. Good food for thought for all of us in the IT industry. I'm sure there are a lot of people having this discussion in the coming weeks after the recent outage.

Eric Wright is Principal Solutions Engineer at Turbonomic.

Hot Topics

The Latest

In today’s data and AI driven world, enterprises across industries are utilizing AI to invent new business models, reimagine business and achieve efficiency in operations. However, enterprises may face challenges like flawed or biased AI decisions, sensitive data breaches and rising regulatory risks ...

In MEAN TIME TO INSIGHT Episode 12, Shamus McGillicuddy, VP of Research, Network Infrastructure and Operations, at EMA discusses purchasing new network observability solutions.... 

There's an image problem with mobile app security. While it's critical for highly regulated industries like financial services, it is often overlooked in others. This usually comes down to development priorities, which typically fall into three categories: user experience, app performance, and app security. When dealing with finite resources such as time, shifting priorities, and team skill sets, engineering teams often have to prioritize one over the others. Usually, security is the odd man out ...

Image
Guardsquare

IT outages, caused by poor-quality software updates, are no longer rare incidents but rather frequent occurrences, directly impacting over half of US consumers. According to the 2024 Software Failure Sentiment Report from Harness, many now equate these failures to critical public health crises ...

In just a few months, Google will again head to Washington DC and meet with the government for a two-week remedy trial to cement the fate of what happens to Chrome and its search business in the face of ongoing antitrust court case(s). Or, Google may proactively decide to make changes, putting the power in its hands to outline a suitable remedy. Regardless of the outcome, one thing is sure: there will be far more implications for AI than just a shift in Google's Search business ... 

Image
Chrome

In today's fast-paced digital world, Application Performance Monitoring (APM) is crucial for maintaining the health of an organization's digital ecosystem. However, the complexities of modern IT environments, including distributed architectures, hybrid clouds, and dynamic workloads, present significant challenges ... This blog explores the challenges of implementing application performance monitoring (APM) and offers strategies for overcoming them ...

Service disruptions remain a critical concern for IT and business executives, with 88% of respondents saying they believe another major incident will occur in the next 12 months, according to a study from PagerDuty ...

IT infrastructure (on-premises, cloud, or hybrid) is becoming larger and more complex. IT management tools need data to drive better decision making and more process automation to complement manual intervention by IT staff. That is why smart organizations invest in the systems and strategies needed to make their IT infrastructure more resilient in the event of disruption, and why many are turning to application performance monitoring (APM) in conjunction with high availability (HA) clusters ...

In today's data-driven world, the management of databases has become increasingly complex and critical. The following are findings from Redgate's 2025 The State of the Database Landscape report ...

With the 2027 deadline for SAP S/4HANA migrations fast approaching, organizations are accelerating their transition plans ... For organizations that intend to remain on SAP ECC in the near-term, the focus has shifted to improving operational efficiencies and meeting demands for faster cycle times ...