Everything in your account is sized for a peak that never comes, because at provision time nobody knows the load, doubling is free-feeling, and after an incident someone doubles again "just in case" and nobody ever walks it back. That's how fleets end up averaging 15% utilization.

But rightsizing has a social failure mode that matters more than the technical one: the first resize that causes an incident ends the program. One latency regression traced to a downsize and every future recommendation gets vetoed by the team that remembers. So the job isn't "shrink things"; it's "shrink things with evidence and rollback, in risk order." Here's that order.

Move 1: gp2 to gp3, the free money with one asterisk

Migrating EBS volumes from gp2 to gp3 cuts the per-GB price about 20% ($0.10 to $0.08 per GB-month) and it's an in-place, online modification: no downtime, no detach, no restart. For most volumes it's strictly better, and it's the right first move for a rightsizing program because it builds trust: visible savings, zero incidents.

The asterisk is performance baselines. gp3 gives a flat 3,000 IOPS and 125 MB/s regardless of size; gp2 scaled with size (3 IOPS per GB, so volumes over 1 TB had a higher baseline than gp3's default). Before migrating anything over 1 TB, or anything with known IOPS appetite, check its actual consumption (VolumeReadOps + VolumeWriteOps over two weeks) and provision gp3 IOPS/throughput to match. Provisioned extras cost money but the total still usually undercuts gp2. Two operational notes: a volume modification enters a cooldown (about six hours) before the next change, and each migration is per-volume, so script it, don't click it.