AWS cost optimization

Reduce your AWS bill without touching what works

A line-by-line review of EC2, EKS, RDS, S3, data transfer and commitments, with a monthly value on every finding and a safe order to fix them.

Hands-on, every day, in production

  • AWS
  • Azure
  • Amazon EKS
  • Azure AKS
  • Kubernetes
  • Terraform
  • GitHub Actions
  • Prometheus
  • Grafana
  • OpenTelemetry

Where AWS money usually leaks

EC2 and EKS nodes on-demand

Steady workloads with no Savings Plan coverage, on older x86 instance families.

NAT Gateway and data transfer

Traffic to S3 and ECR routed through NAT, and chatty services spread across AZs.

Storage that only grows

gp2 volumes, unattached EBS, years of snapshots and S3 buckets with no lifecycle rules.

What the AWS audit covers

Billing data from Cost Explorer and the Cost and Usage Report, checked against what is actually running.

EC2, EKS and Fargate

Compute is usually the biggest line.

  • Rightsizing from CloudWatch utilisation
  • Graviton (arm64) candidates
  • Spot for stateless and batch workloads
  • Karpenter or Cluster Autoscaler tuning

Savings Plans and RIs

Bought last, against the right-sized baseline.

  • Compute vs EC2 Instance Savings Plans
  • RDS, ElastiCache and OpenSearch reservations
  • Term and payment option trade-offs

RDS and databases

Often oversized and over-provisioned on IOPS.

  • Instance class and Multi-AZ need
  • gp3 and provisioned IOPS
  • Aurora I/O-Optimized vs Standard
  • Snapshot retention

S3 and EBS

Quiet growth, month after month.

  • gp2 → gp3 migration
  • Unattached volumes and old snapshots
  • S3 lifecycle, Intelligent-Tiering, incomplete multipart uploads

Network

The least understood part of the bill.

  • NAT Gateway processing charges
  • S3 / ECR / DynamoDB VPC endpoints
  • Cross-AZ traffic and load balancer layout
  • Idle Elastic IPs and public IPv4 charges

Logs and monitoring

Easy to overspend, easy to fix.

  • CloudWatch Logs retention and ingestion
  • Metric and dashboard sprawl
  • Third-party observability costs

The order matters

The most common mistake in AWS cost work is buying Savings Plans first. Commitments lock in today’s usage, including the waste. The audit follows a fixed order instead:

  1. Delete what nobody uses: idle instances, unattached volumes, old snapshots, forgotten environments.
  2. Rightsize what remains, based on weeks of utilisation, and move to current-generation or Graviton instances where safe.
  3. Re-architect the expensive patterns: NAT traffic, cross-AZ chatter, log volume, storage tiers.
  4. Commit to Savings Plans and reservations for the stable baseline that is left.
  5. Guard it: tags, budgets per account and environment, and Cost Anomaly Detection alerts.

Each step is listed in the savings report with its monthly value, the effort and the risk, so you can decide what to do yourself and what to hand over.

How the audit works

  1. 20-minute call

    You tell me what the bill looks like and what you have tried. No slides, no demo.

  2. Read-only access

    For a paid audit, you create a read-only IAM role (AWS) or Reader role (Azure). I send the exact policy.

  3. Savings report in 5 days

    Every finding has a monthly value, the effort to fix it and the risk.

  4. I implement, or you do

    Hand the plan to your team, or I make the changes with your approval on each one.

Read-only access. NDA on request. No change is made without your written approval.

What it costs

Every engagement starts with a free 20-minute review, so you know the size of the opportunity before you spend anything.

Step 1

Free cloud bill review

Free

A 20-minute call and a one-page note naming the 3 biggest leaks in your bill.

  • You send a Cost Explorer or Azure Cost Management export
  • 20-minute call to understand your workload
  • One-page note: 3 biggest leaks, with rough monthly value
  • No access to your account needed
Get my free cloud bill review

Step 3

Savings implementation

Fixed quote

I make the changes from the audit, with your approval on each one.

  • Rightsizing and idle-resource cleanup
  • Savings Plans, Reserved Instances and Azure reservations
  • Storage tiering, gp2 → gp3, Graviton and Spot where safe
  • Tagging, budgets and cost alerts

Fixed quote, or 20–25% of the first 6 months of verified savings.

Book a call

Questions people ask

Savings Plans or Reserved Instances: which should we buy?

For most startups, Compute Savings Plans cover EC2, Fargate and Lambda with the most flexibility, so they are usually the first choice. Reserved Instances still matter for RDS, ElastiCache, OpenSearch and Redshift, which Savings Plans do not cover. The audit sizes both against your stable baseline after rightsizing.

Is moving to Graviton safe?

For most containerised and interpreted workloads (Node.js, Python, Java, Go) it is a rebuild for arm64 and a test run. Native dependencies and some third-party agents need checking first; the audit flags which services are good candidates and which are not.

Why is our NAT Gateway so expensive?

NAT Gateways charge per GB processed. Traffic to S3, ECR, DynamoDB and other AWS services often goes through NAT when it does not need to. Gateway and interface VPC endpoints, and keeping traffic in one AZ, usually cut it significantly.

What IAM access do you need for the audit?

A read-only role in each account: the AWS managed ReadOnlyAccess policy plus billing view (or a tighter custom policy I send you). It cannot change, create or delete anything, and you can delete the role when the audit ends.

We use AWS Organizations with several accounts. Is that a problem?

No. The audit works from the management (payer) account for billing data and a read-only role in each member account for resources.

Find out what your cloud bill is hiding

Five fields, one minute. You will get a reply within one working day, and a link to book your 20-minute call straight away.

Reply within one working day. Your details are used only to answer you (privacy policy).