Skip to main content

Command Palette

Search for a command to run...

Building My Cloud Resume

My journey and lessons learned

Published
4 min read
Building My Cloud Resume

Working toward AWS certifications has made me very hungry to build something "real". The study guides, classes, and labs are all great for teaching concepts but there's nothing quite like building a production environment, however small it may be. I had been hearing about this highly recommended online resume-building exercise that not only has you working with the concepts you need to reinforce when working towards cloud certification, but it does so in a way that directly benefits you and your brand. I was eager to start so I gathered resources and set off.

The Basics

I have been studying AWS, have one certification under my belt, and am working toward more advanced certifications so, obviously, this build is all in AWS. I started with the domain. Like a lot of us, I wondered if my name was taken as a domain. I was able to secure celsoaraujo.net on Route53 which I think is great.

After that, my thoughts turned to the meat of the site itself. Web design is a weak point of mine so I found a resume site template and copied that to use as a bare-bones framework for what I needed. I would, as it turns out, spend a much larger amount of time tweaking the design of the HTML much more than I initially thought I would.

Hosting Headaches

Instead of jumping right into hosting my site with HTTPS on CloudFront I instead deployed the site through static hosting on S3 to see how it works. This turned out to be pretty straightforward and after not too long I had a basic and not personalized site up and running, accessible from anywhere and serverless.

Troubles came quickly, however, when I tried to switch from static S3 HTTP hosting to CloudFront HTTPS hosting. Caused by a combination of S3 bucket policy and CloudFront distribution configuration misalignments, my site was no longer showing itself to the world. This provided a great opportunity for me to really dive into CloudFront and S3 and get to know things that I didn't know I needed to know, which is the true value of "real-world experience". After some configuration cleaning, I was able to get back up and running, now with HTTPS keeping me safe.

Automating Feels Good

The bare-bones HTML that describes some person that doesn't exist runs great! Time to build the site that I want. As I mentioned before, I spent quite a while tweaking and working the site to what I would call acceptable. In doing so I discovered the value of the CI/CD steps in the challenge. I set up a CodeCommit repository and built a CodePipeline pipeline that would update my code automatically when I wanted to. Initially, I used Lambda with an S3 trigger to invalidate CloudFront when a change was committed, but then I found a way to integrate that into the pipeline to make it even easier and more streamlined. Now I have a site that looks how I want it to, that is hosted on secure, serverless infrastructure, and has code updates automated.

Adding Features

My next challenge was to implement a visitor counter on my site. My background is in infrastructure, so this came to be the biggest hurdle of the project. This led me to a deep dive into APIs, Lambda, and DynamoDB. Working from the ground up, I set up a DynamoDB table with a lonely item to track the visitor count and then built a Lambda function to increment the value of that item and return the result. I then built an API endpoint and set it as the trigger for the Lambda function and built the API result into my site. And boom! I (eventually) got it to work!

Takeaways

I had a lot of fun with this project. I always love learning new things and deep diving into this project was exciting from beginning to end. Going through each process has afforded me some perspective on the things I need to explore more often going forward.

Stepping back and looking at a project like this after it is done really makes you feel good. Not only was it challenging, fun, and informative, but I now have a living, breathing site to care for and keep me on my toes going forward. Check it out: celsoaraujo.net