Data
Databases, migrations and the data lake.
My default
2 tools in this layer.
The only migration tool I use. It works.
Pricing: Sydney: replication instances from $0.112 an hour (dms.t3.medium) or $0.25 (r6i.large), double for Multi-AZ, plus $0.138/GB-month of storage. DMS Serverless: $0.1155 per DCU-hour (1 DCU = 2 GB of memory), capped by the maximum you set. DMS Schema Conversion is free. Data into DMS, and between DMS and a database in the same Availability Zone, is free.
My go-to Postgres. Scales to zero, branches like git, and talks HTTP so Lambda needs no VPC or proxy.
Pricing: Launch plan $0.106 per compute-unit hour, Scale $0.222; storage $0.35/GB-month; no minimum. Available in Sydney.
Use when it fits
3 tools in this layer.
Peace of mind and scale, at a price. My choice when the client must stay all-AWS.
Pricing: Serverless v2 kept at 0.5 ACU always-on ≈ $73 a month. RDS Proxy adds at least about $26 a month (provisioned) or about $146 (Serverless v2, minimum 8 ACU).
SQL over Parquet that runs anywhere, from my laptop to a Lambda. Next to Athena, not instead of it.
Pricing: Free and MIT-licensed. In Lambda you pay compute and S3 GETs: a query that reads 1 GB costs about $0.002, against $0.005 on Athena, with no 10 MB minimum per query.
The data lake that works. Not amazing. Pair it with DuckDB.
Pricing: Sydney: Athena $5 per TB scanned, 10 MB minimum per query. S3 Standard $0.025/GB-month. Glue Data Catalog free for the first million objects.
Skip
3 tools in this layer.
Overkill for most apps. Postgres full-text plus pgvector covers search.
Pricing: Sydney, managed domains: $0.213 an hour per r7g.large.search node, so a three-node production domain is about $466 a month before storage ($0.1464/GB-month gp3). Serverless: $0.281 per OCU-hour; a classic collection bills at least 2 OCUs (about $410 a month, half in dev-test mode), while NextGen collections (May 2026) scale to zero after 10 idle minutes.
Instead: Postgres full-text search plus pgvector, next to the data you already have.
The business case is thin, and there's no tooling to migrate thousands of databases. Durable Objects do per-tenant SQLite better.
Pricing: $5 a month covers 50M reads, 2M writes and 2 GB. Workers Paid includes 25 billion rows read, 50 million rows written and 5 GB a month, then $0.001 per million rows read, $1 per million rows written and $0.75/GB-month. Rows read means rows scanned, not rows returned. No egress charge.
Instead: Durable Objects for per-tenant SQLite; Neon for a normal database.
A Postgres connection pool for Workers only. My business logic isn't on Workers, so I don't need it.
Pricing: Included in Workers Paid. Unlimited queries, no charge for pooling, caching or egress; you pay for the Workers plan and the database. The Free plan allows 100,000 queries a day.
Instead: Neon's HTTP driver, which works from Workers and Lambda alike.
Never
One tool in this layer.
I've never had a use case it fits better than Postgres with JSONB.
Pricing: Sydney, on demand: $0.71 per million write request units (1 KB each), $0.1425 per million read request units (4 KB strongly consistent, or two 4 KB eventually consistent reads), storage $0.285/GB-month after 25 GB free. Transactional reads and writes cost double. Point-in-time recovery storage $0.228/GB-month.
Instead: Postgres on Neon, with JSONB for the document-shaped data.
Where they're used
The jobs that pick or avoid a tool from this layer.
- 01 An API for my app I need a backend API that reads and writes a database. My picks: Lambda function URLs, Neon (serverless Postgres), Lambda Web Functions, Cloudflare Workers
- 03 Something live that many people watch at once Live auctions, collaborative editing, polls, chat rooms, game lobbies. My picks: Cloudflare Workers, Cloudflare Durable Objects, Neon (serverless Postgres), Amazon S3
- 09 Device and IoT data Thousands of devices sending readings that end up in reports. My picks: AWS IoT Core, Amazon SQS, Neon (serverless Postgres)
- 10 Semantic search and RAG Search by meaning, or feed an LLM your documents. My picks: pgvector, Amazon S3 Vectors
- 12 A database Where the data lives. My picks: Neon (serverless Postgres), Aurora PostgreSQL
- 13 A data lake Analytics over everything the apps produce, cheaply, without a warehouse to run. My picks: Amazon S3, Amazon Data Firehose, S3 + Glue + Athena, DuckDB, Aurora PostgreSQL
- 16 Logs without a shocking bill Observability that doesn't cost more than the app. My picks: Amazon CloudWatch, Amazon Data Firehose, DuckDB, Cloudflare Workers
- 18 Moving on-premises systems to AWS Lift databases and apps into AWS. My picks: Claude Code, AWS Database Migration Service, AWS Organizations + IAM Identity Center, Pulumi
Want this stack in your AWS account?
Cloudless Labs is a Sydney consultancy. We migrate on-premises systems to AWS, build serverless apps on this stack, and coach teams to ship with Claude Code and Codex.