Amazon's EC2 server types may one day lead to Skynet (who knows?), but for now the T instance types are safe for us humans. Let's dig into what they are and some risks on using them.
Disclaimer: Amazon often updates its server types as technology progresses, so this article is referring to the state of play as of June 23, 2020.
What are the T instance types?
To directly quote the Amazon AWS website, T instance types achieve this:
“General purpose instances provide a balance of compute, memory and networking resources, and can be used for a variety of diverse workloads. These instances are ideal for applications that use these resources in equal proportions such as web servers and code repositories.”
What they are saying here is that a T instance is for light usage applications. Something like a WordPress site, or a simple ASP.NET application that serves up data from a Database, or maybe even an SVN repository. Mainly something that doesn't require much processing and has low network usage and memory requirements.
What makes T instance types interesting is that they have the characteristic of being able to execute at higher CPU performances when needed. This is Burstable Performance, and how it’s calculated can have a direct effect on the application running on it.
This extra CPU performance is based upon the number of CPU Credits the server has accumulated. The credits continuously assign to the instance based upon its size, accruing more credits when it is idle.
CPU Credits become consumed when a CPU core needs more than 20% utilization. For the most part, if a server keeps to a 20% or below usage, then it will not exhaust its hourly CPU credits, varying based on the T instance type. Based on this you can see these have been designed for light to moderate CPU usage.
I hear you ask, what happens when the CPU credits are exhausted? Now, this is where things start to get interesting. AWS refers to this as an Unlimited mode. The T instance with the Unlimited mode turned on can continue to operate at the CPU levels it needs, however at an extra cost per vCPU per hour. Currently, this is a flat rate of 5 cents per vCPU per hour but check AWS documentation for the exact number. So that adds up, per vCPU per hour! Which means if that server is out of credits and it goes above the 20% baseline, you'll incur a charge.
A t2.2xlarge instance with 8 vCPUs stuck in a 100% CPU grind, will cost you $67.20 a week. At that point, an m5.2xlarge may be a better choice.
For more of an official in-depth explanation, refer to AWS Burst Performance.
Now, not all T instances are made equal.
Let's talk about the T2 instance types. These fall into two basic categories: with or without Unlimited mode turned on. It doesn't explicitly say it on the Amazon website, but in our experience, T2 instances do not have Unlimited mode turned on by default.
Without Unlimited mode turned on, once the CPU credits have been exhausted, the server goes into a shallow resource usage state. Its CPU performance and network performance are lessened considerably until the CPU credits have accumulated again. We've seen this first hand on quite a few occasions now, even causing production outages.
T3 and T3a Details
For T3 and T3a instance types Unlimited mode is turned on by default. This is excellent, as we remove the risk of a production outage, but gain the risk of increased costs.
The main difference we can see between the T3 and T3a instance types is that the T3a uses 2.5 GHz AMD EPYC 7000 series processors, while the T3 uses the Intel Xeon Platinum 8000 series (Skylake-SP) processor. Amazon states that the T3a instances are 10% cheaper than “comparable” instance types.
So which one should you use, T3 vs T3a? Unfortunately the answer is always ‘it depends.' If your application doesn’t require a specific processor try the cheaper one first. Bench marking and analyzing performance is the best approach, it can be a deep rabbit hole though. Burst performance is great when your application requires that, but if the traffic is sustained then a M instance may be a better choice.
T1 Instance type
We left the T1 instance types for last for a good reason. They are considered legacy. If you have these servers types already, we would recommend that you upgrade them to the newer T2 instance types. It is quite common for these more modern generation server instances to be cheaper. The Aimably Reduce Analytics Engine will also identify these older T1 instance types making it even easier for you to find them and convert them.
Knowing When to Switch
Figuring out which EC2 server instance type to use is a complex and daunting task, but well worth the effort in the long run. By using Aimably Reduce you will get recommendations from our analytics engine that can help you make this task just that much easier.
The good news is that Aimably now offers comprehensive advisory services to help you navi