Amazon RDS vs RDS Custom vs Self-Managed Database on EC2: Choosing the Right Control Boundary

· 8 min read ·
AWSArchitecture

Every database deployment on AWS involves a trade-off between how much AWS manages and how much control you retain. The three options — Amazon RDS, RDS Custom, and a self-managed database on EC2 — represent three distinct positions on that spectrum. Picking the wrong one either leaves you paying for management you didn’t need or fighting AWS automation for access you should have had from the start.


The Control Spectrum

There are roughly five layers where control matters:

LayerWhat it covers
OSPatching, kernel parameters, OS-level tuning, direct SSH
Database binaryEngine version, patch application, custom builds
Database configpg_hba.conf, my.cnf, init scripts, extensions, plugins
StorageDisk type, filesystem, I/O scheduler, direct volume access
HA & replicationFailover mechanism, replica topology, replication lag visibility

Amazon RDS controls all five on your behalf. RDS Custom gives you access to OS and some database binary layers while AWS still manages infrastructure. Self-managed EC2 gives you all five but makes you responsible for all five.


Amazon RDS

RDS is a fully managed relational database service. AWS handles provisioning, OS patching, database engine patching, backups, Multi-AZ failover, and read replica management. You interact with the database through its endpoint — there is no SSH, no OS shell, no direct filesystem access.

What You Get

What You Give Up

You cannot:

When RDS Is the Right Choice

RDS is the correct default for most production workloads. The managed overhead it removes (patch cycles, backup validation, failover testing) is genuinely expensive to replicate yourself.


RDS Custom

RDS Custom sits between fully managed RDS and self-managed EC2. It gives you SSH access to the underlying EC2 instance and direct access to the database binary and OS, while AWS still manages the infrastructure primitives.

RDS Custom currently supports Oracle and SQL Server — specifically because enterprise Oracle and SQL Server deployments frequently require OS-level customisation that standard RDS does not permit.

What You Get Beyond Standard RDS

The Automation Boundary

RDS Custom introduces the concept of a pause automation window. If you make changes that AWS automation does not expect, first pause RDS Custom automation, make the changes, then resume. If you skip this step, AWS automation may detect the unexpected state and attempt to remediate it — potentially undoing your changes.

When RDS Custom Is the Right Choice


Self-Managed Database on EC2

Running your own database engine on an EC2 instance gives you complete control over every layer. You also own every failure.

What You Get

What You Own

Everything RDS handles automatically becomes your operational responsibility:

When Self-Managed EC2 Is the Right Choice

Self-managed EC2 is not the right choice because “we want more control” in the abstract. The operational cost is real and recurring.


Side-by-Side Comparison

DimensionRDSRDS CustomSelf-Managed EC2
OS accessNoneYes (SSM)Yes (SSH)
Engine patchingAWS-managedSharedYou
OS patchingAWS-managedYouYou
Backup / PITRAutomatedAutomatedYou
Multi-AZ failoverAutomatedAutomatedYou
Read replicasManagedManagedYou
Custom extensionsParameter groups onlyFull accessFull access
Storage autoscalingYesYesManual
Supported enginesMySQL, PG, MariaDB, Oracle, SQL Server, AuroraOracle, SQL ServerAny
Cost premiumRDS markup on instanceRDS markup on instanceRaw EC2 price
Operational burdenLowMediumHigh

The Cost Reality

RDS charges a premium over raw EC2 pricing for the same instance family. For a db.r6g.2xlarge (8 vCPU, 64 GB RAM) in ap-southeast-1:

The gap narrows significantly with Reserved Instances. At reserved pricing, the operational cost of self-managing often exceeds the savings unless the team already has the tooling built and the expertise in-house.

Aurora Serverless v2 changes the calculus for variable workloads — it scales in 0.5 ACU increments, paying for actual consumed capacity rather than a fixed instance size. For workloads with significant idle periods, Aurora Serverless v2 can be materially cheaper than a fixed RDS instance.


Decision Framework

Start with RDS unless you have a specific reason not to. Then work through these questions:

Is the engine supported by RDS?

Do you need OS-level access or custom Oracle/SQL Server configurations?

Do you need storage performance beyond RDS limits, or a replication topology RDS cannot provide?

Do you have a dedicated DBA team with capacity to own patching, HA, and recovery tooling?

The control boundary is not about preference. It is about which failure modes you are equipped to handle and which ones you would rather outsource.

Further Reading