# AWS: Well-Architected Framework

## What is

The AWS Well-Architected Framework helps us to understand the pros and cons of decisions we make while building systems on AWS.  
AWS has created the AWS Well-Architected Framework, which provides a consistent set of best practices for us to evaluate architecture and provides a set of questions we can use to evaluate how well an architecture is aligned to AWS best practices.

The AWS Well-Architected Framework is based on six pillars.

*   **Operational excellence**: The ability to support development and run workloads effectively.
    
*   **Security**: Describe how to take advantage of cloud technologies to protect data, systems, and assets in a way that can improve security posture.
    
*   **Reliability**: The ability of a workload to perform its intended function correctly and consistently when it's expected to. This includes the ability to operate and test the workload through its total lifecycle.
    
*   **Performance efficiency**: The ability to use computing resources to meet system requirements and to maintain that efficiency as demand and technology evolve.
    
*   **Cost optimization**: The ability to run systems to deliver business value at the lowest price point.
    
*   **Sustainability**: The ability to continually improve sustainability impact by reducing energy consumption and increasing efficiency across all components of a workload by maximizing the benefits from the provisioned resources and minimizing the total resources required.
    

General Design Principles The Well-Architecture Framework identifies a set of general design principles to facilitate a good design in the cloud:

*   **Stop guessing capacity needs**: Poor capacity design when deploying a workload might end up on expensive idle resources or deal with the performance implications of limited capacity.
    
*   **Test systems at production scale**: In the cloud, we can create a production-scale test environment on demand, complete our testing, and then decommission the resources.
    
*   **Automate with architectural experimentation in mind**: Automation permits us to create and replicate our workload at low cost and avoid the expense of manual effort. We can track changes to our automation, audit the impact, and revert to previous parameters when necessary.
    
*   **Consider evolutionary architectures**: In a traditional environment, architectural decisions are often implemented as static, onetime events, with a few major versions of a system during its lifetime. As a business and its context continue to evolve, these initial decisions might hinder the system's ability to deliver change by changing business requirements. In the cloud, the capability to automate and test on demand lowers the risk of impact design changes. This permits systems to evolve over time so that businesses can take advantage of innovations as a standard practice.
    
*   **Drive architecture using data**: In the cloud, we can collect data on how your architectural choices affect the behavior of our workload. This lets us make fact-based decisions on how to improve our workload.
    
*   **Improve through game days**: Test how our architecture and process perform by regularly scheduling game days to simulate events in production. This will help us understand where improvements can be made and can help develop organizational experience in dealing with events.
    

## The Pillars of the framework

Creating a software system is a lot like constructing a building. If the foundation is not solid, structural problems can undermine the integrity and functions of the building.

Incorporating these pillars into our architecture will help us to produce stable and efficient systems.

Pillars:

*   Operational excellence
    
*   Security
    
*   Reliability
    
*   Performance efficiency
    
*   Cost optimization
    
*   Sustainability
    

### Operational Excellence

This contains best practice for organizing team, designing workload, operating it at scale, and evolving it over time

**Design principles**

*   Organizing teams around business outcomes
    
*   Implement observability for actionable insight
    
*   Safely automate where possible
    
*   Make frequent, small, reversible changes
    
*   Refine operations procedures frequently
    
*   Anticipate failure
    
*   Learn from all operational events and metrics
    
*   Use managed services  
      
    [Learn more](https://docs.aws.amazon.com/wellarchitected/latest/framework/oe-design-principles.html)
    

### Security

This pillar encompasses the ability to protect data, systems, and assets to take advantage of cloud technologies to improve our security.

**Design principles**

*   Implement a strong identity foundation
    
*   Maintain traceability
    
*   Apply security at all layers
    
*   Automate security best practice
    
*   Protect data in transit and at rest
    
*   Keep people away from data
    
*   Prepare for security events
    
    [Learn more](https://docs.aws.amazon.com/wellarchitected/latest/framework/sec-design.html)
    

### Reliability

This pillar encompasses the ability of a workload to perform its intended function correctly and consistently when it's expected to. This includes the ability to operate and test the workload through its total lifecycle.

**Design principles**

*   Automatically recover from failure
    
*   Test recovery procedures
    
*   Scale horizontally to increase aggregate workload availability
    
*   Stop guessing capacity
    
*   Manage change through automation
    
    [Learn more](https://docs.aws.amazon.com/wellarchitected/latest/framework/rel-dp.html)
    

### Performance Efficiency

This pillar includes the ability to use cloud resources efficiently to meet performance requirements and to maintain the efficiency as demand changes and technology evolves.

**Design principles**

*   Democratize advance technologies
    
*   Go global in minutes
    
*   Use serverless architecture
    
*   Experiment more often
    
*   Consider mechanical sympathy
    
    [Learn more](https://docs.aws.amazon.com/wellarchitected/latest/framework/perf-dp.html)
    

### Cost Optimization

This pillar includes the ability to run systems to deliver business value at the lowest price point.

**Design principles**

*   Implement Cloud Financial Management
    
*   Adopt a consumption model
    
*   Measure overall efficiency
    
*   Stop spending money on undifferentiated heavy lifting
    
*   Analyze and attribute expenditure
    
    [Learn more](http://docs.aws.amazon.com/wellarchitected/latest/framework/cost-dp.html)
    

### Sustainability

This pillar focuses on environmental impacts, especially energy consumption and efficiency, since they are important levers for architects to inform direct action to reduce resource usage

**Design principles**

*   Understand your impact
    
*   Establish sustainability goals
    
*   Maximize utilization
    
*   Anticipate and adopt new, more efficient hardware and software offerings
    
*   Use managed services
    
*   Reduce the downstream impact of your cloud workloads
    
    [Learn more](https://docs.aws.amazon.com/wellarchitected/latest/framework/sus-design-principles.html)
    

## Conclusion

This framework provides architectural best practices across the six pillars for designing and operating reliable, secure, efficient, cost-effective, and sustainable systems in the cloud.
