How much does it cost to run an e-commerce store on AWS?
An e-commerce store doing 500,000 monthly visits and 25,000 orders costs about 2,190 dollars a month on AWS, which is 9 cents of infrastructure per order. Here is the full breakdown, including why the CDN is a third of the bill.
Quick answer
An e-commerce store handling 500,000 monthly visits, 2.5 million page views, and 25,000 orders with a 50,000 SKU catalog costs roughly 2,190 dollars a month on AWS, which is about 0.088 dollars of infrastructure per order. The CDN is the single largest line at 741 dollars (34 percent of the bill) because product imagery dominates egress. Compute is 280 dollars, the Multi-AZ database 307 dollars, and the cache and search tiers together 345 dollars. For context, payment processing on 25,000 orders at a 60 dollar average basket costs about 51,000 dollars, so infrastructure is around 4 percent of payment fees alone.
E-commerce is an unusually good workload to cost because the output is countable. You are not estimating "requests"; you are estimating orders, and every infrastructure line can be divided by them. That makes it easy to see whether hosting is a real cost driver or a rounding error next to payment fees, fulfilment, and ad spend. Spoiler: it is usually a rounding error, but only if the CDN is configured properly.
The workload we are pricing
Assume a store in us-east-1 with 500,000 visits and 2.5 million page views a month, converting at 5 percent for 25,000 orders. The catalog has 50,000 SKUs with roughly 8 images each, about 1.5 TB of source imagery. Traffic is spiky: a Black Friday style peak runs 6x normal for 48 hours. There is a Multi-AZ relational database for orders and inventory, a cache for sessions and carts, a search cluster for product discovery, and asynchronous workers for order events and transactional email.
The monthly breakdown
| Component | Specification | Monthly cost |
|---|---|---|
| Web and app tier | Auto-scaled 2 to 6 x m5.large, 4 average | $280.32 |
| Load balancer | ALB plus about 15 LCU average | $104.03 |
| Database | RDS db.m5.large Multi-AZ plus 500 GB gp3 | $307.16 |
| Cache | 2 x cache.m6g.large for sessions and carts | $220.46 |
| Product search | OpenSearch 2 x t3.medium.search plus 200 GB | $124.81 |
| Image storage | 1.5 TB S3 Standard plus requests | $50.33 |
| CDN | CloudFront 8 TB at 0.085/GB plus 60M requests | $741.32 |
| Image resizing | 3M Lambda invocations at 1.5 GB, 1.2s | $25.00 |
| Order events | SQS and SNS, about 20M messages | $10.00 |
| Transactional email | SES, 150,000 messages at 0.10/1,000 | $15.00 |
| NAT gateways | 2 gateways plus 1 TB processed | $111.78 |
| WAF | Web ACL, 3 rules, 30M requests inspected | $31.00 |
| Logs and metrics | 300 GB ingest plus retention | $159.00 |
| DNS | Route 53 zones and queries | $10.00 |
| Total | $2,190.21 |
The CDN is the bill
At 741 dollars, content delivery is 34 percent of the total, and almost all of it is product imagery. The arithmetic is simple: 2.5 million page views each pulling roughly 3.2 MB of images is 8 TB of egress. That number is enormously sensitive to three decisions that cost nothing to get right.
Serving modern formats (AVIF or WebP rather than JPEG) typically cuts image bytes by 35 to 50 percent at the same visual quality. Generating responsive variants so a phone gets a 400-pixel-wide image rather than a 1600-pixel one cuts another large slice. And setting a long cache TTL with content-hashed filenames pushes the CDN hit ratio from a typical 85 percent to 97 percent, which reduces origin fetches and the object storage request fees behind them. A store that does all three commonly lands at 3.5 TB rather than 8 TB, turning 741 dollars into about 320 dollars.
Cost per order
| Metric | Value |
|---|---|
| Infrastructure per order | $0.088 |
| Infrastructure per visit | $0.0044 |
| Payment fees per order (2.9% + 0.30 on a 60 dollar basket) | $2.04 |
| Infrastructure as share of payment fees | 4.3% |
Nine cents of infrastructure per order is the headline. Against a 60 dollar average basket that is 0.15 percent of revenue. This is the number to bring to a meeting where someone proposes a three-week migration to save hosting money: the entire cloud bill is smaller than the payment processing on a single good day.
Designing for the peak without paying for it
The expensive mistake in e-commerce is sizing steady-state infrastructure for Black Friday. Running six m5.large instances year-round instead of four costs an extra 140 dollars a month, and an over-provisioned database tier costs far more. The alternative is to make the peak elastic: auto-scaling on the app tier with a warm pool, a read replica added for the peak week and removed after, and a CDN configured to absorb traffic that would otherwise hit origin. Two days of 6x traffic on an auto-scaled tier adds roughly 60 dollars, against 140 dollars a month for permanently oversized capacity. The mechanics are covered inauto-scaling cost optimization.
What to do first
Fix images, then look at the cache and search tiers. Two cache.m6g.large nodes at 220 dollars is generous for 25,000 orders a month, and a t4g.medium pair at 93 dollars usually handles the same session load. The search cluster at 125 dollars is reasonable for 50,000 SKUs. Everything else is close to floor cost for an architecture that survives a traffic spike. Price the design from Terraform against theresource catalog before peak season, so the scaling plan and the budget agree.
FAQ
How much does it cost to run an e-commerce store on AWS?
About 2,190 dollars a month for a store doing 500,000 visits, 2.5 million page views, and 25,000 orders with a 50,000 SKU catalog. That includes an auto-scaled app tier, a Multi-AZ database, cache and search clusters, 1.5 TB of image storage, 8 TB of CDN egress, transactional email, WAF, and observability. Per order, infrastructure is about 0.088 dollars.
Why is the CDN the biggest e-commerce cloud cost?
Because product imagery dominates bytes served. At 2.5 million page views pulling roughly 3.2 MB of images each, that is 8 TB of egress a month, which at 0.085 per gigabyte plus request fees is 741 dollars, or 34 percent of the bill. Compute, by comparison, is 280 dollars. Image weight, not request count, is what drives the number.
How do I reduce e-commerce CDN costs?
Serve AVIF or WebP instead of JPEG (35 to 50 percent fewer bytes at equal quality), generate responsive variants so phones get small images rather than desktop-sized ones, and use content-hashed filenames with long cache TTLs to push the CDN hit ratio from roughly 85 percent to 97 percent. Together these commonly take 8 TB of egress down to 3.5 TB, cutting the CDN line from 741 to about 320 dollars.
What is a realistic infrastructure cost per order?
Around 0.088 dollars per order at 25,000 orders a month on the architecture priced here, or 0.15 percent of revenue on a 60 dollar average basket. For comparison, payment processing at 2.9 percent plus 30 cents costs 2.04 dollars per order. Infrastructure is roughly 4 percent of payment fees, which is why hosting optimization rarely deserves priority over conversion work.
How should an e-commerce store handle Black Friday capacity?
Make the peak elastic rather than permanent. Auto-scale the app tier with a warm pool so instances are ready without running year-round, add a database read replica for the peak week and remove it afterwards, and configure the CDN with long TTLs so spike traffic is absorbed at the edge. Two days of 6x traffic on an elastic tier adds about 60 dollars, against 140 dollars a month for permanently oversized compute.
How does C3X help price an e-commerce architecture?
C3X reads your Terraform and prices the whole stack, app instances, load balancer, Multi-AZ database, cache nodes, search cluster, CDN distribution, and NAT gateways, against a live catalog before you apply. That means a peak-season capacity change or a new read replica shows its monthly cost in the pull request, so scaling decisions and budget decisions happen at the same time.
What to do next
Price your store before peak season. C3X reads your Terraform and prices your resources against a live catalog. Start with the quickstart.
Share this post
Try C3X on your own Terraform
Free and open source. No API key required. One command to install, one command to estimate.