This was one of the best project ideas for learning a new technology like AWS cloud. It takes you through not just the basic services offered on the AWS platform but what it takes to deliver a static website with a few services. And, best of all, you get an actually useful and expandable, original website that hosts your resume and super-charges your job search!
All this for a very low price.
So, let's dig in to what I went through these last couple of weeks to slide in at the last minute:
The first few steps involved turning HTML and CSS into a personalized resume. It had been a while since I written those. The final product is basic and no one will mistake me for a web designer but the point is to make something simple and functional to our means.
The next few steps introduce us to the AWS and how to use S3 buckets and CloudFront. It was fascinating to learn you can just make a static website from an S3 bucket. Changing the permissions was easy and all you need to do is drag the HTML and CSS files onto the bucket.
The next step called for HTTPS and helpfully the instructions suggested CloudFront as the go to service. It's worth this step just to learn about Origins and CNAMEs and how that works with DNS. Speaking of DNS:
Of course, it is easier to use AWS Route 53 as the registrar for my domain. After quick stop at AWS Certificate Manager, a few changes to CloudFront and S3, OMG I AM ON THE WEB!
Now things get tricky. The challenge calls for a Visitor Count app that measures page loads at the bottom of the page. This was the hardest part of the challenge and it took me considerable time and patience.
After some grinding I did get a Lambda python function up and running:
Learning Boto3 library was a big help and I can't wait to get back into it as a developer position. But we also need this to be a callable API, and for that we need to add a AWS API Gateway:
This was probably the most frustrating part of the challenge. You can cURL 200 response from the api pretty much from anywhere. But I learned the hard way that Headers for the Allow options can be tricky. With some help from the Discord I was able to pull it out in the end.(Big Thanks to @chris N)
After this we just need to implement the CI/CD with a CodePipeline.
Other things I learned on the way: AWS and SAM(Serverless Application Model) are pretty slick way to make shipping quicker. Working with the Cloud in a practical project with a goal as cool as this was a great way to end the Summer.
I want to thank everyone at the CloudResumeChallenge Discord, https://summerofshipping.com/, and my patient family for helping me do this amazing project.