Skip to content

Managed Databases Explained

6-minute read. This is the cloud-builder's short version. For choosing a database model, consistency and data engineering in depth, read SQL vs NoSQL and the database service comparison on Data Zero to Hero.

The one-line answer

A managed database is a database the cloud provider runs for you. You choose the engine and size and get a connection string; the provider handles installation, patching, backups, replication and failover. You still own the schema, the queries, the data and who can reach it.

What "managed" takes off your plate

Running PostgreSQL yourself on a VM means you are on the hook for:

  • Installing and upgrading the engine and the OS
  • Configuring backups, and proving restores work
  • Setting up a replica and writing failover scripts
  • Monitoring disk space before it fills at 3am
  • Encryption, certificates and security patches

A managed service turns most of that into settings. Turn on automated backups with point-in-time restore. Tick "multi-AZ" or "high availability" and get a synchronous standby with automatic failover. Choose a maintenance window for patches.

The trade: less control (no root on the host, limited extensions and parameters), a higher price per unit of compute than a bare VM, and some lock-in to the provider's flavour. For almost every team, the time saved is worth far more than the markup.

The main families

Type AWS Azure GCP
Relational (MySQL, PostgreSQL, SQL Server) RDS Azure Database for MySQL / PostgreSQL, Azure SQL Cloud SQL
Cloud-native relational Aurora, Aurora DSQL Azure SQL Hyperscale AlloyDB, Spanner
Key-value / document DynamoDB, DocumentDB Cosmos DB Firestore, Bigtable
In-memory cache ElastiCache, MemoryDB Azure Managed Redis Memorystore

Rough guide: start with managed PostgreSQL or MySQL unless you have a clear reason not to. Reach for a key-value or document store when access patterns are simple and scale is huge, and for a globally distributed database when users write from several continents.

Serverless vs provisioned

Provisioned means you pick an instance size and pay for it every hour, busy or idle. Serverless options (Aurora Serverless v2, DynamoDB on-demand, Azure SQL serverless, Firestore) scale capacity with load and bill for what is used, some down to near zero when idle. Serverless suits spiky or unpredictable workloads and dev environments; steady high load is usually cheaper provisioned.

What you still own

  • Network exposure. Put the database in private subnets and allow only the app's security group. A publicly reachable database is one of the most common breaches.
  • Access. Use IAM or Entra authentication where supported, and keep passwords in a secrets manager with rotation.
  • Schema, indexes and queries. The provider will not fix a missing index.
  • Connection limits. Serverless functions and autoscaled apps can open thousands of connections. Use a pooler (RDS Proxy, PgBouncer, built-in poolers).
  • Testing restores and choosing retention.
  • Major version upgrades, which usually need planning and testing even when the provider runs them.

Common mistakes

  • Read replicas mistaken for high availability. Replicas spread read load; a Multi-AZ or HA standby is what gives automatic failover. Some engines (Aurora) blur the line by promoting replicas.
  • Single-AZ in production to save money.
  • Public accessibility turned on "just to connect from my laptop".
  • No connection pooling in front of a fleet of functions.
  • Ignoring storage autoscaling limits, so the disk fills anyway.

How exams test it

  • "Reduce operational overhead of a self-managed MySQL on EC2" -> migrate to RDS or Aurora.
  • "Automatic failover if the AZ fails" -> Multi-AZ, not read replicas.
  • "Offload read-heavy reporting" -> read replicas.
  • "Millisecond latency at any scale, simple key access" -> DynamoDB, Cosmos DB, Bigtable or Firestore.
  • "Globally consistent relational database across regions" -> Spanner (or Aurora DSQL / Cosmos DB depending on the cloud and model).

Go deeper

What to look at next