I finally Deployed on AWS
Source: Dev.to
First Attempt and Billing Issues
My first experience with AWS was in 2023 when the free tier offered 12 months of usage. I set up a free server to host a hobby project, but soon after I was charged. I had assumed I was still within the free tier, so I contacted AWS support. They told me that I was using resources outside the free tier, though I didn’t understand which ones.
Support promised to stop the charges, but I was billed again the following month. After several more rounds of complaints, I discovered that an obscure service was still running and incurring costs. This back‑and‑forth continued for about six months until I finally closed the account. The experience left me wary of AWS, and I turned to platforms like Heroku and Render for future hobby apps.
Returning to AWS
Despite my earlier frustrations, I noticed that many job descriptions list AWS experience as a requirement. Determined to give it another try, I searched for tutorials. Most were long, certification‑focused videos, which didn’t suit my goal of just getting a simple deployment up and running.
I eventually found a concise three‑hour tutorial that gave me enough confidence to dive back in.
Elastic Beanstalk Experience
During the tutorial I learned about AWS Elastic Beanstalk, which promised a “push‑your‑code‑and‑let‑AWS‑handle‑everything” experience. The promotional video was impressive, showing smooth animations and the promise of easy deployments.
In practice, however, I ran into repeated errors. Accessing logs required manual requests through the console, which were slow and often incomplete. Eventually I could not view logs at all, even after trying the EB CLI, restarting the environment, and terminating the underlying EC2 instance. After three days of frustration, I abandoned Elastic Beanstalk entirely.
Back to Basics with EC2
I reverted to a more hands‑on approach by launching an EC2 instance, setting up a systemd service, and configuring Nginx. Within half a day I had a functional environment:
- Backend: AI chatbot running on EC2
- Frontend: Hosted for free on Vercel (you can try it yourself)
Conclusion
The moral of the story isn’t a single lesson, but rather a collection of technical takeaways:
- Free‑tier limits can be easy to exceed without clear visibility.
- Managed services like Elastic Beanstalk may sound simple but can hide complexity.
- Sometimes the most reliable solution is to roll your own infrastructure with familiar tools.
Going back to the basics proved to be the most effective path for my hobby project.