Skip to main content
Career Paths
Concepts
Frugal Architect
The Simplified Tech

Role-based learning paths to help you master cloud engineering with clarity and confidence.

Product

  • Career Paths
  • Interview Prep
  • Scenarios
  • AI Features
  • Cloud Comparison
  • Pricing

Community

  • Join Discord

Account

  • Dashboard
  • Credits
  • Updates
  • Sign in
  • Sign up
  • Contact Support

Stay updated

Get the latest learning tips and updates. No spam, ever.

Terms of ServicePrivacy Policy

© 2026 TheSimplifiedTech. All rights reserved.

BackBack
Interactive Explainer

The Frugal Architect

Werner Vogels' 7 laws for treating cost as a non-functional requirement — from day 1, not as an afterthought.

🎯Key Takeaways
Cost is a non-functional requirement (Law I) — define cost ceilings in the design phase, not after the bill arrives.
Sustainable systems align cost growth to revenue growth — cost/unit (per transaction, per user) is the metric that matters.
Every architecture decision is a trade-off: managed services cost more but save operational overhead; self-managed is cheaper but requires expertise.
Unobserved costs are uncontrolled costs — tag every resource, get per-service cost visibility, set anomaly alerts.
Common anti-patterns: idle dev environments, wrong instance types, unoptimized data transfer, missing cache layers.

The Frugal Architect

Werner Vogels' 7 laws for treating cost as a non-functional requirement — from day 1, not as an afterthought.

~6 min read
Be the first to complete!
What you'll learn
  • Cost is a non-functional requirement (Law I) — define cost ceilings in the design phase, not after the bill arrives.
  • Sustainable systems align cost growth to revenue growth — cost/unit (per transaction, per user) is the metric that matters.
  • Every architecture decision is a trade-off: managed services cost more but save operational overhead; self-managed is cheaper but requires expertise.
  • Unobserved costs are uncontrolled costs — tag every resource, get per-service cost visibility, set anomaly alerts.
  • Common anti-patterns: idle dev environments, wrong instance types, unoptimized data transfer, missing cache layers.

Lesson outline

The CTO who turned off $2M/month in compute

In 2023, Amazon CTO Werner Vogels published "The Frugal Architect" — a set of seven laws for building cost-aware systems. He was not talking about startups pinching pennies. He was talking about systems at scale where architecture decisions directly translate to multi-million dollar line items.

The framing was simple: cost is not an operations problem or a finance problem. It is an engineering problem. And the best time to fix a cost problem is before you have one.

Why Vogels wrote this

He had watched teams build systems with no cost awareness, ship them to production, and then be shocked when the AWS bill arrived. By then, the architecture was locked in. Rewrites are expensive. The solution: make cost a first-class non-functional requirement alongside reliability and performance.

The 7 laws of the frugal architect

Laws I–IV: Design, measure, and simplify

  • I. Make cost a non-functional requirement — Budget targets and cost constraints belong in the architecture review alongside latency, availability, and security. "We will figure out cost later" always means "we will pay more than we should." Define cost ceilings in the design phase.
  • II. Systems that last align cost to business revenue — Costs should scale proportionally with revenue, not faster. If revenue doubles, costs should roughly double — not triple. When costs grow faster than revenue, the business model breaks at scale. Design cost/unit (cost per transaction, per user, per API call) into the architecture.
  • III. Architecting is a series of trade-offs — Every architecture decision trades cost, performance, reliability, and maintainability. There is no free lunch. Fully managed services (RDS, DynamoDB) are expensive but save operational overhead. Self-managed (EC2 + Postgres) is cheaper but requires expertise. Choose explicitly, not by default.
  • IV. Unobserved systems lead to unknown costs — You cannot optimize what you cannot measure. Every resource must have a tag (team, product, environment). Cost must be visible per service, per feature, per customer tier. "Cloud costs" is not an acceptable line item — break it down until you can make decisions.

Laws V–VII: Rightsize, optimize at every layer, and never sacrifice sustainability

  • V. Cost-aware architectures implement cost controls — Budget alerts, spending limits, and automatic shutdown of non-production environments. Developers get weekly cost reports for their services. Anomaly detection alerts when costs spike unexpectedly. Never wait for the monthly bill.
  • VI. Cost optimization is iterative — You do not optimize cost once and forget it. As usage patterns change, right-sizing becomes wrong-sizing. Schedule quarterly cost reviews. Identify the top 3 cost drivers every quarter and ask if they are proportional to the value they provide.
  • VII. Be a part of a cost-aware culture — Cost awareness cannot live only in the ops team. Developers need to understand what their architecture choices cost. Show engineers their service's monthly bill. Make cost visible in sprint reviews. "That DynamoDB table costs $12k/month" changes engineering conversations.

The most expensive architectural mistakes

Most cloud cost problems are not random. They fall into predictable patterns:

Common cost anti-patterns

  • Idle resources — Development and staging environments running 24/7 at production scale. Common fix: auto-shutdown non-production environments at 7 PM, restart at 8 AM. Typical savings: 60-75% on non-prod environments.
  • Wrong instance types — Using compute-optimized instances for memory-intensive workloads, or t3.xlarge for a service that uses 5% CPU. Fix: Compute Optimizer or Datadog metrics → rightsize to actual p95 usage + 30% headroom.
  • Data transfer costs — The most underestimated AWS cost line item. Cross-AZ traffic, VPC to internet, NAT gateway egress. Fix: place related services in the same AZ (latency vs. availability trade-off), use VPC endpoints for S3/DynamoDB, compress payloads.
  • Unoptimized storage — S3 buckets with 5 years of logs in Standard storage class. DynamoDB tables with on-demand pricing for predictable workloads. Fix: S3 Intelligent Tiering, DynamoDB provisioned capacity with autoscaling, EBS gp2 → gp3 migration (same performance, 20% cheaper).
  • Missing cache layer — N+1 database queries, repeated API calls to expensive services, no CDN on static assets. A single Redis cache can reduce RDS costs by 60% by absorbing read traffic.

The developer who burned $72,000 in one weekend

A common story: developer tests a data processing job locally, it works fine. Deploys it to AWS, forgets a loop condition. The job runs 10,000 times over the weekend processing 500GB of S3 data. Monday morning: $72,000 AWS bill. Fix: budget alerts set to fire at $100, $500, $1000 thresholds. Law V in practice.

Quick check

According to the Frugal Architect, when should cost be considered in the architecture process?

Practical: building a cost-aware architecture review

Here is how to apply frugal architect principles in a real architecture review:

Cost questions to ask in every architecture review

→

01

What is the estimated cost per month at current load? At 10× load? Does cost scale linearly with traffic, or does it spike?

→

02

What are the top 3 cost drivers in this design? Are they proportional to the business value delivered?

→

03

What is the cost/unit? (cost per API call, cost per user, cost per GB processed)

→

04

What happens to cost if there is a bug that creates unexpected load? Are there budget alerts and automatic circuit breakers?

→

05

Are non-production environments automatically shut down? What is the cost delta between prod and non-prod environments?

→

06

Is there a caching layer to reduce upstream costs? Are data transfer costs accounted for (cross-AZ, egress)?

07

Is there an observability plan for cost — tagged resources, per-service dashboards, anomaly alerts?

1

What is the estimated cost per month at current load? At 10× load? Does cost scale linearly with traffic, or does it spike?

2

What are the top 3 cost drivers in this design? Are they proportional to the business value delivered?

3

What is the cost/unit? (cost per API call, cost per user, cost per GB processed)

4

What happens to cost if there is a bug that creates unexpected load? Are there budget alerts and automatic circuit breakers?

5

Are non-production environments automatically shut down? What is the cost delta between prod and non-prod environments?

6

Is there a caching layer to reduce upstream costs? Are data transfer costs accounted for (cross-AZ, egress)?

7

Is there an observability plan for cost — tagged resources, per-service dashboards, anomaly alerts?

How this might come up in interviews

Cloud architecture and senior engineering interviews — especially at companies with significant AWS/GCP/Azure spend. Demonstrates maturity in thinking about system design trade-offs.

Common questions:

  • What are the 7 laws of the Frugal Architect?
  • How do you make cost a non-functional requirement?
  • What are the most common cloud cost anti-patterns?
  • How would you design a cost-aware architecture for a high-traffic service?

Key takeaways

  • Cost is a non-functional requirement (Law I) — define cost ceilings in the design phase, not after the bill arrives.
  • Sustainable systems align cost growth to revenue growth — cost/unit (per transaction, per user) is the metric that matters.
  • Every architecture decision is a trade-off: managed services cost more but save operational overhead; self-managed is cheaper but requires expertise.
  • Unobserved costs are uncontrolled costs — tag every resource, get per-service cost visibility, set anomaly alerts.
  • Common anti-patterns: idle dev environments, wrong instance types, unoptimized data transfer, missing cache layers.
Before you move on: can you answer these?

What does "cost/unit" mean and why is it the key metric?

Cost per transaction, per user, per API call, or per GB processed. It tells you whether costs are scaling proportionally with the business value being delivered, or growing faster (which breaks the business model at scale).

What is Law II of the Frugal Architect?

"Systems that last align cost to business revenue" — costs should scale proportionally with revenue, not faster. Design cost/unit into the architecture from day one.

Ready to see how this works in the cloud?

Switch to Career Paths for structured paths (e.g. Developer, DevOps) and provider-specific lessons.

View role-based paths

Sign in to track your progress and mark lessons complete.

Discussion

Questions? Discuss in the community or start a thread below.

Join Discord

In-app Q&A

Sign in to start or join a thread.