Size from measurements, not from the old server
On-premise servers are usually bought for peak load five years out. Lifting that specification into EC2 means paying monthly for headroom you never use. Measure real CPU, memory and IO first.
The costs people forget
- Data transfer out of the region
- Snapshot storage that accumulates silently
- Non-production environments left running overnight
Getting the bill under control
- Tag everything from day one, so cost reports mean something
- Move steady workloads onto reserved or savings-plan pricing once usage is known
- Schedule non-production environments to stop outside business hours
Done properly, most migrations we run land below the equivalent on-premise refresh cost. Done without measurement, they land above it.