Deploying and Automating Spring Boot Applications on AWS: A Practical Guide Using Docker and GitHub Actions
Tran, Anh (2025)
Tran, Anh
2025
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2025053018351
https://urn.fi/URN:NBN:fi:amk-2025053018351
Tiivistelmä
This product-based thesis studies deploying and automating a simple pre-built Spring Boot appli-cation on Amazon Elastic Container Service (Amazon ECS) with Docker and GitHub Actions. The topic was motivated by the rapid shift of companies to cloud-native microservice architec-tures and their considerable challenges during the deployment process. The main goal is to cre-ate a cohesive step-by-step guideline on deploying the application on Amazon ECS by leveraging containerization and automating the entire process with Continuous Integration and Continuous Delivery/ Continuous Deployment (CI/CD) to eliminate manual work and minimize human errors.
The theoretical framework introduced various key concepts that helped readers better under-stand the technologies utilized in this project. Those included microservices, containerization with Docker, CI/CD pipelines, and particularly core services of Amazon Web Services (AWS) such as Elastic Compute Cloud (EC2), Amazon Elastic Container Registry (ECR), Application Load Balancer (ALB), and AWS Fargate.
This paper is limited to the Spring Boot framework, Docker, Amazon Web Services (AWS), and GitHub Actions. Other frameworks, containerization tools, cloud service providers, testing prac-tices, and automation tools are out of scope. The target audience includes cloud architects, DevOps engineers, software developers, and companies transitioning to a cloud-based micro-services architecture.
The project implementation contained four phases: local setup and Dockerization, AWS configuration, deployment and testing, and CI/CD pipeline automation. The application was successfully containerized with Docker and deployed on Amazon ECS with the Fargate launch type. In addi-tion, the automation workflow using GitHub Actions enabled seamless rebuild and redeployment. The final result reduced manual work, increased the deployment reliability, and provided a repli-cable solution for similar cloud-native projects. Upon completing the project, the author gained valuable knowledge and hands-on experience with DevOps tools, cloud services, and automation techniques highly demanded in modern software development.
The theoretical framework introduced various key concepts that helped readers better under-stand the technologies utilized in this project. Those included microservices, containerization with Docker, CI/CD pipelines, and particularly core services of Amazon Web Services (AWS) such as Elastic Compute Cloud (EC2), Amazon Elastic Container Registry (ECR), Application Load Balancer (ALB), and AWS Fargate.
This paper is limited to the Spring Boot framework, Docker, Amazon Web Services (AWS), and GitHub Actions. Other frameworks, containerization tools, cloud service providers, testing prac-tices, and automation tools are out of scope. The target audience includes cloud architects, DevOps engineers, software developers, and companies transitioning to a cloud-based micro-services architecture.
The project implementation contained four phases: local setup and Dockerization, AWS configuration, deployment and testing, and CI/CD pipeline automation. The application was successfully containerized with Docker and deployed on Amazon ECS with the Fargate launch type. In addi-tion, the automation workflow using GitHub Actions enabled seamless rebuild and redeployment. The final result reduced manual work, increased the deployment reliability, and provided a repli-cable solution for similar cloud-native projects. Upon completing the project, the author gained valuable knowledge and hands-on experience with DevOps tools, cloud services, and automation techniques highly demanded in modern software development.