Design Narrative: Deploy Resume Website in AWS
Tags: journey, cloud, resume, aws
Published: 2023-01-22 17:43:04

## Getting Started

On First week of January I got my cloud practitioner certification. With the new found knowledge I wanted to use it on a project and gain more experience with some hands on experience.

## Frontend
Coding the frontend of the resume site using react was a good refresher of my skills in react. This helped in bringing me back up to speed with the language. Once I was got the hang of react. I was persistent in custom components. This was because in future, updating the website will be much easier if everything is separated as components. And as we all know resume's would have constant changes to it as we learn more and add them to it. In the process I also wanted this project to be perfect before committing it to main branch so I wanted to incorporate a unit testing which helped be in validating the information where rendering properly.

Once I completed building the website I wanted have a git repository so that I can revert back to previous version if I did something wrong. As I had some experience working with GitHub I choose to create a remote repository in that. During this project I learnt the distinction between GitHub and git though I have used them for my previous projects I was not clear with it I would just do as per the instructions but if I got any error I was not able to fix them. Now I did learn the difference and also implemented some good practices like create a `feature branch` to add any changes and not directly to the main branch.

Once I felt confident with my workflow, I wanted to integrate CI/CD for hosting the website in S3. Since my site's version control was being handled by Git and GitHub, it was a matter of finding a GitHub Actions workflow that uploaded my code to S3 and also invalidated the CloudFront distribution every time I pushed an update so that the latest copy of my site would always be visible. This worked seamlessly once I create a the architecture in the AWS cloud.

##Cloud Architecture
 I have posted a detailed step-by-step guide for the architecture to host the react file in [here](https://dev.to/rohithprabakar/deploy-a-reactjs-application-to-aws-s3-with-route53-and-cloud-front-using-github-action-for-ci-cd-6e).

AWS cloud was new to me so, at first I saw many videos explaining the architecture but everyone had different way of approach so I thought to stick to any approach where I would have the files in S3 and leave the CloudFront for distribution and certificate manager for security in transit and Route53 for DNS. This approach seemed straight forward and simple. When deploying this I wanted to get some experience with deploying a service with code so tried using AWS CLI. But in my future projects I want to us terraform and cloudformation to deploying services. 

## Warping Up
I finally reached a point where I'm ready to tidy up the content of my resume, as part of a bigger push to prepare myself for the impending job search. It was incredibly instructive and helped set my path forward as I continue learning and progressing towards my career.
[Click here](https://rohithprabakarresume.com/) to see my resume
[GitHub repository](https://github.com/RohithPrabakar/Resume-Website)