mcpField
A
amazon-elasticache

amazon-elasticache

github.com/aws数据与数据库3.3k5.5k 次安装1 天前更新
代码仓库

关于 amazon-elasticache

这是一个由多个子技能组成的 Amazon ElastiCache 工具包,按用户需求路由到方案评估、配置、数据建模、AI 工作负载、监控或迁移流程。它面向使用或评估 ElastiCache 的开发与运维人员,并通过 requirements.json 在子技能间保存状态。

主要功能

  1. 01按意图路由到专门子技能
  2. 02评估缓存方案与工作负载
  3. 03指导配置、连接和安全
  4. 04覆盖数据建模及 AI 场景
  5. 05支持监控、排障与迁移

适用场景

  1. 01评估新工作负载是否适合 ElastiCache
  2. 02设计缓存键、TTL 和失效策略
  3. 03排查性能、成本或可靠性问题
  4. 04规划引擎或部署方式迁移

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/aws/agent-toolkit-for-aws --skill amazon-elasticache

安装后在 Claude Code 中输入/amazon-elasticache确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

assets/examples/
sample_commandstats.csv
sample_input_simple.csv
references/data-modeling/
command-availability.md
common-patterns.md
instructions.md
memcached-recipe.md
recipe-gallery.md
references/genai/
agent-memory.md
elasticache-search.md
embedding-providers.md
framework-guide.md
instructions.md
rag-retrieval.md
semantic-cache.md
session-store.md
references/migration/
auth-migration.md
feature-comparison.md
global-datastore-operations.md
instructions.md
rollback-procedures.md
self-managed-migration.md
sizing-assessment.md
topology-validation.md
upgrade-patching.md
valkey-migration-guide.md
references/monitoring/
alarm-packs.md
big-key-hunter.md
client-tuning-and-diagnostics.md
cloudwatch-dashboards.md
cost-reporting.md

详细介绍

ElastiCache

模块化的 ElastiCache 工具包,采用子技能注册表组织。每个子技能负责 ElastiCache 的一个工作领域。下方的路由器会将用户意图匹配到合适的子技能,然后仅加载该子技能所需的参考资料。

此技能的工作方式

  1. 将用户的请求与下方注册表中的语义类别进行匹配。依据含义匹配,而非精确措辞(例如,即使没有出现“模式”一词,“帮我确定该使用哪些数据结构”也匹配 data-modeling)。
  2. 消歧: 如果用户意图匹配多个子技能,请按以下顺序应用这些规则:
    • 如果 .elasticache/requirements.json 存在且其中的 infrastructure.endpoint 已设置,优先选择 monitoring 或 data-modeling(用户已有缓存)。
    • 如果不存在缓存(没有 requirements.json 或没有 endpoint),优先选择 requirements。
    • 如果仍有歧义,提出一个澄清问题:“您是想新建一些内容,还是排查现有内容的问题?”
  3. 在推荐引擎或部署模式之前,请先查看 Guardrails 部分。
  4. 阅读匹配子技能的 references/{sub-skill-id}/instructions.md。如果相对路径下找不到该文件,请检查提示词或环境中是否提供了技能目录的绝对路径,然后使用 {skill-directory}/references/{sub-skill-id}/instructions.md 重试。
  5. 如果请求涉及多个子技能,请按流水线顺序执行。
  6. 如果某个子技能需要尚未存入会话记忆的上游上下文(引擎、部署模式、endpoint),请先路由到上游子技能。
  7. 如果没有匹配的子技能,请先启用 requirements。
  8. 如果脚本或 CLI 调用失败,请向用户展示错误,并在重试前提出具体的修复建议。

子技能注册表

每个条目包含:ID(references/ 下的目录名)、领域描述、用于匹配的语义类别,以及上游/下游依赖。

ID名称领域语义类别上游下游
requirements方案适配通过工作区扫描和结构化访谈收集工作负载、技术栈、规模、延迟、持久性和预算信息。判断 ElastiCache 是否适合,并提供路由建议以便后续处理。我需要缓存、加快应用速度、减少数据库负载、降低 Bedrock 成本、我应该使用 ElastiCache 吗、什么最适合我的工作负载、评估缓存选项、ElastiCache 与 X 对比、Valkey 与 X 对比、模糊的新工作负载—setup、data-modeling、genai、monitoring、migration
setup创建与连接配置、连接、安全、身份验证、IaC、部署选项。以最小阻力帮助用户获得可用的缓存。涵盖引擎选择、无服务器与基于节点的方案、VPC、TLS、RBAC/IAM、跳板主机/SSM 隧道、CLI/SDK/CFN/CDK/Terraform 入门方案。创建缓存、设置 ElastiCache、配置、Valkey 集群、连接 Lambda/ECS/EKS/EC2、VPC、安全组、TLS、RBAC、IAM 身份验证、跳板主机、SSM 隧道、CloudFormation、CDK、Terraform、引擎选择、无服务器与基于节点的方案、备份、快照、还原、导出requirements(可选)data-modeling、genai、monitoring
data-modeling应用模式为非 AI 模式选择数据结构、键架构、TTL 策略、失效方法和客户端代码:缓存旁路、会话存储、速率限制、排行榜、计数器、发布/订阅、流、购物车、作业队列、动态信息流。会话存储、速率限制、排行榜、缓存旁路、查询缓存、计数器、流、发布/订阅、购物车、作业队列、动态信息流、键架构、TTL、失效、数据结构setup(必须已存在缓存)monitoring
genaiAI 与向量工作负载将请求分类为模式 1(纯缓存)、模式 2(语义响应缓存)或模式 3(完整向量搜索)。选择 Valkey;需要服务器端向量相似度时,强制使用基于节点的 Valkey 8.2 或更高版本(推荐 9.0)。涵盖语义缓存、Agent 记忆、RAG 检索、推荐、个性化、AI Agent 的对话/会话持久化,以及框架接入(Strands、mem0、LangChain)。语义缓存、RAG、Agent 记忆、对话记忆、向量搜索、嵌入、推荐、个性化、Bedrock 延迟、Bedrock 成本、大模型缓存、Strands、mem0、LangChain、对话历史、AI 会话存储、嵌入提供商、框架集成setup(必须已存在缓存)monitoring
monitoring运维与观察优先使用指标诊断性能、成本和可靠性问题,然后建议最小幅度的变更。涵盖仪表板、警报、日志交付、成本报告、事件路由,以及高 CPU/内存/复制延迟/连接突增/命中率低/热点键/大键/槽位不均/延迟突增根因排查。缓存速度慢、成本过高、命中率低、CPU 使用率高、内存压力、复制延迟、连接突增、仪表板、警报、CloudWatch、成本比较、故障排查、热点键、分片负载不均、单个节点负载过高、大键、内存膨胀、哪个键最大、键空间分布、前缀分析、按租户归因成本、内存不均衡、单个分片已满、槽位内存倾斜、延迟突增、慢命令事件、延迟上升的根因—setup、migration
migration引擎与平台迁移选择迁移路径,并安排迁移前检查、验证、切换和回滚。涵盖自管理 Redis → ElastiCache、Redis OSS → Valkey、基于节点 ↔ 无服务器、版本升级。严格执行先验证再迁移的门槛。迁移、Redis OSS 到 Valkey、自管理到 ElastiCache、基于节点到无服务器、无服务器到基于节点、引擎升级、版本升级、零停机切换、回滚—setup、monitoring

流水线顺序

各子技能独立运行,但常见的多步骤流程会遵循以下流水线:

  • requirements → setup →(data-modeling | genai)→ monitoring
  • migration → setup → monitoring
  • monitoring → setup | migration(如果指标表明需要)

状态交接:requirements.json

.elasticache/requirements.json 是跨子技能状态的唯一事实来源。每个子技能启动时都会读取该文件,并在完成工作后写入自己的部分。写入前先读取;合并内容,不要覆盖。

部分负责方关键字段
顶层requirementsengine、deployment_model、region、runtime、patterns、use_case、vpc_id、subnet_ids、security_group_ids
infrastructuresetupcache_name、resource_id、engine_version、topology、endpoint、port、auth_model、tls、client_library、execution_path、access_mode、tunnel_instance_id、embedding_provider、embedding_model、embedding_dim、embedding_module
genaigenaimode、mode_2_path、framework
migrationmigrationsource_type、source_host、migration_path、cutover_status

归属说明: 初次访谈期间,requirements 会设置 deployment_model。切换引擎或部署模型(例如从基于节点的部署切换到无服务器部署)后,migration 可以更新该值。

requirements.json 顶层应包含 "schema_version": 1 和 "last_updated": "<ISO timestamp>"。每个写入 requirements.json 的子技能都必须更新 last_updated。如果 last_updated 超过 7 天,则提醒用户缓存的状态可能已过时。

requirements.json 用于跟踪一个活动缓存。如果用户在同一项目中使用多个缓存,请在读取或写入状态前确认哪个缓存处于活动状态。

子技能需要上游上下文(引擎、端点、身份验证模型)时,应先检查 requirements.json。如果字段为 null 或文件不存在,则转到上游子技能。

全局规则(适用于每个子技能)

  1. 执行路径。 对控制平面操作,优先使用 AWS CLI、SDK(boto3)、CloudFormation 或 CDK。对数据平面操作,优先使用 valkey-py。

  2. 回答详略。 对“是否应该”或“选哪个”这类问题,提供摘要(2-3 句话)。默认提供标准回答(建议 + 配置 + 代码 + 后续步骤)。对“为什么”或“全部比较”这类问题,提供专家级回答(包含完整的决策矩阵、替代方案、成本和安全注意事项)。按用户请求增加详略;切勿在用户未要求时降低详略程度。

  3. 会话记忆。 记录区域、VPC、引擎、部署模型、身份验证模型、计算运行时和语言,并在子技能之间沿用。不要重复询问。若用户更改某个值,请在所有相关内容中更新该值。对于推断出的值(来自工作区扫描或 IaC),在做出高风险决策(引擎、部署模型、安全状况)前必须再次确认;低风险推断(语言、框架、区域)可直接作为默认值使用,无需说明。

  4. 来源优先级。 始终优先依据技能本地文件回答(先查阅子技能参考资料,再查阅 scripts/)。除非本地文件无法回答,否则不要获取外部文档或进行网络搜索。本地文件信息不足时,功能相关内容请参考 AWS 官方文档:https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/;定价相关内容请参考 https://aws.amazon.com/elasticache/pricing/。切勿臆造价格或版本限制。若用户提到本地文件未涵盖的 Valkey 或 Redis 版本、功能或定价层级,回答前请参考 https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/。不要根据可能已过时的本地内容进行推断。

  5. 时效性免责声明。 提供定价、版本限制或功能可用性信息时,请附上一行免责声明:“如需了解当前定价,请访问 https://aws.amazon.com/elasticache/pricing/。如需了解当前功能可用性,请访问 https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/。”

  6. 连接安全。 切勿在模块级(文件顶部、导入时)创建 Valkey/Redis 客户端。应在函数内部或首次使用时初始化连接。在缓存尚不可访问时导入模块,模块级连接会导致应用崩溃。

  7. 代码环境。 所有命令和 shebang 均使用 python3(不要使用 python)。不要在应用代码中生成 pip install 或 pytest 命令。写入文件时,优先使用 Agent 的文件写入工具,而不是 shell 重定向。

  8. 输入验证(仅限写入操作)。 在运行任何使用用户提供值(缓存名称、区域、子网 ID、安全组 ID、VPC ID、KMS 密钥、快照名称)的创建、修改或删除 CLI 命令或 SDK 调用前,请使用 scripts/input_validator.py 验证这些值。运行 python3 scripts/input_validator.py cache_name=<val> region=<val> ...,或将 validate_all 作为库导入。对于错误输入无害的只读操作(describe、list),无需验证。

  9. 资源标记(创建资源时始终应用)。 创建任何缓存(create-serverless-cache、create-replication-group、create-cache-cluster)时,始终包含以下标记:

    --tags Key=managed_by,Value=aws-skills Key=skill,Value=elasticache Key=skill_version,Value=1.0.0 Key=created_by,Value=elasticache-skill Key=generation_model,Value={your-model-id}

    示例:--tags Key=managed_by,Value=aws-skills Key=skill,Value=elasticache Key=skill_version,Value=1.0.0 Key=created_by,Value=elasticache-skill Key=generation_model,Value=claude-sonnet-4-20250514

    将 generation_model 设为你自己的模型标识符。即使用户未提及标记,也要包含这些标记。如果用户提供了其他标记,请将这些标记追加到用户的标记中,而不是替换它们。

参考资料加载

仅在当前轮次的回答需要时,才加载其他参考资料。

按需查阅指引(未预加载;符合触发条件时获取):

  • references/shared-ux/production-readiness.md — 用户询问其缓存是否已准备好投入生产,或设置完成后用户想要转入生产环境时
  • references/shared-ux/action-safety.md — 执行任何破坏性操作之前(风险等级、绝不自动执行的操作清单)
  • references/shared-ux/error-remediation.md — 用户遇到特定 ElastiCache 错误代码(MOVED、CROSSSLOT、CLUSTERDOWN、MULTI/EXEC+IAM 等)时
  • references/shared-foundation/boundary-doc.md — 用户询问此技能涵盖哪些内容时
  • references/shared-foundation/attribution.md — 生成 CLI 命令、SDK 代码或 IaC 模板时
  • references/shared-foundation/architecture-diagrams.md — 用户需要架构图或可视化参考时
  • references/shared-runtime/lambda.md — 从 Lambda 连接时(冷启动注意事项、IAM 身份验证代码、延迟初始化)
  • references/shared-runtime/ecs.md — 从 ECS 连接时(SIGTERM 关闭、连接池清空、任务定义)
  • references/shared-runtime/eks.md — 从 EKS 连接时(IRSA、绕过服务网格、SecurityGroupPolicy CRD)
  • references/shared-runtime/api-gateway.md — 与 API Gateway 集成时(无直接路径、缓存层比较)
  • references/shared-runtime/rds-acceleration.md — 缓存 RDS/Aurora 查询时(惊群效应、防止缓存击穿、失效处理)
  • references/shared-runtime/secret-injection.md — 用户询问各计算平台的凭证管理时
  • references/shared-security/encryption-defaults.md — 为现有未加密集群添加加密时(TLS 两步迁移、静态加密不可变性)
  • references/shared-security/config-guardrails.md — 用户需要持续合规监控时(AWS Config 规则、自定义 Lambda 规则)
  • references/shared-security/vpc-patterns.md — 排查端口/安全组问题时(serverless 读取端口 6380、反模式)

文件夹约定: references/ 包含 10 个文件夹。其中 6 个与子技能相对应(requirements、setup、data-modeling、genai、monitoring、migration),是路由目标。4 个 shared-* 文件夹(shared-foundation、shared-ux、shared-security、shared-runtime)包含横向通用资料,按需加载,不作为路由目标。

防护规则

优先级规则
CRITICAL向量搜索必须使用基于节点的 Valkey 8.2 或更高版本。 Serverless 不支持向量搜索。绝不要为向量搜索推荐 Serverless。无论激活哪个子技能,都必须遵守此规则。
CRITICAL不要编造价格或版本限制。需要精确信息时,使用 scripts/price_calculator.py 和最新的 AWS 文档。
HIGH如果用户需要持久化、复制、RBAC 或 IAM 身份验证、有序集合、流、发布/订阅或向量搜索,不要推荐 Memcached。
HIGH不要假设可以直接从本地笔记本访问。ElastiCache 以 VPC 为中心;需要时说明如何通过 VPC、隧道或跳板主机访问。
STANDARD不要因任何笼统提及 Redis 就触发此技能。仅当用户明确询问 AWS、托管缓存、迁移、连接、定价、运维或 AWS 服务集成时才触发。
STANDARD在 AWS 场景中,若用户提出含糊的“缓存”请求,则激活此技能并从 requirements 开始。

产品要点

  • ElastiCache Serverless 可在不到一分钟内完成部署,并免去基础设施管理工作。
  • Valkey 无服务器定价比其他受支持的引擎低 33%;基于节点的 Valkey 定价低 20%。
  • 无服务器缓存始终启用传输中加密(无法禁用)。
  • 所有 ElastiCache Valkey 版本(ElastiCache 上的基准 Valkey 版本为 7.2)以及 Redis OSS 7.0+ 均支持 IAM 身份验证。
  • Valkey 版本阶梯:7.2(基准版本)、8.0(每个节点可存储的数据增加 20%(容量提升),支持按槽位查看指标)、8.1(布隆过滤器、COMMANDLOG、SET IFEQ、通过新哈希表减少 20% 的内存使用量(效率提升))、8.2(向量搜索)、9.0(新集群的建议默认版本)。除非有特定功能要求使用其他版本,否则新集群建议使用 Valkey 9.0。
  • 基于节点的集群支持 Valkey 8.2 或更高版本的向量搜索(建议使用 9.0)。
  • 仅基于节点的集群支持 Global Datastore。它不支持 IPv6 或 Local Zones。Global Datastore 支持 AUTH 和 RBAC。跨区域故障转移必须手动提升(不支持跨区域自动故障转移)。Global Datastore 中的所有集群都必须启用静态加密,但每个集群可以在各自区域使用单独的 KMS 密钥。
  • 从自管理 Redis 在线迁移到 ElastiCache 需要满足以下条件:(源端)不得启用 AUTH,protected-mode 设置为 no,不得重命名复制和管理命令(例如 sync、psync、info、config、command、cluster);(目标端)禁用传输中加密,启用 Multi-AZ,引擎版本为 Redis OSS 5.0.6+ 或 Valkey 7.2+,不属于 Global Datastore,且禁用数据分层。源端和目标端的分片数必须相同。所有源 Redis 实例必须使用相同的端口。无服务器缓存不支持在线迁移(仅支持基于节点的目标)。完整检查清单请参阅 references/migration/topology-validation.md。

评论

支持 Markdown