carloscastilla - Fotolia
Amazon EC2 T2 instances were designed to minimize costs for applications with limited demands, except for occasional spikes of high-intensity CPU activity. While the concept was simple, however, the implementation and usage model were not.
Some AWS users aren't sure how and when to use burstable instances; they might also get frustrated by the unexpected overage charges that can result from misuse of these VMs. Nevertheless, burstable instances have their place, and AWS continues to update its lineup. Let's examine T3 instances and their billing model to see if they're a match for your workloads.
T3 vs. T2
T3 instances use Intel's Xeon Platinum 8000 series scalable processors, which are capable of a Turbo CPU clock speed up to 3.1 GHz. That's a 30% improvement in price performance from the previous-generation T2 instance. The processors also support Intel's AVX-512 vector instructions that can double floating point performance for specific workloads.
The smaller-sized T3 instances offer twice the number of virtual CPUs (vCPUs) as their counterparts in the T2 series. T3 instances are built on AWS' Nitro system and can support network speeds of up to 5 Gbps for all instance sizes, along with Elastic Block Store bursting ranges from 1.5 Gbps to 2.05 Gbps. T3 instances are also 10% cheaper than the T2 Linux instances.
AWS plans to add a T3a variant based on AMD's EPYC 7000 series processor, which will provide a turbo boost on all cores up to 2.5 GHz. AWS said the T3a will also provide additional 10% cost reduction but hasn't released pricing details yet.
Unlike T2, which was designed for relatively short performance bursts, T3 instances can sustain performance for high CPU workloads for a longer duration without the need to throttle. Of course, that added flexibility could lead to further sticker shock if the T3 isn't used properly.
What to know about the bursting model
Due to its complicated pricing, burstable instances only make financial sense for the right workload. AWS designed the T series instances for applications with predictable traffic but unpredictable, short-term spikes in demand, such as low-traffic websites, caching servers, small databases or test/dev machines.
In contrast, applications that consistently keep CPU utilization above an instance's baseline level -- for example, a maximum of 40% for xlarge and 2xlarge instances -- should consider a conventional on-demand alternative, such as the M4, M5, C4 or C5 series.
AWS uses a credit system to determine instance boost time and assumes that instances will seldom run a vCPU at maximum capacity. A CPU credit is defined as one vCPU running at 100% utilization for one minute. Users can calculate other combinations of vCPUs, utilization and time to come up with various credit amounts. For example, two vCPUs running at 20% utilization for five minutes would yield two CPU credits.
Burstable instances earn CPU credits per hour based on their size and continuously earn and spend credits based on their state. So, to build on the previous example, if a t3.nano instance accrues six credits per hour and is idle for 55 minutes after those five minutes of activity, it would earn six credits, spend two and leave a four-credit balance. Each instance size carries a maximum number of credits that can be accrued in a day, based on the number of CPU credits that can be earned in an hour. For example, the t3.nano can accrue up to 144 credits.
Baseline performance is defined as the credits accrued per hour, divided by the maximum credits used if the instance ran at full utilization for the hour. The more CPU credits accrued, the longer an instance can burst above its baseline without being throttled or incurring overage charges.
Burstable instance pricing breakdown
Burstable instances can operate in one of two modes: standard or unlimited. In standard mode, an instance receives 30 credits per vCPU at launch, which enables it to burst before it accrues any credits. If the instance credits dwindle, the instance will gradually throttle down to a baseline level where it no longer uses credits to avoid a sharp performance drop-off.
Unlimited mode instances don't start with a credit balance, but they can burst above baseline for as long as needed without throttling. But an instance in unlimited mode will be charged a flat rate -- $0.05 per vCPU-Hour for Linux, Red Hat Enterprise Linux and SUSE Linux Enterprise Server or $0.096 per vCPU-Hour for Windows and Windows with SQL Web -- if it continues to run above its baseline speed with no credit balance.
That flat rate is significantly higher than the baseline rate. For example, it's 20% higher for the t3.xlarge, and smaller sizes accrue even larger price discrepancies.
By default, T2 instances launch in standard mode, and T3 instances launch in unlimited mode. However, users can switch between modes via the AWS console.