Lessons in this course (9)

4. Databases — RDS for SQL Server, Aurora, DynamoDB and ElastiCache

Intermediate★ Must knowLesson 4 of 9

Amazon RDS — managed relational databases: SQL Server (Express, Web, Standard, Enterprise editions; licence included or BYOL on RDS Custom), PostgreSQL, MySQL, MariaDB, Oracle, Db2.

  • Multi-AZ — synchronous standby in another AZ, automatic failover (HA).
  • Read replicas — asynchronous copies for read scaling (SQL Server Enterprise supports read replicas).
  • Automated backups (point-in-time restore, 1–35 days) and manual snapshots.
  • Runs in private subnets; access controlled by security groups; encryption with KMS.
  • RDS for SQL Server has no sysadmin — some features (some SQL Agent features, native backup to S3 via stored procedures, SSIS/SSRS support with options) differ from on-prem.
json
// appsettings.Production.json — connection string with credentials loaded from Secrets Manager at startup
"ConnectionStrings": { "Shop": "Server=shop-db.abc123.ap-south-1.rds.amazonaws.com,1433;Database=Shop;Encrypt=True;" }

Aurora — AWS's cloud-native MySQL/PostgreSQL-compatible engine: storage replicated 6 ways across 3 AZs, up to 15 low-latency read replicas, fast failover, Aurora Serverless v2 (scales capacity automatically), Global Database for multi-region.

DynamoDB — fully managed key-value/document NoSQL with single-digit-ms latency at any scale:

  • Tables with a partition key (and optional sort key); access patterns designed up front (single-table design).
  • Capacity modes: on-demand (pay per request) or provisioned (with auto scaling).
  • GSIs/LSIs (secondary indexes), DynamoDB Streams (change events → Lambda), TTL, transactions, global tables (multi-region).

ElastiCache (Redis/Valkey/Memcached) — managed in-memory cache for sessions and query caching; MemoryDB for durable Redis.