The AWS Well-Architected Framework
You might think that really smart engineers sat down to pen the AWS Well-Architected Framework based on their experience with cloud design. That is only partially true. To provide you with a document as critical as the Well-Architected Framework, engineers and architects also analyzed actual implementations of successful designs by some of their largest and most successful customers (with their permission, of course). All of this research gave rise to the framework that we cover here.
The goals of the Well-Architected Framework are pretty lofty. They include designing for security, performance, resiliency, efficiency, and more. The framework also provides valuable opportunities to evaluate a proposed design against the tried-and-true principles contained in the document. This makes it an even more valuable tool.
AWS had many goals when it created this framework. These are the most important of them:
Build and deploy solutions faster than ever before
Reduce and mitigate the risks associated with a move to the cloud
Make informed decisions about how to implement solutions in the cloud
Learn the most powerful best-practice approaches to using AWS services and tools
To help organize the framework and make it more valuable, AWS focused the framework around six pillars:
Operational excellence
Security
Reliability
Performance efficiency
Cost optimization
Sustainability
Before we examine each of these pillars in detail, let’s examine the general design recommendations contained in the framework. They are as follows:
Stop guessing your capacity needs: Thanks to the AWS Cloud, you can leverage autoscaling capabilities and rapid elasticity. While you might be “pre-trained” to guess at some large capacity number for your solution from traditional IT development, you should remember that it is no longer always necessary to do so in the cloud. You can save money by using just the resources that you need based on actual demand.
Test systems at production scale: With the practically limitless AWS resources at your fingertips, you should have an easier time stress testing your solutions by employing large amounts of AWS resources for a short testing period. This is often difficult if not impossible in traditional environments.
Automate with architectural experimentation in mind: AWS embraces automation at every turn in its services and resources. As a result, you can easily test changes to your solutions and quickly roll back if there are issues.
Consider evolutionary architectures: AWS stresses making consistent changes to architectures in order to keep up with changing conditions and even new technologies. Doing this in a traditional IT environment is difficult.
Drive architectures using data: AWS makes it easy to monitor your solutions in great detail. Based on your monitoring data, you can make meaningful and efficient improvements to your design over time.
Improve through game days: Do you wonder if your AWS solution can withstand a major failure or massively spiked workload? These types of events can be easily simulated in the cloud. Such “game-day” simulations are often very difficult to pull off in traditional IT environments.
In the sections of this chapter that follow, we are going to examine the design principles for each of the six pillars of the Well-Architected Framework. If you would also like to see the specific best practices that AWS recommends for each pillar, you can consult the official online documentation for the framework right from the AWS Documentation. We will not cover the many best practices in this text as the Cloud Practitioner level of AWS certification does not require this knowledge.
Note
Do not confuse the AWS Well-Architected Framework with the AWS Well-Architected Tool. The AWS Well-Architected Tool is a service provided by AWS that helps customers assess their workloads and applications for architectural best practices. It allows users to perform self-assessments or work with AWS solutions architects to review their workloads against the six pillars of the Well-Architected Framework. So, whereas the framework is critical documentation you should know, the tool helps you achieve these documented best practices.
Figure 3-1 shows the AWS Well-Architected Tool in the AWS Management Console.
Figure 3-1 The AWS Well-Architected Tool