Info icon
End of Life Notice: For Trend Cloud One™ - Conformity Customers, Conformity will reach its End of Sale on “July 31st, 2025” and End of Life “July 31st, 2026”. The same capabilities and much more is available in Trend Vision One™ Cloud Risk Management. For details, please refer to Upgrade to Trend Vision One
Use the Knowledge Base AI to help improve your Cloud Posture

EC2 Reserved Instance Coverage

Trend Vision One™ provides continuous assurance that gives peace of mind for your cloud infrastructure, delivering over 1100 automated best practice checks.

Risk Level: Medium (should be achieved)

Ensure that the reservation coverage percentage (i.e. the percentage of instance hours that a reservation covered) available for your Amazon EC2 Reserved Instances (RIs) does not fall below a defined threshold. Reserved Instance coverage tracks the number of running instance hours that are covered by reservations, and can be measured over a daily, monthly, quarterly, or yearly cadence. For example, you can monitor your RI coverage either at an aggregate level (e.g. monthly coverage of your entire Amazon EC2 RI fleet) or at a more granular level of detail (e.g. monthly coverage of Amazon EC2 c5.2xlarge instances running within Asia Pacific – Sydney region). The reservation coverage threshold (percentage) and the period to retrieve data about reservation coverage for, must be defined in the conformity rule settings, on the Trend Cloud One™ – Conformity account console.

This rule can help you with the following compliance standards:

  • CISAWSF
  • APRA
  • MAS
  • NIST4

For further details on compliance standards supported by Conformity, see here.

This rule can help you work with the AWS Well-Architected Framework.

Cost
optimisation

Reserved Instances (RIs) represent a good strategy to cut down on Amazon EC2 costs by taking advantage of AWS billing at a discounted hourly rate. The Reserved Instance coverage report offered by Amazon Cost Management service allows you to discover how much of your overall EC2 instance usage is covered by RIs, so that you can make informed decisions about when to purchase or modify a Reserved Instance to ensure maximum reservation coverage. The Cost Management service provides effective recommendations for which reservations to purchase in order to help you reduce your Amazon EC2 costs.


Audit

To determine if the reservation coverage (percentage) of your Amazon EC2 Reserved Instances fall below your target coverage, perform the following operations:

Using AWS Console

01 Sign in to your Trend Cloud One™ – Conformity account, access EC2 Reserved Instance Coverage conformity rule settings and identify the Amazon EC2 reservation coverage threshold (percentage) defined for the specified period of time, configured for your AWS cloud account.

02 Sign in to the AWS Management Console.

03 Navigate to AWS Cost Management console available at https://console.aws.amazon.com/cost-management/home.

04 In the left navigation panel, under Savings and Commitments and Reservations, choose Coverage Report to access the reservation coverage report provided by Amazon Cost Management service within your AWS cloud account. This report helps you identify opportunities for savings when it comes to Reserved Instances (RIs).

05 On the Coverage report page, in the Report parameters section, perform the following actions:

  1. For Time, click inside the Date range box to open the date/time picker, and choose the time frame to retrieve data about your reservation coverage (daily, monthly, quarterly or yearly) as specified in the conformity rule settings, identified in step no. 1. Once the time frame is selected, choose Apply to show the reservation coverage for that period.
  2. For Service, select EC2-Instances from the dropdown list to display the RI coverage data for Amazon EC2 instances only.
  3. Check the reservation coverage (percentage) value listed under Average coverage (hours), in the Coverage report section. If the reservation coverage (percentage) is lower than the target coverage threshold identified in step no. 1, the reservation coverage for your Amazon EC2 Reserved Instances (RIs) falls below your target coverage, therefore, actions must be taken to ensure maximum coverage.

06 If required, repeat steps no. 1 – 5 determine the Amazon EC2 reservation coverage for other AWS accounts.

Using AWS CLI

01 Sign in to your Trend Cloud One™ – Conformity account, access EC2 Reserved Instance Coverage conformity rule settings and identify the Amazon EC2 reservation coverage threshold (percentage) defined for the specified period of time, configured for your AWS cloud account.

02 Define the AWS service for which to return the reservation coverage, i.e., Amazon EC2. Save the following document to a JSON file named aws-service-filter.json:

{
	"Dimensions": {
		"Key": "SERVICE",
		"Values": [ "Amazon Elastic Compute Cloud - Compute" ]
	}
}

03 Run get-reservation-coverage command (OSX/Linux/UNIX) using the configuration document defined in the previous step as value for the --filter parameter and custom output filters to retrieve the reservation coverage for your Amazon EC2 Reserved Instances (RIs), for the specified period of time. The --time-period parameter value indicates the start and end dates of the period that you want to retrieve data about reservation coverage for, and must match the time frame defined for the target threshold, identified in step no. 1:

aws ce get-reservation-coverage
	--time-period Start=2025-06-01,End=2025-07-01
	--granularity MONTHLY
	--filter file://aws-service-filter.json
	--query 'CoveragesByTime[*].Total.CoverageHours.CoverageHoursPercentage'

04 The command output should return the requested reservation coverage (percentage):

[
	"70"
]

If the reservation coverage (percentage) value returned by the get-reservation-coverage command output is lower than the target coverage threshold identified in step no. 1, the reservation coverage for your Amazon EC2 Reserved Instances (RIs) falls below your target coverage, therefore, actions must be taken to ensure maximum coverage.

05 If required, repeat steps no. 1 – 4 determine the Amazon EC2 reservation coverage for other AWS accounts.

Remediation / Resolution

To ensure maximum reservation coverage for your Amazon EC2 Reserved Instances (RIs), follow the context-aware RI purchase recommendations provided by AWS Cost Management service to help you reduce your AWS costs by performing the following operations:

Using AWS Console

01 Sign in to the AWS Management Console.

02 Navigate to AWS Cost Management console available at https://console.aws.amazon.com/cost-management/home.

03 In the left navigation panel, under Savings and Commitments and Reservations, choose Recommendations to access the Reserved Instance (RI) purchase recommendations provided by AWS Cost Management. These recommendations are based on your past usage and indicate opportunities to maximize your cost savings as compared to On-Demand usage.

04 On the Recommendations page, in the Recommendation parameters section, perform the following actions:

  1. For Service choose Elastic Compute Cloud (EC2) to show purchase recommendations for Amazon EC2 instances only.
  2. For Term, select the RI term that you want to use.
  3. For Payment option, choose the best purchase option for you.
  4. For Offering class, select the appropriate RI class for your RI purchases.
  5. For Based on the past, select the number of previous days that you want AWS to consider when it calculates your recommendations.

05 Once all the required parameters are provided, you can see all the Reserved Instance (RI) purchase recommendations made by AWS Cost Management service in the Recommendations section. AWS Cost Management recommends the smallest size instance available in an instance family. This makes it easier to purchase a size-flexible Reserved Instances. The service also shows the equal number of normalized units so that you can purchase any instance size that you want. For example, your RI purchase recommendation would be for c4.large because that is the smallest size instance in the C4 instance family.

06 To adopt the RI recommendations provided by AWS Cost Management service in the previous step and purchase new EC2 Reserved Instances (RIs), navigate to Amazon EC2 console available at https://console.aws.amazon.com/ec2.

07 In the left navigation panel, under Instances, choose Reserved Instances.

08 Choose Purchase Reserved Instances and specify the reservation offering details based on the Reserved Instance purchase recommendations provided by AWS in step no 5:

  1. For Platform, select the Operating System (OS) platform (e.g., Linux/UNIX) used by your Amazon EC2 Reserved Instance(s).
  2. For Tenancy, select the tenancy used by the selected Reserved Instance (e.g., Default).
  3. For Offering class, choose the Reserved Instance offering class provided in the purchase recommendation.
  4. For Instance type, choose the instance type provided in the recommendation (e.g., t3.xlarge).
  5. For Term, choose the length of time for the new reservation.
  6. For Payment option, select the payment type that you want to use for the new reservation (e.g., No upfront).
  7. Choose Search to seek for Amazon EC2 Reserved Instances that match the provided criteria.
  8. Once the search results are returned, choose the preferred offering, type the required quantity in the Desired quantity box, and choose Add to cart.
  9. Choose View cart to view your cart item(s) before purchasing the selected RI offering. IMPORTANT: Verify the shopping cart details before the purchase in order to make sure that the parameters listed on this page are correct.
  10. Choose Order all to purchase the selected Amazon EC2 Reserved Instance(s). Your RI(s) order may take a few minutes to complete.

09 If required, repeat step no. 8 to purchase more Amazon EC2 Reserved Instances as specified in the RI purchase recommendations list provided by AWS Cost Management.

10 Repeat steps no. 1 – 9 to perform the Remediation process for other AWS accounts.

Using AWS CLI

01 Run get-reservation-purchase-recommendation command (OSX/Linux/UNIX) with custom output filters to get recommendations for which Amazon EC2 Reserved Instances (RIs) to purchase. These recommendations are based on your past usage and indicate opportunities to maximize your cost savings as compared to On-Demand usage. The following command example retrieves purchase recommendations for All upfront EC2 instances with 1-year term, based on the last 30 days of Amazon EC2 instance usage:

aws ce get-reservation-purchase-recommendation
	--service "Amazon Elastic Compute Cloud - Compute"
	--lookback-period-in-days THIRTY_DAYS
	--term-in-years ONE_YEAR
	--payment-option ALL_UPFRONT
	--service-specification EC2Specification={OfferingClass=STANDARD}
	--query 'Recommendations[*].RecommendationDetails[]'

02 The command output should return the Amazon EC2 RI purchase recommendation(s) provided by AWS Cost Management service for your AWS account. AWS recommends the smallest size instance in an instance family. This makes it easier to purchase a size-flexible Reserved Instance. For example, the following command output describes two purchase recommendations, one for c4.large EC2 instances and one for t2.nano instances:

[
	{
		"AverageUtilization": "100.0000000000",
		"RecurringStandardMonthlyCost": "0.0000000000",
		"MinimumNumberOfInstancesUsedPerHour": "2.0000000000",
		"InstanceDetails": {
			"EC2InstanceDetails": {
				"Family": "c4",
				"SizeFlexEligible": true,
				"Region": "Asia Pacific (Sydney)",
				"CurrentGeneration": true,
				"Platform": "Linux/UNIX",
				"Tenancy": "Shared",
				"InstanceType": "c4.large"
			}
		},
		"EstimatedMonthlySavingsAmount": "47.9386667800",
		"AverageNumberOfInstancesUsedPerHour": "2.0000000000",
		"EstimatedBreakEvenInMonths": "7.0568700706",
		"CurrencyCode": "USD",
		"EstimatedMonthlySavingsPercentage": "41.0000",
		"UpfrontCost": "936.0000000000",
		"MaximumNormalizedUnitsUsedPerHour": "1.0000000000",
		"MaximumNumberOfInstancesUsedPerHour": "2.0000000000",
		"RecommendedNumberOfInstancesToPurchase": "2",
		"EstimatedMonthlyOnDemandCost": "74.2720000000",
		"EstimatedReservationCostForLookbackPeriod": "11.1780820800",
		"RecommendedNormalizedUnitsToPurchase": "1.0",
		"AverageNormalizedUnitsUsedPerHour": "1.0000000000",
		"AccountId": "123456789012",
		"MinimumNormalizedUnitsUsedPerHour": "1.0000000000"
	},
	{
		"AverageUtilization": "99.8611111111",
		"RecurringStandardMonthlyCost": "0.0000000000",
		"MinimumNumberOfInstancesUsedPerHour": "2.0000000000",
		"InstanceDetails": {
			"EC2InstanceDetails": {
				"Family": "t2",
				"SizeFlexEligible": true,
				"Region": "Asia Pacific (Sydney)",
				"CurrentGeneration": true,
				"Platform": "Linux/UNIX",
				"Tenancy": "Shared",
				"InstanceType": "t2.nano"
			}
		},
		"EstimatedMonthlySavingsAmount": "15.9061224889",
		"AverageNumberOfInstancesUsedPerHour": "2.0000000000",
		"EstimatedBreakEvenInMonths": "7.5165383418",
		"CurrencyCode": "USD",
		"EstimatedMonthlySavingsPercentage": "37.0000",
		"UpfrontCost": "320.0000000000",
		"MaximumNormalizedUnitsUsedPerHour": "2.0000000000",
		"MaximumNumberOfInstancesUsedPerHour": "2.0000000000",
		"RecommendedNumberOfInstancesToPurchase": "2",
		"EstimatedMonthlyOnDemandCost": "42.5727888889",
		"EstimatedReservationCostForLookbackPeriod": "26.3013696000",
		"RecommendedNormalizedUnitsToPurchase": "2.0",
		"AverageNormalizedUnitsUsedPerHour": "1.9972222222",
		"AccountId": "123456789012",
		"MinimumNormalizedUnitsUsedPerHour": "0.0000000000"
	}
]

03 Run describe-reserved-instances-offerings command (OSX/Linux/UNIX) to retrieve the pricing details and information about the available Amazon EC2 RI offerings, based on the RI purchase recommendations provided by AWS Cost Management in the previous step:

aws ec2 describe-reserved-instances-offerings
	--region ap-southeast-2
	--instance-type c4.large
	--product-description "Linux/UNIX (Amazon VPC)"
	--instance-tenancy default
	--offering-type "all upfront"
	--min-duration 2592000
	--max-duration 31536000
	--no-include-marketplace

04 The command output should return the requested RI offering information (including the Reserved Instance offering ID):

{
	"ReservedInstancesOfferings": [
		{
			"OfferingClass": "standard",
			"Marketplace": false,
			"FixedPrice": 34.0,
			"CurrencyCode": "USD",
			"PricingDetails": [],
			"UsagePrice": 0.0,
			"RecurringCharges": [
				{
					"Amount": 0.0,
					"Frequency": "Hourly"
				}
			],
			"OfferingType": "All Upfront",
			"ProductDescription": "Linux/UNIX",
			"Scope": "Region",
			"Duration": 31536000,
			"InstanceTenancy": "default",
			"ReservedInstancesOfferingId": "1234abcd-1234-abcd-1234-abcd1234abcd",
			"InstanceType": "c4.large"
		}
	]
}

05 Run purchase-reserved-instances-offering command (OSX/Linux/UNIX) with the ID of the Reserved Instance (RI) offering that you want to access, to purchase Amazon EC2 Reserved Instances based on the offering information returned in the previous step:

aws ec2 purchase-reserved-instances-offering
	--region ap-southeast-2
	--reserved-instances-offering-id 1234abcd-1234-abcd-1234-abcd1234abcd
	--instance-count 2

06 The command output should return the reservation ID of your new Amazon EC2 Reserved Instances (RIs):

{
	"ReservedInstancesId": "aaaabbbb-aaaa-bbbb-aaaa-aaaabbbbcccc"
}

07 If required, repeat steps no. 3 – 6 to purchase more Amazon EC2 Reserved Instances as specified in the RI purchase recommendations list provided by AWS Cost Management.

08 Repeat step no. 1 – 7 to perform the entire Remediation process for other AWS accounts.

References

Publication date Jun 9, 2016