# AWS Well-Architected Framework

## Summary


Cloud platforms offer a number of services. A typical application can use one or more of these services, each of which can be configured in a number of different ways. Applications deployed on dedicated on-premise servers usually need to be re-architected before migrating them to the cloud. Each application is different and therefore deploying an application to the cloud is usually not a trivial task.

Amazon Web Services (AWS) is one of the big cloud platforms. **AWS Well-Architected Framework** offers a set of guidelines and best practices to help practitioners migrate, manage and optimize their applications and their operations on the AWS cloud. By adopting this framework, we can build and deploy faster, lower or mitigate risks, make informed decisions, and learn AWS best practices.

## Discussion

### What exactly does the AWS Well-Architected Framework provide?

The framework is made of pillars, design principles and questions. 

Pillars are foundational to produce stable and efficient systems. By paying attention to these pillars, we can meet expectations and requirements. Moreover, we can focus on our applications and its functional requirements rather than fight with infrastructure issues. For each pillar, the framework lists a number of design principles. 

For a practitioner, the framework is, 

> A set of foundational questions that will allow you to measure your architecture against these best practices and to learn how to address any shortcomings.

Once shortcomings are identified, along with possible solutions, how much and how quickly you implement these will depend on the complexity of the task and the required skill sets. 


### What are the pillars of AWS Well-Architected Framework?

There are six pillars:  

    + **Operational Excellence**: Align with business objectives. Give alerts and respond to them in an automated manner. Perform operations with code. Make incremental changes. Learn from failures. Test for responses to unexpected events. Document current procedures.
    + **Security**: Protect information, systems and assets. Do risk assessments. Have mitigation strategies. Secure at all layers. Enable traceability. Implement a principle of least privilege. Automate best practices. Areas include Identity and Access Management (IAM), detective controls, infrastructure protection, data protection, and incident response.
    + **Reliability**: Automatically recover from infrastructure or service disruptions. Test recovery procedures. Scale horizontally to increase availability. Stop guessing capacity. Choose instance type based on application needs. Use multiple availability zones.
    + **Performance Efficiency**: Make efficient use of resources. Enable latency-based routing. Adopt latest technologies and architectures. Experiment more often.
    + **Cost Optimization**: Avoid unneeded costs. Assess resource utilization. Analyze and attribute expenditure. Match supply and demand. Optimize over time. Delete unused resources. Use consolidated billing, spot instances, and reserved instances. Rightsize before/after migrations.
    + **Sustainability**: Reduce the environmental impact of cloud workloads. Understand impact. Maximize resource utilization.

### Which AWS services can help in implementing AWS Well-Architected Framework?

Here we mention a few of them without being exhaustive:

    + **Operational Excellence**: Services are available in areas of preparation, operations, responses. AWS Developer Tools, RunCommand, AWS Batch, AWS CloudFormation and AWS Config can be used in all three areas. Use AWS CloudTrail and AWS CloudWatch for operations and responses.
    + **Security**: IAM, MFA Token, Amazon VPC, AWS CloudFormation, AWS Config, AWS CloudTrail, AWS CloudWatch, Elastic Load Balancing, Amazon S3, Amazon RDS, and AWS Key Management Service are some services to use.
    + **Reliability**: Use AWS CloudFormation and Multi-AZ for failure management. For change management, use Auto Scaling.
    + **Performance Efficiency**: Use AWS Lambda instead of running EC2 instances. Use Amazon CloudFront and Route 53 to reduce latency.
    + **Cost Optimization**: Release Elastic IPs, EBS volumes or RDS instances if not attached to other services. Move archived data from S3 to Glacier. Use EC2 Scheduler to automatically manage start/stop of instances. Use AWS CloudFormation to automate and save time. Amazon SNS can help with expenditure awareness. Use reserved/spot instances. Use AWS GuardDuty for low-cost security monitoring.

### What are the design principles and best practice areas within AWS Well-Architected Framework?

While there are design principles specific to each pillar, some general principles include the following: 

    + Stop guessing your capacity needs.
    + Test systems at production scale.
    + Automate to make architectural experimentation easier.
    + Allow for evolutionary architectures.
    + Build data-driven architectures.
    + Improve through game days.A blog article online explains the above and cites relevant AWS services for each.


### Could you share some user stories that show the benefits of applying AWS Well-Architected Framework?

National Instruments started developing on AWS in 2008. In 2013, they started adopting the AWS Well-Architected Framework. Since 2015, all their cloud products follow the framework. 

Once they adopted the framework, their scaling latency dropped from 30 minutes to 5 minutes; they optimized from overprovisioning; they removed dependency on data center; and increased developer efficiency. 

Before adopting the framework, they took too long to deploy code and scale operations. Since there wasn't much automation, manual intervention was high and operators suffered from alert fatigue. For better security, they adopted IAM rather than give use Root API key. Their roadmap includes multi-region disaster recovery. 

Among the tools used or they plan to use are CloudTrail, Amazon Inspector, AWS WAF, AWS Certificate Manager, AWS Config, CloudFormation, Elastic Load Balancing, VPC, CloudFront, Route 53, Multi-AZ, and more.


### What capabilities does AWS offer to implement the AWS Well-Architected Framework?

The **AWS Well-Architected Tool** reviews a workload against best practices and guidance set by the pillars of the Framework. A workload is nothing more than code and resources used by a cloud application. By applying the tool to a workload, we get to know the problem areas and the steps to solve those problems. This tool can be accessed from the AWS Management Console. There's no additional charge to using this tool. 

Workloads come in different types or are part of different domains. Each industry or technology domain may require specialized reviews. This is exactly where **AWS Well-Architected Lenses** become relevant. Each lens is customized to a specific workload type. Each lens provides reference architectures, design principles and walkthroughs. AWS comes with many such lenses: Data Analytics Lens, Healthcare Industry Lens, Container Build Lens, SAP Lens, Serverless Applications Lens, and many more. Moreover, users can create custom lenses. 

There's also **AWS Well-Architected Guidance**. It focuses on specific use cases or implementation scenarios. This is often in the form of whitepapers. 


### Could you name some AWS partners or firms offering consulting on AWS Well-Architected Framework?

There are many vendors providing managed services for AWS. Some of them are recognized by AWS as AWS Well-Architected Framework Review (WAFR) partners. These partners typically ask questions to evaluate your architecture in terms of the framework and suggest ways to improve on the five pillars. 

Reviews may use the AWS Well-Architected Tool. A review should focus on only one workload. Each pillar is addressed and prioritized as per business needs. Various stakeholders can participate during the review but there must be a solution architect who's an expert in AWS. 

A small sample of such partners include BJSS, Contino, Endava, Foghorn Consulting, Idexcel, KCOM, Logicworks, nClouds, Onica, Piksel Group, Relium, Steamhaus, Telefonica, and Version1.

## Milestones

2012

Within AWS Principal Engineering community, an initiative called **Well-Architected** is started. The aim is to share with customers best practices for architecting in the cloud. 

Oct  
2015

In a blog post, **AWS Well-Architected Framework** is announced. The author asks, "Have you chosen a cloud architecture that is in alignment with the best practices for the use of AWS?" The framework consists of four pillars.

Sep  
2016

Enterprise Support customers get access to a Well-Architected Review for business critical workloads. This review, delivered by an AWS Solutions Architect, provides guidance and best practices to design reliable, secure, efficient, and cost-effective systems in the cloud. 

Nov  
2016

The framework introduces **Operational Excellence** as the fifth pillar. 

Nov  
2017

At the AWS re:Invent event, **AWS Well-Architected Partner Program** is launched. Partners can use the principles and best practices of the framework to review a customer's use of AWS services. They guide them towards building secure, performant, and resilient infrastructure to support their applications. Also in November, AWS announces **AWS Well-Architected Lenses** while also releasing two lenses: one for High-Performance Computing (HPC) and one for serverless applications. In November 2021, AWS allows the creation and use of custom lenses. 

Nov  
2018

AWS blog reports the launch of **AWS Well-Architected Partner Program** at re:Invent event. At this time, there are more than 30 approved partners. Also in November, the **AWS Well-Architected Tool** is introduced. This tool reviews workloads against best practices and gives suggestions. API integration with this tool comes in 2020. 

Dec  
2021

The framework introduces **Sustainability** as the sixth pillar. This pillar focuses on reducing the environmental impact of any cloud workload via more optimized resource usage and increased efficiency.