AWS Cost Optimization: How I Keep a Production Platform Under $50/Month
The Nexural ecosystem has 185 database tables, 69 API endpoints, real-time market data, AI-powered features, and a live quality dashboard. My AWS bill is under $50/month.
Here's how.
The Architecture That Saves Money
Principle: use managed services at their free/cheap tiers instead of running your own infrastructure.
| Service | What It Does | Monthly Cost |
|---|---|---|
| Vercel (Hobby → Pro) | Next.js hosting, edge functions | $0-20 |
| Supabase (Free → Pro) | PostgreSQL, Auth, Real-time | $0-25 |
| AWS S3 | Telemetry data, artifacts | $0.02 |
| AWS Lambda | API proxy, telemetry ingestion | $0 (free tier) |
| AWS API Gateway | Lambda HTTP endpoint | $0 (free tier) |
| AWS CloudFront | CDN + WAF | $0 (free tier) |
| GitHub Actions | CI/CD, scheduled jobs | $0 (free for public repos) |
Total: ~$25-45/month for a production platform.
The Tricks
1. Supabase Instead of RDS
A Supabase Pro instance is $25/month and includes:
- PostgreSQL 15 with 8GB storage
- Row-level security
- Real-time subscriptions
- Built-in authentication
- Auto-backups
An equivalent RDS instance (db.t3.micro) is $15/month but you need to manage backups, auth, and real-time yourself. Add those services and you're at $60+.
2. Lambda for Spiky Workloads
The telemetry ingestion API handles 0 requests most of the time, then bursts during CI runs. Lambda is perfect: $0 when idle, pennies during bursts.
Request pricing: $0.20 per 1M requests
Duration pricing: $0.0000166667 per GB-second
My usage: ~50K requests/month = $0.01
3. S3 Intelligent-Tiering
Telemetry data is hot for 7 days, then cold. S3 Intelligent-Tiering automatically moves objects to cheaper storage:
Frequent Access: $0.023/GB
Infrequent Access: $0.0125/GB (auto after 30 days)
Archive: $0.004/GB (auto after 90 days)
My storage: ~500MB = $0.01/month
4. CloudFront Free Tier
1TB of data transfer and 10M requests per month are free. My portfolio site uses maybe 5GB/month. I get CDN + DDoS protection for $0.
5. GitHub Actions for Scheduled Jobs
Instead of running a cron server, I use GitHub Actions scheduled workflows:
on:
schedule:
- cron: '0 */6 * * *' # Every 6 hours
Free for public repos. Handles telemetry collection, quality snapshots, and health checks.
What I'd Pay For (and When)
| Trigger | Action | New Cost |
|---|---|---|
| 1,000+ DAU | Upgrade Supabase to Team | +$75/month |
| Need Redis | Add Upstash Redis | +$10/month |
| Need search | Add Typesense Cloud | +$25/month |
| Need monitoring | Add Better Stack | +$24/month |
Scale costs should scale with revenue. If I have 1,000 DAU, I should have revenue to cover $200/month in infrastructure.
The Anti-Pattern: Running K8s for a Small Platform
I've seen solo developers spend $200+/month on a managed Kubernetes cluster for an app that serves 100 users. EKS costs $73/month just for the control plane, before any nodes.
Unless you need container orchestration across 10+ services, you don't need Kubernetes. Vercel + Supabase + targeted Lambda functions handle 99% of solo developer needs at a fraction of the cost.
The Lesson
Cloud cost optimization isn't about finding cheaper instances. It's about choosing the right architecture — one where you pay per-use at the bottom of the cost curve, not a flat rate for idle capacity.