mcpField
A
aws-cloudformation-elasticache

aws-cloudformation-elasticache

github.com/giuseppe-trisciuoglio云与 DevOps36565 次安装7 周前更新
代码仓库

关于 aws-cloudformation-elasticache

为使用 CloudFormation 部署 ElastiCache 的用户提供建模指导,涵盖拓扑选择、私有网络、安全与跨堆栈输出,并提示变更风险。

主要功能

  1. 01选择 Redis 或 Memcached 拓扑
  2. 02配置子网组与安全组
  3. 03设置加密、快照与可用性
  4. 04导出缓存端点供其他堆栈使用
  5. 05检查替换与停机风险

适用场景

  1. 01创建 Redis 或 Memcached 缓存层
  2. 02为应用配置私有缓存网络
  3. 03评估缓存变更的影响
  4. 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.md
  • references/reference.md

相关技能

  • aws-cloudformation-vpc
  • aws-cloudformation-security
  • aws-cloudformation-ecs
  • aws-cloudformation-lambda

评论

支持 Markdown