Continuous Integration and Deployment with AWS

Final Project - Higher Vocational Training in Network Computer Systems Administration

Introduction

For my final project in Higher Vocational Training in Network Computer Systems Administration, I designed and implemented an automated cloud infrastructure using Amazon Web Services (AWS) to support continuous integration and deployment (CI/CD). The project focused on creating a cost-effective, scalable, and automated environment to streamline the development and deployment lifecycle.

I adapted an existing web project to leverage AWS S3 and RDS, ensuring that the application would remain resilient even if EC2 instances were deleted.

Key Features

  • AWS EC2: I configured scalable EC2 instances with auto-scaling to ensure resource optimization based on demand, integrated seamlessly with the CI/CD pipeline.
  • CodePipeline and CodeDeploy: These services were used to automate build, test, and deployment stages, ensuring a smooth and efficient delivery pipeline with minimal downtime.
  • S3 and RDS: I utilized S3 for secure, scalable storage, and RDS for managing relational databases without the complexity of manual infrastructure management.
  • GitHub: Source control and version management were handled through GitHub, providing a collaborative development environment with automated workflows.

Infrastructure Overview

Infrastructure Overview image

Video Demo

  • Part 1: Deploying from Developer Commit - 0:00
  • Part 2: Load Balancer Stickiness - 2:49
  • Part 3: Data Persistency with RDS & S3 - 4:03

Conclusion

Through this project, I gained hands-on experience with AWS services and CI/CD pipelines. I deepened my understanding of cloud automation, infrastructure scalability, and DevOps best practices, which have proven invaluable for future projects and real-world applications.