DEV Community

Leo Lam
Leo Lam

Posted on

Overcoming the Cloud Resume Challenge: A Journey of Trials and Triumphs

Introduction

Taking on the Cloud Resume Challenge was both an exciting and challenging journey. From setting up cloud infrastructure to configuring CI/CD pipelines, every step had its unique hurdles. Here’s a detailed account of the challenges faced, how they were tackled, and the triumphs achieved along the way.

Certification Milestone

Starting with the AWS Cloud Practitioner certification was a steep learning curve. Transitioning from a sales background to cloud technology was no small feat. However, with structured study plans and interactive learning tools, I managed to grasp the fundamentals and pass the certification. Now, with my Solutions Architect Associate certification, things are much clearer, providing a solid foundation for tackling the Cloud Resume Challenge.

Crafting the Resume with HTML and CSS

Creating the resume in HTML and CSS was the initial step. Though I had basic knowledge, making the resume visually appealing was challenging. Using AI tools in VS Code, such as Cody AI and Aidar, provided real-time feedback, helping to refine the layout and styling. Additionally, WebSim was instrumental in testing and iterating the front-end design efficiently.

Hosting on Amazon S3 and Enabling HTTPS

Hosting the resume on Amazon S3 was straightforward, but enabling HTTPS using CloudFront and Route 53 presented significant challenges. Initially, using the S3 website endpoint resulted in 403 Forbidden errors. After switching to using the S3 bucket endpoint, I could set up Origin Access Identities (OAI) and secure access correctly. After tinkering for a long time, I finally managed to fix the issue.

Implementing the Visitor Counter

Adding a visitor counter involved integrating JavaScript, AWS Lambda, DynamoDB, and API Gateway. This was a complex task that required setting up several services and ensuring they communicated correctly. WebSim was again crucial for testing the interactions and ensuring functionality.

Building the CI/CD Pipeline

The CI/CD pipeline setup using GitHub Actions was fraught with issues, from authentication problems to YAML syntax errors. Initially, the workflows failed due to deprecated Node.js versions and missing dependencies. Through persistent troubleshooting and leveraging detailed documentation, I resolved these issues, ensuring the pipelines worked seamlessly. This automated the deployment process, making updates smoother and more reliable.

Overcoming Browser Compatibility Issues

One persistent issue was ensuring the website worked across all browsers, especially Chrome. Despite perfect functionality in Firefox and Edge, Chrome posed numerous problems, primarily due to CORS configurations and SSL settings. Detailed troubleshooting helped identify and fix these issues, ensuring cross-browser compatibility.

Detailed Challenges and Solutions

403 Forbidden Errors: Initially, setting up the S3 bucket policies and CloudFront distributions resulted in 403 errors. By adjusting the bucket policies and using Origin Access Identities (OAI), we secured access and resolved these errors.

Initially, we used the S3 website endpoint, which caused several 403 Forbidden errors.
After researching, we switched to using the S3 bucket endpoint, which provided more granular control over the access settings.
By setting up an Origin Access Identity (OAI), we restricted access to only CloudFront, thus resolving the access issues.
Node.js Version Conflicts: The GitHub Actions workflows failed due to deprecated Node.js versions. Updating the actions to use the latest versions resolved the issues, ensuring the CI/CD pipelines functioned correctly.

CORS Configuration: Ensuring the website loaded correctly involved tweaking CORS settings multiple times. Detailed troubleshooting steps provided clear guidance to adjust these settings, ensuring smooth access across different browsers.

CloudFront Distribution Setup: Configuring the CloudFront distribution and linking it to the S3 bucket was another challenge. By following detailed documentation, I ensured the distribution was set up correctly, providing secure access via HTTPS.

CloudFormation Issues: Using CloudFormation to automate infrastructure setup was particularly troublesome. Numerous syntax errors and logical issues needed to be resolved. Each change required redeploying the stack, which was time-consuming. Persistence paid off as the final configuration worked flawlessly.

Leveraging Tools and Technologies

Throughout this journey, various tools and platforms played pivotal roles. Cody AI and Aidar in VS Code provided additional coding support, making the process more efficient. WebSim was essential for testing and iterating front-end designs, ensuring functionality before deploying. These tools collectively reduced development time and increased efficiency.

Conclusion

Completing the Cloud Resume Challenge was a testament to the power of combining human effort with advanced tools and platforms. Each challenge presented an opportunity to learn and adapt, ultimately leading to a successful project. This experience has not only enhanced my cloud engineering skills but also highlighted the immense potential of using the right tools in modern software development.

Top comments (0)