Amazon ElastiCache
用户指南 (API Version 2015-02-02)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

从头开始创建具有副本的 Redis (已启用集群模式) 集群

您可以使用 ElastiCache 控制台、AWS CLI 或 ElastiCache API 创建 Redis (已启用集群模式) 群集 (API/CLI:复制组)。Redis (已启用集群模式) 复制组有 1 到 15 个分片 (API/CLI:节点组),每个分片中有一个主集群,每个分片中有最多 5 个只读副本。使用 ElastiCache 控制台创建集群时,每个分片具有相同数量的只读副本.

创建 Redis (已启用集群模式)集群(控制台)

要创建 Redis (已启用集群模式) 群集,请参阅创建 Redis (已启用集群模式)集群(控制台)。请确保启用集群模式 Cluster Mode enabled (Scale Out),并指定至少两个分片和一个副本节点。

(AWS CLI) 从头开始创建具有副本的 Redis (已启用集群模式) 集群

以下过程使用 AWS CLI 创建 Redis (已启用集群模式)复制组。

在从头创建 Redis (已启用集群模式)复制组时,您通过单次调用 AWS CLI create-replication-group 命令创建复制组及其所有节点。包括以下参数。

--replication-group-id

正在创建的复制组的名称。

Redis (已启用集群模式) 复制组命名约束

  • 必须包含 1 到 20 个字母数字字符或连字符。

  • 必须以字母开头。

  • 不能包含两个连续的连字符。

  • 不能以连字符结尾。

--replication-group-description

(可选)复制组的说明。

--cache-node-type

复制组中的每个节点的节点类型。

ElastiCache 支持以下节点类型。一般而言,与其上一代类型对应项相比,最新一代类型以更低的成本提供了更多内存和计算能力。

  • 通用型:

    • 最新一代:

      T2 节点类型:cache.t2.microcache.t2.smallcache.t2.medium

      M3 节点类型:cache.m3.mediumcache.m3.largecache.m3.xlargecache.m3.2xlarge

      M4 节点类型:cache.m4.largecache.m4.xlargecache.m4.2xlargecache.m4.4xlargecache.m4.10xlarge

    • 上一代:(不推荐)

      T1 节点类型:cache.t1.micro

      M1 节点类型:cache.m1.smallcache.m1.mediumcache.m1.largecache.m1.xlarge

  • 计算优化:

    • 上一代:(不推荐)

      C1 节点类型:cache.c1.xlarge

  • 内存优化:

    • 最新一代:

      R3 节点类型:cache.r3.largecache.r3.xlargecache.r3.2xlargecache.r3.4xlargecache.r3.8xlarge

    • 上一代:(不推荐)

      M2 节点类型:cache.m2.xlargecache.m2.2xlargecache.m2.4xlarge

其他节点类型信息

  • 所有 T2 实例均在 Amazon Virtual Private Cloud (Amazon VPC) 中创建。

  • T2 实例不支持 Redis 备份和还原。

  • T1 或 T2 实例不支持 Redis 仅附加文件 (AOF)。

  • T1 实例不支持具有自动故障转移功能的 Redis 多可用区。

  • 仅当使用 default.redis3.2.cluster.on 参数组或从中派生的参数组运行 Redis (已启用集群模式) 3.2.4 或更高版本时,T2 实例才支持具有自动故障转移功能的 Redis 多可用区。

  • Redis 版本 2.8.22 及更高版本不支持 Redis 配置变量 appendonlyappendfsync

--cache-parameter-group

指定 default.redis3.2.cluster.on 参数组或者从 default.redis3.2.cluster.on 派生参数组来创建 Redis (已启用集群模式) 复制组。有关更多信息,请参阅 Redis 3.2.4 参数更改

--engine

redis

--engine-version

3.2.4

--num-node-groups

此复制组中的节点组数量。有效值为 1 到 15。

--replicas-per-node-group

各节点组中的副本节点数量。有效值从 1 到 5。

如果要对此群集启用传输中加密或静态加密,请添加以下参数:

  • --transit-encryption-enabled

    如果要启用传输中加密,必须在 Amazon VPC 中创建群集,还必须包含参数 --cache-subnet-group

  • 需要提供 --auth-token 以及客户为 AUTH 令牌指定的字符串值 (密码),才能对此群集执行操作。

  • --at-rest-encryption-enabled

以下操作使用三个节点组/分片 (--num-node-groups) 创建 Redis (已启用集群模式) 复制组 new-group,其中每个节点组/分片都具有三个节点,即一个主节点和两个副本节点 (--replicas-per-node-group)。

对于 Linux, OS X, or Unix:

Copy
aws elasticache create-replication-group \ --replication-group-id new-group \ --replication-group-description "Demo cluster with replicas" \ --num-node-groups 3 \ --replicas-per-node-group 2 \ --cache-node-type cache.m4.large \ --cache-parameter-group default.redis3.2.cluster.on \ --engine redis \ --engine-version 3.2.4

对于 Windows:

Copy
aws elasticache create-replication-group ^ --replication-group-id new-group ^ --replication-group-description "Demo cluster with replicas" ^ --num-node-groups 3 ^ --replicas-per-node-group 2 ^ --cache-node-type cache.m4.large ^ --cache-parameter-group default.redis3.2.cluster.on ^ --engine redis ^ --engine-version 3.2.4

之前的命令生成以下输出。

{
    "ReplicationGroup": {
        "Status": "creating", 
        "Description": "Demo cluster with replicas", 
        "ReplicationGroupId": "new-group", 
        "SnapshotRetentionLimit": 0, 
        "AutomaticFailover": "enabled", 
        "SnapshotWindow": "05:30-06:30", 
        "MemberClusters": [
            "new-group-0001-001", 
            "new-group-0001-002", 
            "new-group-0001-003", 
            "new-group-0002-001", 
            "new-group-0002-002", 
            "new-group-0002-003", 
            "new-group-0003-001", 
            "new-group-0003-002", 
            "new-group-0003-003"
        ], 
        "PendingModifiedValues": {}
    }
}

在您从头开始创建 Redis (已启用集群模式) 复制组时,您可以使用 --node-group-configuration 参数配置集群中的每个分片,如下例中所示,其中配置了两个节点组 (控制台:分片)。第一个分片有两个节点:一个主节点和一个只读副本节点。第二个分片有三个节点:一个主节点和两个只读副本节点。

--node-group-configuration

各节点组的配置。--node-group-configuration 参数包括以下字段。

  • PrimaryAvailabilityZone - 此节点组的主节点所在的可用区。如果忽略此参数,则 ElastiCache 选择主节点的可用区。

    示例: us-west-2a。

  • ReplicaAvailabilityZones - 只读副本所在可用区的列表,以逗号分隔。此列表中的可用区数量必须与 ReplicaCount 的值匹配。如果忽略此参数,则 ElastiCache 选择复制节点的可用区。

    示例:"us-west-2a,us-west-2b,us-west-2c"

  • ReplicaCount – 此节点组中的副本节点数量。

  • Slots – 指定节点组的密钥空间的字符串。字符串的格式为 startKey-endKey。如果忽略此参数,ElastiCache 在所有节点组之间均匀分配密钥。

    示例: "0-4999"

     

以下操作使用两个节点组/分片 (--num-node-groups) 创建 Redis (已启用集群模式) 复制组 new-group。与前例不同,各节点组配置为彼此不同 (--node-group-configuration)。

对于 Linux, OS X, or Unix:

Copy
aws elasticache create-replication-group \ --replication-group-id rc-rg \ --replication-group-description "Sharded replication group" \ --engine redis \ --engine-version 3.2.4 \ --cache-parameter-group default.redis3.2.cluster.on \ --snapshot-retention-limit 8 \ --cache-node-type cache.m4.medium \ --num-node-groups 2 \ --node-group-configuration \ "ReplicaCount=1,Slots=0-8999,PrimaryAvailabilityZone='us-east-1c',ReplicaAvailabilityZones='us-east-1b'" \ "ReplicaCount=2,Slots=9000-16383,PrimaryAvailabilityZone='us-east-1a',ReplicaAvailabilityZones='us-east-1a','us-east-1c'"

对于 Windows:

Copy
aws elasticache create-replication-group ^ --replication-group-id rc-rg ^ --replication-group-description "Sharded replication group" ^ --engine redis ^ --engine-version 3.2.4 ^ --cache-parameter-group default.redis3.2.cluster.on ^ --snapshot-retention-limit 8 ^ --cache-node-type cache.m4.medium ^ --num-node-groups 2 ^ --node-group-configuration \ "ReplicaCount=1,Slots=0-8999,PrimaryAvailabilityZone='us-east-1c',ReplicaAvailabilityZones='us-east-1b'" \ "ReplicaCount=2,Slots=9000-16383,PrimaryAvailabilityZone='us-east-1a',ReplicaAvailabilityZones='us-east-1a','us-east-1c'"

之前的操作生成以下输出。

{
    "ReplicationGroup": {
        "Status": "creating", 
        "Description": "Sharded replication group", 
        "ReplicationGroupId": "rc-rg", 
        "SnapshotRetentionLimit": 8, 
        "AutomaticFailover": "enabled", 
        "SnapshotWindow": "10:00-11:00", 
        "MemberClusters": [
            "rc-rg-0001-001", 
            "rc-rg-0001-002", 
            "rc-rg-0002-001", 
            "rc-rg-0002-002", 
            "rc-rg-0002-003"
        ], 
        "PendingModifiedValues": {}
    }
}

有关其他信息和可能希望使用的参数,请参阅 AWS CLI 主题 create-replication-group

(ElastiCache API) 从头开始创建具有副本的 Redis (已启用集群模式) 集群

以下过程使用 ElastiCache API 创建 Redis (已启用集群模式) 复制组。

在从头创建 Redis (已启用集群模式)复制组时,您通过单次调用 ElastiCache API CreateReplicationGroup 操作创建复制组及其所有节点。包括以下参数。

ReplicationGroupId

正在创建的复制组的名称。

Redis (已启用集群模式) 复制组命名约束

  • 必须包含 1 到 20 个字母数字字符或连字符。

  • 必须以字母开头。

  • 不能包含两个连续的连字符。

  • 不能以连字符结尾。

ReplicationGroupDescription

复制组的描述.

NumNodeGroups

您希望对此复制组创建的节点组数量。有效值为 1 到 15。

ReplicasPerNodeGroup

各节点组中的副本节点数量。有效值从 1 到 5。

NodeGroupConfiguration

各节点组的配置。NodeGroupConfiguration 参数包括以下字段。

  • PrimaryAvailabilityZone - 此节点组的主节点所在的可用区。如果忽略此参数,则 ElastiCache 选择主节点的可用区。

    示例: us-west-2a。

  • ReplicaAvailabilityZones - 只读副本所在可用区的列表。此列表中的可用区数量必须与 ReplicaCount 的值匹配。如果忽略此参数,则 ElastiCache 选择复制节点的可用区。

  • ReplicaCount – 此节点组中的副本节点数量。

  • Slots – 指定节点组的密钥空间的字符串。字符串的格式为 startKey-endKey。如果忽略此参数,ElastiCache 在所有节点组之间均匀分配密钥。

    示例: "0-4999"

     

CacheNodeType

复制组中的每个节点的节点类型。

ElastiCache 支持以下节点类型。一般而言,与其上一代类型对应项相比,最新一代类型以更低的成本提供了更多内存和计算能力。

  • 通用型:

    • 最新一代:

      T2 节点类型:cache.t2.microcache.t2.smallcache.t2.medium

      M3 节点类型:cache.m3.mediumcache.m3.largecache.m3.xlargecache.m3.2xlarge

      M4 节点类型:cache.m4.largecache.m4.xlargecache.m4.2xlargecache.m4.4xlargecache.m4.10xlarge

    • 上一代:(不推荐)

      T1 节点类型:cache.t1.micro

      M1 节点类型:cache.m1.smallcache.m1.mediumcache.m1.largecache.m1.xlarge

  • 计算优化:

    • 上一代:(不推荐)

      C1 节点类型:cache.c1.xlarge

  • 内存优化:

    • 最新一代:

      R3 节点类型:cache.r3.largecache.r3.xlargecache.r3.2xlargecache.r3.4xlargecache.r3.8xlarge

    • 上一代:(不推荐)

      M2 节点类型:cache.m2.xlargecache.m2.2xlargecache.m2.4xlarge

其他节点类型信息

  • 所有 T2 实例均在 Amazon Virtual Private Cloud (Amazon VPC) 中创建。

  • T2 实例不支持 Redis 备份和还原。

  • T1 或 T2 实例不支持 Redis 仅附加文件 (AOF)。

  • T1 实例不支持具有自动故障转移功能的 Redis 多可用区。

  • 仅当使用 default.redis3.2.cluster.on 参数组或从中派生的参数组运行 Redis (已启用集群模式) 3.2.4 或更高版本时,T2 实例才支持具有自动故障转移功能的 Redis 多可用区。

  • Redis 版本 2.8.22 及更高版本不支持 Redis 配置变量 appendonlyappendfsync

CacheParameterGroup

指定 default.redis3.2.cluster.on 参数组或者从 default.redis3.2.cluster.on 派生参数组来创建 Redis (已启用集群模式) 复制组。有关更多信息,请参阅 Redis 3.2.4 参数更改

引擎

redis

引擎版本

3.2.4

如果要对此群集启用传输中加密或静态加密,请添加以下参数:

  • TransitEncryptionEnabled=true

    如果要启用传输中加密,必须在 Amazon VPC 中创建群集,还必须包含参数 CacheSubnetGroup

  • 需要提供 AuthToken 以及客户为 AUTH 令牌指定的字符串值 (密码),才能对此群集执行操作。

  • AtRestEncryptionEnabled=true

为了便于阅读,添加了换行符。

Copy
https://elasticache.us-west-2.amazonaws.com/ ?Action=CreateReplicationGroup &CacheNodeType=cache.m4.large &CacheParemeterGroup=default.redis3.2.cluster.on &Engine=redis &EngineVersion=3.2.4 &NumNodeGroups=3 &ReplicasPerNodeGroup=2 &ReplicationGroupDescription=test%20group &ReplicationGroupId=myReplGroup &Version=2015-02-02 &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20150202T192317Z &X-Amz-Credential=<credential>

有关其他信息和可能希望使用的参数,请参阅 ElastiCache API 主题 CreateReplicationGroup