Claude Code Plugins

Community-maintained marketplace

Feedback

Deploy and configure RDS/Aurora databases with HA and security

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name aws-rds-setup
description Deploy and configure RDS/Aurora databases with HA and security
sasmp_version 1.3.0
bonded_agent 05-aws-database
bond_type PRIMARY_BOND

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

# 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

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

{
  "max_connections": "LEAST({DBInstanceClassMemory/9531392},5000)",
  "innodb_buffer_pool_size": "{DBInstanceClassMemory*3/4}",
  "slow_query_log": "1",
  "long_query_time": "2"
}

PostgreSQL Optimization

{
  "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

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