I came across the challenge while watching this video on going from zero to cloud engineer in 6 months. Going through the challenge and seeing the steps, I decided to go for it and get my hands dirty with new tools and technologies. The very first step of the challenge was getting the AWS CCP certification and luckily for me, I obtained it just two months prior.
Setting up the Frontend
This part of the challenge was fairly easy. I replicated my resume in HTML and styled it as I didn’t want to use a template. Using the AWS SAM CLI, I provisioned an S3 bucket and uploaded my files with the sync command. Once the site was hosted, I purchased a domain name (morolakeanifowose.com) in Route53. After purchasing my domain name, I requested a certificate using the AWS Certificate Manager. I then set up a CloudFront distribution, making my S3 bucket the origin, creating an alternate domain name, and attaching the previously created SSL certificate.
Setting up the Backend
Since I was using AWS SAM, my Lambda functions and APIs were created for me. I set up CORS and played around with my Lambda function, initially returning a static value when the API is called. From my YAML template, I created a DynamoDB table. Working with DynamoDB was a little difficult for me because I had never worked with with a NoSQL database prior to the challenge. I then split my Lambda function into two, one for inserting data into my DynamoDB table and the other for returning that data using the SDK for Python (Boto3).
Connecting the two
The CI/CD part involved setting up Github actions such that when my Python tests pass, the SAM application should get packaged and deployed to AWS, and when new website code is pushed, the S3 bucket automatically gets updated.
I really loved the challenge as I got to work with tools such as DynamoDB, AWS SAM, Github Actions which I had never used before. There were parts I struggled with, but YouTube came to my rescue as usual. Here is the finished product. Feel free to reach out to me on LinkedIn or via email.