Use the Conformity Knowledge Base AI to help improve your Cloud Posture

ElastiCache Reserved Cache Nodes Expiration

Trend Cloud One™ – Conformity is a continuous assurance tool that provides peace of mind for your cloud infrastructure, delivering over 1000 automated best practice checks.

Risk Level: High (not acceptable risk)

Ensure that your Amazon ElastiCache Reserved Nodes (RNs) are renewed before expiration in order to get a significant discount (depending on the commitment term) on the hourly charges. The renewal process consists of purchasing another Reserved Node so that AWS can keep charging you based on the chosen reservation term. The default threshold for the number of days before expiration when the conformity rule check is performed is 7 (seven) days.

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

Cost
optimisation

With Reserved Nodes (RNs) you can optimize your Amazon ElastiCache costs based on your expected usage. Because Amazon ElastiCache reservations are not renewed automatically, purchasing new Reserved Nodes before expiration will guarantee their billing at a discounted hourly rate.

You can change the default threshold (seven) for the number of days before expiration in your Trend Cloud One™ – Conformity account and set your own value (days) based on your requirements.


Audit

To determine the expiration date for your Amazon ElastiCache Reserved Nodes (RNs), perform the following operations:

Using AWS Console

01 Sign in to the AWS Management Console.

02 Navigate to Amazon ElastiCache console available at https://console.aws.amazon.com/elasticache/.

03 In the main navigation panel, under Resources, choose Reserved nodes.

04 Choose the Reserved Node (RN) that you want to examine and check the value listed in the Remaining days column to determine the remaining duration of the selected reservation. If the selected Amazon ElastiCache Reserved Node will expire in 7 days or less, you must take action and renew the reservation in order to take advantage of the current discounted hourly rate.

05 Repeat step no. 4 to check the expiration date for each ElastiCache Reserved Node (RN) available within the current AWS region.

06 Change the AWS cloud region from the console navigation bar and repeat the Audit process for other regions.

Using AWS CLI

01 Run describe-reserved-cache-nodes command (OSX/Linux/UNIX) with custom query filters to list the identifier (ID) of each purchased ElastiCache Reserved Node available in the selected AWS region:

aws elasticache describe-reserved-cache-nodes
  --region us-east-1
  --output table
  --query 'ReservedCacheNodes[*].ReservedCacheNodeId'

02 The command output should return a table with the requested Reserved Node (RN) IDs:

------------------------------
| DescribeReservedCacheNodes |
+----------------------------+
| cc-production-redis-rn-001 |
| cc-production-redis-rn-002 |
+----------------------------+

03 Run describe-reserved-cache-nodes command (OSX/Linux/UNIX) with the ID of the ElastiCache Reserved Node (RN) that you want to examine as the identifier parameter and custom output filters to describe the date when the RN was purchased and the reservation duration (the commitment term in seconds):

aws elasticache describe-reserved-cache-nodes
  --region us-east-1
  --reserved-cache-node-id cc-production-redis-rn-001
  --query 'ReservedCacheNodes[*].[StartTime,Duration]'

04 The command output the date (timestamp) at which the reservation started and the commitment term in seconds (31536000 for 1 year, 94608000 for 3 years):

[
	"2024-01-14T09:24:23.133000+00:00",
	31536000
]

Check the date/time and the commitment term returned by the describe-reserved-cache-nodes command output for the selected reservation. If the selected Amazon ElastiCache Reserved Node (RN) will expire in 7 days or sooner, you must take action and renew the reservation in order to maintain the current discounted hourly rate.

05 Repeat steps no. 3 and 4 to check the expiration date for each ElastiCache Reserved Node available in the selected AWS region.

06 Change the AWS cloud region by updating the --region command parameter value and repeat steps no. 1 – 5 to perform the Audit process for other AWS regions.

Remediation / Resolution

To renew your Amazon ElastiCache Reserved Nodes (RNs) before their reservation expire, you have to repurchase them using the same configuration attributes (AWS region, node type, and term). To renew your existing ElastiCache RNs in order to avoid On-Demand rates charges when the current reservation expires, perform the following actions:

Using AWS Console

01 Sign in to the AWS Management Console.

02 Navigate to Amazon ElastiCache console available at https://console.aws.amazon.com/elasticache/.

03 In the main navigation panel, under Resources, choose Reserved nodes.

04 Click on the ID (link) of the Amazon ElastiCache Reserved Node that you want to renew and identify the node configuration attributes (i.e. node type, cache engine, term, offering type, etc.).

05 Navigate back to the Reserved nodes page and choose Purchase reserved nodes from the console menu to initiate the purchasing process.

06 In the Reserved nodes settings section, provide the following information:

  1. For Engine, choose the cache engine used by the cluster nodes that you want to renew.
  2. For Node type, select the required cluster node type (must match the On-Demand node type).
  3. For Term, select the length of time you want the cluster node(s) reserved.
  4. For Offering type, choose the preferred offering type (e.g. Partial upfront).
  5. For Reserved node ID – optional, type the ElastiCache Reserved Node identifier that you want to renew (repurchase).

07 In the Reservation details section, provide the number of nodes that you want to purchase in the Number of nodes box.

08 In the Tags section, configure tags to search and filter your Reserved Nodes or track your AWS costs.

09 Choose Purchase to repurchase your Amazon ElastiCache Reserved Node(s).

10 Repeat steps no. 4 – 9 to renew (repurchase) other Amazon ElastiCache Reserved Nodes available within the current region.

11 Change the AWS cloud region from the console navigation bar and repeat the Remediation process for other regions.

Using AWS CLI

01 Run describe-reserved-cache-nodes command (OSX/Linux/UNIX) with the ID of the ElastiCache Reserved Node (RN) that you want to renew as the identifier parameter, to describe the RN offering identifier:

aws elasticache describe-reserved-cache-nodes
  --region us-east-1
  --reserved-cache-node-id cc-production-redis-rn-001
  --query 'ReservedCacheNodes[*].ReservedCacheNodesOfferingId'

02 The command output should return the requested RN offering identifier (ID):

[
	"abcd1234-abcd-1234-abcd-1234abcd1234"
]

03 Run describe-reserved-cache-nodes-offerings command (OSX/Linux/UNIX) to get pricing information for any available Amazon ElastiCache RN offerings. Use the offering ID returned at the previous step as the identifier parameter to match the specifications of the RN that you want to renew (repurchase):

aws elasticache describe-reserved-cache-nodes-offerings
  --region us-east-1
  --reserved-cache-nodes-offering-id abcd1234-abcd-1234-abcd-1234abcd1234

04 The command output should return the requested offering information:

[
	{
		"ReservedCacheNodesOfferingId": "abcd1234-abcd-1234-abcd-1234abcd1234",
		"CacheNodeType": "cache.t3.medium",
		"Duration": 31536000,
		"FixedPrice": 379.0,
		"UsagePrice": 0.0,
		"ProductDescription": "memcached",
		"OfferingType": "All Upfront",
		"RecurringCharges": [
			{
				"RecurringChargeAmount": 0.0,
				"RecurringChargeFrequency": "Hourly"
			}
		]
	}
]

05 Run purchase-reserved-cache-nodes-offering command (OSX/Linux/UNIX) to purchase Amazon ElastiCache Reserved Nodes based on the offering information (i.e. offering ID) returned at the previous step:

aws elasticache purchase-reserved-cache-nodes-offering
  --region us-east-1
  --reserved-cache-nodes-offering-id abcd1234-abcd-1234-abcd-1234abcd1234
  --cache-node-count 2

06 The command output should return the metadata available for your new Amazon ElastiCache Reserved Nodes (RNs):

{
	"ReservedCacheNode": [
		{
			"ReservedCacheNodesOfferingId": "abcd1234-abcd-1234-abcd-1234abcd1234",
			"CacheNodeType": "cache.t3.medium",
			"StartTime ": "2025-05-26T10:17:09.000Z",
			"Duration": 31536000,
			"FixedPrice": 379.0,
			"UsagePrice": 0.0,
			"CacheNodeCount": 2,
			"ProductDescription": "memcached",
			"OfferingType": "All Upfront",
			"RecurringCharges": [
				{
					"RecurringChargeAmount": 0.047,
					"RecurringChargeFrequency": "Hourly"
				}
			],
			"State": "payment-pending"
		}
	]
}

07 Repeat steps no. 1 – 6 to renew (repurchase) other Amazon ElastiCache Reserved Nodes available in the selected AWS region.

08 Change the AWS cloud region by updating the --region command parameter value and repeat the Remediation process for other regions.

References

Publication date Jun 14, 2024