Embracing the Cloud: My Journey through the AWS Cloud Project Bootcamp

Warner Bell
9 min readJul 23, 2023

--

Introduction

As a student who completed the AWS Cloud Project Bootcamp, I can confidently say that this 12-week training program has been a sometimes brutal, but transformative experience. From having almost zero coding experience to now feeling confident and knowledable in DevOps, cloud architecting, and coding, the journey has been nothing short of remarkable. Throughout the bootcamp, I gained valuable skills in cloud computing and learned how to design, build, and implement cloud projects effectively. Allow me to take you through my exciting journey and highlight the challenges, learning experiences, and the rewards that came with completing the bootcamp.

During AWS Cloud Project Bootcamp, participants delved into a comprehensive curriculum that covered a wide range of essential skills in cloud computing and software development. From the basics of containerization to the intricacies of serverless architecture, the bootcamp left no stone unturned in equipping students with the tools they needed to succeed in the cloud industry. Participants honed their abilities to containerize frontend and backend web applications using Docker, while also gaining hands-on experience with serverless containers such as AWS Fargate and Amazon ECR. They learned to abstract API calls using GraphQL and AWS AppSync, enabling efficient data exchange between components. The bootcamp also provided in-depth knowledge of data modeling for both NoSQL databases, leveraging Amazon DynamoDB, and SQL databases, utilizing Amazon RDS. Students explored the world of Infrastructure as Code (IaC) with AWS CloudFormation, allowing them to provision and manage cloud resources efficiently. Additionally, they acquired the skills to set up CI/CD pipelines using AWS CodeBuild, CodeDeploy, and CodePipeline for seamless application deployment. Moreover, the curriculum covered critical aspects of cloud security, authentication, and authorization through Amazon Cognito and implemented serverless image processing using AWS Lambda. By the end of the bootcamp, participants had gained invaluable expertise in cloud computing, DevOps, and coding, setting them on a path of confidence and competence in their cloud engineering journey.

Meet Andrew Brown, the Mastermind Behind the AWS Cloud Project Bootcamp

Andrew Brown, a seasoned cloud architect and developer, is the driving force behind the highly acclaimed AWS Cloud Project Bootcamp. With a passion for imparting knowledge and empowering individuals to excel in cloud computing, Andrew co-organized this comprehensive 12-week training program in collaboration with the AWS Ontario Virtual User Group. Drawing from his vast expertise in DevOps, cloud architecting, and coding, Andrew designed the bootcamp to equip participants with the essential skills and practical experience needed to excel in cloud project design and implementation. As a mentor and educator, Andrew takes pride in helping individuals transform from beginners with little to no coding experience into confident cloud engineers who are ready to take on real-world challenges. The bootcamp’s hands-on approach and carefully curated curriculum have garnered widespread recognition, attracting aspiring cloud professionals from various backgrounds and setting them on a transformative journey.

The Business Scenario: Building a Micro-Blogging Platform

Imagine being tasked with building a cutting-edge micro-blogging platform from the ground up, transforming a wireframe into a fully functional and scalable web application. This was the challenge presented to participants of the AWS Cloud Project Bootcamp. In the business scenario, a startup company enlisted the expertise of the bootcamp graduates to make their mock web application production-ready and capable of handling a massive influx of users. The company’s visionary fractional CTO laid out the technical requirements, emphasizing the use of popular and efficient frameworks like React for the frontend and Python’s Flask for the backend, keeping the application API-only to leverage cloud capabilities effectively. To achieve this, participants were guided through the containerization of frontend and backend applications, utilizing Docker and AWS Fargate. They learned to work with various AWS services, including AppSync for API abstraction, DynamoDB for NoSQL data modeling, RDS for SQL databases, and Lambda for serverless functions. Throughout the bootcamp, Andrew’s mentorship and the challenging yet rewarding business scenario pushed participants to unlock their potential and emerge as proficient cloud engineers ready to take on any cloud project with confidence.

The Meat

Week 0 — Bootcamp Overview and Introduction to Cloud Spend

The bootcamp started with a comprehensive overview of what we would be learning and accomplishing in the next 12 weeks. We were introduced to the business use-case of our project, which involved building a micro-blogging platform for a startup company. The fractional CTO had specific technical requirements in mind, and we aimed to deliver a robust and scalable solution.

Week 1 — Docker and App Containerization

In Week 1, we delved into containerization using Docker. It was an exciting experience to containerize both the frontend and backend web applications using Docker and orchestrate them with a docker-compose file. Working in a Cloud Development Environment (Gitpod) provided a hands-on experience with cloud-native tools.

Week 2 — Observability

Week 2 introduced us to the world of observability. We learned how to instrument our applications with Open Telemetry (OTEL) and integrate AWS X-Ray for distributed tracing. Additionally, we set up error logging with Rollbar and implemented logging to CloudWatch using WatchTower. Observability became a critical aspect of our cloud projects to help us identify and resolve potential issues.

Week 3 — Decentralized Authentication

The topic of Week 3 was decentralized authentication. We provisioned an Amazon Cognito User Pool and configured Amplify for client-side authentication in our web application. It was empowering to implement custom login, signup, recovery, and forgot password features and work with JSON Web Tokens (JWT) for secure authentication.

Week 4 — SQL Database

In Week 4, we delved into data modeling for SQL databases and focused on using Amazon RDS (Postgres) as our relational database. We learned how to write SQL queries, create tables, and implement caching using Momento to optimize database performance.

Week 5 — NoSQL Database

Week 5 introduced us to NoSQL databases and data modeling using the single table design. We utilized Amazon DynamoDB as our NoSQL database and implemented a caching layer using Momento. Handling DynamoDB streams to trigger a Lambda function for updates was an eye-opening experience.

Week 6 — Deploying Serverless Containers (Part 1/2)

In Week 6, we worked on deploying our containerized applications using Amazon Elastic Container Service (ECS) Fargate. Setting up an Elastic Container Repository (ECR) and orchestrating containers with ECS Fargate gave us a taste of real-world deployment scenarios.

Week 7 — Solving CORS with a Custom Domain and Load Balancing (Part 2/2)

Week 7 was all about solving Cross-Origin Resource Sharing (CORS) issues and load balancing our applications using Amazon Route 53 and Application Load Balancer (ALB). Configuring TLS termination and deploying our applications with a custom domain was a crucial step in securing our services.

Week 8 — Serverless Image Processing

In Week 8, we explored serverless image processing using AWS Lambda and Amazon S3. We implemented Lambda functions to process and generate thumbnails for uploaded images. The combination of serverless computing and object storage was a powerful solution for handling media assets.

Week 9 — CI/CD

In Week 9, we focused on continuous integration and continuous deployment (CI/CD). We set up a build server using AWS CodeBuild to automatically build and tag container images from our GitHub repository. Deploying updates with AWS CodeDeploy and creating a CodePipeline enhanced the speed and efficiency of our development process.

Week 10 — CloudFormation (Part 1/2)

In Week 10, we delved into Infrastructure as Code (IaC) using AWS CloudFormation. We wrote declarative templates for creating and managing our infrastructure. Implementing a three-tier architecture using CFN provided greater control and security in our environment.

Week 11 — CloudFormation (Part 2/2)

Week 11 was a continuation of Week 10, where we explored the deployment of our CI/CD pipeline using CloudFormation. Creating cross-reference stacks and managing remote states further streamlined our development process and infrastructure management.

Week X— Bringing it all Together & Cleanup

Week X of the AWS Cloud Project Bootcamp was all about cleanup and fine-tuning our web application to ensure it was running smoothly and efficiently. Participants were tasked with several important assignments that contributed to the overall polish of the project. They utilized a Sync tool for static website hosting, making sure that the website’s content remained up-to-date and synchronized. The group also focused on reconnecting the database and Postgres Confirmation Lambda, ensuring that data was stored securely and accessed without any hitches. Fixing Cross-Origin Resource Sharing (CORS) to use the domain name for the web app was another critical task, providing a seamless and integrated experience for users. Additionally, participants worked on refining the CI/CD pipeline to ensure it was running flawlessly and able to handle code changes smoothly. They also implemented a JWT Decorator in the Flask App to enhance security and authentication measures. Moreover, students undertook a comprehensive refactor of the App.py and Flask Routes to optimize the application’s performance. The bootcamp participants also took on the challenge of implementing replies for posts, improving error handling, and creating a visually appealing Activities Show Page. To cap off the week, students engaged in general cleanup tasks, further enhancing the overall project’s quality and functionality. As a final homework challenge, participants explored the use of GitHub Actions to build and sync the static website, as well as ventured into the realm of artificial intelligence by creating an AI moderator using TensorFlow.js. The week’s focus on refining and perfecting the web application brought it closer to becoming a robust and impressive cloud-based platform.

Big Shout Out to The Community

One of the most remarkable aspects of the AWS Cloud Project Bootcamp was the strong sense of community and support among the participants. Some of the more advanced students went above and beyond to lend a helping hand to their peers who may have been struggling with certain aspects of the implementations. They selflessly offered guidance, shared their experiences, and patiently answered questions, creating a nurturing environment for learning and growth. This spirit of camaraderie and collaboration not only boosted the confidence of struggling bootcampers but also fostered a deeper understanding of the course material through peer-to-peer interactions.

To further enhance the support system, the bootcamp organizer, Andrew, created a Discord channel dedicated to the bootcamp. He generously offered regular office hours, where participants could drop in and receive one-on-one assistance regardless of where they were in their learning journey. These office hours became invaluable opportunities for bootcampers to seek clarification on complex topics, gain insights from Andrew’s expertise, and discuss challenges they encountered during the project. The initiative not only strengthened the bond between the instructor and the students but also provided a safe and welcoming space for open discussions and collaborative problem-solving.

The combination of the advanced students’ willingness to help and Andrew’s accessibility through regular office hours created a powerful support network that enriched the bootcamp experience for all participants. It exemplified the true spirit of a collaborative learning community, where everyone thrived by lifting each other up and fostering an inclusive and encouraging environment for everyone’s success.

Conclusion

Completing the AWS Cloud Project Bootcamp was an incredible and rewarding journey. From learning the fundamentals of cloud computing to implementing modern APIs and CI/CD pipelines, each week presented new challenges and opportunities for growth. Like most bootcampers who made it to the end, my app will continue to be in a state of CI/CD I had a few bugs during the journey I’m still trying to work out, and everytime I figure out how to fix an issue, I am that much more proud of the work we did. We had scope creep, and many unforseen challenges to work through. There were issues with platform updates breaking things, tool quirks, and inparticular the copy paste in Github was giving Andrew fits on the regular, but despite the challenges and the creep, and the complexity we finished and this bootcamp equipped us with invaluable skills, and I am even more ready to tackle complex cloud projects and build innovative solutions using AWS services. With determination and dedication, anyone can embark on a similar journey and excel in the world of cloud computing.

--

--