Mapping the ACSC Essential Eight onto real AWS services
What the four cloud-relevant strategies actually require.
Read articleEvery AWS cost engagement we start looks different and produces roughly the same list. This is that list, in the order we work through it, with what goes wrong at each step.
A caveat worth stating up front: the percentages below overlap. Rightsizing reduces the base that commitments then apply to. You cannot add them up and expect the total.
Do all of these before touching anything that could affect availability. They buy the credibility for the harder conversations later.
Unattached EBS volumes, unassociated Elastic IPs, idle load balancers, old snapshots, NAT gateways in subnets nothing uses any more. Every estate has these; most have more than anyone expects.
The trap: deleting a snapshot that turns out to be the only copy of something. Check retention obligations before, not after — in regulated sectors this is not recoverable.
Development and test environments running 168 hours a week to serve about 45. Scheduled shutdown typically saves 60–70% of non-production compute.
The trap: a schedule that engineers work around because the restart is slow or unreliable. Make it fast and self-serve or it will be disabled within a month — and you will not be told.
Distinct from the above: whole environments cloned for a migration test, a proof of concept or an acquisition and never torn down. We have found several running production-sized infrastructure for over a year.
The trap: assuming nobody is using it. Check CloudTrail and flow logs for thirty days first. Occasionally something quietly depends on it.
CloudWatch Logs retention set to Never Expire is the default failure mode. Debug logs from 2019 cost real money. So do high-cardinality custom metrics nobody queries.
The trap: your retention obligation is probably shorter than you think for application logs and longer than you think for audit logs. They are different policies and should be different log groups.
Against p95 over at least thirty days, not against the peak from a load test eighteen months ago. Include memory, which Compute Optimizer needs the agent to see and which is the binding constraint more often than CPU.
The trap: rightsizing something that is over-provisioned for a reason — a quarterly batch run, a failover capacity requirement, a licensing constraint tied to core count. Ask before you resize.
Typically 20–40% better price-performance on supported workloads. Managed services — RDS, ElastiCache, OpenSearch — are often a configuration change rather than a project.
The trap: assuming your container images are multi-arch. Check the build pipeline first, and check any vendored binaries and agents.
S3 Intelligent-Tiering where access is unpredictable, explicit lifecycle policies where it is not. EBS gp2 to gp3 is almost always worth it and is a live change.
The trap: Intelligent-Tiering has a per-object monitoring charge. On buckets with hundreds of millions of small objects it can cost more than it saves. Model it.
Over-provisioned RDS instances, Multi-AZ on environments that do not need it, and self-managed databases on EC2 that would be cheaper and safer as managed services.
The trap: removing Multi-AZ from something the business believes is highly available. That is an availability decision, not a cost decision, and it needs the business to make it in writing.
Only now. This is the step most organisations do first, and it is why so many are still paying for a baseline they no longer run.
Target 75–85% coverage of steady-state usage. Compute Savings Plans for flexibility, EC2 Instance Savings Plans where the workload is genuinely stable, reservations for RDS, ElastiCache and OpenSearch.
The trap: the expiry cliff. Buying everything at once means renewing everything at once, which hands your future self a single high-stakes decision. Ladder purchases across quarters.
Cross-AZ chatter between services that could be zone-aware, NAT gateway egress that should be a VPC endpoint, and inter-region replication nobody has reviewed since it was configured.
The trap: making services zone-aware in a way that reduces resilience. There is a genuine trade-off here and it should be a deliberate decision.
Frequently 5–10% of a total bill and rarely examined by anyone. Log ingestion, metric cardinality, trace sampling rates, and third-party platform pricing that scales on a dimension you are not watching.
The trap: cutting sampling to a level where you can no longer investigate an incident. Reduce retention before you reduce fidelity.
We list it last because it is where most people stop reading, and first in every engagement we actually run. Enforced tag policy, account structure aligned to the business, showback to engineering leads, anomaly detection routed to the team that caused it.
Items 1 through 11 are a one-off saving. Item 12 is what stops you needing them again in eighteen months.
A share-of-savings model pays a provider more for finding waste slowly, rewards leaving some behind for next quarter, and offers no incentive whatsoever to do item 12 — because attribution reduces next year's fee.
It is attractive because it appears risk-free. The risk is real; it is simply deferred and structural. We charge a fixed fee, and we would suggest you ask any provider to explain how their model rewards prevention.