In this article, we’ll understand how AWS applies EC2 instance savings plan discounts and how you can implement it in your AWS account.
Each AWS EC2 instance has an identifier that consists of two parts separated by a period. <instance_family>.<instance_size>
. This will help you in planning your EC2 instance savings plan purchases better. Please see the scenarios in below table to understand when the instance families match.
Instance 1 | Instance 2 | Same Family? | Reason |
---|---|---|---|
m6g.large | m6g.large | Yes | Both belong to m6g family |
m6g.large | m6g.2xlarge | Yes | Instance size (2xlarge) does not change family. You can buy instance savings plan and it will get applied easily. |
m6g.large | m7g.large | No | M6 and M7 are different generations. |
m6g.large | m6i.large | No | m6g is Graviton, m6i has Intel processor. Different families |
m6g.large | c6g.large | No | Different processors |
Each EC2 instance type has a normalised unit value. This value reflects its size relative to a base instance size, usually the smallest instance type in the same family. For example, m6g.medium
is the smallest instance in the family m6g
. So, it is assigned a normalised unit. This way, m6g.large
will be 2 normalised units and m6g.xlarge
will be 4 normalised units.
When you buy an EC2 Instance Savings Plan for a specific instance type (e.g., m6g.xlarge
), AWS applies the discount across any combination of instances within the same family. If you have more normalised units in your account, the extra units will run on-demand. If you have fewer normalised units in your account than number of units for which the savings plan is bought, you’ll have underutilisation and will still pay for unused capacity (because you committed)
This flexibility allows you to change your EC2 instance sizes and still benefit from the savings plan.
Lets say we buy below EC2 Instance Savings Plan: