The T instance families, namely T2, T3, T3a, and T4g are burstable. They are designed for low to moderate CPU utilization with intermittent heavy spikes. At times of low CPU utilization below a AWS-defined baseline, your instance collects credits that later can be spent on times of high CU utilization.
A credit gives you one minute of 100% CPU. The credits earned per hour are specified here: T2, T3 and T3a, T4g.
A burstable instance has a setting called "Credit specification" with the two options "standard" and "unlimited". This setting decides what happens if your instance runs out of credits: in standard mode, the CPU is gradually throttled to the baseline; in unlimited mode, the missing credits cost you surplus charges. See also the description of the standard mode and unlimited mode and the EC2 pricing page.
The surplus charge is 0.05 $ per hour and vCPU. So, a maxed out instance costs you (vCPUs - (credits earned per hour / 60)) * 0.05 per hour.
At the time of writing (2021-08-30), this gives for Linux (L) and Windows (W):
Type | Base $/hr (L) | Base $/hr (W) | Max $/hr (L) | Max $/hr (W) |
---|---|---|---|---|
t2.nano | 0.00670 | 0.00900 | 0.05420 | 0.05650 |
t2.micro | 0.01340 | 0.01800 | 0.05840 | 0.06300 |
t2.small | 0.02680 | 0.03600 | 0.06680 | 0.07600 |
t2.medium | 0.05360 | 0.07160 | 0.13360 | 0.15160 |
t2.large | 0.10720 | 0.13520 | 0.17720 | 0.20520 |
t2.xlarge | 0.21440 | 0.25540 | 0.36940 | 0.41040 |
t2.2xlarge | 0.42880 | 0.49080 | 0.76130 | 0.82330 |
t3.nano | 0.00600 | 0.01060 | 0.10100 | 0.10560 |
t3.micro | 0.01200 | 0.02120 | 0.10200 | 0.11120 |
t3.small | 0.02400 | 0.04240 | 0.10400 | 0.12240 |
t3.medium | 0.04800 | 0.06640 | 0.12800 | 0.14640 |
t3.large | 0.09600 | 0.12360 | 0.16600 | 0.19360 |
t3.xlarge | 0.19200 | 0.26560 | 0.31200 | 0.38560 |
t3.2xlarge | 0.38400 | 0.53120 | 0.62400 | 0.77120 |
t3a.nano | 0.00540 | 0.01000 | 0.10040 | 0.10500 |
t3a.micro | 0.01080 | 0.02000 | 0.10080 | 0.11000 |
t3a.small | 0.02160 | 0.04000 | 0.10160 | 0.12000 |
t3a.medium | 0.04320 | 0.06160 | 0.12320 | 0.14160 |
t3a.large | 0.08640 | 0.11400 | 0.15640 | 0.18400 |
t3a.xlarge | 0.17280 | 0.24640 | 0.29280 | 0.36640 |
t3a.2xlarge | 0.34560 | 0.49280 | 0.58560 | 0.73280 |
t4g.nano | 0.00480 | 0.07480 | ||
t4g.micro | 0.00960 | 0.08960 | ||
t4g.small | 0.01920 | 0.03920 | ||
t4g.medium | 0.03840 | 0.11840 | ||
t4g.large | 0.07680 | 0.16680 | ||
t4g.xlarge | 0.15360 | 0.19360 | ||
t4g.2xlarge | 0.30720 | 0.70220 |
As you can see, especially small instances cost you multiple times the base price if maxed out, while bigger instances get a little more expensive than their C5a counterparts. However, C5a instances give you 3.3 GHz per CPU, while T3a for example gives you only 2.2 GHz.
TL;DR: If you need a lot of CPU continuously, don't use burstable instances. Use one of the C families instead!