All skills
aws avatar

/amazon-aurora-mysql

@a9d1c70

Amazon Aurora MySQL — creates, modifies, and advises on Aurora MySQL clusters specifically (MySQL-compatible engine, Aurora serverless, parallel query). Trigger for Aurora MySQL cluster operations, ACU sizing, I/O-Optimized storage, commitment pricing, or MySQL upgrade planning. Aurora MySQL uses full (VPC-based) configuration — express configuration is PostgreSQL-only. For Aurora PostgreSQL, use amazon-aurora-postgresql instead. Contains safety guardrails and response templates that override defaults.

Use this Skill: https://skilld.dev/gh/aws/agent-toolkit-for-aws/amazon-aurora-mysql

This session only. Nothing lands on disk.

referencesio-optimized-data-collection.md

≈1.1k tokens on demand. Your agent reads this file only when SKILL.md points to it.

Data Collection for I/O-Optimized Assessment

CloudWatch Metrics Used

The analyzer pulls these from the AWS/RDS namespace at cluster level:

Metric Statistic Purpose
VolumeReadIOPs Sum Read I/O requests (billed ops)
VolumeWriteIOPs Sum Write I/O requests (billed ops)
VolumeBytesUsed Average Storage GiB (for storage cost)

Dimension: DBClusterIdentifier. Metrics are pulled at 1-hour granularity and summed over the lookback window.

Note on naming: Despite the name "IOPs", VolumeReadIOPs and VolumeWriteIOPs report I/O request counts per 5-minute period, not per-second rates. The script normalizes them accordingly.

Cluster Metadata from RDS API

describe-db-clusters and describe-db-instances provide:

  • Current storage type (storage_type: aurora = Standard, aurora-iopt1 = I/O-Optimized)
  • Instance types in the cluster (to price compute correctly)
  • Engine and version (for context, does not affect pricing math)
  • Allocated storage (as a validation check against CloudWatch VolumeBytesUsed)

Extrapolation for Short Windows

The analyzer extrapolates observed I/O to a 30-day (730-hour) month:

monthly_io = (observed_io / observed_hours) × 730

Minimum viable window: 7 days. Below this, Aurora workloads often miss a full weekly cycle (weekdays vs weekends can differ 3-5×), producing misleading extrapolations.

The script sets data_quality accordingly:

  • < 3 days: insufficient — do not recommend a switch on this data
  • 3-7 days: short — recommendation flagged as tentative
  • 7-14 days: adequate — recommendation reliable
  • 14+ days: good — recommendation high-confidence

Switch Cooldown: Another Reason to Wait for More Data

The 30-day limit on changing a cluster's storage type (via modify-db-cluster --storage-type) is one-directional: switching Standard (aurora) → I/O-Optimized (aurora-iopt1) is limited to once every 30 days per cluster, while reverting I/O-Optimized → Standard can be done at any time (no cooldown). So a premature switch into I/O-Optimized is not a 30-day cost lock-in — you can revert to Standard immediately. The real cost of churning is that, once you revert, you cannot re-enable I/O-Optimized again for another 30 days.

When the data_quality tag is insufficient or short, the cost of a bad decision is the one-way commitment in the Standard → I/O-Optimized direction: if you switch in on thin data and then want to switch in again after a better read of the workload, you are gated by the 30-day cooldown on that direction. Surface this cooldown to the user as part of the reasoning to wait. Do not describe the Standard → I/O-Optimized direction as freely repeatable; that direction is a meaningful commitment (reverting to Standard, by contrast, is always available).

Handling Multi-Instance Clusters

Aurora I/O-Optimized pricing applies at the cluster level. Compute cost is the sum of all instance-hours in the cluster:

compute_monthly = Σ (instance_price_per_hour × 730) for each instance in cluster

The 30% premium multiplies the full compute cost. A cluster with one writer + two readers multiplies the premium by 3× the base instance cost.

Reader-Only vs Writer-Heavy Clusters

I/O billing counts all reads and writes across all instances in the cluster — readers are billed for their reads. The analyzer sums CloudWatch volume I/O across the cluster, which already reflects this.

Aurora serverless Clusters

For Aurora serverless, the analyzer uses observed ACU-hours from ServerlessDatabaseCapacity to compute compute cost. The 30% I/O-Optimized premium applies to the ACU-hour rate, same as provisioned.

Offline Mode Inputs

When AWS credentials aren't available, the user provides:

  • --instance <type> — e.g., db.r6g.2xlarge
  • --num-instances <N> — total instances in the cluster
  • --storage-gib <N> — cluster volume size
  • --monthly-io-millions <N> — estimated monthly I/O requests in millions

The user can get monthly I/O from the Cost Explorer (filter on "Amazon Relational Database Service" + usage type containing StorageIOUsage) or from the AWS billing console line items.

Source: SKILL.md on GitHub

1 warning3mo3 checks · Risk SAFE
  • Gen Agent Trust Hub3mo

    This skill provides a modular toolkit for Amazon Aurora MySQL management. It includes assessment tools for serverless ACU sizing, I/O-Optimized storage analysis, commitment pricing, and upgrade planning. All analyzed components align with legitimate AWS operational procedures and follow security best practices.

  • Socket3mo

    No alerts

  • Snyk3mo

    Risk: MEDIUM · 1 issue

Signed by skilld at a9d1c70. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub yesterday.

Activeupdated 4 months ago
version
1

README badge

README badge for aws/agent-toolkit-for-aws/amazon-aurora-mysql