Cloud Resume Challenge:
First Attempt & Learning Experience
Live site: jericho-crc-site.xyz
GitHub repository: https://github.com/jericholeal/jl-cloud-resume-challenge
This was the first time I ever touched AWS cloud services and resources.
I dove in with minimal prior knowledge, as the Cloud Resume Challenge originally intended.
It's how I learn best -- jump in, get confused, adapt, and figure it out.
What I did and learned in attempt 1:
- Primarily used the AWS Console and learned how things worked
- Re-discovered HTML, introduced to CSS and JavaScript
- Hosted zones, DNSSEC
- Encryption at rest and in transit
- Serverless (S3, Lambda, DynamoDB)
- CDNs, OAC, and CDN caching
- APIs and HTTP methods
- JSON
- How front and backends work together
- How cloud resources connect, communicate, and fit together as a whole
- GitHub Actions, CI/CD
- First time using Git and GitHub for version control
- Terraform (Infrastructure as Code), as a challenge step was to convert manually-created resources into .tf configurations
Other notes:
- The resume on my first Cloud Resume Challenge site is obviously very true, accurate, and realistic.
(It was a placeholder while doing all the backend work and I decided to leave it like that when I started my second attempt.)
- I actually didn't try to deploy the site using Terraform as a later step prescribed.
It was at this point that I decided to redo the entire thing (this site), but starting with Terraform from the get-go.
What changed between my first and second attempts?
- Primarily used AWS CLI rather than the console using SSO login
- Used Terraform from the start rather than at the end
- Took a modular approach
- Rehashed and improved on a lot of the configurations I made during Take 1
- Bootstrapped some key resources (e.g. Route53 hosted zone) and imported them before applying the Terraform configuration
- Redesigned the frontend and added pages
- Used OIDC roles for GitHub Actions workflows instead of stored credentials as repository secrets
What did I learn the second time around?
- Terraform modular architecture (separate modules, variables & outputs, locals, tfvars, main.tf)
- Got more comfortable with HCL and writing Terraform configurations
- Importing existing resources with Terraform
- I tried terraform apply without importing my existing Route53 zone that I manually provisioned and it caused issues
(ACM certificate validation; Route53 creating new hosted zones and trying to validate with the wrong zone and NSs)
- Resource dependencies
- Ran into a lot of circular dependency problems (specifically with Route53, CloudFront, and S3)
- OIDC roles
- More about least-privilege access
- That anyone can learn anything; I can do what I set my mind to
Back to Cloud Resume Challenge page