AWS CloudFormation
User Guide (API Version 2010-05-15)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

AWS::ElastiCache::ReplicationGroup

AWS::ElastiCache::ReplicationGroup 资源将创建一个 Amazon ElastiCache Redis 复制组。复制组 是缓存群集的集合,其中一个群集是主读/写群集,其他群集是只读副本。

语法

要在 AWS CloudFormation 模板中声明此实体,请使用以下语法:

JSON

{ "Type" : "AWS::ElastiCache::ReplicationGroup", "Properties" : { "AutomaticFailoverEnabled" : Boolean, "AutoMinorVersionUpgrade" : Boolean, "CacheNodeType" : String, "CacheParameterGroupName" : String, "CacheSecurityGroupNames" : [ String, ... ], "CacheSubnetGroupName" : String, "Engine" : String, "EngineVersion" : String, "NodeGroupConfiguration" : [ NodeGroupConfiguration ], "NotificationTopicArn" : String, "NumCacheClusters" : Integer, "NumNodeGroups" : Integer, "Port" : Integer, "PreferredCacheClusterAZs" : [ String, ... ], "PreferredMaintenanceWindow" : String, "PrimaryClusterId" : String, "ReplicasPerNodeGroup" : Integer, "ReplicationGroupDescription" : String, "ReplicationGroupId" : String, "SecurityGroupIds" : [ String, ... ], "SnapshotArns" : [ String, ... ], "SnapshotName" : String, "SnapshotRetentionLimit" : Integer, "SnapshottingClusterId" : String, "SnapshotWindow" : String, "Tags" : Resource Tag, ... } }

YAML

Type: "AWS::ElastiCache::ReplicationGroup" Properties: AutomaticFailoverEnabled: Boolean AutoMinorVersionUpgrade: Boolean CacheNodeType: String CacheParameterGroupName: String CacheSecurityGroupNames: - 字符串 CacheSubnetGroupName: String Engine: String EngineVersion: String NodeGroupConfiguration: - NodeGroupConfiguration NotificationTopicArn: String NumCacheClusters: Integer NumNodeGroups: Integer Port: Integer PreferredCacheClusterAZs: - 字符串 PreferredMaintenanceWindow: String PrimaryClusterId: String ReplicasPerNodeGroup: Integer ReplicationGroupDescription: String ReplicationGroupId: String SecurityGroupIds: - 字符串 SnapshotArns: - 字符串 SnapshotName: String SnapshotRetentionLimit: Integer SnapshottingClusterId: String SnapshotWindow: String Tags - Resource Tag

属性

有关每个属性和有效值的更多信息,请参阅 Amazon ElastiCache API 参考指南 中的 CreateReplicationGroup

AutomaticFailoverEnabled

表示多可用区是否启用。当多可用区启用后,只读副本会在现有主群集失败时自动提升为读写主群集。如果您指定 true,则必须为 NumCacheClusters 属性指定大于 1 的值。默认情况下,AWS CloudFormation 将该值设置为 true

对于 Redis (clustered mode enabled) 复制组,您必须启用自动故障转移。

有关多可用区约束的信息,请参阅 Amazon ElastiCache 用户指南 中的具有多可用区和自动故障转移功能的复制 (Redis)

注意

您不能对 2.8.6 版之前的 Redis 版本或者对 T1 缓存节点类型启用自动故障转移。仅当您运行支持群集模式的 Redis 版本 3.2.4 或更高版本时,T2 节点类型才支持自动故障转移。

重要

如果指定了 PrimaryClusterId,则只能使用以下附加参数:

  • AutomaticFailoverEnabled

  • NodeGroupConfiguration

  • NumCacheClusters

  • NumNodeGroups

  • PreferredCacheClusterAZs

  • ReplicationGroupDescription

Required: No

Type: Boolean

更新要求无需中断

AutoMinorVersionUpgrade

目前,ElastiCache 未使用此属性。

Required: No

Type: Boolean

更新要求无需中断

CacheNodeType

节点组中的节点的计算和内存容量。有关有效值,请参阅 Amazon ElastiCache API 参考指南 中的 CreateReplicationGroup

Required: No

Type: String

更新要求无需中断

CacheParameterGroupName

要与此复制组关联的参数组的名称。有关有效值和默认值,请参阅 Amazon ElastiCache API 参考指南 中的 CreateReplicationGroup

Required: No

Type: String

更新要求时而中断

CacheSecurityGroupNames

要与此复制组关联的缓存安全组名称的列表。

重要

如果您指定 CacheSecurityGroupNames 属性,则也不要指定 SecurityGroupIds 属性。

SecurityGroupIds 属性仅适用于 Amazon Virtual Private Cloud (Amazon VPC) 安全组。如果您指定 Amazon VPC 安全组,部署将失败。

Required: No

Type: List of String values

更新要求无需中断

CacheSubnetGroupName

要用于此复制组的缓存子网组的名称。

Required: No

Type: String

更新要求替换

Engine

要用于此复制组中的缓存群集的缓存引擎的名称。当前只能指定 redis

Required: Yes

Type: String

更新要求无需中断

EngineVersion

要用于此复制组中的缓存群集的缓存引擎的版本号。

Required: No

Type: String

更新要求无需中断

NodeGroupConfiguration

节点组(分区)的配置选项。

重要

如果指定了 PrimaryClusterId,则只能使用以下附加参数:

  • AutomaticFailoverEnabled

  • NodeGroupConfiguration

  • NumCacheClusters

  • NumNodeGroups

  • PreferredCacheClusterAZs

  • ReplicationGroupDescription

Required: No

Type: Amazon ElastiCache ReplicationGroup NodeGroupConfiguration 列表

更新要求替换

NotificationTopicArn

要将通知发送到的 Amazon Simple Notification Service 主题的 Amazon 资源名称 (ARN)。

Required: No

Type: String

更新要求无需中断

NumCacheClusters

此复制组的缓存群集的编号。如果已启用自动故障转移,则必须指定一个大于 1 的值。有关有效值,请参阅 Amazon ElastiCache API 参考指南 中的 CreateReplicationGroup

如果指定了多个节点组(分区),则将忽略此属性。请改用 ReplicasPerNodeGroup 属性。

重要

如果指定了 PrimaryClusterId,则只能使用以下附加参数:

  • AutomaticFailoverEnabled

  • NodeGroupConfiguration

  • NumCacheClusters

  • NumNodeGroups

  • PreferredCacheClusterAZs

  • ReplicationGroupDescription

Required: No

Type: Integer

更新要求无需中断

NumNodeGroups

此 Redis (clustered mode enabled) 复制组的节点组(分区)的数量。对于 Redis (clustered mode disabled),请忽略此属性。

重要

如果指定了 PrimaryClusterId,则只能使用以下附加参数:

  • AutomaticFailoverEnabled

  • NodeGroupConfiguration

  • NumCacheClusters

  • NumNodeGroups

  • PreferredCacheClusterAZs

  • ReplicationGroupDescription

Required: No

Type: Integer

更新要求替换

Port

复制组的每个成员在其上接受连接的端口号。

Required: No

Type: Integer

更新要求替换

PreferredCacheClusterAZs

在其中创建此复制组中的缓存群集的可用区的列表。

重要

如果指定了 PrimaryClusterId,则只能使用以下附加参数:

  • AutomaticFailoverEnabled

  • NodeGroupConfiguration

  • NumCacheClusters

  • NumNodeGroups

  • PreferredCacheClusterAZs

  • ReplicationGroupDescription

Required: No

Type: List of String values

更新要求替换

PreferredMaintenanceWindow

可以进行系统维护的每周时间范围。使用以下格式指定时间范围:ddd:hh24:mi-ddd:hh24:mi (24 小时制 UTC)。例如,您可以为周日晚上的 10 点至 11 点 30 分的时间范围指定 sun:22:00-sun:23:30

Required: No

Type: String

更新要求无需中断

PrimaryClusterId

ElastiCache 用作复制组的主群集的缓存群集。该缓存群集的状态必须为 available

重要

如果指定了 PrimaryClusterId,则只能使用以下附加参数:

  • AutomaticFailoverEnabled

  • NodeGroupConfiguration

  • NumCacheClusters

  • NumNodeGroups

  • PreferredCacheClusterAZs

  • ReplicationGroupDescription

Required: Conditional。如果指定 NumCacheClustersNumNodeGroupsReplicasPerNodeGroup 属性,则该属性是可选的。

Type: String

更新要求无需中断

ReplicasPerNodeGroup

各节点组(分区)中的副本节点数量。有关有效值,请参阅 Amazon ElastiCache API 参考指南 中的 CreateReplicationGroup

Required: No

Type: Integer

更新要求替换

ReplicationGroupDescription

复制组的描述。

重要

如果指定了 PrimaryClusterId,则只能使用以下附加参数:

  • AutomaticFailoverEnabled

  • NodeGroupConfiguration

  • NumCacheClusters

  • NumNodeGroups

  • PreferredCacheClusterAZs

  • ReplicationGroupDescription

Required: Yes

Type: String

更新要求无需中断

ReplicationGroupId

复制组的 ID。如果未指定 ID,AWS CloudFormation 将生成一个唯一物理 ID。有关更多信息,请参阅 名称类型

Required: No

Type: String

更新要求替换

SecurityGroupIds

要与此复制组关联的 Amazon Virtual Private Cloud (Amazon VPC) 安全组的列表。

重要

如果您指定 SecurityGroupIds 属性,则也不要指定 CacheSecurityGroupNames 属性。

CacheSecurityGroupNames 属性仅适用于 EC2-Classic 安全组。如果您指定 EC2-Classic 安全组,部署将失败。

Required: No

Type: List of String values

更新要求无需中断

SnapshotArns

指定存储在 Amazon Simple Storage Service (Amazon S3) 中的 Redis .rdb 快照文件的 ARN 的单一元素字符串列表。快照文件将填充节点组。ARN 中的 Amazon S3 对象名称不能包含逗号。例如,您可以指定 arn:aws:s3:::my_bucket/snapshot1.rdb

Required: No

Type: List of String values

更新要求替换

SnapshotName

一个快照的名称,可通过该快照将数据还原到复制组中。

Required: No

Type: String

更新要求替换

SnapshotRetentionLimit

ElastiCache 在删除自动快照前保留它们的天数。

Required: No

Type: Integer

更新要求无需中断

SnapshottingClusterId

ElastiCache 用作复制组的日常快照源的缓存群集的 ID。

Required: No

Type: String

更新要求无需中断

SnapshotWindow

ElastiCache 为您在 SnapshottingClusterId 属性中指定的节点组拍摄日常快照的时间范围 (采用 UTC)。例如,您可以指定 05:00-09:00

Required: No

Type: String

更新要求无需中断

Tags

此复制组的任意标签组(键–值对)。

Required: No

Type: AWS CloudFormation 资源标签

更新要求无需中断

返回值

Ref

当该资源的逻辑 ID 提供给 Ref内部函数时,Ref 将返回资源名称。

在下面的示例中,Ref 函数将返回 myReplicationGroup 复制组的名称,例如 abc12xmy3d1w3hv6

{ "Ref": "myReplicationGroup" }

有关使用 Ref 功能的更多信息,请参阅参考

Fn::GetAtt

Fn::GetAtt 返回一个此类型指定属性的值。以下为可用属性和示例返回值。

ConfigurationEndPoint.Address

缓存节点的 DNS 主机名。

ConfigurationEndPoint.Port

缓存引擎正在侦听的端口号。

PrimaryEndPoint.Address

主要读/写缓存节点的 DNS 地址。

PrimaryEndPoint.Port

主要读/写缓存引擎正在侦听的端口的编号。

ReadEndPoint.Addresses

包含只读副本的终端节点列表的字符串。地址顺序从 ReadEndPoint.Ports 属性映射到端口顺序。

ReadEndPoint.Ports

包含只读副本的端口列表的字符串。端口顺序从 ReadEndPoint.Addresses 属性映射到地址顺序。

ReadEndPoint.Addresses.List

只读副本的终端节点的列表。地址顺序从 ReadEndPoint.Ports.List 属性映射到端口顺序。

ReadEndPoint.Ports.List

只读副本的端口的列表。端口顺序从 ReadEndPoint.Addresses.List 属性映射到地址顺序。

有关使用 Fn::GetAtt 的更多信息,请参见 Fn::GetAtt

示例

声明具有两个节点的复制组

以下示例声明一个具有两个节点且已启用自动故障转移的复制组。

JSON

"myReplicationGroup" : { "Type": "AWS::ElastiCache::ReplicationGroup", "Properties": { "ReplicationGroupDescription" : "my description", "NumCacheClusters" : "2", "Engine" : "redis", "CacheNodeType" : "cache.m3.medium", "AutoMinorVersionUpgrade" : "true", "AutomaticFailoverEnabled" : "true", "CacheSubnetGroupName" : "subnetgroup", "EngineVersion" : "2.8.6", "PreferredMaintenanceWindow" : "wed:09:25-wed:22:30", "SnapshotRetentionLimit" : "4", "SnapshotWindow" : "03:30-05:30" } }
YAML
myReplicationGroup: Type: "AWS::ElastiCache::ReplicationGroup" Properties: ReplicationGroupDescription: "my description" NumCacheClusters: "2" Engine: "redis" CacheNodeType: "cache.m3.medium" AutoMinorVersionUpgrade: "true" AutomaticFailoverEnabled: "true" CacheSubnetGroupName: "subnetgroup" EngineVersion: "2.8.6" PreferredMaintenanceWindow: "wed:09:25-wed:22:30" SnapshotRetentionLimit: "4" SnapshotWindow: "03:30-05:30"

声明具有两个节点组的复制组

以下示例声明了一个复制组,该组具有两个节点组(分区),每个组中有三个副本。

JSON

"BasicReplicationGroup" : { "Type" : "AWS::ElastiCache::ReplicationGroup", "Properties" : { "AutomaticFailoverEnabled" : true, "AutoMinorVersionUpgrade" : true, "CacheNodeType" : "cache.r3.large", "CacheSubnetGroupName" : { "Ref" : "CacheSubnetGroup" }, "Engine" : "redis", "EngineVersion" : "3.2", "NumNodeGroups" : "2", "ReplicasPerNodeGroup" : "3", "Port" : 6379, "PreferredMaintenanceWindow" : "sun:05:00-sun:09:00", "ReplicationGroupDescription" : "A sample replication group", "SecurityGroupIds" : [ { "Ref" : "ReplicationGroupSG" } ], "SnapshotRetentionLimit" : 5, "SnapshotWindow" : "10:00-12:00" } }
YAML
BasicReplicationGroup: Type: AWS::ElastiCache::ReplicationGroup Properties: AutomaticFailoverEnabled: true AutoMinorVersionUpgrade: true CacheNodeType: cache.r3.large CacheSubnetGroupName: Ref: CacheSubnetGroup Engine: redis EngineVersion: '3.2' NumNodeGroups: '2' ReplicasPerNodeGroup: '3' Port: 6379 PreferredMaintenanceWindow: sun:05:00-sun:09:00 ReplicationGroupDescription: A sample replication group SecurityGroupIds: - Ref: ReplicationGroupSG SnapshotRetentionLimit: 5 SnapshotWindow: 10:00-12:00

本页内容: