RDS is the AWS Relational Database Service
a managed DB service for DB, uses SQL, is a “serverless service”, which runs:
MS SQL Server
AWS Aurora (AWS proprietary DB)
You have to know this for the exam!
Advantages of RDS vs a db engine on an EC2 instance
rds is managed by AWS
automated provisioning, os and db engine upgrades and patching
continuous backups and point-in-time restore
read replicas for improved read performance
multi-AZ for disaster recovery (DR)
maintenance windows for upgrades
scaling capacity, both horizontal and vertical
storage backed by EBS
BUT . you can’t SSH into the RDS instances – we don’t have access to the engine or underlying OS. RDS is purely a managed DB solution.
daily full backup
transaction logs backed up every 5 mins
can restore to any point in time
7 days retention, can be increased to 35 days
rds db snapshots have to be manually triggered by user
retention for as long as you want
RDS Storage Auto Scaling
dynamic increase in storage is automatic – so this avoids manual scaling, but you have to set a Max Storage Threshold ie limit for db storage – exam question!
set rds to automatically modify storage if:
free storage is less than 10% of allocated storage
low storage lasts at least 5 mins
6 hrs have passed since last modification
useful for apps with unpredictable workloads
supports all rds DB engines – MariaDB, MySQL, PostgreSQL, SQL server and Oracle
Read Replicas with RDS
RDS read replicas provide for faster reads, but not for writes
you create a replica of the DB – up to 5 MAX – can be in the same AZ, cross AZ or cross-region – not needed for exam!
Asynchronous replication takes place – but there is a time lag involved.
hence: “eventually consistent async replication”
a replica can be promoted to become a full separate read-write DB.
application clients must update connection string to connect to the read replica/s.
a very typical exam question use case example:
eg prod DB but you need to run intensive read analysis eg reporting…
this would slow down the prod DB, so you can create a read replica to run the read process from there.
note: only SELECT type statements can be run ie reads, NOT insert, update, delete etc
normally a charge for data transfer from one AZ zo another
but AWS does not charge for RDS read replica data traffic within the same REGION
ie is for free
BUT cross-region is chargeable…
Using RDS Multi-AZ for Disaster Recovery (DR)
This is a common use case for multi-az RDS systems.
This uses sync replication – this means that when the application writes to the master db instance, it is also written to the standby DB instance in the other AZ at the same time.
one dns name, auto app failover to the standover, this increases availability, meaning there is no manual intervention in apps necessary for the changeover.
Note that it is not used for scaling, just for failover from master db in the event of a failure of the master db.
Note that a lot of questions in exam focus on RDS!
the read replicates can also be set up as multi-az for DR – this is often an exam question! In this case they switch from async replication to sync replication.
How to Move RDS from Single-AZ to Multi-AZ
There is no need to stop DB – just click on modify for the db
how it happens:
a snapshot is done automatically from master db and this is then restored from snapshot to a new db in the new az
a sync is then done. You then have a multi-AZ RDS DR setup.
my rds test database:
Endpoint & port
More on RDS
its a managed db on the postgresql/myswl/Oracle/SQL level
you must however an ec2 instance and ebs vol type and sufficient size
it supports read replicas and multi-AZ
security is via iam and security groups, kms, and ssl in transit
backup, snapshot and point in time restores all possible
managed and scheduled maintanance
monitoring available via cloudwatch
use cases include:
storing relational datasets rdbms/oltp performing sql queries, transactional inserts, update, delete is possible
rds for solutions architect, considerations include these “5 pillars”:
operations_ small downtimes when failover happens, when maintenance happens, when scaling read replicas, ec2 instances, and restoring from ebs, this requires manual intervention, and when application changes
security: aws is responsible for os security, but we are responsible for setting up kms, security groups, iam policies, authorizing users in db and using ssl
reliability: the multi-az feature makes rds v reliable, good for failover in failure situations
performance: dependent on ec2 instance type, ebs vol type, can add read replicas, storage autoscaling is possible, and manual scaling of instances is also possible
costs: is pay per hour based on provisioned number and type of ec2 instances and ebs usage