The smallest VM is not always the right way to run a workload.
Excloud has two main compute families for ordinary CPU workloads: t1a and m1a. Both run on AMD EPYC and attach EBS NVMe volumes. The difference is how you should think about CPU behavior.
Use t1a when the workload is bursty
The t1a class is for workloads that mostly wait and occasionally spike.
Good fits:
- Small web apps.
- Dev and staging boxes.
- Lightweight APIs.
- Cron workers.
- Bots and control-plane utilities.
- Low-traffic internal tools.
A t1a.micro gives you 2 vCPU and 1 GiB RAM at the smallest hourly rate. That is enough for a surprising amount of software if CPU is not pegged all day.
Use m1a when CPU needs to stay predictable
The m1a class is dedicated CPU. Pick it when sustained performance matters.
Good fits:
- Databases.
- Busy API servers.
- Build workers.
- Queue processors.
- Kubernetes workers with steady load.
- Anything that should not depend on burst behavior.
If the process is expected to sit at high CPU for long windows, m1a is usually the honest choice.
The noisy-workload test
Ask one question: if this workload gets noisy, who pays?
If a dev box gets slow during a compile, the answer is usually โone engineer waits.โ A burstable instance is fine.
If a database gets slow during a customer checkout, the answer is โusers wait.โ Use dedicated CPU.
Cost examples
For a small service, start with:
exc compute create \
--name web-1 \
--instance_type t1a.micro \
--root_volume_size_gib 20 \
--wait
Move up when memory, CPU, or latency tells you to. A common pattern is:
t1a.microort1a.smallfor dev/test.t1a.mediumfor a small production web node.m1a.largefor a production app node that sees steady traffic.m1a.xlargeand above for databases, workers, and sustained services.
The rule of thumb
Choose t1a when utilization is spiky and cost matters most. Choose m1a when performance predictability matters most.
The nice part is that the decision is not permanent. Stop, resize, and start again when the workload outgrows the first guess.