AWS CloudFormation
User Guide (API 版本 2010-05-15)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

AWS::ElastiCache::ReplicationGroup

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

语法

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

JSON

{ "Type" : "AWS::ElastiCache::ReplicationGroup", "Properties" : { "AtRestEncryptionEnabled" : Boolean, "AuthToken" : String, "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, ..., "TransitEncryptionEnabled" : Boolean } }

YAML

Type: "AWS::ElastiCache::ReplicationGroup" Properties: AtRestEncryptionEnabled: Boolean AuthToken: String 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 TransitEncryptionEnabled: Boolean

属性

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

AtRestEncryptionEnabled

指示是否启用静态加密。默认值为 false。有关如何使用此属性的更多信息,请参阅 Amazon ElastiCache API 参考 中的 CreateReplicationGroup

必需:

类型:布尔值

更新要求替换

AuthToken

用于访问受密码保护的服务器的密码。有关约束,请参阅 Amazon ElastiCache API 参考 中的 CreateReplicationGroup

只能在 TransitEncryptionEnabledtrue 的复制组上指定 AuthToken

重要

对于 HIPAA 合规性,您必须将 TransitEncryptionEnabled 指定为 true,并指定 AuthTokenCacheSubnetGroupName

必需:

类型:字符串

更新要求替换

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 资源标签

更新要求无需中断

TransitEncryptionEnabled

指示是否启用传输中加密。默认值为 false。有关如何使用此属性的更多信息,请参阅 Amazon ElastiCache API 参考 中的 CreateReplicationGroup

如果您启用 TransitEncryptionEnabled,则还必须指定 CacheSubnetGroupName

必需:

类型:布尔值

更新要求替换

返回值

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

另请参阅