关于 aws-cloudformation-elasticache
为使用 CloudFormation 部署 ElastiCache 的用户提供建模指导,涵盖拓扑选择、私有网络、安全与跨堆栈输出,并提示变更风险。
主要功能
- 01选择 Redis 或 Memcached 拓扑
- 02配置子网组与安全组
- 03设置加密、快照与可用性
- 04导出缓存端点供其他堆栈使用
- 05检查替换与停机风险
适用场景
- 01创建 Redis 或 Memcached 缓存层
- 02为应用配置私有缓存网络
- 03评估缓存变更的影响
- 04向应用堆栈提供缓存端点
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ giuseppe-trisciuoglio/ developer-kit --skill aws-cloudformation-elasticache安装后在 Claude Code 中输入/aws-cloudformation-elasticache确认已加载。
附带文件references/examples.mdreferences/reference.md
详细介绍
AWS CloudFormation ElastiCache
概述
使用此技能通过 CloudFormation 为 ElastiCache 建模基础设施,而无需将 SKILL.md 扩展成完整的服务手册。
重点关注最重要的交付决策:
- 选择合适的缓存拓扑
- 在 VPC 内安全部署缓存
- 为下游堆栈配置可用性、加密和导出
更大型的生产模板和服务专属详情,请参阅随附的 references/ 文档。
适用场景
在以下情况下使用此技能:
- 使用 CloudFormation 创建 Redis 或 Memcached 缓存层
- 在
AWS::ElastiCache::CacheCluster和AWS::ElastiCache::ReplicationGroup之间进行选择 - 配置子网组、参数组和安全组,以供应用访问
- 添加快照、维护时段、加密和 Multi-AZ 行为
- 将缓存端点导出到应用或平台堆栈
- 审查缓存变更的替换风险、停机时间或运维成本
常见的触发短语包括 cloudformation elasticache、redis replication group、memcached cluster、cache subnet group 和 export redis endpoint。
说明
1. 先选择缓存拓扑
使用:
- 对于需要故障转移、副本或分片的生产环境 Redis 部署,使用
ReplicationGroup - 对于 Memcached 或简单的单节点缓存场景,使用
CacheCluster
在决定应用是否需要持久性、只读副本、集群模式,或仅需要临时缓存之前,不要着手编写资源 YAML。
2. 明确配置网络边界
创建并连接:
- 使用私有应用子网的子网组
- 仅允许应用层访问的安全组
- 仅当默认引擎设置不够用时才使用参数组
除非有极其特殊且经过充分审查的理由,否则应让缓存保持私有。
3. 根据环境配置持久性和安全性
对于生产级 Redis 部署,请决定是否启用:
- 自动故障转移和 Multi-AZ
- 静态加密和传输中加密
- 快照保留期限和维护时段
- 支持的身份验证或身份验证令牌策略
对于较低环境,请说明何时可以接受成本较低的单节点配置。
4. 添加可复用的参数和输出
仅对确实会因环境而异的设置进行参数化,例如节点类型、子网 ID 或快照保留期限。
导出其他堆栈所需的输出,通常包括:
- 主端点或配置端点
- 适用时的只读端点
- 仅当下游堆栈确实依赖安全组或子网组标识符时,才导出这些标识符
5. 部署前验证堆栈变更
部署前:
- 运行模板验证
- 检查变更是否会替换集群或复制组
- 审查安全组暴露范围和加密设置
- 确认维护、备份和扩缩容选项符合应用的恢复预期
示例
示例 1:使用私有网络的 Redis 复制组
Parameters:
CacheNodeType:
Type: String
Default: cache.t4g.small
Resources:
CacheSubnetGroup:
Type: AWS::ElastiCache::SubnetGroup
Properties:
Description: Private subnets for the cache tier
SubnetIds: !Ref PrivateSubnetIds
CacheSecurityGroup:
Type: AWS::EC2::SecurityGroup
Properties:
GroupDescription: Application access to Redis
VpcId: !Ref VpcId
RedisReplicationGroup:
Type: AWS::ElastiCache::ReplicationGroup
Properties:
ReplicationGroupDescription: Application Redis cluster
Engine: redis
CacheNodeType: !Ref CacheNodeType
NumNodeGroups: 1
ReplicasPerNodeGroup: 1
AutomaticFailoverEnabled: true
MultiAZEnabled: true
CacheSubnetGroupName: !Ref CacheSubnetGroup
SecurityGroupIds:
- !Ref CacheSecurityGroup
TransitEncryptionEnabled: true
AtRestEncryptionEnabled: true
示例 2:为另一个堆栈导出端点
Outputs:
RedisPrimaryEndpoint:
Description: Primary endpoint used by the application stack
Value: !GetAtt RedisReplicationGroup.PrimaryEndPoint.Address
Export:
Name: !Sub "${AWS::StackName}-RedisPrimaryEndpoint"
保持输出精简且稳定,避免不必要地破坏使用方堆栈。
最佳实践
- 对生产系统,优先使用复制组,而不是单节点 Redis。
- 将缓存放在私有子网中,并将入站访问限制为已知的应用安全组。
- 除非有记录在案的理由,否则应启用加密和快照。
- 更改引擎版本、集群模式或子网设计前,先评估替换风险。
- 使用参数设置各环境特有的资源规格,不要为所有可能的选项都设置参数。
- 将深入的模板变体放在
references/examples.md中,避免根技能文档无限扩展。
约束和警告
- 如果操作不慎,某些 ElastiCache 更改会导致资源替换或数据丢失。
- NAT、子网和路由配置错误可能导致缓存无法访问,即使堆栈部署成功也是如此。
- 多可用区、副本和更大型的节点类型可能会显著改变成本。
- 缓存端点、加密支持和身份验证功能因引擎和版本而异。
- 快照和维护时段必须与应用的恢复和部署实践相符。
参考资料
references/examples.mdreferences/reference.md
相关技能
aws-cloudformation-vpcaws-cloudformation-securityaws-cloudformation-ecsaws-cloudformation-lambda
评论
支持 Markdown