DevOps Peach

FinOps Foundations · Optimize Usage and Cost · Lesson 1 of 4

Usage Optimization: Rightsize, Clean Up, Schedule

Usage optimisation removes waste: delete idle and orphaned resources, rightsize over-provisioned instances from utilisation data, schedule non-production to run only in working hours, and modernise to newer or managed options.

Practice interactively →

Usage optimisation means paying for less: fewer, smaller or shorter-running resources that still meet the need. It is driven by engineering and is usually where the first and largest savings are.

flowchart LR
  IDLE["1. Remove idle and orphaned"] --> RS["2. Rightsize from metrics"]
  RS --> SCH["3. Schedule non-production"]
  SCH --> MOD["4. Modernise: newer types, ARM, serverless"]
  MOD --> TRK["Track savings realised"]
  %% step IDLE: Unattached volumes, old snapshots, idle load balancers, unused IPs: pure waste and low risk to remove.
  %% step RS: Use CPU, memory and network over two to four weeks to pick a smaller size or a better family.
  %% step SCH: Dev and test running 50 of 168 hours a week saves about 70% of their compute.
  %% step MOD: Newer generations and ARM (Graviton, Ampere, Axion) often give better price-performance.
  %% step TRK: Count only savings that were implemented, and check they stayed implemented.

Typical waste

Waste How to find it
Unattached disks (EBS volumes available) aws ec2 describe-volumes --filters Name=status,Values=available
Unused public IPv4 addresses (billed hourly) aws ec2 describe-addresses with no association
Old snapshots and images Snapshots older than the retention policy
Idle load balancers, NAT gateways, databases Near-zero requests or connections for weeks
Forgotten test environments No owner tag, no deploys in months

Rightsizing

Scheduling

Non-production rarely needs nights and weekends. Stop instances, scale node groups or databases to zero outside working hours with Instance Scheduler, Auto Scaling schedules, Azure Automation or simple pipelines. Running 10 hours × 5 days = 50 of 168 hours saves roughly 70%.

Make it a workflow

Recommendations → ticket for the owning team → change → verify savings. FinOps tracks savings identified vs realised; unactioned recommendations are the norm without ownership.

Traps: deleting "idle" resources without asking the owner (keep a snapshot, tag before delete, then delete); rightsizing on average CPU only; and one-time clean-ups with no policy, so waste grows back.

Practice interactively →