Chapter 57 · Amazon Aurora MySQL
Subchapter 57.15
references/serverless-advisory-instructions.mdMarkdown7 KBView on GitHub
Size Aurora Capacity Units (ACU), estimate monthly cost, and plan provisioned-to-serverless migrations for Aurora MySQL serverless. Can modify ACU scaling configuration when the user confirms.
Execute commands via AWS MCP server tools when connected (sandboxed, audited, observable); fall back to the AWS CLI or shell otherwise.
User mentions: Aurora serverless, ACU sizing, min/max ACU, scale-to-zero, auto-pause, provisioned to serverless, serverless cost comparison, or “how many ACUs do I need”.
Before producing any ACU number, dollar figure, or specific recommendation, check whether the user supplied real metrics.
A vague-workload prompt describes the workload qualitatively without the inputs the calculator needs. Examples:
If the prompt is vague, you MUST do all of the following — and ONLY these — in your reply:
CPUUtilization, DatabaseConnections under the AWS/RDS namespace) and Performance Insights as the CPU-metric sources.The “no specific numbers” rule is absolute. Hedged numbers (“a safe default would be 0.5–2 ACU”) are still numbers and count as a violation. Customers act on confident-sounding numbers even when framed as defaults, and ACU numbers fabricated from vague input are the #1 source of field misconfiguration.
Only if the user returns with real metrics, proceed to Task 1.
Required (acquire only AFTER passing Task 0):
db.<family>.<size>, e.g. db.r6g.xlarge)Optional:
us-east-1)Constraints for parameter acquisition:
Invoke scripts/acu_calculator.py with the step-1 parameters.
Constraints:
--region when the user’s region is not us-east-1--format json for post-processing, --format table when presenting--offline only when AWS credentials are unavailable# Basic run
python scripts/acu_calculator.py estimate \
--instance db.r6g.xlarge --cpu-p95 35 --cpu-max 72 --storage 500
# List supported instances
python scripts/acu_calculator.py list-instancesA full invocation using every optional flag is in worked-examples.md.
Every recommendation MUST include:
recommended, consider, more_expensive, or not_recommendedConstraints:
recommended — see migration.mdSee migration.md — in-place with a serverless reader, Blue/Green, or snapshot restore.
Constraints:
innodb_buffer_pool_size is auto-managed (resized with ACU) so don’t hard-code it, and that max_connections is derived from the cluster’s maximum ACU (static; reboot to change), not current capacityCalculator reports “exceeds capacity”. Projected peak ACU > 256; Aurora serverless cannot service this cluster. Recommend staying on provisioned or splitting across multiple serverless clusters.
Live pricing fetch fails with ExpiredToken. Refresh credentials (aws sts get-caller-identity) or rerun with --offline for static us-east-1 pricing.
Calculator returns $0 compute for the provisioned comparison. Instance type missing from the static catalog. Run list-instances.
Scale-to-zero questions. Incompatible with RDS Proxy, binary logging (binlog) enabled, Global Database primary, Zero-ETL. See concepts.md for the full list and supported versions.
256 ACU + HA failover. Aurora has exactly one writer per cluster; readers can be serverless or provisioned. Two writers is not valid.
scripts/acu_calculator.py.