Into the Cloud...
Tags: aws, cloud, blog
Published: 2023-10-02 12:25:57

Welcome to this series of blog posts where I will be documenting my journey into the cloud, in particular the completion of the Cloud Resume Challenge!


---

## My background

I have over 10 years of broad data and analytical experience,   with a core background in **Trust and Safety** and **Product Analytics** roles at **letgo/OLX**. I feel comfortable using IT, I have solid experience using **SQL**, **Python** and other analytics and automation tools to solve complex business problem. 

I have loved building and fixing things since I was a child, always taking things apart and learning how they work before putting them back together. 

In 2018 I began using SQL to help detect fraudulent account and analyse rule performance from 'big data' Redshift databases. In 2019 I began learning Python and soon developed automation workflows saving hours of manual work. I then became interested in **machine learning** and created a text detection model using PyTorch that could detect with good accuracy prohibited contact details within product listing photos.

Towards the end of 2023 I decided I wanted to change career direction and focus more on cloud computing especially involving AWS. 


---

## My new direction
I decided to focus on AWS as it is used by both Letgo and OLX  as their cloud computing platform, also AWS has the majority global market share so it was the logical platform to begin focussing on.

After some months of studying I achieved the intermediate level [**AWS Certified Developer – Associate**](https://www.credly.com/badges/5d851d0c-792e-4376-86c9-591e1b239147) certification in September 2023. With this in hand I immediately started using AWS to build personal projects, this is where the fun begins.


![cert](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fsgsxvh1k8z27vi3uny7.png)


---

## The Cloud Resume Challenge
To gain some solid experience using AWS I decided to do the [**The Cloud Resume Challenge**](https://cloudresumechallenge.dev/docs/the-challenge/aws/), developed by Forrest Brazeal who is an 'AWS Serverless Hero' who previously worked as 'Head of Developer Media' at Google Cloud. The resume challenge he devised tells you what you need to do, but not how to do it, therefore the challenger needs to learn and figure out how to accomplish each of the steps with very little guidance except for the expected output. 

![book cover](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jqkllhgyukqsxercu1th.png)


Below is a summary of the **Cloud Resume Challenge**:

- **Building the frontend:**
   - Create a simple html page and host it on S3
   - Purchase a domain name 
   - Use AWS CloudFront to only allow https connections
   - Configure all certificates etc

- **Configure the backend (visitor counter):**
   - Build the **website visitor counter** API using DynamoDB, Lambda (Python) and API Gateway
   - All config and logic will be achieved using these services, nothing templated.

- **Frontend / backend integration:**
   - Connecting everything together

- **Infrastructure as Code:**
   - Configure the AWS services for this project as IaC

- **Automation / CI**
   - Introducing testing and automation 

---

To briefly skip to the end of the project, the following diagram shows an overview of what I have built:


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dxxoqr1srg7pfnk4fyiu.png)

---

The following series of blog posts documents the actions I took to successfully complete the Cloud Resume Challenge, partly for my benefit (so I can recall the steps at a later date) and partly to share with anyone who may be interested.

A lot of reading, learning, tutorials/courses, testing and trial and error has happened from my side before this documentation could been written. My main aim here was to learn as much as possible through hands-on experience. So although I get straight into how I did it, in the majority of cases there was a fairly steep, yet overall enjoyable learning curve. 

Parts 1-3 involved clicking around in the AWS console, whereas part 4 involved configuring the entire backend as IaC using Terraform.  

So onto the next post: Part 1: Building the frontend