"Just use AWS" isn't a strategy. The right infrastructure decision depends on your team size, traffic, and how much operational overhead you can afford — and it isn't always AWS on day one.
Choosing cloud infrastructure for a startup is a cost and complexity trade-off, not a technology preference. Here's the decision framework I use with early-stage teams.
For most pre-product-market-fit startups, a single well-configured VPS environment (Hetzner, DigitalOcean, or a small AWS EC2 instance) running Docker Compose is enough:
A $20/month VPS that's actually monitored and backed up beats an elaborate AWS architecture nobody has time to operate properly at 2 AM.
Regardless of VPS or AWS, a CI/CD pipeline should exist from the first production deploy — GitHub Actions running tests, building a Docker image, and deploying on merge to main. Manual deploys are the single biggest source of "it worked on my machine" production incidents.
on:
push:
branches: [main]
jobs:
deploy:
steps:
- run: npm ci && npm test
- run: docker build -t app:${{ github.sha }} .
- run: ./deploy.sh
Right-sized infrastructure is a competitive advantage for a startup — it means engineering time goes into the product, not into managing complexity you don't need yet. I help teams choose and build the infrastructure that matches where they actually are, with a clear path to what's next.
I'm Sandaruwan Jayasundara — Senior Software Engineer | Cloud & DevOps. See DevOps for full stack developers or get in touch about your infrastructure.