Link copied to clipboard!
Group 7: Databases
Managed database services for OLTP, NoSQL, and specialized workloads: RDS, DynamoDB, Aurora, DocumentDB, Neptune.
Database Principle: Match data model (relational, document, key-value, graph) to access patterns, consistency requirements, and scale characteristics.
Services & Roles
RDS
Managed relational databases (MySQL, PostgreSQL, SQL Server, Oracle).
- Multi-AZ deployment
- Automated backups
- Read replicas
DynamoDB
Serverless NoSQL database with single-digit millisecond performance.
- Auto scaling
- Global tables
- On-demand billing
Aurora
MySQL/PostgreSQL compatible with 3x performance and storage auto-scaling.
- Storage auto-scaling
- Aurora Serverless
- Global database
DocumentDB
MongoDB compatible document database with elastic scaling.
- MongoDB compatibility
- Elastic scaling
- Automatic backups
Neptune
Graph database for highly connected datasets (Gremlin, SPARQL).
- Property graph
- RDF support
- High availability
Key Differences
| Dimension | RDS | DynamoDB | Aurora | DocumentDB | Neptune |
|---|---|---|---|---|---|
| Data Model | Relational (SQL) | Key-Value/Document | Relational (SQL) | Document (JSON) | Graph |
| Scaling | Vertical | Horizontal | Storage auto-scale | Horizontal | Read replicas |
| Consistency | ACID | Eventually consistent | ACID | Eventually consistent | ACID |
| Use Case | Traditional OLTP | Web/mobile apps | High-performance OLTP | Content management | Social networks |
| Performance | Moderate | Single-digit ms | 3x MySQL | High throughput | Graph traversal |
Selection Model
0–10 sliders weight database requirements, data models, and performance characteristics.
Score_RDS = 0.28*C_relationalData + 0.24*C_sqlRequirements + 0.18*C_acidCompliance + 0.14*C_legacyApps + 0.10*C_structuredData + 0.06*(10 - C_webScale)
Score_DynamoDB = 0.30*C_webScale + 0.26*C_keyValueAccess + 0.18*C_autoScaling + 0.12*C_serverlessPreference + 0.08*C_globalReplication + 0.06*(10 - C_sqlRequirements)
Score_Aurora = 0.32*C_highPerformance + 0.24*C_relationalData + 0.18*C_autoScaling + 0.12*C_cloudNative + 0.08*C_globalDatabase + 0.06*C_serverlessPreference
Score_DocumentDB = 0.30*C_documentData + 0.26*C_mongoCompatibility + 0.18*C_contentManagement + 0.12*C_flexibleSchema + 0.08*C_jsonWorkloads + 0.06*C_elasticScaling
Score_Neptune = 0.40*C_graphData + 0.28*C_connectedData + 0.16*C_relationshipQueries + 0.10*C_socialNetworks + 0.04*C_fraudDetection + 0.02*C_recommendationEngine
RDS {{vm.scores.rds|number:2}}
DynamoDB {{vm.scores.dynamodb|number:2}}
Aurora {{vm.scores.aurora|number:2}}
DocumentDB {{vm.scores.documentdb|number:2}}
Neptune {{vm.scores.neptune|number:2}}
Primary Emphasis: {{vm.recommended.name}} ({{vm.recommended.score|number:2}})
Heuristics
- High C_relationalData + C_sqlRequirements → RDS for traditional OLTP.
- Strong C_webScale + C_keyValueAccess → DynamoDB for modern apps.
- High C_highPerformance + C_relationalData → Aurora for cloud-native SQL.
- C_documentData + C_mongoCompatibility → DocumentDB for MongoDB workloads.
- C_graphData + C_connectedData → Neptune for relationship-heavy data.
Anti-Patterns
- Using RDS for web-scale applications (limited horizontal scaling).
- Using DynamoDB for complex JOIN operations (use Aurora instead).
- Using DocumentDB without MongoDB compatibility needs.
- Using Neptune for simple relational data (overkill).
Summary
Choose RDS for SQL legacy, DynamoDB for web scale, Aurora for cloud performance, DocumentDB for MongoDB, Neptune for graphs.