AWS AmazonElastiCache documentation change
Summary
Complete restructuring of Memcached scaling documentation with added details about on-demand vertical scaling configurations (scale-config parameters) and new integration with AWS Application Auto Scaling for horizontal scaling. Removed old manual scaling procedures and added CLI/API examples for scaling operations.
Security assessment
Changes focus on operational scaling features and configuration parameters without mentioning security vulnerabilities, patches, or security-specific enhancements. The note about requiring Auto Discovery for vertical scaling relates to functionality rather than security.
Diff
diff --git a/AmazonElastiCache/latest/dg/Scaling-self-designed.mem-heading.md b/AmazonElastiCache/latest/dg/Scaling-self-designed.mem-heading.md index 70de0b1ce..190c4c520 100644 --- a//AmazonElastiCache/latest/dg/Scaling-self-designed.mem-heading.md +++ b//AmazonElastiCache/latest/dg/Scaling-self-designed.mem-heading.md @@ -5 +5 @@ -Scaling Memcached HorizontallyScaling Memcached vertically +On-demand vertical scaling for MemcachedAutomated horizontal scaling for Memcached @@ -7 +7 @@ Scaling Memcached HorizontallyScaling Memcached vertically -# Scaling clusters for Memcached +# Scaling for Memcached clusters @@ -9 +9 @@ Scaling Memcached HorizontallyScaling Memcached vertically -The following tables can help you find the correct topic for the scaling actions that you want to perform. +ElastiCache for Memcached offers a fully managed, in-memory caching service that deploys, operates, and vertically scales Memcached in the AWS cloud. @@ -11 +11 @@ The following tables can help you find the correct topic for the scaling actions -**Scaling Memcached Clusters** +**On-demand vertical scaling** @@ -13 +13 @@ The following tables can help you find the correct topic for the scaling actions -Memcached clusters are composed of 1 to 60 nodes. Scaling a Memcached cluster out and in is as easy as adding or removing nodes from the cluster. +With vertical scaling, ElastiCache for Memcached provides a high-performance, distributed memory caching system widely used to speed up dynamic we applications by alleviating database load. It stores data and objects in RAM, reducing the need to read from external data sources. @@ -15 +15 @@ Memcached clusters are composed of 1 to 60 nodes. Scaling a Memcached cluster ou -Because you can partition your data across all the nodes in a Memcached cluster, scaling up to a node type with greater memory is seldom required. However, because the Memcached engine does not persist data, if you do scale to a different node type, your new cluster starts out empty unless your application populates it. +You can use ElastiCache for Memcached self-designed clusters for vertical scaling. You can apply vertical scaling to existing clusters as well as new ones. This can provide flexibility in resource allocation, allowing users to efficiently adapt to changing workloads without altering cluster architecture. This ability to scale improves performance by increasing cache capacity during high demand periods, and scaling down to optimize costs during low-demand periods. This simplifies operations, eliminates the need to create new clusters for shifting resource requirements, and enables quick responses to traffic fluctuations. Overall, vertical scaling for Memcached self-designed caches can help enhance cost efficiency, improve resource utilization, and even let users change their Memcached instance type. All making it easier for users to align their caching infrastructure with actual application needs. @@ -17,5 +17 @@ Because you can partition your data across all the nodes in a Memcached cluster, -Scaling Memcached Clusters Action | Topic ----|--- -Scaling out | [Adding nodes to a cluster](Clusters.html#AddNode) -Scaling in | [Deleting nodes from a cluster](Clusters.html#DeleteNode) -Changing node types | Scaling Memcached vertically +###### Note @@ -23 +19 @@ Changing node types | Scaling Memcached vertically -Memcached clusters are composed of 1 to 60 nodes. Scaling a Memcached cluster out and in is as easy as adding or removing nodes from the cluster. + * Self-designed cache and node type modifications are only available for Memcached engine versions 1.5 or later. @@ -25 +21 @@ Memcached clusters are composed of 1 to 60 nodes. Scaling a Memcached cluster ou -Because you can partition your data across all the nodes in a Memcached cluster, scaling up to a node type with greater memory is seldom required. However, because the Memcached engine does not persist data, if you do scale to a different node type, your new cluster starts out empty unless your application populates it. + * Auto Discovery must be enabled in order to make use of vertical scaling. @@ -27 +22,0 @@ Because you can partition your data across all the nodes in a Memcached cluster, -###### Topics @@ -29 +23,0 @@ Because you can partition your data across all the nodes in a Memcached cluster, - * Scaling Memcached Horizontally @@ -31 +24,0 @@ Because you can partition your data across all the nodes in a Memcached cluster, - * Scaling Memcached vertically @@ -32,0 +26 @@ Because you can partition your data across all the nodes in a Memcached cluster, +## Setting up on-demand vertical scaling for ElastiCache Memcached clusters @@ -33,0 +28 @@ Because you can partition your data across all the nodes in a Memcached cluster, +You can configure on-demand vertical scaling for Memcached with `scale-config`, which contains two parameters: @@ -34,0 +30 @@ Because you can partition your data across all the nodes in a Memcached cluster, + 1. **ScaleIntervalMinutes:** Time (in minutes) between scaling batches during the Memcached upgrade process @@ -36 +32 @@ Because you can partition your data across all the nodes in a Memcached cluster, -## Scaling Memcached Horizontally + 2. **ScalePercentage:** Percentage of nodes to scale concurrently during the Memcached upgrade process @@ -38 +33,0 @@ Because you can partition your data across all the nodes in a Memcached cluster, -The Memcached engine supports partitioning your data across multiple nodes. Because of this, Memcached clusters scale horizontally easily. A Memcached cluster can have from 1 to 60 nodes. To horizontally scale your Memcached cluster, merely add or remove nodes. @@ -40 +34,0 @@ The Memcached engine supports partitioning your data across multiple nodes. Beca -The following topics detail how to scale your Memcached cluster out or in by adding or removing nodes. @@ -42 +35,0 @@ The following topics detail how to scale your Memcached cluster out or in by add - * [Adding nodes to a cluster](Clusters.html#AddNode) @@ -44 +37 @@ The following topics detail how to scale your Memcached cluster out or in by add - * [Deleting nodes from your cluster](Clusters.html#AddNode) +**Converting an existing Memcached node type to a cache that can vertically scale via the CLI** @@ -45,0 +39 @@ The following topics detail how to scale your Memcached cluster out or in by add +To convert an existing Memcached self-designed cache to a cache that can vertically scale, you can use `elasticache modify-cache-cluster` via the CLI. @@ -47,0 +42,5 @@ The following topics detail how to scale your Memcached cluster out or in by add + aws elasticache modify-cache-cluster \ + --cache-cluster-id <your-cluster-id> \ + --cache-node-type <new-node-type> \ + --scale-config <scale-config> \ + --apply-immediately @@ -49 +48 @@ The following topics detail how to scale your Memcached cluster out or in by add -Each time you change the number of nodes in your Memcached cluster, you must re-map at least some of your keyspace so it maps to the correct node. For more detailed information on load balancing your Memcached cluster, see [Configuring your ElastiCache client for efficient load balancing (Memcached)](./BestPractices.LoadBalancing.html). +**Setting up vertical scaling with the CLI** @@ -51 +50 @@ Each time you change the number of nodes in your Memcached cluster, you must re- -If you use auto discovery on your Memcached cluster, you do not need to change the endpoints in your application as you add or remove nodes. For more information on auto discovery, see [Automatically identify nodes in your cluster (Memcached)](./AutoDiscovery.html) If you do not use auto discovery, each time you change the number of nodes in your Memcached cluster you must update the endpoints in your application. +To set up vertical scaling for your Memcached self-designed cache via the CLI, use `elasticache modify-cache-cluster` with `scale-config` and its parameters `ScalePercentage` and `ScaleIntervalMinutes`. @@ -53 +52 @@ If you use auto discovery on your Memcached cluster, you do not need to change t -## Scaling Memcached vertically + * **scale-interval-minutes:** This defines the time (in minutes) between scaling batches. This setting can range from 2-30 minutes. If no value is specified, the default value of 5 minutes is applied. @@ -55 +54 @@ If you use auto discovery on your Memcached cluster, you do not need to change t -When you scale your Memcached cluster up or down, you must create a new cluster. Memcached clusters always start out empty unless your application populates it. + * **scale-percentage:** This specifies the percentage of nodes to scale concurrently in each batch. This setting can range from 10-100. The setting is rounded up when dividing, so for example if the result would be 49.5 a setting of 50 is applied. If no value is specified, the default value of 20 is applied. @@ -57 +55,0 @@ When you scale your Memcached cluster up or down, you must create a new cluster. -###### Important @@ -59 +56,0 @@ When you scale your Memcached cluster up or down, you must create a new cluster. -If you are scaling down to a smaller node type, be sure that the smaller node type is adequate for your data and overhead. For more information, see [Choosing your node size](./CacheNodes.SelectSize.html). @@ -61 +57,0 @@ If you are scaling down to a smaller node type, be sure that the smaller node ty -###### Topics @@ -63 +59 @@ If you are scaling down to a smaller node type, be sure that the smaller node ty - * Scaling Memcached vertically (Console) +These configuration options will enable you to fine-tune the scaling process according to your specific needs, balancing between minimizing cluster disruption and optimizing scaling speed. The scale-config parameter will only be applicable for Memcached engine types and will be ignored for other cache engines, ensuring backward compatibility with existing API usage for other clusters. @@ -65 +61 @@ If you are scaling down to a smaller node type, be sure that the smaller node ty - * Scaling Memcached vertically (AWS CLI) +**API call** @@ -67 +62,0 @@ If you are scaling down to a smaller node type, be sure that the smaller node ty - * Scaling Memcached vertically (ElastiCache API) @@ -68,0 +64,8 @@ If you are scaling down to a smaller node type, be sure that the smaller node ty + aws elasticache modify-cache-cluster \ + --cache-cluster-id <your-cluster-id> \ + --cache-node-type <new-node-type> \ + --scale-config '{ + "ScalePercentage": 30, + "ScaleIntervalMinutes": 2 + }' + --apply-immediately @@ -69,0 +73 @@ If you are scaling down to a smaller node type, be sure that the smaller node ty +**Result:** @@ -70,0 +75 @@ If you are scaling down to a smaller node type, be sure that the smaller node ty +Returns the cache cluster ID and the pending change. @@ -72 +76,0 @@ If you are scaling down to a smaller node type, be sure that the smaller node ty -### Scaling Memcached vertically (Console) @@ -74 +78,10 @@ If you are scaling down to a smaller node type, be sure that the smaller node ty -The following procedure walks you through scaling your cluster vertically using the ElastiCache console. + { + "CacheCluster": { + "CacheNodeType": "old_insance_type", + ... + ... + "PendingModifiedValues": { + "CacheNodeType": "new_instance_type" + }, + } + } @@ -76 +89 @@ The following procedure walks you through scaling your cluster vertically using -###### To scale a Memcached cluster vertically (console) +**List your Memcached cache vertical scaling setting** @@ -78 +91 @@ The following procedure walks you through scaling your cluster vertically using - 1. Create a new cluster with the new node type. For more information, see [Creating a Memcached cluster (console)](./Clusters.Create-mc.html#Clusters.Create.CON.Memcached). +You can retrieve scaling options for your Memcached caches, and see what their current options are for vertical scaling. @@ -80 +93 @@ The following procedure walks you through scaling your cluster vertically using - 2. In your application, update the endpoints to the new cluster's endpoints. For more information, see [Finding a Cluster's Endpoints (Console) (Memcached)](./Endpoints.html#Endpoints.Find.Memcached). +**API call** @@ -82 +94,0 @@ The following procedure walks you through scaling your cluster vertically using - 3. Delete the old cluster. For more information, see [Deleting a new node in Memcached](Clusters.html#Delete.CON.Memcached). @@ -83,0 +96 @@ The following procedure walks you through scaling your cluster vertically using + aws elasticache list-allowed-node-type-modifications --cache-cluster-id <your-cluster-id> @@ -85,0 +99 @@ The following procedure walks you through scaling your cluster vertically using +**Result:** @@ -87 +100,0 @@ The following procedure walks you through scaling your cluster vertically using -### Scaling Memcached vertically (AWS CLI) @@ -89 +102,11 @@ The following procedure walks you through scaling your cluster vertically using -The following procedure walks you through scaling your Memcached cache cluster vertically using the AWS CLI. + { + "ScaleUpModifications": [ + "cache.x.xxxx", + "cache.x.xxxx" + ], + "ScaleDownModifications": [ + "cache.x.xxxx", + "cache.x.xxxx", + "cache.x.xxxx" + ] + } @@ -91 +114 @@ The following procedure walks you through scaling your Memcached cache cluster v -###### To scale a Memcached cache cluster vertically (AWS CLI) +**Vertical scaling for Memcached with the AWS Management Console** @@ -93 +116 @@ The following procedure walks you through scaling your Memcached cache cluster v - 1. Create a new cache cluster with the new node type. For more information, see [Creating a cluster (AWS CLI)](./Clusters.Create.html#Clusters.Create.CLI). +To convert an existing Memcached self-designed cache to a cache that can vertically scale through the [https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/), follow these steps. @@ -95 +118 @@ The following procedure walks you through scaling your Memcached cache cluster v - 2. In your application, update the endpoints to the new cluster's endpoints. For more information, see [Finding Endpoints (AWS CLI)](./Endpoints.html#Endpoints.Find.CLI). + 1. Sign in to the AWS Management Console and open the ElastiCache console at [ https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/). @@ -97 +120 @@ The following procedure walks you through scaling your Memcached cache cluster v - 3. Delete the old cache cluster. For more information, see [Using the AWS CLI to delete an ElastiCache cluster](./Clusters.Delete.html#Clusters.Delete.CLI). + 2. Select the Memcached cache to convert. @@ -98,0 +122 @@ The following procedure walks you through scaling your Memcached cache cluster v + 3. Select the **Modify** tab. @@ -99,0 +124 @@ The following procedure walks you through scaling your Memcached cache cluster v + 4. Go to the **Cache settings** section, and select the desired **Node type**. @@ -100,0 +126 @@ The following procedure walks you through scaling your Memcached cache cluster v + 5. Select **Preview changes** , and review the changes. @@ -102 +128 @@ The following procedure walks you through scaling your Memcached cache cluster v -### Scaling Memcached vertically (ElastiCache API) + 6. Select **Modify**. @@ -104 +129,0 @@ The following procedure walks you through scaling your Memcached cache cluster v -The following procedure walks you through scaling your Memcached cache cluster vertically using the ElastiCache API. @@ -106 +130,0 @@ The following procedure walks you through scaling your Memcached cache cluster v -###### To scale a Memcached cache cluster vertically (ElastiCache API) @@ -108 +131,0 @@ The following procedure walks you through scaling your Memcached cache cluster v - 1. Create a new cache cluster with the new node type. For more information, see [Creating a cluster for Memcached (ElastiCache API)](./Clusters.Create-mc.html#Clusters.Create.API.mem-heading) @@ -110 +133 @@ The following procedure walks you through scaling your Memcached cache cluster v - 2. In your application, update the endpoints to the new cache cluster's endpoints. For more information, see [Finding Endpoints (ElastiCache API)](./Endpoints.html#Endpoints.Find.API). +## Automated horizontal scaling for Memcached @@ -112 +135,245 @@ The following procedure walks you through scaling your Memcached cache cluster v - 3. Delete the old cache cluster. For more information, see [Using the ElastiCache API](./Clusters.Delete.html#Clusters.Delete.API). +ElastiCache now integrates with the AWS Application Auto Scaling (AAS) service to include automated horizontal scaling for Memcached clusters. You can define scaling policies through the AWS Application Auto Scaling service, and automatically adjust the number of nodes in Memcached clusters as needed, based on predefined metrics or schedules. + +###### Note + +Automated horizontal scaling is not currently available in the Beijing and Ningxia Regions. + +These are the available methods for automatically horizontally scaling your self-designed caches. + + * **Scheduled Scaling:** Scaling based on a schedule allows you to set your own scaling schedule for predictable load changes. For example, every week the traffic to your web application starts to increase on Wednesday, remains high on Thursday, and starts to decrease on Friday. You can configure Auto Scaling to increase capacity on Wednesday and decrease capacity on Friday. + + * **Target Tracking:** With target tracking scaling policies, you choose a scaling metric and set a target value. Application Auto Scaling creates and manages the CloudWatch alarms that trigger the scaling policy and calculates the scaling adjustment based on the metric and the target value. The scaling policy adds or removes capacity as required to keep the metric at, or close to, the specified target value. + + + + +**How to set up horizontal scaling for an ElastiCache for Memcached self-designed cache via the CLI** + +For horizontal scaling with ElastiCache Memcached, you can have a target tracking policy, a scheduled policy, or both.