This is How I Created My Cloud Resume.
Tags: cloud, resume, challenge, aws
Published: 2022-12-16 21:40:48

Was it easy? No.

Then why did I do it?
And how the heck did I pull it off?

Well, Let me tell you that story.

To begin, there were 2 main reasons why I wanted to take on this challenge:

1) To expand my skillset to include the use of cloud computing tools, which are becoming more important to understand as they have been consistently growing to be more mainstream.

2) Because I love a challenge. I expected this to challenge me and my ability to learn something almost completely foreign to me. And it did. But I was able to rise up to that challenge, and in doing so, better advance myself and my knowledge-base.

**STEP 1: Master of my Domain.**

As one might expect, buying a domain is where I started this process. To do this, I first chose to use namecheap.com to buy my domain, as it fit my needs best at its price point (especially with a nice Black Friday sale). Ideally, I was looking to use my name as my domain (danielzonni.com), but was unsure if it would be available. To my luck, it was! And with that, the first step was done.

**STEP 2: BUCKETS.**

After registering my domain, I went to my newly-set-up AWS account and created an S3 bucket titled exactly with my domain name "danielzonni.com", in order to host all of my website's important assets (including this blog!). I then enabled static website hosting on the S3 bucket and used a bucket policy to make its contents publicly accessible. Once I did this, for accessibility's sake, I also went and similarly created 2 other S3 buckets titled "www.danielzonni.com" and "resume.danielzonni.com", both of which redirect to the same main danielzonni.com domain (using HTTP protocol, which will later be changed to HTTPS).

**STEP 3: Next Stop? Route 53.**

Moving forward, I then set up a Route 53 hosted zone in order to route DNS traffic to my website using name servers. I used an A record to route traffic to my website's S3 bucket (which would later be changed to use CloudFront). In this process I also went back into namecheap.com and inputted the Route 53 nameservers to use for my website.

**STEP 4: Security!**

Using AWS Certificate Manager, I requested SSL certificates for my website (the main domain [danielzonni.com], the "www." version [www.danielzonni.com], and the "resume." version [resume.danielzonni.com]). With these certificates, my website now became equipped to handle HTTPS requests.

**STEP 5: Amazon Delivery? Not package delivery, you silly goose! Content Delivery!**

Using Amazon's CloudFront, I created distributions for my website, and set it up so that no matter how it is accessed (main domain, or www., or resume.), it will redirect HTTP traffic to HTTPS, in order to be more secure. Once I did this, I went back to my "www." And "resume." S3 buckets and changed their static website hosting to use HTTPS, rather than HTTP. As briefly mentioned in step 3, I also went back into Route 53 and changed my hosted zone's A records to route traffic to my newly created CloudFront distributions.

**STEP 6: Hey! I see you looking at my website, wise guy.**

To create a working visitor counter for my website, I first used DynamoDB to create a table that stores visitor information. I then used API Gateway and Lambda to create a visitor-counting lambda function. In my lambda function, I then imported the boto3 python library in order to connect the function to my newly-created DynamoDB table. Next, I created a JavaScript code to call the visitor counter API. Then finally, I just had to update my index.html file to call the visitor counter JavaScript function. At this point, I officially had a working website with a working visitor counter. All I had left to do was input my resume and make it look pretty.

**STEP 7: Add Sparkles.**

Let's be honest, I could simply put my resume in a basic html document and it would show up on my website. But who really wants to see that? I'll tell you who….. Nobody. Except for maybe a few geeks (no offense to the geeks). So, as somebody who wants to make an appealing resume, and somebody who knows how to use google.com, I looked for an html resume template that used CSS, in order to make my job easier. Once I found a template that I liked, I downloaded a corresponding style.css file and uploaded it into a folder in my domain's S3 bucket for use in my website. I then incorporated the template into my index.html file's code, making sure to also implement my visitor counter in the process. While I could have just filled it out and called it a day, I didn't particularly think that the resume sections and details provided in the template fit my needs perfectly, so I did a bit of digging to see how everything was working and I changed up some sections pretty significantly. Google definitely helped in this process. For example, when I first got the template, it didn't list employment dates, but I wanted to include them in a very specific way (right aligned, next to company titles, with bold grey text, and a slightly smaller font), and while I found it challenging, through googling and trial & error, I figured it out.

**CONCLUSION:**

This blog post concludes the creation of my website and my completion of the cloud resume challenge.

Overall, I am very glad that I took on this challenge, as I learned a ton throughout, and am now able to understand what I did, not only on a theoretical level, but also in practice.

And just like that, the cloud resume challenge is now completed.

Here's to the next challenge!

– Daniel Zonni