A lot of general-purpose applications have low, or even no, CPU utilization followed by occasional periods of high CPU activity. In other words, CPU usage bursts above a low baseline only during periods of intense activity.
Let’s look at a couple examples, like a continuous integration server or a build server. There are lots of short bursts while the build is going on, but the rest of the time the server’s idle. Average CPU usage is low, but when the build is running, you’re using a lot of CPU.
Another example is a virtual desktop application or a line-of-business application. These have longer bursts during business hours, but there’s not much going on evenings and weekends.
The T3 Family
Amazon’s T family of instances are called “burstable instances” because they’re optimized for this exact type of workload. They offer one of the most cost-effective ways to run your applications. After all, why should you pay more expensive, fixed CPU prices when you can get the same performance at a lower cost with burstable T instances? Let’s focus on the T3 family, Amazon’s latest offering for burstable workloads.
The T3 and the T3a
Amazon offers T3 instances in two flavors: the T3, which is available now, and the T3a, which will be available soon. The differences between the two are the processors and the costs.
T3 instances feature the Intel Xeon Platinum 8000 series (Skylake-SP) processor with a sustained all core turbo CPU clock speed of up to 3.1 GHz. T3a instances feature the AMD EPYC 7000 series processor with an all core turbo CPU clock speed of up to 2.5 GHz.
T3 instances are 10% cheaper than the older T2 instances and offer up to a 30% better price to performance ratio. T3a instances offer an additional 10% cost savings over T3 instances.
(Other than processors and cost, the T3 and T3a features are identical, so from now on, when we say T3, we’ll be talking about both T3 and T3a.)
T3 has a network performance of up to 5Gbps at burst. T3 uses only EBS storage, but is EBS optimized and EBS performance on the smaller sizes is up to 1.5 Gbps. On larger sizes, it’s 2.05 Gbps.
T3 comes in a wide range of sizes. If you compare it to the M5 family, you’ll see that, with T3, you have more options on the smaller end of the scale. The smallest T3 is the t3.micro and the largest is the t3.2xlarge.
Traditional EC2 instance types provide fixed performance, but the T3 family provides a baseline level of CPU performance with the ability to burst above that baseline level.
Baseline performance is the CPU performance that the workload will get at the base price of an instance. When workloads run below baseline, the instance will earn CPU credits. A CPU credit provides the performance of a full vCPU core for one minute. The instance uses credits when it consumes CPU resources greater than the baseline performance. The number of earned CPU credits varies depending on the T3 instance size. Those earned credits can be used to burst above baseline.
Unlimited and Standard Modes
If you’ve used the older T2 family, you’ll know that it operates in Standard Mode. This means that if you exhaust your CPU credits while bursting above baseline, your performance is gradually throttled back to baseline until you can earn more CPU credits.
T3 is different. By default, it operates in Unlimited mode. In unlimited mode, if an instance runs out of credits, it can continue to burst by accumulating a surplus credit charge. The instance can consume a maximum number of surplus credits, based on the instance size, without being charged. The t3.micro, for example, can use up to 144 surplus credits. Any surplus credits above that maximum that are consumed are charged at $0.05 per vCPU hour for Linux/RHEL/SUSE. For Windows, the cost is $0.096 per vCPU hour. If the instance performs at baseline, it’s covered by the list price. For example, a t3.large has a baseline of 30%. If it runs at 40% you pay for the 10% above baseline at $0.05 per hour (for Linux).
Unlimited mode allows the instance to burst for as long as it needs to. The instance can pay down the consumed credits within 24 hours without being charged at all if its average CPU utilization over a rolling 24 hour period is at or below baseline. If the average CPU utilization is above baseline, you have to pay for those credits.
If you want to operate a T3 instance in Standard mode you need to deliberately make the switch either through the console or the CLI. Another point of difference between T2 and T3 is that T3 doesn’t use Launch Credits because, in Unlimited Mode, it can burst for as long as it needs to right from startup.
Let’s take a look at what the smallest and the largest T3 sizes cost — and how they earn CPU credits. (Prices are for Linux instances in US-West Oregon.)
|Size||vCPU||Performance Baseline||CPU credits earned/hr||On-Demand price/hr||1-year Standard RI Effective hourly rate||3-year Standard RI Effective hourly rate|
(Note that AWS hasn’t released T3a pricing yet, but the EC2 pricing page says they’ll offer 10% cost savings.)
For example, a t3.2xlarge instance can earn up to 4608 credits per day. If an instance is idle the entire time, it has accumulated enough credits to burst at 100% CPU across all 8 vCPUs for about 10 hours without paying extra.
The surplus credit pricing of 5 cents per vCPU hour is the same across all the pricing models, including Spot. If you plan to run the instance as a Spot for a very short period of time, perhaps less than an hour, and you burst the CPU above baseline, T3 in Unlimited mode may not be the best choice. If the instance is turned off before it can earn any credit, you will be billed for the surplus CPU credits and T3 can turn out to be more expensive than if you ran the same workload on an M5 or C5 instance.
When is T3 Cheaper Than M5?
If you’re in a situation where it seems like a toss up between T3 and M5, the rule of thumb is that the total price you’d pay for a T3 base instance plus any surplus credit will still be lower than if you ran the same workload on an M5 equal in size. That’s the break even price.
You can actually calculate this. Here’s an example that compares a t3.large to an m5.large, both of which have 2 vCPUs. (Price is based on us-east-1 and Linux OS.)
|Formula Pieces||vCPU||t3.large price/hr||m5.large price/hr||Difference||t3.large baseline %||Charge per vCPU hr||Charge per vCPU minute||Add’l min available||Add’l CPU % available||Break even %|
If the average CPU usage on a t3.large instance is always less than 42.5%, then it’s cheaper than the M5. For a t3.xlarge, the breakeven point is 52.5%. For a t3.2xlarge, it’s 52.5%.
Amazon Web Services has analyzed a lot of different workloads and they’ve found that many of them fit the burstable pattern. This is even true of some databases, which is why the RDS service supports some members of the T family. Take a good look at your workloads. You might be surprised at how many potential candidates you have for T3 instances.
Better yet, use a cloud management platform like Cloudability. Cloudability’s Rightsizing feature does the analysis for you and will let you know where you can save money by switching to T3. Sign up for a free trial and find out for yourself!
Finding the right instance is only the beginning
EC2 Rightsizing is part of the Optimize phase of FinOps, a cloud operating model that brings IT, Finance and Business together to master the unit economics of cloud. Using FinOps, you’ll drive innovation and increase your cloud usage without increasing your bill. Check out our FinOps page to learn more!