I'm a full-stack web developer with about three years of experience, and I'm trying to move into DevOps. A friend is building a mobile app with a Node.js server and SQL database, and I'm handling the infrastructure.
I'd like to use this project to practice Docker, CI/CD with GitHub Actions, managed databases, object storage, load balancing, testing environments, monitoring, and related tools. AWS was my first choice because it's widely used and might look good on a résumé, but the app probably won't make money or receive much traffic. I'm concerned that AWS could become unnecessarily expensive or complicated.
Should I use AWS and keep the architecture simple, choose another major cloud provider with a better free tier, or use a low-cost platform or VPS? I'd like to learn useful, transferable DevOps skills without creating an unexpected bill.
5 Answers
AWS, Google Cloud, and Azure all have free tiers or introductory credits, so any of them can work. The important thing is to focus on transferable concepts: containerization, CI/CD, infrastructure as code, monitoring, networking, and database operations. You can use a managed database and storage service while keeping everything else simple. Set up billing alerts immediately, especially if you use a database service, and shut down anything you aren’t actively using.
For a small side project, a simpler platform such as Railway, Fly.io, or a small VPS may be a better starting point. You can still learn Docker, deployment pipelines, environment management, rollbacks, and monitoring without paying for a large collection of cloud services. The résumé value comes more from being able to explain your design decisions and operational process than from saying you clicked around in a particular provider’s console.
If you specifically want AWS experience, using its free tier is reasonable. A small virtual machine, basic object storage, and a small managed database can cover much of what you described, but read the free-tier limits carefully. Database instances and forgotten storage are common sources of surprise charges, so create a budget or billing alarm before deploying anything.
A useful learning path is to build the app twice. First, deploy it on a predictable-cost VPS using Docker Compose, a reverse proxy, Ansible, and a CI/CD pipeline. Then recreate parts of it with managed services such as a hosted database, object storage, and a load balancer. Comparing the two approaches will teach you why managed services exist, what they simplify, and what they cost.
Don’t overcomplicate the architecture just to include more services. Start with one environment and a straightforward deployment, then add testing, staging, monitoring, backups, and infrastructure as code as there’s a reason for each. The fundamentals transfer between AWS, Google Cloud, Azure, and smaller providers, so choose the platform that lets you experiment safely and consistently.

Exactly. A project story like “I built CI/CD, added monitoring, handled rollbacks, and documented the tradeoffs” is much stronger than simply listing a cloud provider.