EC2 instance names look like a code, and they are. m6i.2xlarge breaks down as family m, generation 6, processor i for Intel, size 2xlarge. Once you can read that, the catalogue stops being intimidating.
The families that matter
| Family | Balance | Typical use |
|---|---|---|
| T | Burstable | Dev boxes, low-traffic services, anything mostly idle |
| M | General purpose | Application servers, mid-size databases |
| C | Compute optimised | Encoding, simulation, CPU-bound APIs |
| R | Memory optimised | Caches, in-memory analytics, large databases |
| I and D | Storage optimised | High local IOPS, data-heavy workloads |
| G and P | Accelerated | GPU inference and training |
The burstable trap
T family instances are cheap because they accrue CPU credits while idle and spend them when busy. Run one at sustained high CPU and it either throttles or, in unlimited mode, quietly bills you for the overage.
Use T for development machines and genuinely intermittent services. Use M or C for anything with steady load. A T instance chosen to save money on a busy production service usually costs more once overage and incident time are counted.
Processor suffixes
- i Intel, a AMD, g AWS Graviton (Arm).
- Graviton is typically the best price for performance if your stack runs on Arm. Most interpreted languages and container images do; check native dependencies before committing.
- d adds local NVMe storage, n adds network bandwidth.
Sizing method
Do not start from the instance list. Start from measurements.
- Measure CPU utilisation and memory working set on your current system.
- Check I/O wait. Sustained high I/O wait with idle CPU means storage is your bottleneck, not compute.
- Pick the family that matches the ratio you actually need, then the smallest size that fits with headroom.
- Scale horizontally before vertically where the workload allows it.
How this interacts with your account
Instance families are quota-counted separately, so headroom for general purpose instances does not let you launch GPU instances. If GPU work is the plan, confirm the account’s limits for that family. Our service quotas guide covers how those ceilings behave, and AWS listings state the vCPU tier for each configuration.
When EC2 is the wrong answer
If you want a virtual server with predictable monthly pricing and no capacity planning, EC2 is more machinery than you need. DigitalOcean, Hetzner and Linode are cheaper and simpler for that. See AWS vs DigitalOcean.
Common questions
Can I change instance type later?
Yes. Stop the instance, change the type, start it again. Plan for the downtime or use an autoscaling group.
Is Graviton always cheaper?
Usually better price for performance, provided your workload runs cleanly on Arm. Test before migrating anything with compiled dependencies.