mcpField
A
amazon-aurora-mysql

amazon-aurora-mysql

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

关于 amazon-aurora-mysql

面向 Aurora MySQL 的模块化技能,按请求将集群创建、无服务器配置建议、存储与承诺定价评估及升级规划路由到专门子技能。它适用于需要 Aurora MySQL 操作指导或执行的用户,并设有变更确认和安全护栏。

主要功能

  1. 01按意图路由至专门子技能
  2. 02提供集群创建指导
  3. 03评估无服务器容量与限制
  4. 04比较存储和承诺定价
  5. 05规划版本升级及检查清单
  6. 06变更前确认并应用安全护栏

适用场景

  1. 01规划新 Aurora MySQL 集群
  2. 02评估无服务器 ACU 容量
  3. 03比较 I/O-Optimized 存储
  4. 04准备数据库版本升级

MCP 相关

可优先通过 AWS MCP 服务执行操作;不可用时可使用 AWS CLI 或 SDK。MCP 不可用时也提供 CLI 回退路径。

安装

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

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

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

包含的文件

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

references/
commitment-pricing-basics.md
commitment-pricing-instructions.md
commitment-pricing-mechanics.md
commitment-pricing-scenarios.md
commitment-pricing-skipped-cluster.md
commitment-pricing-worked-examples.md
create-instructions.md
io-optimized-data-collection.md
io-optimized-instructions.md
io-optimized-pricing-tables.md
io-optimized-pricing.md
io-optimized-worked-examples.md
serverless-advisory-concepts.md
serverless-advisory-formulas-and-examples.md
serverless-advisory-instructions.md
serverless-advisory-migration.md
serverless-advisory-worked-examples.md
shared-foundation-security-considerations.md
upgrade-planning-documentation-links.md
upgrade-planning-instructions.md
upgrade-planning-lts-recommendation.md
upgrade-planning-mode-b-discovery.md
upgrade-planning-mode-b-prechecks-checklists.md
upgrade-planning-post-checklist.md
upgrade-planning-post-upgrade-detail.md
upgrade-planning-post-upgrade-validation.md
upgrade-planning-pre-checklist.md
upgrade-planning-prechecks-mysql.md
upgrade-planning-query-load-mysql.md
scripts/
acu_calculator.py

详细介绍

Amazon Aurora MySQL

一个模块化工具包,按子技能注册表组织,专为 Aurora MySQL 设计。每个子技能负责 Aurora MySQL 的一个工作领域。路由器会根据用户意图匹配合适的子技能,然后只加载所需的参考资料。(对于 Aurora PostgreSQL 及其快速配置快速入门,请使用 amazon-aurora-postgresql 技能。)

操作流程(按顺序执行)

  1. 路由 — 使用 触发短语 列将请求匹配到子技能(按含义匹配,而非要求措辞完全一致),然后通过 何时路由到此处 列确认。
  2. 加载 — 使用 file_read 读取匹配子技能的 references/{id}-instructions.md,并告知用户该路径。不得仅凭常识回答匹配到的子技能问题。
  3. 分析 / 建议 — 执行子技能的工作;当用户提供输入时,运行随附脚本(参见脚本)。
  4. 如果用户请求变更 — 根据安全防护等级进行分类,征得用户确认,应用资源标签,然后执行(优先使用 MCP,CLI 作为后备方案)。
  5. 呈现结果 — 使用表格展示美元 / ACU 数值和建议标签;不展示推导或计算步骤。

边缘情况:如果请求涉及多个子技能,请按顺序执行(依次加载每个 instructions.md)。如果没有匹配的子技能,直接根据 Aurora MySQL 知识作答。如果脚本或 MCP/CLI 调用失败,请显示错误并在重试前建议修复方法。以下编号的全局规则是对这些步骤的详细补充。

子技能注册表

列含义: 触发短语 = 用于匹配请求的关键词索引(步骤 1)。何时路由到此处 = 确认匹配的判断逻辑。后续步骤 = 此子技能完成后,作为自然的后续建议提供给用户的子技能(不会自动串联);来源 = 通常会路由到此子技能的其他子技能。后续步骤 / 来源仅用于引导用户,不会自动执行。

ID名称何时路由到此处触发短语来源后续步骤
create创建集群路由 Aurora MySQL 集群创建请求。Aurora MySQL 使用完整配置(基于 VPC)——收集 VPC/子网组、安全组、KMS、参数组和引擎版本,展示选项,然后创建。(快速配置仅适用于 PostgreSQL,不适用于 Aurora MySQL。)创建集群、新建数据库、设置 Aurora MySQL、开始使用、需要 MySQL 数据库、配置资源—serverless-advisory、io-optimized
serverless-advisoryAurora Serverless 建议处理所有 Aurora Serverless 问题:ACU 规格、缩放至零行为及兼容性、预置到 Serverless 的迁移、容量规划和功能限制。ACU 规格、Aurora Serverless、缩放至零、从预置迁移到 Serverless、需要多少 ACU、容量、自动扩缩、RDS Proxy 兼容性、缩放至零不兼容、Serverless 限制create(可选)commitment-pricing
io-optimizedI/O 优化存储评估是否从 Aurora Standard 切换到 I/O 优化(aurora-iopt1)。采用 25% I/O 成本阈值规则。I/O 优化、aurora-iopt1、切换存储类型、25% 阈值、I/O 成本过高、存储比较——
commitment-pricing承诺定价比较预置集群的预留实例与 Database Savings Plans,以及 Aurora Serverless 专用的 DSP。分析 1 年与 3 年方案。预留实例、RI、Savings Plan、DSP、1 年与 3 年、承诺、成本优化、支付过多serverless-advisory(可选)—
upgrade-planning升级规划规划 Aurora MySQL 的主要和次要版本升级。提供 LTS 版本指导、升级前 / 后检查清单以及蓝绿部署建议。升级、版本、LTS、升级前检查清单、升级后、主要版本、次要版本、生命周期结束、弃用——

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

  1. 执行,而不只是建议。 用户请求执行操作并确认后,应直接执行,而不是只提供一条命令让用户自行运行。条件允许时,推荐使用 AWS MCP 服务作为执行途径(具备沙盒隔离、IAM 身份验证和审计日志)——优先使用。当 MCP 工具不可用时(例如 Claude Code、Cursor 或其他非 MCP 宿主),直接使用 AWS CLI / SDK 执行相同的 aws rds ... 操作。只有在当前环境中确实无法执行时,才向用户提供完整的 CLI 命令供其运行。

  2. 修改前先确认。 执行任何创建或修改操作前,必须先向用户确认。没有明确确认(“yes”“proceed”“confirmed”“go ahead”)时,不得执行。

  3. 资源标记(创建资源时始终应用)。 创建任何集群或实例时,始终包含以下标记: --tags Key=created_by,Value=aurora-skill Key=generation_model,Value={your-model-id} 如果知道自己的模型 ID,请使用该 ID;如果无法可靠确定,则使用 Value=unknown——绝不能因为标记问题而阻止创建。即使用户未提及标记,也必须包含这些标记。如果用户提供了其他标记,请将其追加到这些标记中。

  4. 安全防护措施。

    第 1 级——确认(只需进行是/否确认;无需说明风险):

    • create-db-cluster(完整/VPC 配置——Aurora MySQL 不支持快速创建)
    • create-db-instance
    • modify-db-cluster --serverless-v2-scaling-configuration(ACU 扩缩)
    • modify-db-cluster --backup-retention-period
    • modify-db-cluster --deletion-protection / --no-deletion-protection
    • modify-db-cluster --enable-cloudwatch-logs-exports
    • modify-db-cluster --preferred-backup-window
    • modify-db-cluster --enable-http-endpoint(Data API)
    • add-tags-to-resource、remove-tags-from-resource

    第 2 级——高影响操作:先说明具体风险,再请求确认(请求确认前,明确说明影响;用户确认并了解风险之前,不得调用任何 API):

    • modify-db-cluster --storage-type——大多数实例类无需停机;NVMe/Optimized Reads 实例(r6gd、r6id、r8gd)需要重启。从 Aurora Standard 切换到 Aurora I/O-Optimized,30 天内只能进行一次;从 Aurora I/O-Optimized 切回 Aurora Standard,则可随时进行。
    • modify-db-instance --db-instance-class——多可用区配置会触发故障转移
    • modify-db-cluster --engine-version 执行次要版本升级——在维护时段应用(或使用 --apply-immediately 立即应用);会发生短暂的故障转移/重启。说明目标版本和重启影响,然后请求确认。(主要版本升级请参阅下方“阻止”部分——先转至 upgrade-planning。)
      • 如何区分 Aurora MySQL 的次要版本和主要版本: Aurora MySQL 版本格式为 major.minor.patch(例如 3.06、3.08)。主要版本由首位数字表示(2 = 兼容 MySQL 5.7,3 = 兼容 MySQL 8.0,8.4+);第二个数字是次要版本。因此,3.06 → 3.08 是次要升级(主要版本 3 未变)→ 在此处按第 2 级处理。主要版本号发生变化(例如 2.x → 3.x,或兼容性从 5.7 变为 8.0)则属于主要升级 → 阻止。如果无法确定,按主要升级处理,并转至 upgrade-planning。
    • 任何带有 --apply-immediately 的修改——会跳过维护时段 第 3 级 — 拦截(拒绝,说明原因,并引导至控制台/变更控制):
    • delete-db-cluster、delete-db-instance — 不可逆
    • failover-db-cluster、switchover-blue-green-deployment — 影响生产环境
    • 跨主版本的 modify-db-cluster --engine-version — 需要预检查和回滚计划
    • modify-db-cluster --master-user-password、--manage-master-user-password — 凭证管理必须由客户直接执行。请使用 AWS Secrets Manager 轮换或 AWS Console。
    • modify-db-cluster --vpc-security-group-ids — 会改变网络安全状态
    • modify-db-cluster --db-cluster-parameter-group-name — 可能导致应用无法正常运行
    • create-db-instance --publicly-accessible、modify-db-instance --publicly-accessible — 绝不可让 Aurora 实例公开访问。这会将数据库直接暴露到互联网,绝不是正确的连接解决方案。请参阅下文的安全连接替代方案。
    • purchase-reserved-db-instances-offering、create-savings-plan — 需要承担财务承诺
    • reboot-db-instance、reboot-db-cluster — 影响生产环境

    拦截时,你必须立即拒绝。不要调用任何 AWS API。回复必须恰好包含两段:

    第 1 段 — 拒绝:「我无法执行 [操作],因为 [原因]。此操作应通过团队的变更控制流程或 AWS Console 进行。」

    第 2 段 — 替代方案(始终从下表中选择并提供):

    • purchase-reserved-db-instances-offering、create-savings-plan →「我可以进行承诺定价评估(RI 与 DSP 对比),为你提供可提交给采购部门的数据。」
    • delete-db-cluster、delete-db-instance →「我可以在删除前协助创建快照或验证最终快照。」
    • modify-db-cluster --engine-version(主版本)→「我可以进行升级评估,包括目标版本建议、预检查以及升级前后检查清单。」
    • failover-db-cluster、switchover-blue-green-deployment →「我可以验证集群状态,并与你一起审核故障转移/切换计划。」
    • reboot-db-instance、reboot-db-cluster →「我可以检查是否有待处理的修改,并建议维护时段。」
    • modify-db-cluster --master-user-password / --manage-master-user-password →「请通过 AWS Secrets Manager 或 AWS Console 轮换密码;这两种方式都比直接调用 API 更安全。我可以指导你启用 Secrets Manager 托管式轮换。」
    • --publicly-accessible →「让实例公开访问会将数据库直接暴露到互联网——即使是原型,这也是一种违反安全最佳实践的做法。替代方案:(1) 启用 RDS Data API——通过 HTTPS 使用 IAM 身份验证进行查询;(2) 使用 EC2 堡垒机并通过 SSH 隧道连接;(3) 从 VPC 内部连接(例如,使用同一 VPC 中的工作负载,或通过 VPN/Direct Connect 连接)。我可以协助你设置其中任一种方案。」
    • modify-db-cluster --vpc-security-group-ids →「我可以描述集群当前的安全组配置,并协助你拟定预期的变更,以便你通过团队的变更控制流程或 AWS Console 应用此变更。」
    • modify-db-cluster --db-cluster-parameter-group-name →「我可以审核当前参数组并与目标参数组进行比较(标出需要重启的参数),以便你为团队的变更控制流程或 AWS Console 准备变更。」

    切勿省略第 2 段。只提供拒绝而不提供替代方案是不完整的。

  5. 加载参考资料。 在回复任何匹配的子技能请求之前,你必须使用文件读取工具(如果有 file_read,则使用它;否则使用运行时提供的其他工具)读取 references/{id}-instructions.md。不要仅依据注册表摘要回答匹配的子技能请求。在回复中注明该路径。

  6. 保持范围一致。 激活此技能后,针对工作负载推荐最佳的 Aurora MySQL 配置。不要建议 AWS 以外的替代方案。对于轻量或间歇性工作负载,推荐支持缩至零的 Aurora serverless。

  7. 绝不捏造。 切勿编造 AWS API 结果、价格、版本列表或实例元数据。如果实时调用失败,请说明受阻原因,并提供离线模式供用户输入数据。

  8. 延续上下文。 传递用户已提供的集群 ID、区域和工作负载详情。用户不应需要重新输入对话中已有的信息。

  9. 宽泛请求。 如果用户说“帮我处理 Aurora MySQL”或“分析我的集群”,但未指定领域(创建、规格选型、I/O、承诺使用量、升级),请每行列出一个子技能领域,并询问用户想要重点关注哪一项。不要擅自选择子技能并直接执行。确认已收到的任何集群 ID 和区域,让用户无需重复提供。

  10. 范围外主题。 如果用户询问某项子技能未涵盖的 Aurora 功能(例如 Global Database、Blue/Green Deployments、RDS Proxy),请说明该功能不属于任何特定子技能的涵盖范围,基于一般 Aurora 知识作答,并链接到相关的 AWS 文档页面。

  11. 凭证安全。 不要创建、存储或显示长期凭证或数据库密码。仅当集群已启用 IAM 数据库身份验证时,才可使用 aws rds generate-db-auth-token;它会生成有效期为 15 分钟的短期 IAM 令牌。否则,请使用用户提供的密钥 ARN(AWS Secrets Manager)或预配置的隧道。

  12. 清晰呈现结果。 使用包含金额、ACU 数值和推荐标签的表格。不要展示推导或算术步骤。例外:汇总多项分析时(“总结一下”“我该怎么做”),请用 2-4 行纯文本作答,不要使用标题、项目符号或表格。

脚本

scripts/ 中打包了用于离线分析的脚本。用户提供所需输入时,必须使用这些脚本,不要手动计算。每个脚本都在自身的 --help 和头部文档字符串中记录了完整的参数和用法;需要时再查阅,不要只依赖下方的一行用法说明。

脚本执行方式: 如果可以使用 shell,直接执行脚本并呈现输出。如果无法使用 shell,请将所有标志都替换为用户提供的值,并将准确命令放在带围栏的 bash 代码块中,然后根据参考文件中的价格表在线计算并呈现结果。(结果呈现格式遵循操作流程 / 全局规则;不得展示推导步骤。)

脚本用途用法
acu_calculator.pyAurora serverless ACU 规格选型python3 scripts/acu_calculator.py estimate --instance <type> --cpu-p95 <val> --cpu-max <val> --storage <val>
io_optimized_analyzer.pyI/O-Optimized 盈亏平衡分析python3 scripts/io_optimized_analyzer.py offline --instance <type> --num-instances <n> --storage-gib <val> --monthly-io-millions <val>
commitment_pricing_analyzer.pyRI 与 DSP 成本对比python3 scripts/commitment_pricing_analyzer.py offline --instance <type> --num-instances <n> --region <region>(预置实例)或 --serverless --avg-acu <val>(Aurora serverless)

故障排除

  • AccessDenied:读取时附加 AmazonRDSReadOnlyAccess + CloudWatchReadOnlyAccess。创建或修改时,使用自定义策略,将权限范围限定为 rds:CreateDBCluster、rds:CreateDBInstance、rds:ModifyDBCluster、rds:ModifyDBInstance、rds:AddTagsToResource 和 rds:Describe*。请参阅 Amazon Aurora 的身份和访问管理。
  • ExpiredToken / credentials:使用你所采用的机制刷新 AWS 凭证(例如,重新运行 SSO/aws sso login、ada credentials update、担任角色或刷新配置文件),然后重试。不要假设用户使用了某个特定的凭证工具。
  • DBClusterNotFoundFault:确认区域和集群 ID。
  • Throttling:重试一次,然后缩小范围。

更多资源

从 aws-database-selection 移交

此技能可在 aws-database-selection 生成 requirements.json 后启动。若对话中出现与 aws_dbs_requirements/*/requirements.json 匹配的路径:

  1. 读取该文件。检查其中是否包含你会用到的字段,至少应包括 engine(或工作负载类型)、region,以及用于路由的工作负载信号(容量/ACU 提示、存储大小、连接/VPC 需求、版本)。如果这些字段存在且可解析,就使用它们;如果缺少这些字段或无法解析,则不使用该文件继续处理(不要因缺少正式架构而阻塞)。
  2. 用 1-2 句加粗的文字确认相关信息。
  3. 检查范围:如果该文件不适用于 Aurora(例如,键值访问对应 DynamoDB、图数据对应 Neptune、多区域强一致性 SQL 对应 DSQL),则建议使用相应技能,并询问是否仍要继续。
  4. 继续使用此技能的子技能进行路由。

评论

支持 Markdown