如何使用 AWS-CLI 从 S3 中的快照创建 Redis ElastiCache 集群?

Fis*_*der 7 amazon-s3 amazon-web-services redis amazon-elasticache aws-cli

我想要做的是使用 aws-cli 根据我在 S3 中的 ElastiCache 快照创建一个 ElastiCache 集群,我的 ElastiCache 是启用集群的模式。

我按照本教程创建了一个启用集群的 Redis 缓存,这是我的命令: aws elasticache create-cache-cluster --cache-cluster-id stevescachecluster1 --cache-node-type cache.m4.large --engine redis --engine-version 3.2.4 --cache-parameter-group default.redis3.2.cluster.on --num-cache-nodes 1 --snapshot-arns arn:aws:s3:::MY_S3_BUCKET-elasticache/stevesun-elasticache-0002.rdb --cache-subnet-group-name my-cache-dev

由于上述命令失败 An error occurred (InvalidParameterCombination) when calling the CreateCacheCluster operation: Cluster mode should be disabled in parameter group, but found it is enabled.

这让我感到困惑,上面链接的教程明确指出,如果您想要启用集群模式的缓存,请在您的参数中使用.cluster.on选项。

然后我更多地研究了这个 aws-cli 命令参考:对于这个参数:--cache-parameter-group-name,它的文档说:You cannot use any parameter group which has cluster-enabled='yes' when creating a cluster.

从这个 cli 参考文档到那个 cli 教程,这不是矛盾吗?

请纠正我我理解错误的地方。而且,如何从 S3 快照创建启用集群模式的缓存?

谢谢。

我检查并发现 3.2.4 是AWS ElatiCache 现在拥有的最新版本

编辑1:

然后,我刚刚创建使用此命令在单个节点的缓存: aws elasticache create-cache-cluster --cache-cluster-id stevescachecluster1 --cache-node-type cache.m4.large --engine redis --engine-version 3.2.4 --cache-parameter-group default.redis3.2 --num-cache-nodes 1 --snapshot-arns arn:aws:s3:::MY_S3_BUCKET-elasticache/stevesun-elasticache-0002.rdb --cache-subnet-group-name my-cache-dev

然后我去控制台,选择了我新启动的单节点缓存并点击Modify,我尝试将其更改为cluster.on,但得到了这个异常: The parameter cluster-enabled has a different value in the requested parameter group than the current parameter group. This parameter value cannot be changed for a cache cluster.

因此,我尝试先启动单节点缓存,然后将其更改为集群模式也失败了。

编辑2:

然后我想是我需要为启用集群的模式分配1个以上的节点,所以我将此参数更改--num-cache-nodes2,但我得到了这个异常: An error occurred (InvalidParameterValue) when calling the CreateCacheCluster operation: Cannot create a Redis cluster with a NumCacheNodes parameter greater than 1. 这对我来说更令人困惑,一个集群肯定需要1个以上的节点,那为什么不允许大于1呢??

虽然它的文档For clusters running Redis, this value must be 1.. 为什么有这个要求?那么我们如何从快照创建一个新的redis集群呢?请帮忙。

谢谢。

gar*_*aat 0

API 文档中所述,对于 Redis,不支持大小 > 1 的缓存集群。

另外,对于redis,如果要从快照恢复,则必须使用参数--snapshot-name来指定快照而不是--snapshot-arns参数。