Skip to content
Dare Omotosho
ArticlesCloudNewcomer

The AWS Well-Architected Framework, and the tools that keep you honest to it

The Well-Architected Framework started with five pillars. It's six now, and the newest one, sustainability, has already shown up on certification exams often enough that I've seen it nearly derail a candidate who hadn't studied it closely. That's the pattern worth noticing before we get into the pillars themselves: this isn't a static checklist AWS published once and forgot about. It grows as the industry's understanding of what "well-architected" means grows, and it's worth treating it that way rather than memorizing a fixed list.

The framework exists to help you design systems that are secure, high-performing, cost-effective, and reliable, and to catch the problems that show up months later rather than on day one. Here's what each pillar is actually asking of you.

The six pillars, briefly

Operational Excellence is about running things as code rather than by hand: automate what you can, ship small reversible changes instead of big risky ones, and treat every failure as a lesson rather than a fluke.

Security asks you to know exactly who can do what (strong IAM, with AWS CloudTrail tracing every action), apply protection at every layer rather than just one, encrypt data both moving and at rest, and have an incident response plan you've actually rehearsed. This last one matters more than it sounds: I've seen how heavily this plays into outcomes at large companies when something does go wrong.

Reliability means a system works when it's supposed to and recovers fast when it doesn't. That means testing your recovery procedures in a non-production environment before you ever need them for real, designing systems that heal themselves automatically, and scaling horizontally, adding more lanes to the highway, rather than just building one wider lane.

Performance Efficiency is about using managed services instead of reinventing infrastructure, deploying globally to sit closer to your users, and reaching for serverless architectures where they fit, since no servers to manage and automatic scaling solve a lot of performance problems by default.

Cost Optimization is everyone's favorite pillar to talk about and the easiest to get wrong in practice. Pay for consumption rather than idle capacity, track spending actively rather than after the fact, and lean on managed services, which are often cheaper than the equivalent you'd run and maintain yourself.

Sustainability, the newest pillar, asks a longer-range question: what's the environmental, economic, and social footprint of your cloud usage. Maximizing resource utilization and using managed services both help here too, since unused capacity has an environmental cost as well as a financial one.

What ignoring cost optimization actually looks like

I want to make the cost pillar concrete, because the theory is easy and the practice is where teams slip. On one project, I'd gotten monthly costs down to somewhere between $300 and $600 for a genuinely substantial set of services. I moved on, a new engineer took over, and a few weeks later I got a call asking me to check the bill. It had jumped to $2,000. The cause wasn't exotic: four EC2 instances running where two would have covered the load, plus multiple database instances in production where the workload only needed one. Nobody made a reckless decision. Someone just defaulted to "more is safer" without checking whether the architecture actually needed it. That's the entire cost pillar in one anecdote: it's not about being cheap, it's about being able to justify every resource you're running.

The tools that check your work

AWS Trusted Advisor acts like a standing consultant, flagging things like missing multi-factor authentication or resources you're overspending on, in real time, without you having to ask. The AWS Well-Architected Tool goes further: it walks your actual architecture against all six pillars and returns specific recommendations, rather than generic best practices.

Two more pieces of the blueprint: traffic and visibility

Elastic Load Balancing distributes incoming traffic across multiple targets so your application stays available under load, and AWS gives you four types suited to different jobs. Application Load Balancers handle HTTP/HTTPS and route intelligently by URL path or host header, a good fit for microservices and unpredictable traffic. Network Load Balancers trade that intelligence for raw speed, handling millions of requests per second for TCP, UDP, and TLS traffic. Gateway Load Balancers route traffic to virtual appliances like firewalls or intrusion detection systems. Classic Load Balancers are the legacy option, still functional for basic needs, but ALB and NLB are the better default for anything new.

Amazon CloudWatch is how you actually know what's happening across all of this: it collects metrics and logs from your environment, lets you set alarms (CPU above 70% for five minutes, send an alert), and builds dashboards so you can see the state of your system at a glance rather than guessing.

The framework is a discipline, not a document

None of these six pillars, or the tools built around them, replace judgment. They're a structure for applying it consistently, so that a decision about instance count or database sizing gets made on purpose instead of by default. The $2,000 bill in my story wasn't a framework failure. It was a decision nobody stopped to question, and the framework exists precisely to make sure that questioning happens before the invoice does.

Discussion

  • No comments yet, be the first to add one.

Comments appear once approved. Upvotes are live.