aws-rds-setup
Deploy and configure RDS/Aurora databases with HA and security
Best use case
aws-rds-setup is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Deploy and configure RDS/Aurora databases with HA and security
Teams using aws-rds-setup should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/aws-rds-setup/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How aws-rds-setup Compares
| Feature / Agent | aws-rds-setup | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Deploy and configure RDS/Aurora databases with HA and security
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# AWS RDS Setup Skill
Deploy production-ready managed databases with high availability.
## Quick Reference
| Attribute | Value |
|-----------|-------|
| AWS Service | RDS, Aurora |
| Complexity | Medium |
| Est. Time | 15-45 min |
| Prerequisites | VPC, Subnet Group, Security Group |
## Parameters
### Required
| Parameter | Type | Description | Validation |
|-----------|------|-------------|------------|
| engine | string | Database engine | mysql, postgres, aurora-mysql, etc. |
| instance_class | string | Instance type | db.* family |
| db_name | string | Database name | Alphanumeric |
| master_username | string | Admin username | ^[a-zA-Z][a-zA-Z0-9]{0,15}$ |
| master_password | string | Admin password | Min 8 chars, complexity |
### Optional
| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| multi_az | bool | false | Multi-AZ deployment |
| storage_type | string | gp3 | gp2, gp3, io1, io2 |
| allocated_storage | int | 20 | Storage in GB |
| backup_retention | int | 7 | Backup retention days |
| encryption | bool | true | Storage encryption |
## Execution Flow
```
1. Create DB subnet group
2. Configure parameter group
3. Create RDS instance
4. Wait for available status
5. Create read replicas (if specified)
6. Configure backups
7. Set up monitoring
```
## Implementation
### Create RDS Instance
```bash
# Create DB subnet group
aws rds create-db-subnet-group \
--db-subnet-group-name prod-db-subnets \
--db-subnet-group-description "Production DB subnets" \
--subnet-ids subnet-111 subnet-222 subnet-333
# Create RDS instance
aws rds create-db-instance \
--db-instance-identifier prod-mysql \
--db-instance-class db.r6g.large \
--engine mysql \
--engine-version 8.0 \
--master-username admin \
--master-user-password "$DB_PASSWORD" \
--allocated-storage 100 \
--storage-type gp3 \
--storage-encrypted \
--kms-key-id alias/rds-key \
--multi-az \
--db-subnet-group-name prod-db-subnets \
--vpc-security-group-ids sg-12345 \
--backup-retention-period 7 \
--preferred-backup-window "03:00-04:00" \
--preferred-maintenance-window "sun:04:00-sun:05:00" \
--enable-performance-insights \
--performance-insights-retention-period 7 \
--enable-cloudwatch-logs-exports '["error","slowquery"]' \
--deletion-protection \
--tags Key=Environment,Value=Production
```
### Create Read Replica
```bash
aws rds create-db-instance-read-replica \
--db-instance-identifier prod-mysql-replica \
--source-db-instance-identifier prod-mysql \
--db-instance-class db.r6g.large \
--availability-zone us-east-1b
```
## Parameter Groups
### MySQL Optimization
```json
{
"max_connections": "LEAST({DBInstanceClassMemory/9531392},5000)",
"innodb_buffer_pool_size": "{DBInstanceClassMemory*3/4}",
"slow_query_log": "1",
"long_query_time": "2"
}
```
### PostgreSQL Optimization
```json
{
"shared_buffers": "{DBInstanceClassMemory/32768}",
"effective_cache_size": "{DBInstanceClassMemory*3/4}",
"log_min_duration_statement": "1000"
}
```
## Troubleshooting
### Common Issues
| Symptom | Cause | Solution |
|---------|-------|----------|
| Connection refused | SG or network | Check SG rules, VPC routing |
| Too many connections | Limit reached | Increase max_connections, use pooling |
| Slow queries | Missing indexes | Enable Performance Insights |
| Storage full | Growth exceeded | Enable autoscaling |
### Debug Checklist
- [ ] Security group allows port 3306/5432?
- [ ] DB in correct VPC/subnet?
- [ ] Instance status "available"?
- [ ] Using correct endpoint (writer vs reader)?
- [ ] SSL/TLS configured correctly?
- [ ] Parameter group applied?
### Connection String Format
```
# MySQL
mysql -h endpoint.rds.amazonaws.com -u admin -p dbname
# PostgreSQL
psql "host=endpoint.rds.amazonaws.com dbname=mydb user=admin sslmode=require"
# With IAM Auth
aws rds generate-db-auth-token --hostname endpoint --port 3306 --username iam_user
```
## High Availability
| Configuration | RTO | RPO | Cost |
|--------------|-----|-----|------|
| Single-AZ | Hours | Up to 5 min | $ |
| Multi-AZ | 1-2 min | 0 | $$ |
| Aurora Multi-AZ | Seconds | 0 | $$$ |
| Aurora Global | Seconds | Seconds | $$$$ |
## Test Template
```python
def test_rds_connection():
# Arrange
endpoint = "prod-mysql.xxx.us-east-1.rds.amazonaws.com"
# Act
connection = pymysql.connect(
host=endpoint,
user='admin',
password=get_secret('db-password'),
database='mydb',
ssl={'ssl': True}
)
# Assert
cursor = connection.cursor()
cursor.execute("SELECT 1")
result = cursor.fetchone()
assert result[0] == 1
# Cleanup
connection.close()
```
## Assets
- `assets/rds-config.yaml` - RDS configuration templates
## References
- [RDS User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/)
- [RDS Best Practices](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_BestPractices.html)Related Skills
ci-setup
Configure CI/CD pipelines for GitHub Actions, GitLab CI, CircleCI with best practices
ansible-dev-setup
Generate and manage cross-platform Ansible playbooks for development environment setup across macOS, Linux, and Termux. Use when working with development environment automation, package installation configuration, or Ansible playbook generation.
android-playstore-setup
Complete Play Store setup - orchestrates scanning, privacy policy, version management, Fastlane, and workflows (Internal track only)
android-fastlane-setup
Setup Fastlane for Play Store deployment with supply and screengrab
act-docker-setup
Use when configuring Docker environments for act, selecting runner images, managing container resources, or troubleshooting Docker-related issues with local GitHub Actions testing.
twd-setup
TWD project setup guide — helps AI agents install and configure TWD (Test While Developing), an in-browser validation system, in a new or existing project. Use when setting up TWD, configuring Vite, or troubleshooting TWD initialization.
tailwind-setup
Configure Tailwind CSS and shadcn/ui for React frontends with Django backends, including dark mode support and theme tokens. This skill should be used when setting up a new React project or adding Tailwind to an existing one.
storybook-setup
Sets up Storybook for component documentation with controls, actions, accessibility testing, and visual regression. Use when users request "Storybook setup", "component documentation", "UI library", "component stories", or "design system docs".
setup-tanstack-start
Bootstrap a new web project with TanStack Start, React, Tailwind CSS v4, and shadcn/ui on top of the base tooling stack. Consult this skill whenever creating a web app, setting up a frontend project, starting a React application, or initializing anything involving TanStack Start, TanStack Router, TanStack Query, Tailwind, shadcn, or Vite.
setup-project
Setup Claude Code Configuration with full RALPH autonomous development integration
setup-node
Sets up Node.js/TypeScript development environment with npm/yarn, dependencies, ESLint, Prettier, testing (Jest/Vitest), and TypeScript type checking. Ensures consistent tooling configuration. Use when starting work on Node.js/TypeScript projects, after cloning repositories, setting up CI/CD, or troubleshooting environment issues.
setup-earl
Installs Earl, configures MCP integration for your agent platform, writes CLAUDE.md instructions, and routes to template creation or migration. Use when setting up Earl for the first time, when a new developer is onboarding to a project that uses Earl, or when Earl needs to be connected to an agent platform.