Skip to main content

Command Palette

Search for a command to run...

SAA-C03 Certification: RDS, Aurora and ElastiCache

Updated
4 min read
T

I am a dedicated software engineer with a deep passion for security and a commitment to developing robust and scalable solutions. With over three years of hands-on experience in the .NET ecosystem, I have built, maintained, and optimized various software applications, demonstrating my ability to adapt to diverse project needs. In addition to my expertise in .NET, I have six months of specialized experience working with Spring Boot and ReactJS, further broadening my skill set to include full-stack development and modern web technologies. My professional journey includes deploying small to medium-sized systems to cloud platforms and on-premises environments, where I have ensured reliability, scalability, and efficient resource utilization. This combination of skills and experience reflects my versatility and commitment to staying at the forefront of the ever-evolving tech landscape.

RDS Read Replicas vs Multi-AZ

  • Up to 15 Read Replicas

  • Within AZ, Cross AZ, or Cross region

  • Replication is ASYNC, so reads are eventually consistent

  • Replicas can be promoted to their DB

  • Use-case: can be used for the report service that doesn't need to create, update, or delete records

Network Cost

  • For RDS read replicas with the same region, you don't pay that fee

Multi-AZ (Disaster Recovery)

  • This is not intended for scaling. It is only for adapting to disaster recovery situations

  • The Read Replicas can be set as Multi-AZ for Disaster Recovery.

  • To enable Multi-AZ: click "modify" for the database and enable the multi-AZ feature.

Aurora

  • It is a proprietary technology from AWS

  • MySQL and Postgres are both supported as Aurora DB

  • 5x performance improvement over MySQL on RDS, over 3x the performance of Postgres on RDS

  • Storage automatically from 10 GB to 128 TB

  • Up to 15 replicas and the replication process is faster than MySQL (10ms replica lag)

  • Failover is instantaneous

  • Costs more than RDS (20% more)

Aurora - High Availability and Read Scaling

  • 6 copies of data across 3 AZ:

    • 4 copies out of 6 needed to write

    • 3 copies out of 6 needed for reads

    • self-healing with peer-to-peer replication

    • Storage is striped across 100s of volumes

  • One Aurora instance takes writes (master instance)

  • Automated failover for master in less than 30 seconds

  • Master + up to 15 read replicas serve read

  • Support for cross-region replication

Aurora has two types of endpoints: one for writing data and one for reading data. (Writer Endpoint and Reader Endpoint)

RDS Backup

  • Automated backups:

    • Daily full backup of the database

    • Transaction logs are backed up by RDS every 5 minutes

    • \=> ability to restore to any point in time (from oldest backup to 5 minutes ago)

    • 1 to 35 days of retention, set 0 to disable automated backup

  • Manual DB Snapshots

  • Trick: in a stopped RDS db, you will still pay for storage. If you plan on stopping it for a long time, you should snapshot and restore instead.

Aurora Backup

  • Automated backup

    • 1 to 35 days (cannot be disabled)

    • point in time recovery in that timeframe

  • Manual Db snapshots (same as RDS)

Restoring an RDS / Aurora backup or a snapshot creates a new database Restoring MySQL RDS database from S3

  • Create a backup of your on-premises database

  • Store it on S3

  • Restore the backup file onto a new RDS instance running MySQL

Restoring MySQL Aurora cluster from S3

  • Create a backup of your on-premises database using Percona XtraBackup

  • Store the backup file on S3

  • Restore the backup file onto a new Aurora cluster running MySQL

Aurora database cloning

  • Create a new Aurora Db cluster from an existing one

  • Faster than snapshot & restore

  • Uses copy-on-write protocol

  • Very fast & cost-effective

  • Useful to create a staging db from a production db without impacting the production database

RDS & Aurora Security

  • At-rest encryption

    • Db master & replicas encryption using AWS KMS - must be defined as a launch time

    • If the master is not encrypted, the read replicas cannot be encrypted

    • To encrypt an un-encrypted DB, go through a DB snapshot & restore it as encrypted

  • In-flight encryption: TLS-ready by default, use the AWS TLS root certificates client-side

  • IAM Authentication: IAM role to connect to your DB (instead of username/password)

  • Security group: control network access to RDS / Aurora DB

  • No SSH available except on RDS custom

  • Audit Logs can be enabled and sent to CloudWatch Logs for longer retention

RDS Proxy

  • Supports RDS (MySQL, PostgreSQL, MariaDB, SQL Server) and Aurora

  • Reduced RDS & Aurora failover time by up 66%

  • Serverless, auto-scaling, HA (multi-AZ)

  • No code changes

  • RDS Proxy is never publicly accessible (must be accessed from VPC)

ElastiCache

  • ElastiCache is to be managed by Redis or Memcached

  • Helps make your application stateless

  • Using ElastiCache involves heavy application code changes

9 views

More from this blog

Tuan Do's Blog

37 posts

The blog acts like a personal notebook for jotting down thoughts