I recently passed my AWS Solutions Architect Associate exam but didn't really have any practical experience, so I wanted to gain some insight by taking up on a personal project. After doing some searching, I came across this Resume Project, and in this post I wanted to share my experience working on this project and some key takeaways.
In order to start the project you need to be AWS certified, which I am and noted on my resume.
The Resume needed to be written in HTML and styled in CSS. I am by no means a web designer so I went ahead and used a template that I found here and made some slight modifications to tailor to my liking.
Once the resume was built, it was time deploy it online using AWS S3 static website. So I created a bucket, added permissions, enabled static web-hosting, and uploaded my files and turned on static website hosting.
Next, I needed to point a custom DNS domain name to CloudFront Distribution. So I created my CloudFront distribution, attached my certificate from Certificate Manager, and purchased a domain on Google Domain for $12 and added my domain name to CloudFront.
Back End - this is where things got a bit tricky...
For the back end portion of this project, I needed to create a database, an API, and lambda functions written in Python to store and retrieve the results of my website visitor counter data. But instead of creating everything manually by clicking through the AWS Console, I needed to use Infrastructure as Code AKA AWS Serverless Application Model (SAM).
Basically, SAM allows you to create serverless applications with minimal code using a template - AWS definition: "The AWS Serverless Application Model (AWS SAM) is an open-source framework that enables you to build serverless applications on AWS. It provides you with a template specification to define your serverless application, and a command line interface (CLI) tool."
After banging my head for a few days trying to figure out how to deploy my serverless applications on AWS using SAM, I came across this godsend of an article by Chris Nagy, that breaks down SAM in a very simplistic and easily digestible way! After playing around with SAM for a while, I was able to successfully deploy my DynamoDB, API, and Lambda functions all with the correct permissions and policies to allow communication with each other.
My Resume App was finally coming all together! But before I could sign-off on it there were a few things remaining.
I had to create a CI/CD for my project by setting up GitHub Actions so that every time I would push updates to my GitHub, it'll automatically push the changes to my AWS environment. This part wasn't terribly difficult and I was able to look up some instructions online and successfully implement CI/CD for my project!
With that completed, I have met all the technical requirements for the project which can be viewed here!
What I Learned
This experience has been extremely challenging but also very rewarding. I spent countless hours going down the google rabbit-hole, furiously reading through articles, digging into stack overflow, and reaching out to the developer community. This project has really allowed me to grasp the fundamental concepts of AWS/cloud as well as familiarize myself with some of the most commonly used services in AWS today.
As I continue my journey in the Cloud, my next step is to work on more projects that will elevate my skills! I would like to work on a project that requires database migration from on-prem to cloud as I have found networking (VPC) to be an interesting topic. With that being said, thanks for taking the time to read my blog and feel free to check out my website!
P.S. Feel free to reach out to me if anyone reading this would be interested to work on a project or discuss anything Cloud related!