TL;DR: Hosting a web app on AWS costs anywhere from about $5 a month (a single Lightsail instance) to $130+ a month before your database for a "proper" two-AZ container stack with a load balancer and NAT gateways. Low-traffic serverless apps can get compute almost free. The number depends far less on your code than on your architecture, so price the diagram, not the vibes.
So, how much does it cost to host a web app on AWS? Annoyingly, "it depends" is the honest answer. Less annoyingly, it depends on a small set of line items you can actually count. This post walks through three real architectures, prices each one with rates pulled from AWS's own pricing pages, and shows the hidden fees that turn a "$20 app" into a $150 invoice.
Prices below are as of October 2026, mostly US East. AWS changes prices and regional rates differ, so always confirm in the AWS Pricing Calculator before you commit a budget.
How much does it cost to host a web app on AWS? Count the meters
AWS doesn't sell "web hosting". It sells parts. Your bill is the sum of every part you wire together, and each part has its own meter:
- Per hour: instances, containers, load balancers, NAT gateways, public IPv4 addresses.
- Per request: Lambda invocations, API Gateway calls, load balancer capacity units.
- Per GB stored: databases, volumes, object storage, logs.
- Per GB moved: internet egress, NAT processing, cross-AZ traffic.
The classic mistake is pricing the compute and calling it done. Compute is the line item everyone remembers. The NAT gateway is the one that shows up uninvited, every hour, in every AZ.
The fix is boring but it works: start from a diagram, label every component with its meter, then add it up. If your diagram is the one nobody updated since 2023, your estimate is fiction too.
→ Turn your architecture diagram into a component-by-component estimate with Cost Estimator
Option 1: a single Lightsail instance ($5–$75/month)
If your app is a monolith (Rails, Django, Laravel, Next.js on Node, whatever) with modest traffic, Amazon Lightsail is the cheapest predictable way in. You pay one fixed monthly price that bundles compute, SSD storage and a data transfer allowance.
Linux/Unix general purpose bundles with a public IPv4 address, as listed by AWS:
| Monthly price | Memory | vCPUs | SSD | Transfer allowance |
|---|---|---|---|---|
| $5 | 0.5 GB | 2 | 20 GB | 1 TB |
| $7 | 1 GB | 2 | 40 GB | 2 TB |
| $12 | 2 GB | 2 | 60 GB | 3 TB |
| $24 | 4 GB | 2 | 80 GB | 4 TB |
| $44 | 8 GB | 2 | 160 GB | 5 TB |
A few details worth knowing:
- IPv6-only bundles are cheaper, starting at $3.50/month, if your users and dependencies can live without IPv4.
- Transfer allowances are halved in some regions, such as Mumbai and Sydney, per the pricing page.
- Managed databases start at $15/month (1 GB, standard) or $30/month for high availability.
- A Lightsail load balancer is a flat $18/month.
Realistic setups:
- Side project: one $7 instance with the database on the same box = $7/month.
- Small production app: $12 instance + $15 managed database = $27/month.
- "Please don't go down during the launch": two $12 instances + $18 load balancer + $30 HA database = $72/month.
The trade-off: Lightsail is great until you need autoscaling, fine-grained VPC design, or tight integration with the rest of AWS. Then you graduate.
→ Get a quick directional number for your stack with the free AWS Cost Estimator Lite
Option 2: serverless with Lambda (near $0 at low traffic)
For APIs and apps with spiky or low traffic, serverless is where AWS gets almost suspiciously cheap. The Lambda pricing page lists a monthly free tier of 1 million requests and 400,000 GB-seconds, then $0.20 per million requests and $0.0000166667 per GB-second (x86).
Worked example, 3 million requests a month, 512 MB memory, 200 ms average duration:
Compute: 3,000,000 req x 0.5 GB x 0.2 s = 300,000 GB-s
300,000 GB-s < 400,000 GB-s free tier -> $0.00
Requests: (3,000,000 - 1,000,000 free) / 1,000,000 x $0.20 -> $0.40
Lambda total ~ $0.40/month
Yes, forty cents. But Lambda is rarely the whole bill:
- API front door: API Gateway's own pricing example uses $1.00 per million HTTP API requests (first tier), so 3M requests is roughly another $3. HTTP API requests are metered in 512 KB increments, so fat payloads count more than once.
- Static frontend and CDN: CloudFront now offers flat-rate plans, including a $0/month Free plan with 1M requests and 100 GB of transfer, and a $15/month Pro plan.
- Data store: DynamoDB, Aurora or RDS are priced separately, and at scale they usually outweigh the functions.
- Logs: every
console.loglands in CloudWatch Logs, which bills for ingestion and storage.
The serverless catch is the opposite of the Lightsail catch: costs scale linearly with traffic, so a viral week multiplies your request bill right along with your traffic. That's the deal: compute costs almost nothing when idle and more when busy.
If you're new to how these pieces connect, our serverless topologies explainer covers the shapes worth knowing.
→ Describe your serverless app in plain English and get a diagram with Architect AI
Option 3: containers on Fargate behind a load balancer ($130+/month before the database)
This is the "production-shaped" setup most teams end up with: containers in private subnets across two Availability Zones, an Application Load Balancer in front, and NAT gateways so tasks can reach the internet. It's solid architecture. It also has a fixed monthly floor that surprises people.
Here's the math with published rates (730 hours/month assumed):
| Line item | Rate used | Monthly |
|---|---|---|
| Application Load Balancer | $0.0225/hour (US East, N. Virginia) | $16.43 |
| ALB capacity, ~1 LCU average | $0.008/LCU-hour | $5.84 |
| 2 Fargate tasks, 0.5 vCPU / 1 GB, Linux x86 | per-second rates from the Fargate pricing page | $36.04 |
| 2 NAT gateways (one per AZ) | $0.045/hour each | $65.70 |
| 2 public IPv4 addresses for the NAT gateways | $0.005/hour each | $7.30 |
| Subtotal before database, NAT data processing and egress | ~$131 |
Notes on the numbers:
- The Fargate figure comes from AWS's per-second rates for US East (N. Virginia): $0.000011244 per vCPU-second and $0.000001235 per GB-second. Switching to Linux/ARM drops those two tasks to about $28.83.
- The NAT gateway hourly and $0.045/GB processing rate are the figures the Amazon VPC pricing page shows for US East (Ohio). The in-use public IPv4 charge of $0.005/hour applies across commercial regions.
- Not included: your database, NAT data processing ($0.045 per GB), internet egress beyond the free 100 GB/month, logs, and backups. Add your RDS or Aurora instance from the calculator and this stack lands comfortably north of $150.
Notice what dominates: the NAT gateways cost more than the containers. Your app is basically the plus-one at its own party.
How to cut the AWS NAT gateway cost without breaking things
- Use VPC endpoints for AWS services (S3, ECR, DynamoDB and friends) so that traffic skips the NAT path entirely.
- Question whether you need two. One NAT gateway halves the fixed fee but makes that AZ a single point of failure for outbound traffic. That's a real trade-off, not a free win, so write the decision down.
- Check what's actually going out. Container image pulls and chatty third-party APIs often account for most NAT data processing.
→ Compare the one-NAT and two-NAT designs side by side with Cost Estimator
The hidden line items checklist
Before you trust any AWS web app hosting estimate, run it against this list:
- Internet data transfer out: the first 100 GB/month is free, aggregated across services and regions; after that you pay tiered per-GB rates.
- NAT gateway hours and per-GB processing, in every AZ that has one.
- Public IPv4 addresses: $0.005/hour each while in use, which adds up across environments.
- Load balancer capacity units, not just the hourly fee.
- Database storage, backups and Multi-AZ, where the standby instance is billed too.
- CloudWatch Logs ingestion and retention.
- Non-production environments. Dev and staging copies of the production stack multiply your fixed floor.
- Tags, so you can actually see which environment or team the money went to. Our AWS cost allocation best practices guide goes deeper.
The non-prod one is sneaky. Three full copies of Option 3 means paying for six NAT gateways around the clock, including weekends when nobody is deploying.
→ Generate a consistent cost-allocation tagging policy with the free Tagging Policy Builder
What about the AWS Free Tier for web apps?
The AWS Free Tier changed shape. Per the AWS Free Tier page, new accounts get $100 in credits immediately and can earn up to $100 more by exploring services. The free plan ends after six months or when the credits run out, whichever comes first, and more than 30 services keep always-free monthly limits on both free and paid plans.
Translation: the Free Tier is excellent for learning, prototyping and proving an architecture works. It is not a hosting strategy. Price the steady-state bill from day one so month seven isn't a jump scare. Our cost visibility explainer covers how to keep that number visible once you're live.
→ Prototype the architecture first, then price it, with a free Architecto account
How to estimate AWS costs before you build
Here's the method we'd defend in an architecture review. It lines up with the AWS Well-Architected cost optimization principles, notably adopting a consumption model and analyzing and attributing expenditure.
- Draw the architecture. Every component that exists in production goes on the diagram, including NAT gateways, load balancers and log pipelines. Our AWS architecture diagram guide covers what to include.
- Tag each component with its meter: hourly, per request, per GB stored, per GB moved.
- Pick three scenarios: quiet month, expected month, launch spike. A single number hides the risk.
- Price each component in the AWS Pricing Calculator for your actual region.
- Find the fixed floor. Sum everything that bills even at zero traffic. That's your minimum monthly spend, and it's the number finance will remember.
- Write down the assumptions next to the diagram, so the next reviewer can challenge them instead of re-deriving them.
- Re-estimate when the design changes, not when the invoice arrives.
Quick comparison of the three options:
| Option | Typical monthly range | Fixed floor | Scales automatically | Best for |
|---|---|---|---|---|
| Lightsail instance | ~$5–$72 | The bundle price | No | Monoliths, side projects, predictable traffic |
| Serverless (Lambda) | Near $0 at low traffic, grows with requests | Very low | Yes | APIs, spiky or low traffic |
| Fargate + ALB + NAT | ~$131 + database + egress | High (~$131) | Yes | Production apps needing private networking |
If you'd rather not do steps 2 to 5 by hand every time someone moves a box, that's literally what our Cost Estimator is for: it estimates spend from the architecture's components and lets you compare alternative designs before implementation.
→ Load your design and compare cost scenarios in Cost Estimator
Key takeaways
- The range is wide: about $5/month on Lightsail, near $0 compute for low-traffic Lambda, and roughly $131/month before database and egress for a two-AZ Fargate stack.
- Architecture sets the floor. NAT gateways, load balancers and public IPv4 addresses bill every hour regardless of traffic.
- Serverless trades a low floor for linear scaling. Cheap when quiet, proportional when busy.
- The Free Tier is temporary. Credits and the six-month window are for learning, not for budgeting.
- Estimate from the diagram, with three scenarios, and confirm rates in the AWS Pricing Calculator.
→ Cut existing spend with evidence-backed savings findings in Cost Optimizer
FAQ
How much does it cost to host a small web app on AWS?
A small web app can run on a single Amazon Lightsail Linux instance for a fixed $5 to $12 per month (IPv4 bundles, as of October 2026), with a managed Lightsail database from $15 per month if you want one. A low-traffic serverless app on Lambda can cost close to nothing for compute because of Lambda's monthly free tier, though the data store and other services are billed separately.
Can I host a web app on AWS for free?
For a while, yes. New AWS Free Tier accounts get $100 in credits up front and can earn up to $100 more, and the free plan lasts six months or until the credits run out, whichever comes first. More than 30 services also have always-free monthly limits, such as Lambda's one million requests and 400,000 GB-seconds per month. Plan for the bill that starts after that.
Why is my AWS bill higher than the EC2 or Fargate price?
Because compute is only one line item. Production-shaped stacks also pay hourly for load balancers, NAT gateways and in-use public IPv4 addresses, plus per-GB charges for NAT data processing and internet data transfer beyond the first 100 GB per month. Two NAT gateways alone cost about $66 a month before any data flows through them.
Is Lightsail cheaper than EC2 for hosting a web app?
For small, predictable workloads it is usually simpler and easier to budget, because Lightsail bundles compute, SSD storage and a data transfer allowance into one monthly price. EC2 and Fargate become the better fit when you need autoscaling, private networking patterns, or deeper integration with the rest of AWS, and their cost depends on how you assemble those pieces.
How do I estimate AWS costs before building?
Draw the architecture first, list every component that bills hourly, per request, per GB stored and per GB moved, then price each one for a low, expected and peak traffic scenario in the AWS Pricing Calculator. Keep the assumptions next to the diagram so the estimate can be reviewed and updated when the design changes.
→ Run a structured design review with the free Architecture Review Checklist Builder
Price the design before you build it
The cheapest AWS bill is the one you saw coming. Sketch the architecture, count the meters, find the fixed floor and decide on purpose whether that second NAT gateway is worth $33 a month to you. Then build.
Architecto lets you go from a plain-English description to a diagram with Architect AI, then turn that diagram into a cost estimate you can actually defend in review.
→ Start free and price your first architecture in minutes
→ See how Cost Estimator turns diagrams into spend visibility