Basics about RDS
Engines: PostgreSQL, MySQL, MariaDB, Oracle, Microsoft SQL Server
Managed DB: provisioning, backups, patching, monitoring
Launched within a VPC, usually in private subnet, control network
access using security groups (important when using Lambda)
Storage by EBS (gp2 or io1), can increase volume size with auto-scaling
Backups: automated with point-in-time recovery. Backups expire
Snapshots: manual, can make copies of snapshots cross region
RDS Events: get notified via SNS for events (operations, outages…)
It is Multi-AZ, so it has a standby instance for failover. You can also have a read replica which will do reads only
RDS Security
RDS for Oracle
Use RDS Backups for backups & restore
to Amazon RDS for Oracle
Use Oracle RMAN (Recovery Manager)
for backups & restore to-non RDS
(RDS not supported)
Real Application Clusters (RAC)
* RDS for Oracle does NOT support RAC
* RAC is working on Oracle on EC2
* Instances because you have full control
RDS for MySQL
You can use the native mysqldump to migrate a MySQL RDS DB to non-RDS
The external MySQL database can run either on-premises in your data center, or on an Amazon EC2 instance
RDS Proxy for AWS Lambda
When using Lambda functions with RDS, it
opens and maintains a database connection
This can result in a “TooManyConnections” exception
With RDS Proxy, you no longer need code that handles cleaning up idle connections and managing connection pools
Supports IAM authentication or DB authentication, auto-scaling
The Lambda function must have connectivity to the Proxy (public proxy => public Lambda, private proxy => Lambda in VPC)