Case
Hosting three apps with database, backend and frontend for as low as 12 USD a month.
Our own platform: three web applications, each with a frontend, an API and a MySQL database, running in production on AWS. The whole thing costs less than a single managed database instance, with no trick we would not recommend to a client.
≈ 12 USDPer month, all ineu-west-1 with a one-year Savings Plan on the instance. About 20 USD on demand with no commitment
3 appsOn one t4g.small instanceGraviton, 2 vCPU and 2 GB: MySQL plus three backend containers behind Caddy
0 USDFor frontends, CDN and TLSStatic sites on S3 and all traffic through CloudFront, within its always-free tier of 1 TB a month
| Line item | What it covers | USD / month |
| EC2 t4g.small, one-year Compute Savings Plan | MySQL 8, three backend containers and Caddy, 730 hours. No upfront payment; 13.4 USD on demand | 8.5 |
| EBS gp3, 20 GB | Operating system, images, database volume and certificates | 1.8 |
| Route 53 | One hosted zone and DNS queries for all subdomains | 0.6 |
| EBS snapshots | Daily incremental backup of the volume, three days retained | 0.4 |
| S3 and CloudFront | Three static frontends and one distribution per app, also in front of the APIs; TLS certificates from ACM | < 0.1 |
| Public IPv4 address | None. The instance is IPv6-only and CloudFront reaches it over IPv6. Would be 3.7 USD | 0 |
| Data transfer out | CloudFront covered by its free tier; first 100 GB a month from EC2 free | 0 |
| Total | One-year commitment on the instance only | ≈ 11.5 |
How it is built
A single Docker Compose stack for shared infrastructure: MySQL with a 128 MB buffer pool, phpMyAdmin reachable only from the instance, and Caddy as reverse proxy. Each app adds its own compose file with a 512 MB backend container on the shared network. CloudFront sits in front of everything, terminates TLS and talks to the origin over IPv6, so the instance needs no public IPv4. Administration goes through Session Manager, which is free.
What it does not give you
No high availability: one instance in one zone, so a maintenance event means minutes of downtime. Restore is from the daily snapshot. It fits internal tools, early-stage products and demos. When one app needs more, move only that one to Fargate or RDS and keep the rest where it is. We stop here on purpose: a t4g.micro or a three-year reservation would shave a few more dollars at the expense of headroom or flexibility.
Prices for eu-west-1 (Ireland) in September 2026, excluding VAT. The same stack on demand, with a public IPv4 and seven days of snapshots, comes to about 20.5 USD a month.