Comprehensive developer toolkit providing reusable skills for Java/Spring Boot, TypeScript/NestJS/React/Next.js, Python, PHP, AWS CloudFormation, AI/RAG, DevOps, and more.
90
90%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Risky
Do not use without reviewing
Maximum storage size varies by instance class and engine:
# Storage configuration
Resources:
DBInstance:
Type: AWS::RDS::DBInstance
Properties:
AllocatedStorage: 100 # GB
MaxAllocatedStorage: 1000 # GB for autoscaling
StorageType: gp3
Iops: 3000 # For io1/io2
StorageThroughput: 500 # MB/s for gp3Parameters:
DatabaseName:
Type: String
Description: Database name
Default: myappdb
AllowedPattern: "^[a-zA-Z][a-zA-Z0-9_]*$"
MinLength: 1
MaxLength: 63
ConstraintDescription: Must begin with letter; contain only letters, numbers, underscoresResources:
DBParameterGroup:
Type: AWS::RDS::DBParameterGroup
Properties:
Description: Custom parameter group
Family: mysql8.0
Parameters:
max_connections: 200 # Dynamic (no restart)
innodb_buffer_pool_size: 1073741824 # Static (requires restart)Resources:
DBOptionGroup:
Type: AWS::RDS::DBOptionGroup
Properties:
EngineName: oracle-ee
MajorEngineVersion: "19"
OptionGroupDescription: Option group for Oracle 19c
Options:
- OptionName: OEM
OptionVersion: "19"
Port: 5500 # Ensure port availabilityCertain modifications require instance replacement with downtime:
# CAUTION: These changes cause replacement and downtime
Resources:
DBInstance:
Type: AWS::RDS::DBInstance
Properties:
# Engine version change triggers replacement
EngineVersion: "16.1" # From 15.x causes replacement
# Storage type change triggers replacement
StorageType: io1 # From gp3 causes replacementManual snapshots incur storage costs even after instance deletion:
# List manual snapshots
aws rds describe-db-snapshots \
--snapshot-type manual \
--query 'DBSnapshots[*].[DBSnapshotIdentifier,SnapshotCreateTime,SnapshotStorageSize]'
# Delete old manual snapshots to save costs
aws rds delete-db-snapshot \
--db-snapshot-identifier old-snapshot-20240101Multi-AZ deployments double compute costs:
Resources:
SingleAZInstance:
Type: AWS::RDS::DBInstance
Properties:
DBInstanceClass: db.t3.medium
MultiAZ: false # Single cost
MultiAZInstance:
Type: AWS::RDS::DBInstance
Properties:
DBInstanceClass: db.t3.medium
MultiAZ: true # ~2x cost for standby replicaCost Comparison:
Changing backup retention period affects storage costs:
Resources:
DevelopmentDB:
Type: AWS::RDS::DBInstance
Properties:
BackupRetentionPeriod: 7 # Minimal backup costs
ProductionDB:
Type: AWS::RDS::DBInstance
Properties:
BackupRetentionPeriod: 35 # Higher backup storage costsMaster user password cannot be retrieved after creation:
# ❌ WRONG: Password cannot be retrieved
Outputs:
MasterPassword:
Value: !Ref MasterUserPassword # This will be masked
# ✅ CORRECT: Store in Secrets Manager
Resources:
DBCredentials:
Type: AWS::SecretsManager::Secret
Properties:
SecretString: !Sub '{"username":"${MasterUsername}","password":"${MasterUserPassword}"}'Recovery Process:
# If master password is lost, reset it
aws rds modify-db-instance \
--db-instance-identifier mydb \
--master-user-password new-password-123
--apply-immediatelyOnce enabled, encryption cannot be disabled for RDS storage:
Resources:
DBInstance:
Type: AWS::RDS::DBInstance
Properties:
StorageEncrypted: true # Cannot be disabled later
KmsKeyId: !Ref EncryptionKeyMigration to Encrypted Storage:
RDS instances must be in VPC; public access not recommended:
Resources:
DBInstance:
Type: AWS::RDS::DBInstance
Properties:
PubliclyAccessible: false # Recommended for security
DBSubnetGroupName: !Ref DBSubnetGroup # Required for VPCNetwork Isolation Best Practices:
Security group rules must allow traffic from application tier only:
Resources:
DBSecurityGroup:
Type: AWS::EC2::SecurityGroup
Properties:
GroupDescription: Database security group
VpcId: !Ref VPCId
SecurityGroupIngress:
# ✅ CORRECT: Specific source
- IpProtocol: tcp
FromPort: 5432
ToPort: 5432
SourceSecurityGroupId: !Ref AppSecurityGroup
# ❌ WRONG: Too permissive
# - IpProtocol: tcp
# FromPort: 5432
# ToPort: 5432
# CidrIp: 0.0.0.0/0Larger instance classes significantly increase hourly costs:
# Cost comparison (us-east-1, on-demand, Linux/Unix)
Resources:
MicroInstance:
Type: AWS::RDS::DBInstance
Properties:
DBInstanceClass: db.t3.micro # ~$0.013/hour = ~$9.50/month
MediumInstance:
Type: AWS::RDS::DBInstance
Properties:
DBInstanceClass: db.t3.medium # ~$0.052/hour = ~$38/month
LargeInstance:
Type: AWS::RDS::DBInstance
Properties:
DBInstanceClass: db.m5.large # ~$0.135/hour = ~$99/monthProvisioned IOPS (io1/io2) storage type significantly increases costs:
Resources:
# gp3 storage (cost-effective)
GP3Instance:
Type: AWS::RDS::DBInstance
Properties:
StorageType: gp3
AllocatedStorage: 100
Iops: 3000 # Free with gp3
StorageThroughput: 125 # Free with gp3 up to 125 MB/s
# io1 storage (expensive for high IOPS)
IO1Instance:
Type: AWS::RDS::DBInstance
Properties:
StorageType: io1
AllocatedStorage: 100
Iops: 3000 # $0.125 per IOPS-month = $375/month additionalAutomated backups beyond free tier incur monthly GB storage costs:
Resources:
DevelopmentDB:
Type: AWS::RDS::DBInstance
Properties:
AllocatedStorage: 100 # GB
BackupRetentionPeriod: 7 # Minimal backup cost
# Free tier: 100% of DB storage for 7-day retention
ProductionDB:
Type: AWS::RDS::DBInstance
Properties:
AllocatedStorage: 1000 # GB
BackupRetentionPeriod: 35 # Higher backup costs
# Cost: (1000 GB × (35 - 7) days) × $0.095/GB-monthInter-AZ data transfer for Multi-AZ replication incurs costs:
Resources:
MultiAZDB:
Type: AWS::RDS::DBInstance
Properties:
MultiAZ: true # Inter-AZ data transfer: $0.01/GB
# Example: 100 GB/day replication = $3/day = $90/monthStorage autoscaling has minimum and maximum increments:
Resources:
DBInstance:
Type: AWS::RDS::DBInstance
Properties:
AllocatedStorage: 100 # Starting size
MaxAllocatedStorage: 1000 # Maximum autoscaling limit
StorageType: gp3 # Required for autoscalingAutoscaling Behavior:
Maximum connections vary by instance class and database engine:
Resources:
# MySQL connection limits
MySQLInstance:
Type: AWS::RDS::DBInstance
Properties:
DBInstanceClass: db.t3.micro # max_connections: ~40
# db.t3.medium: ~200 connections
# db.m5.large: ~500-1000 connections
# PostgreSQL connection limits
PostgreSQLInstance:
Type: AWS::RDS::DBInstance
Properties:
DBInstanceClass: db.t3.micro # max_connections: ~40
# Can be configured via parameter groupConnection Pooling:
Resources:
# Increase connection limits via parameter group
HighConnectionParameterGroup:
Type: AWS::RDS::DBParameterGroup
Properties:
Family: mysql8.0
Parameters:
max_connections: 1000 # Increase for high-traffic appsMaintenance windows may cause brief service interruptions:
Resources:
DBInstance:
Type: AWS::RDS::DBInstance
Properties:
PreferredMaintenanceWindow: sun:03:00-sun:04:00 # Low-traffic time
# Expect ~30 seconds downtime for patchesRead replicas may lag behind primary by seconds to minutes:
Resources:
# Monitor replication lag
PrimaryDB:
Type: AWS::RDS::DBInstance
Properties:
DBInstanceClass: db.r5.large
Engine: postgres
ReadReplica:
Type: AWS::RDS::DBInstance
Properties:
SourceDBInstanceIdentifier: !Ref PrimaryDB
# Replication lag varies by:
# - Write workload intensity
# - Network latency between AZs
# - Instance class sizeNot all database engines are available in all regions:
# Check availability before deployment
# Aurora PostgreSQL: Available in us-east-1, us-west-2, eu-west-1, etc.
# Aurora MySQL: Available in all commercial regions
# Oracle: Limited regions due to licensing
Resources:
DBInstance:
Type: AWS::RDS::DBInstance
Properties:
Engine: aurora-postgresql # Verify region availabilityOlder database versions may be deprecated and require upgrades:
Resources:
DBInstance:
Type: AWS::RDS::DBInstance
Properties:
Engine: postgres
EngineVersion: "16.1" # Use current supported version
# Avoid deprecated versions like PostgreSQL 10 or 11Some instance types may not be available in all AZs:
Resources:
DBInstance:
Type: AWS::RDS::DBInstance
Properties:
DBInstanceClass: db.x2g.large # Memory optimized
# May not be available in all AZs
# Let AWS select AZ for best availabilityInsufficient Storage:
# Check storage usage
aws rds describe-db-instances \
--db-instance-identifier mydb \
--query 'DBInstances[0].[AllocatedStorage,FreeStorageSpace]'
# Enable storage autoscaling
aws rds modify-db-instance \
--db-instance-identifier mydb \
--max-allocated-storage 1000 \
--apply-immediatelyConnection Timeouts:
# Increase max_connections parameter
Resources:
DBParameterGroup:
Type: AWS::RDS::DBParameterGroup
Properties:
Family: postgres16
Parameters:
max_connections: 500 # Increase from defaultSlow Performance:
# Enable Performance Insights
aws rds modify-db-instance \
--db-instance-identifier mydb \
--enable-performance-insights \
--performance-insights-retention-period 731 \
--apply-immediately
# Check CloudWatch metrics
aws cloudwatch get-metric-statistics \
--namespace AWS/RDS \
--metric-name CPUUtilization \
--dimensions Name=DBInstanceIdentifier,Value=mydb \
--start-time 2024-01-01T00:00:00Z \
--end-time 2024-01-01T23:59:59Z \
--period 3600 \
--statistics Averagedocs
plugins
developer-kit-ai
developer-kit-aws
agents
docs
skills
aws
aws-cli-beast
aws-cost-optimization
aws-drawio-architecture-diagrams
aws-sam-bootstrap
aws-cloudformation
aws-cloudformation-auto-scaling
aws-cloudformation-bedrock
aws-cloudformation-cloudfront
aws-cloudformation-cloudwatch
aws-cloudformation-dynamodb
aws-cloudformation-ec2
aws-cloudformation-ecs
aws-cloudformation-elasticache
references
aws-cloudformation-iam
references
aws-cloudformation-lambda
aws-cloudformation-rds
aws-cloudformation-s3
aws-cloudformation-security
aws-cloudformation-task-ecs-deploy-gh
aws-cloudformation-vpc
references
developer-kit-core
agents
commands
skills
developer-kit-devops
developer-kit-java
agents
commands
docs
skills
aws-lambda-java-integration
aws-rds-spring-boot-integration
aws-sdk-java-v2-bedrock
aws-sdk-java-v2-core
aws-sdk-java-v2-dynamodb
aws-sdk-java-v2-kms
aws-sdk-java-v2-lambda
aws-sdk-java-v2-messaging
aws-sdk-java-v2-rds
aws-sdk-java-v2-s3
aws-sdk-java-v2-secrets-manager
clean-architecture
graalvm-native-image
langchain4j-ai-services-patterns
references
langchain4j-mcp-server-patterns
references
langchain4j-rag-implementation-patterns
references
langchain4j-spring-boot-integration
langchain4j-testing-strategies
langchain4j-tool-function-calling-patterns
langchain4j-vector-stores-configuration
references
qdrant
references
spring-ai-mcp-server-patterns
spring-boot-actuator
spring-boot-cache
spring-boot-crud-patterns
spring-boot-dependency-injection
spring-boot-event-driven-patterns
spring-boot-openapi-documentation
spring-boot-project-creator
spring-boot-resilience4j
spring-boot-rest-api-standards
spring-boot-saga-pattern
spring-boot-security-jwt
assets
references
scripts
spring-boot-test-patterns
spring-data-jpa
references
spring-data-neo4j
references
unit-test-application-events
unit-test-bean-validation
unit-test-boundary-conditions
unit-test-caching
unit-test-config-properties
references
unit-test-controller-layer
unit-test-exception-handler
references
unit-test-json-serialization
unit-test-mapper-converter
references
unit-test-parameterized
unit-test-scheduled-async
references
unit-test-service-layer
references
unit-test-utility-methods
unit-test-wiremock-rest-api
references
developer-kit-php
developer-kit-project-management
developer-kit-python
developer-kit-specs
commands
docs
hooks
test-templates
tests
skills
developer-kit-tools
developer-kit-typescript
agents
docs
hooks
rules
skills
aws-cdk
aws-lambda-typescript-integration
better-auth
clean-architecture
drizzle-orm-patterns
dynamodb-toolbox-patterns
references
nestjs
nestjs-best-practices
nestjs-code-review
nestjs-drizzle-crud-generator
nextjs-app-router
nextjs-authentication
nextjs-code-review
nextjs-data-fetching
nextjs-deployment
nextjs-performance
nx-monorepo
react-code-review
react-patterns
shadcn-ui
tailwind-css-patterns
tailwind-design-system
references
turborepo-monorepo
typescript-docs
typescript-security-review
zod-validation-utilities
references
github-spec-kit