서버 배포 도전기(0)

정민주·2024년 11월 21일

스프링 스터디

목록 보기
13/17

1. CI/CD 파이프라인 구축 과정

이번에 진행될 파이프라인 구축 과정은 다음과 같다.

  1. IntelliJ에서 코드 작성 후 GitHub에 푸시.
  2. GitHub Actions가 푸시 이벤트 감지 후 Docker 이미지 자동 빌드.
  3. 빌드된 Docker 이미지를 AWS S3에 업로드.
  4. AWS CodeDeploy가 S3에서 Docker 이미지 가져와 배포 요청.
  5. AWS EC2가 Docker 이미지를 Pull하여 컨테이너 실행 및 서비스 배포.

1.1 IntelliJ에서 코드 푸시

개발자가 IntelliJ와 같은 IDE를 사용해 코드를 작성하고, 수정된 코드를 GitHub에 푸시합니다.
이 작업은 깃(Git)을 통해 버전 관리 시스템에 새로운 코드를 반영하는 첫 번째 단계입니다.

1.2 GitHub Actions로 자동 빌드 (CI)

GitHub Actions가 푸시 이벤트를 감지하고, 사전에 설정된 워크플로우를 실행합니다.

워크플로우?

특정 이벤트(예: 코드 푸시, PR 생성 등)가 발생했을 때,
자동으로 실행되는 작업(예: 코드의 빌드, 테스트, 배포 등)의 자동화 프로세스를 정의한 것.

이 워크플로우는 다음과 같은 프로세스를 정의할 수 있습니다.

  • 코드 테스트 (유닛 테스트, 통합 테스트 등)
  • Docker 이미지 생성
  • 생성된 Docker 이미지를 AWS S3에 업로드 (빌드 결과 파일 저장)

1.3 AWS S3로 빌드 파일 업로드

GitHub Actions는 생성된 Docker 이미지를 AWS S3 버킷에 업로드합니다.

이 과정은 빌드 파일을 안전하게 보관하고, 이후 배포 단계에서 AWS CodeDeploy가 이를 가져갈 수 있도록 합니다.

1.4 AWS CodeDeploy를 통한 배포 요청

GitHub Actions가 AWS CodeDeploy에 배포 요청을 보냅니다.
배포 요청은 AWS의 API를 통해 이루어지며, CodeDeploy는 S3에 저장된 빌드 파일을 가져옵니다.

1.5 AWS CodeDeploy가 EC2에 배포

AWS CodeDeploy는 S3에서 가져온 빌드 파일을 기반으로 AWS EC2 인스턴스에 애플리케이션을 자동으로 배포합니다.

배포 프로세스는 다음 단계를 포함할 수 있습니다

  • 기존 애플리케이션 중단(필요한 경우)
  • 새로운 Docker 이미지를 풀(Pull)하여 실행
  • 컨테이너 재시작 및 상태 확인

화이팅..

출처
- 백엔드 서버 배포하기
-> 가장 열심히 본 블로그 였는데 공부하는 도중 사라지셨다ㅠㅠㅠ

0개의 댓글