Amazon RDS
A managed service from AWS that runs standard database engines and handles patching, backups and failover.
Amazon Relational Database Service runs relational databases on AWS as a managed service. It supports several engines including PostgreSQL, MySQL, MariaDB, Oracle and SQL Server. The database itself is the standard engine, while AWS handles provisioning, patching, backups and the mechanics of failover to a standby.
What running a database actually involves
Choosing a database is a small part of using one. Operating it is the larger part, and it is continuous.
A server has to be provisioned and sized. The operating system and the database need patching, including for security issues that arrive on their own schedule. Backups must be configured, run and, critically, tested for restoration. Failover has to be arranged and verified. Storage fills and must be extended. Monitoring must exist and someone must respond to it.
None of this is about the application. It is the cost of having a database at all, and it recurs indefinitely.
Amazon RDS takes on this work while leaving the database itself standard.
Standard engines
The distinguishing characteristic is that the engines are the ordinary ones.
PostgreSQL on RDS is PostgreSQL. MySQL is MySQL. The same applies to MariaDB, Oracle and SQL Server.
This matters for two practical reasons.
Applications generally connect without modification. Drivers, SQL and tooling work as they do anywhere, because it is the same engine.
And knowledge transfers. Someone who knows how to tune PostgreSQL knows how to tune this. The techniques, the documentation and the community experience apply.
The trade is that some host level access and configuration is not available, since the service operates the database and that requires it to control certain things. The documentation sets out which parameters can be changed and which operations are restricted.
Backups that exist by default
Automated backups run on a schedule with a retention period, supporting restoration to a point within that period. Snapshots can also be taken deliberately and kept.
The significance is that this is on rather than being something to build.
A great many self managed databases have backups that were configured once, have been failing quietly for months, and have never been restored from. The failure is discovered at the worst possible moment.
Backups performed by the service are not exempt from needing verification, and the practice of actually testing a restore remains worthwhile. But the default position, backups existing and being retained, is considerably better than a process that depends on someone having built it and kept it working.
Two different copies for two different purposes
RDS offers standby instances and read replicas, and confusing them is common.
A standby is a synchronised copy in another availability zone. Its purpose is availability. If the primary becomes unavailable, the standby takes over. It does not serve queries, so it adds no capacity.
A read replica serves read queries. Its purpose is spreading load, so that reporting or read heavy traffic does not compete with the primary. Replication to it is asynchronous, so it may be slightly behind.
The distinction is availability against capacity. Many deployments want both, for different reasons, and adding one does not provide what the other does.
Changing size
Instance size and storage are adjusted through the service.
This changes what capacity planning means. Rather than procuring hardware months in advance, an instance is resized when the evidence says it should be.
Two qualifications are worth noting. Resizing generally involves an interruption or a failover, so it is not free of impact. And a larger instance costs more continuously, which makes ongoing size an ongoing cost decision rather than a one time purchase.
Who uses it
Amazon RDS is used by application teams and platform teams running on AWS. It is a common destination when moving databases off self managed servers, because the engine stays the same and the operational work moves to the provider.
Points to consider
RDS is an AWS service. The official documentation is the reference for supported engines, versions, instance types and features, all of which change over time.
Managed does not mean unattended. Query performance, index design, schema decisions and capacity all remain the responsibility of whoever owns the application. The service operates the database; it does not make it fast.
Version support has a lifecycle. Engine versions reach end of support and upgrades become necessary, which is planned work rather than something the service absorbs entirely.
Cost is continuous and depends on instance size, storage, backup retention and data transfer. An oversized instance costs every hour it runs, which makes right sizing an ongoing exercise rather than a decision made once.
Getting started
The official documentation covers engines, instance classes, backups, standbys and replicas. Creating a small instance of a familiar engine and connecting an existing application to it shows how little usually has to change, which is the most useful thing to establish early.
Key features of Amazon RDS
Capabilities described in the official documentation.
A choice of standard engines
Several familiar database engines are offered, running as the engine itself rather than a rewrite of it.
Automated backups and snapshots
Backups are taken on a schedule and retained, supporting recovery to a point within the retention period.
Standby instances in another zone
A synchronised standby can be maintained in a separate availability zone for failover.
Read replicas
Additional read only copies take query load away from the primary instance.
Advantages of Amazon RDS
Factual advantages that follow from the features above.
Routine administration is handled
Provisioning, patching and backups are performed by the service rather than by an administrator.
Existing applications usually connect unchanged
Because the engines are standard, applications and tools generally work without modification.
Recovery is available by default
Automated backups mean restoring to an earlier point does not depend on a process someone built.
Capacity can be changed
Instance size and storage are adjusted through the service rather than by procuring hardware.
Common use cases for Amazon RDS
Situations the official documentation describes this tool as being used for.
Moving an existing database to the cloud
A database running on servers is migrated to a managed instance of the same engine.
Backing a new application
An application is given a relational database without a server having to be built for it.
Separating reporting from application load
Read replicas serve queries so reporting does not compete with transactional traffic.
Meeting availability requirements
A standby in another availability zone supports continued service when one becomes unavailable.
Official website
Everything on this page is based on the official documentation for Amazon RDS. You can read the source here.
Amazon RDS official documentation