피드로 돌아가기
Deploying Spring Boot to AWS EC2 with Docker and GitHub Actions — The Repeatable Way
Dev.toDev.to
DevOps

Docker와 GitHub Actions 기반의 반복 가능한 Spring Boot CI/CD 파이프라인 구축

Deploying Spring Boot to AWS EC2 with Docker and GitHub Actions — The Repeatable Way

Yadrs2026년 6월 9일7beginner

Context

Spring Boot 애플리케이션의 EC2 배포 시 발생하는 환경 설정의 파편화와 반복적인 인프라 구축 비용 발생. 단순 JAR 실행을 넘어 환경 변수 분리, 일관된 런타임 보장, 배포 자동화라는 복합적 엔지니어링 요구사항 존재.

Technical Solution

  • Local과 Production의 설정을 분리하여 보안성을 높인 application-prod.yml 기반의 환경 변수 주입 구조 설계
  • Docker를 통한 런타임 환경 캡슐화로 인프라 간 일관성을 확보하고 배포 프로세스를 표준화한 Containerization 전략 채택
  • GitHub Actions와 SSH Action을 연동하여 코드 푸시부터 EC2 내 배포 스크립트 실행까지의 과정을 자동화한 CI/CD 파이프라인 구축
  • 배포 로직을 GitHub Actions 외부의 EC2 내부 셸 스크립트로 분리하여 워크플로우의 단순화 및 유지보수 효율성 강화
  • SpringGen과 같은 자동화 도구를 통한 레이어드 아키텍처, Docker 설정, CI/CD 스캐폴딩의 표준화된 템플릿 적용

1. Production Secret은 소스 코드에서 배제하고 환경 변수나 Secret Manager를 통해 주입하는가?

2. Docker multi-stage build를 통해 런타임 이미지 크기를 최적화하고 일관성을 유지하고 있는가?

3. CI/CD 툴에 모든 로직을 넣지 않고 서버 내부의 배포 스크립트를 통해 제어권을 분리했는가?

4. 프로젝트마다 반복되는 인프라 설정(Docker, GitHub Actions 등)을 표준화된 템플릿으로 관리하고 있는가?

원문 읽기