AWS: Well-Architected Framework
The AWS Well-Architected Framework helps us to understand the pros and cons of decisions we make while building systems on AWS.

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
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
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
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
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
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
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.

