반응형

요즘 CI/CD 툴로 Github Actions가 핫한 것 같다. 신규 서비스의 CI/CD 구성을 위해 팀 내에 의견을 여쭤봤는데 Github Actions를 써보라고 제안을 받았다. 현재 서비스들은 젠킨스를 사용해서 자동배포를 하고 있었는데, 팀 내에서 인프라 작업은 최대한 AWS를 활용하는 쪽으로 가고 있는 추세라 확인차 여쭤봤다. 개인적으로 빌드 혹은 배포를 위해 Github Actions를 쓰는 게 무료기도 하고, 코드와 함께 빌드/배포 상태를 GUI로 확인할 수 있다는 점이 좋았다. 그래서 스프링부트를 배포하기 위해 Github Actions와 AWS CodeDeploy를 사용해 배포 자동화를 구성하게 됐다.

CI/CD에서 단계를 구분하기 위해 지속적인 통합, 지속적인 제공, 지속적인 배포 등으로 단계를 세분화하고 있긴 한데, 이런 건 타인에게 무언가를 명확히 설명하기 위해 나온 단어들인 것 같다. 정확한 단어를 아는 건 중요하지만 이렇게 세분화될 수록 오히려 헷갈리는 경우도 있다. 뭐, 구현만 잘하면 됐지!

신규 서비스는 Spring Boot로 만들었고, 배포 자동화를 위해 아래와 같은 단계를 진행했다. 

Github Actions

1. 특정 브랜치(ex: dev)에 변경이 일어나면 배포 자동화를 시작
2. 프로젝트 빌드
3. 빌드된 파일을 압축해 S3에 업로드 (사전에 S3 버킷을 생성해둔다)
4. 업로드한 파일의 위치를 CodeDeploy에게 전달하여 배포그룹 시작 (사전에 CodeDeploy를 생성해둔다)

AWS CodeDeploy

5. 연결된 EC2에 S3 파일을 가져와 압축 해제
6. 스크립트 수행 (스크립트에는 jar를 재시작하도록 되어있음)

 

자세한 구현 방법은 별도로 포스팅을 작성하였다.
Spring Boot 배포 자동화(CI/CD) : Github Actions와 AWS CodeDeploy

 

Spring Boot 배포 자동화(CI/CD) : Github Actions와 AWS CodeDeploy

먼저 AWS Cloud 환경에서 필요한 선행 작업을 안내하고, Github Actions와 AWS CodeDeploy에서 사용할 스크립트에 대해 설명하겠다. AWS 사전 구성하기 1. IAM 사용자 생성 디플로이용 계정을 만들어 아래 정

prohannah.tistory.com

 

반응형