Starting the journey
As an engineer I always curious as to how things work, why they work that way and how I can break them down to figure out the pressure points disguised within them. Taking it down the physics is what I like to say when someone comes to me with a problem and can’t seem to see a solution in front of them. Over the past couple of years I have been running workloads in AWS, mostly for for spinning up workloads instantly that I can tear down, route 53 for DNS and elasticache/dynamoDB for my NoSQL database. While these are great offerings, especially on the free tier, once you begin to experiment and understand that what happens inside AWS is oddly similar to what most people and customers are doing today inside their four walls with a couple differences.
Amazon offers several free, yes I mean free, training guides and material to help get you started. Besides the free tier that is offered (750 hours per month of resources), whitepapers and of course YouTube are great resources. Creating an account is super fast and simple and once logged in, you can experiment with all of the AWS resources that fall under the “free tier.” There are a couple solutions such as CloudWatch that require you to pay per month on resources used but setting up solutions like a VPC, EC2 instances, Route53 and DynamoDB are included in the free tier.
Getting your hands dirty
Once logged in it’s really up to you to decide on what you want to work on first. When I first began using AWS, I started spinning up EC2 instances so I would have playground for deploying a spring application build on the Amazon AMI (Amazon Machine Image), which is under the umbrella free tier. I also setup Route53 to host all my DNS entries for the website you are currently viewing. GoDaddy provides hosting for your DNS but of course you are charged for that. Why not use Route53 especially when it’s free?
I have to admit that setting up a VPC was one of the more challenging aspects of the AWS experience. Yes, it is a lot like setting up route tables, DNS entries, subnets and firewall rules in an on-prem, environment but the way it is laid out leaves something to be desired. I searched for a tool that could automate this deployment and unless I want to use CodeDeploy, the idea of uploading an excel document with all your IPs, DNS names, subnets, etc, isn’t readily available.
Tying it all together
While there are many great features of AWS, the greatest feature is the ability to start small, from anywhere, and provision what you need when you need it; nothing more and nothing less. Simply creating an account and logging in is probably the most arguous part of the whole process. The only word of caution I would give is be careful as to what region you are provisioning resources into and make sure at all times you are using the free tier. I have provisioned resources in different regions while not looking at the top right corner of the screen and been unpleasantly surprised at my bill at the end of the month.
What is your favorite feature or solution in AWS?