A client asked me to do a project with him using AWS and I thought, I've done projects in Google Cloud Platform (GCP), and I've played with Microsoft Azure including Microsoft's Cognitive Services. How hard can it be? Especially when I've deployed a Python application on Amazon's Elastic Beanstalk which was deployed within a matter of minutes! All automated. Nice! Piece of cake! Little did I know that I've only scratched the surface.
For one, with such confidence, I thought, I've used Linux servers before, once I get into a Linux environment, I'll just do the things I need to do, I can just whisk up my solution (get my python packages, test them, get the database running, test the database connection), get it running, and voila! Ready and done for the first phase!
Little did I know that because of that tiny little confidence of if I can do it in a matter of minutes, why read the documentation, that turned into time wasted for days! For one, since this is my side hustle, my thinking goes like this, "I don't have time to read the documentation! I just need to get this running. I know my Python application is running as I know it should, once I get it in AWS, then it should run as I want it to be.
But when I get AWS, I was lured to the Beanstalk's Serverless deployment that took minutes but apparently, that is the only thing that took only in matter of minutes! Next, how do I test my application? How do I get my extra packages which are not standard python? How do I even connect to the database? What's this with the IAM authentication? Why do I have to compressed my files in a zip file to get it deployed? What, I have to delete my original keys for this? The list goes on and on. All the while, I just needed to get my application going, get some data from the Internet, process it, and that's that. It became a tour de France all of sudden.
Today, I finally got myself calm enough to actually read the documentation and apparently, it's not that hard. It is, however, kind of complicated since you get so many options, and each options have their own steps to get them to work.
My choice for now, is just to create a database that is accessible from Amazon's Cloud9 (apparently, this is the console that you use to get the familiar bash environment). And now that I'm in my environment, I got started to do what I know I can do quickly. But that's new technology for you. There's always something that you just need to learn first before being productive. And this took me, for God's sake, one freakin' week!