关于 amazon-aurora-mysql
面向 Aurora MySQL 的模块化技能,按请求将集群创建、无服务器配置建议、存储与承诺定价评估及升级规划路由到专门子技能。它适用于需要 Aurora MySQL 操作指导或执行的用户,并设有变更确认和安全护栏。
主要功能
- 01按意图路由至专门子技能
- 02提供集群创建指导
- 03评估无服务器容量与限制
- 04比较存储和承诺定价
- 05规划版本升级及检查清单
- 06变更前确认并应用安全护栏
适用场景
- 01规划新 Aurora MySQL 集群
- 02评估无服务器 ACU 容量
- 03比较 I/O-Optimized 存储
- 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.mdcommitment-pricing-instructions.mdcommitment-pricing-mechanics.mdcommitment-pricing-scenarios.mdcommitment-pricing-skipped-cluster.mdcommitment-pricing-worked-examples.mdcreate-instructions.mdio-optimized-data-collection.mdio-optimized-instructions.mdio-optimized-pricing-tables.mdio-optimized-pricing.mdio-optimized-worked-examples.mdserverless-advisory-concepts.mdserverless-advisory-formulas-and-examples.mdserverless-advisory-instructions.mdserverless-advisory-migration.mdserverless-advisory-worked-examples.mdshared-foundation-security-considerations.mdupgrade-planning-documentation-links.mdupgrade-planning-instructions.mdupgrade-planning-lts-recommendation.mdupgrade-planning-mode-b-discovery.mdupgrade-planning-mode-b-prechecks-checklists.mdupgrade-planning-post-checklist.mdupgrade-planning-post-upgrade-detail.mdupgrade-planning-post-upgrade-validation.mdupgrade-planning-pre-checklist.mdupgrade-planning-prechecks-mysql.mdupgrade-planning-query-load-mysql.mdscripts/acu_calculator.py详细介绍
Amazon Aurora MySQL
一个模块化工具包,按子技能注册表组织,专为 Aurora MySQL 设计。每个子技能负责 Aurora MySQL 的一个工作领域。路由器会根据用户意图匹配合适的子技能,然后只加载所需的参考资料。(对于 Aurora PostgreSQL 及其快速配置快速入门,请使用 amazon-aurora-postgresql 技能。)
操作流程(按顺序执行)
- 路由 — 使用 触发短语 列将请求匹配到子技能(按含义匹配,而非要求措辞完全一致),然后通过 何时路由到此处 列确认。
- 加载 — 使用
file_read读取匹配子技能的references/{id}-instructions.md,并告知用户该路径。不得仅凭常识回答匹配到的子技能问题。 - 分析 / 建议 — 执行子技能的工作;当用户提供输入时,运行随附脚本(参见脚本)。
- 如果用户请求变更 — 根据安全防护等级进行分类,征得用户确认,应用资源标签,然后执行(优先使用 MCP,CLI 作为后备方案)。
- 呈现结果 — 使用表格展示美元 / 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-advisory | Aurora Serverless 建议 | 处理所有 Aurora Serverless 问题:ACU 规格、缩放至零行为及兼容性、预置到 Serverless 的迁移、容量规划和功能限制。 | ACU 规格、Aurora Serverless、缩放至零、从预置迁移到 Serverless、需要多少 ACU、容量、自动扩缩、RDS Proxy 兼容性、缩放至零不兼容、Serverless 限制 | create(可选) | commitment-pricing |
io-optimized | I/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、升级前检查清单、升级后、主要版本、次要版本、生命周期结束、弃用 | — | — |
全局规则(适用于每个子技能)
-
执行,而不只是建议。 用户请求执行操作并确认后,应直接执行,而不是只提供一条命令让用户自行运行。条件允许时,推荐使用 AWS MCP 服务作为执行途径(具备沙盒隔离、IAM 身份验证和审计日志)——优先使用。当 MCP 工具不可用时(例如 Claude Code、Cursor 或其他非 MCP 宿主),直接使用 AWS CLI / SDK 执行相同的
aws rds ...操作。只有在当前环境中确实无法执行时,才向用户提供完整的 CLI 命令供其运行。 -
修改前先确认。 执行任何创建或修改操作前,必须先向用户确认。没有明确确认(“yes”“proceed”“confirmed”“go ahead”)时,不得执行。
-
资源标记(创建资源时始终应用)。 创建任何集群或实例时,始终包含以下标记:
--tags Key=created_by,Value=aurora-skill Key=generation_model,Value={your-model-id}如果知道自己的模型 ID,请使用该 ID;如果无法可靠确定,则使用Value=unknown——绝不能因为标记问题而阻止创建。即使用户未提及标记,也必须包含这些标记。如果用户提供了其他标记,请将其追加到这些标记中。 -
安全防护措施。
第 1 级——确认(只需进行是/否确认;无需说明风险):
create-db-cluster(完整/VPC 配置——Aurora MySQL 不支持快速创建)create-db-instancemodify-db-cluster --serverless-v2-scaling-configuration(ACU 扩缩)modify-db-cluster --backup-retention-periodmodify-db-cluster --deletion-protection/--no-deletion-protectionmodify-db-cluster --enable-cloudwatch-logs-exportsmodify-db-cluster --preferred-backup-windowmodify-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。
- 如何区分 Aurora MySQL 的次要版本和主要版本: Aurora MySQL 版本格式为
- 任何带有
--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 段。只提供拒绝而不提供替代方案是不完整的。
-
加载参考资料。 在回复任何匹配的子技能请求之前,你必须使用文件读取工具(如果有
file_read,则使用它;否则使用运行时提供的其他工具)读取references/{id}-instructions.md。不要仅依据注册表摘要回答匹配的子技能请求。在回复中注明该路径。 -
保持范围一致。 激活此技能后,针对工作负载推荐最佳的 Aurora MySQL 配置。不要建议 AWS 以外的替代方案。对于轻量或间歇性工作负载,推荐支持缩至零的 Aurora serverless。
-
绝不捏造。 切勿编造 AWS API 结果、价格、版本列表或实例元数据。如果实时调用失败,请说明受阻原因,并提供离线模式供用户输入数据。
-
延续上下文。 传递用户已提供的集群 ID、区域和工作负载详情。用户不应需要重新输入对话中已有的信息。
-
宽泛请求。 如果用户说“帮我处理 Aurora MySQL”或“分析我的集群”,但未指定领域(创建、规格选型、I/O、承诺使用量、升级),请每行列出一个子技能领域,并询问用户想要重点关注哪一项。不要擅自选择子技能并直接执行。确认已收到的任何集群 ID 和区域,让用户无需重复提供。
-
范围外主题。 如果用户询问某项子技能未涵盖的 Aurora 功能(例如 Global Database、Blue/Green Deployments、RDS Proxy),请说明该功能不属于任何特定子技能的涵盖范围,基于一般 Aurora 知识作答,并链接到相关的 AWS 文档页面。
-
凭证安全。 不要创建、存储或显示长期凭证或数据库密码。仅当集群已启用 IAM 数据库身份验证时,才可使用
aws rds generate-db-auth-token;它会生成有效期为 15 分钟的短期 IAM 令牌。否则,请使用用户提供的密钥 ARN(AWS Secrets Manager)或预配置的隧道。 -
清晰呈现结果。 使用包含金额、ACU 数值和推荐标签的表格。不要展示推导或算术步骤。例外:汇总多项分析时(“总结一下”“我该怎么做”),请用 2-4 行纯文本作答,不要使用标题、项目符号或表格。
脚本
scripts/ 中打包了用于离线分析的脚本。用户提供所需输入时,必须使用这些脚本,不要手动计算。每个脚本都在自身的 --help 和头部文档字符串中记录了完整的参数和用法;需要时再查阅,不要只依赖下方的一行用法说明。
脚本执行方式: 如果可以使用 shell,直接执行脚本并呈现输出。如果无法使用 shell,请将所有标志都替换为用户提供的值,并将准确命令放在带围栏的 bash 代码块中,然后根据参考文件中的价格表在线计算并呈现结果。(结果呈现格式遵循操作流程 / 全局规则;不得展示推导步骤。)
| 脚本 | 用途 | 用法 |
|---|---|---|
acu_calculator.py | Aurora serverless ACU 规格选型 | python3 scripts/acu_calculator.py estimate --instance <type> --cpu-p95 <val> --cpu-max <val> --storage <val> |
io_optimized_analyzer.py | I/O-Optimized 盈亏平衡分析 | python3 scripts/io_optimized_analyzer.py offline --instance <type> --num-instances <n> --storage-gib <val> --monthly-io-millions <val> |
commitment_pricing_analyzer.py | RI 与 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 匹配的路径:
- 读取该文件。检查其中是否包含你会用到的字段,至少应包括
engine(或工作负载类型)、region,以及用于路由的工作负载信号(容量/ACU 提示、存储大小、连接/VPC 需求、版本)。如果这些字段存在且可解析,就使用它们;如果缺少这些字段或无法解析,则不使用该文件继续处理(不要因缺少正式架构而阻塞)。 - 用 1-2 句加粗的文字确认相关信息。
- 检查范围:如果该文件不适用于 Aurora(例如,键值访问对应 DynamoDB、图数据对应 Neptune、多区域强一致性 SQL 对应 DSQL),则建议使用相应技能,并询问是否仍要继续。
- 继续使用此技能的子技能进行路由。