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

AWS ElastiCache Reserved Cache Nodes Purchase Recommendations

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

Risk Level: Medium (should be achieved)

Identify any Amazon ElastiCache nodes that can be upgraded to Reserved Cache Nodes (RCNs) and follow our recommendations for purchasing your RCNs in order to receive a significant discount on the hourly charges. Reserved Nodes/Instances represent an AWS billing concept that enables discounted hourly rates for compute capacity in exchange of reserving a certain amount of compute usage upfront. The cost savings when using Reserved Cache Nodes over On-Demand Cache Nodes are up to 70% when used in steady state (heavy utilization). For example, for a cache.m3.large ElastiCache node (Heavy Utilization Reserved Node) provisioned in the US-East region you can save roughly $87 per month by upgrading it to a Reserved Cache Node for a period of 1 year with partial upfront payment or save $99 per month (as of October 2016) by reserving it for a period of 3 years with upfront payment.

Cost
optimisation

Reserved Cache Nodes represent a good strategy to cut down on Amazon ElastiCache costs but purchasing them without a plan can feel like a risky process. The Cloud Conformity purchasing recommendations outlined in this rule will help you optimize your RCNs spending and save money by using only what you need.

Note: In order to verify the current status of purchased reserved capacity and provide accurate recommendations, Cloud Conformity needs access to the AWS payer account (the account designated to pay the bills) or to AWS individual accounts. The following IAM policy allows Cloud Conformity to view all the reserved ElastiCache nodes available in your account(s):


{
  "Version": "2012-10-17",
  "Statement": [{
      "Effect": "Allow",
      "Action": [
        "elasticache:DescribeReservedCacheNodes"
      ],
      "Resource": "*"
    }
  ]
}

Audit

To verify your current AWS ElastiCache compute capacity and determine if there are any candidates for upgrading to Reserved Cache Nodes (RCNs), perform the following:

Using AWS Console

01 Login to the AWS Management Console.

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

03 In the left navigation panel, under ElastiCache Dashboard, click Memcached to access the clusters created with Memcached in-memory cache engine or Redis to access the clusters created with Redis engine.

04 Choose the Memcached/Redis cluster that you want to examine then click on its identifier link:

Choose the Memcached/Redis cluster that you want to examine then click on its identifier link

listed in the Name column.

05 Select the Description tab, analyze the cache cluster attributes and determine the cluster role within the application stack. If the selected cache cluster is not the component of an application stack that is about to be decommissioned and the cluster will be in use for at least 6 months, the ElastiCache cluster is stable and its nodes qualify as candidates for upgrade to Reserved Cache Nodes (RCNs). To upgrade these nodes in an optimal manner you need to follow the recommendations outlined in the Remediation/Resolution section and purchase ElastiCache RCNs based on the On-Demand cache nodes attributes.

06 Repeat step no. 4 and 5 to determine if other ElastiCache cluster nodes provisioned in the current region are eligible for the upgrade.

07 Change the AWS region from the navigation bar and repeat the process for the other regions.

Using AWS CLI

01 Run describe-cache-clusters command (OSX/Linux/UNIX) using custom query filters to list the identifiers of all ElastiCache clusters available in the selected region:

aws elasticache describe-cache-clusters
	--region us-east-1
	--output table
	--query 'CacheClusters[*].CacheClusterId'

02 The command output should return a table with the requested cluster identifiers:

---------------------------
|  DescribeCacheClusters  |
+-------------------------+
|  myappcachecluster-prod |
|  memcachedcluster-test  |
|  rediscachecluster-001  |
|  rediscachecluster-002  |
+-------------------------+

03 Run again describe-cache-clusters command (OSX/Linux/UNIX) using the ID (identifier) of the cluster that you want to examine to describe the selected resource configuration attributes:

aws elasticache describe-cache-clusters
	--region us-east-1
	--cache-cluster-id myappcachecluster-prod

04 The command output should return the requested information (i.e. cluster attributes, cluster node(s) specifications, etc):

{
    "CacheCluster": {
        "Engine": "redis",
        "CacheParameterGroup": {
            "CacheNodeIdsToReboot": [],
            "CacheParameterGroupName": "default.redis3.2",
            "ParameterApplyStatus": "in-sync"
        },
        "CacheClusterId": "myappcachecluster-prod",
        "NumCacheNodes": 1,
        "AutoMinorVersionUpgrade": true,


        ...

        "CacheSubnetGroupName": "default",
        "EngineVersion": "3.2.4",
        "PendingModifiedValues": [],
        "PreferredMaintenanceWindow": "tue:03:00-tue:04:00",
        "CacheNodeType": "cache.m3.large"
    }
}

04 Analyze the ElastiCache cluster attributes listed at the previous step and determine its role within the application stack. If the selected cache cluster is not the component of an application stack that is about to be decommissioned and the cluster will be in use for at least 6 months, the ElastiCache cluster is stable and its nodes qualify as candidates for upgrade to Reserved Cache Nodes (RCNs). To upgrade these nodes in an optimal manner you need to follow the recommendations outlined in the Remediation/Resolution section and purchase ElastiCache RCNs based on the On-Demand cache nodes attributes.

05 Repeat steps no. 3 - 5 to determine if other ElastiCache cluster nodes provisioned in the current region are eligible for the upgrade.

06 Change the AWS region by updating the --region command parameter value and repeat steps no. 1 - 6 to perform the audit process for other regions.

Remediation / Resolution

To upgrade your On-Demand ElastiCache nodes to Reserved Cache Nodes you need to get informed in order to avoid paying for compute resources that you do not need. To make the RCN purchase based on the right pricing model, the right type at the right time, follow the recommendations outlined below:

Recommendations

01 Commitment Term - choose carefully the commitment period based on your application(s) requirements because you will be charged for every hour during the entire reservation term that you select, regardless of whether the cluster node is running or not. AWS provides two types of commitment terms:

  1. 1-year term - the reservation is made for just 1 year and it’s useful for production web applications with predictable workloads.
  2. 3-year term - the reservation is made for 3 years, it's useful for long-running and stable web applications that rely heavily on caching.

02 Reserved Cache Node Types - these types provide you the ability to balance the amount you pay upfront with the effective hourly price. There are 3 node types to choose from:

  1. Light Utilization - this type is ideal for Cache Nodes with sporadic usage, e.g. development and staging nodes that run for less than 12 hours a day or nodes used for short term projects. Using this type of nodes you can save up to 42% for a 1-year term and 56% for a 3-year term when compared with the same cache nodes that use On-Demand pricing model.
  2. Medium Utilization - for this type you have a higher upfront payment when compared with Light Utilization but a much lower hourly usage rate. The Medium Utilization Reserved Cache Nodes are best suited for workloads that are active most of the time. Using this type of nodes you can save up to 47% for a 1-year term and 64% for a 3-year term when compared with the same cache nodes that use On-Demand pricing model.
  3. Heavy Utilization - this type is suited to production applications that rely heavily on caching, e.g. steady-state production workloads that need to be highly available 24×7. With Heavy Utilization Reserved Cache Nodes you can save up to 52% for a 1-year term and 70% for a 3-year term when compared with the same cache nodes that use On-Demand pricing model.

03 Consolidated Billing - using Consolidated Billing is recommended when you own multiple accounts because the AWS billing engine treats all your accounts as a single account for billing purposes (designated payer account), resulting in the lowest possible bill as the applicable discounts are spread across all accounts. For instance, the ElastiCache RCNs purchased in one AWS account can share their reservations with other AWS accounts available in the same billing family. The purchase recommendations are based on the previous calendar month's hour-by-hour usage aggregated across all consolidated billing accounts. For example, if you have two ElastiCache Reserved Cache Nodes in the same region with the same attributes, the AWS billing system checks each hour the total number of nodes you have running that match those attributes. If there are two cache nodes or less, you will be charged the Reserved Cache Node rate for each matching node running that hour. If more than two are running, you will be charged the On-Demand rate for the additional node(s).

04 Purchasing Process - is important to review carefully the checkout page details before the purchase. After your purchase is confirmed, it cannot be cancelled so make sure the parameters displayed on the checkout page are accurate.


To upgrade to Reserved Cache Nodes just purchase ElastiCache RCNs in the same region, using the same attributes as your active On-demand cache nodes and the billing will be automatically changed to reflect the reserved rates. To buy the required reserved ElastiCache nodes, perform the following actions:

Using AWS Console

01 Login to the AWS Management Console.

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

03 In the left navigation panel, under ElastiCache Dashboard, choose Reserved Nodes.

04 Click Purchase Reserved Node button from the dashboard top menu to start the purchasing process.

05 In the Purchase Reserved Nodes dialog box, perform the following actions:

06 In the Purchase Reserved Nodes dialog box, perform the following actions:

  1. From Product Description dropdown list, select the in-memory cache engine used by the On-Demand cache node that you want to upgrade.
  2. From Node Type dropdown list, choose the cache node type (e.g. cache.m3.large).
  3. From Term dropdown list, select the length of time for the new reservation based on your requirements.
  4. From Offering Type dropdown list, choose the preferred offering type (e.g. Heavy Utilization).
  5. In the Number of Nodes box type 1.
  6. Click Next to continue the process.

07 In the Purchase Reserved Nodes summary section, verify the cache node configuration information to make sure that the RCN parameters are correct, then click Purchase Now to purchase your reserved ElastiCache node.

08 Repeat steps no. 4 - 6 to upgrade other On-Demand ElastiCache nodes provisioned in the current region by purchasing Reserved Cache Nodes that match their configuration.

09 Change the AWS region from the navigation bar and repeat the process for other regions.

Using AWS CLI

01 Before you purchase your ElastiCache Reserved Cache Node(s) run describe-reserved-cache-nodes-offerings command (OSX/Linux/UNIX) to get the pricing information for ElastiCache RCN offerings. Use the command parameters provided in the following example to match the specifications of the active cache node that you want to upgrade:

aws elasticache describe-reserved-cache-nodes-offerings
	--region us-east-1
	--cache-node-type cache.m3.large
	--duration 94608000
	--product-description memcached
	--offering-type "Heavy Utilization"

02 The command output should return the requested offering(s) information:

{
    "ReservedCacheNodesOfferings": [
        {
            "OfferingType": "Heavy Utilization",
            "FixedPrice": 673.0,
            "ReservedCacheNodesOfferingId":
            "ac051dd3-8019-40ca-b4fb-b62cbc1e8611",
            "UsagePrice": 0.0,
            "RecurringCharges": [
                {
                    "RecurringChargeAmount": 0.047,
                    "RecurringChargeFrequency": "Hourly"
                }
            ],
            "ProductDescription": "memcached",
            "Duration": 94608000,
            "CacheNodeType": "cache.m3.large"
        }
    ]
}

03 Run purchase-reserved-cache-nodes-offering command (OSX/Linux/UNIX) to purchase your ElastiCache Reserved Cache Node based on the offering information returned at the previous step. The following command example purchase a reserved ElastiCache node using an offering identified by the ID ac051dd3-8019-40ca-b4fb-b62cbc1e8611:

aws elasticache purchase-reserved-cache-nodes-offering
	--region us-east-1
	--reserved-cache-nodes-offering-id ac051dd3-8019-40ca-b4fb-b62cbc1e8611
	--cache-node-count 1

04 The command output should return the new ElastiCache RCN metadata:

aws elasticache purchase-reserved-cache-nodes-offering
	--region us-east-1
	--reserved-cache-nodes-offering-id ac051dd3-8019-40ca-b4fb-b62cbc1e8611
	--cache-node-count 1{
	    "ReservedCacheNode": [
	        {
	            "ReservedCacheNodesOfferingId":
	            "ac051dd3-8019-40ca-b4fb-b62cbc1e8611",
	            "CacheNodeType": "cache.m3.large",
	            "StartTime ": "2016-11-12T16:17:09.000Z",
	            "Duration": 94608000,
	            "FixedPrice": 673.0,
	            "UsagePrice": 0.0,
	            "CacheNodeCount": 1,
	            "ProductDescription": "memcached",
	            "OfferingType": "Heavy Utilization",
	            "RecurringCharges": [
	                {
	                    "RecurringChargeAmount": 0.047,
	                    "RecurringChargeFrequency": "Hourly"
	                }
	            ],
	            "State": "payment-pending"
	        }
	    ]
	}

05 Repeat steps no. 1 - 4 to upgrade other On-Demand ElastiCache nodes provisioned in the current region by purchasing Reserved Cache Nodes that match their configuration.

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

References

Publication date Dec 3, 2016

Unlock the Remediation Steps


Free 30-day Trial

Automatically audit your configurations with Conformity
and gain access to our cloud security platform.

Confirmity Cloud Platform

No thanks, back to article

You are auditing:

AWS ElastiCache Reserved Cache Nodes Purchase Recommendations

Risk Level: Medium