[Section 4] 배포 자동화 - Github Actions

Kim·2022년 12월 8일
0

Boot Camp

목록 보기
63/64

Github Actions

  • Github가 공식적으로 제공하는 빌드, 테스트 및 배포 파이프라인을 자동화할 수 있는 CI/CD 플랫폼

    💡 CI/CD (Continuous Integration / Continous Deployment)

    • 하나의 서비스를 계획부터 실행까지 진행하는 것을 말함
  • 리포지토리에서 Pull Requestpush 같은 이벤트를 트리거로 GitHub 작업 워크플로(Workflow) 구성 가능

    🤔 Workflow?

    • 하나 이상의 작업이 실행되는 자동화 프로세스
    • 각 작업은 자체 가상 머신 또는 컨테이너 내부에서 실행
    • .yml 혹은 .yaml 파일에 의해 구성됨
    • 테스트, 배포 등 기능에 따라 여러 개의 워크플로 생성 가능
    • 생성된 워크플로는 .github/workflows 디렉토리 이하에 위치
      ❗비공개 레포지토리의 경우, Github Actions가 작동할 때의 용량과 시간이 제한됨
      ❗공개 레포지토리는 무료로 사용 가능

배포 Flow

Github Actions

  • Github Actions는 설정 파일(.yml)에 따라 Github Repository에 특정 변동사항을 트리거로 작동

S3

  • 저장소로 사용
    • 일반(수동) 배포 실습에선 S3를 정적 웹 페이지 배포하는데에 사용함

Code Deploy

  • Github Actions에서 배포 명령을 받은 Code Deploy는 S3에 저장되어있는 빌드 결과물을 EC2 인스턴스로 이동
  • 프로젝트 최상단에 위치한 appepec.yml 설정 파일에 의해 쉘 스크립트 등 단계에 따라 특정 동작을 함
  • EC2 인스턴스에 Code Deploy Agent의 설치 필요
    • Code Deploy가 S3 버킷에서 EC2 인스턴스로 프로젝트를 이동할 수 있게 하기 위함

EC2

  • Code Deploy에 의해 빌드 과정을 거친 프로젝트가 EC2 인스턴스로 전달
  • .yml (설정 파일).sh (쉘 스크립트)에 의해 각 배포 결과를 로그로 저장하며 빌드 파일(.jar) 실행
  • EC2 인스턴스에 접속하여 알맞은 Code Deploy Agent의 설치와 JDK 11 버전 설치 필요

0개의 댓글