Code States/TIL

[0424] 배포 자동화 - 배포 자동화

ki1111m2 2023. 4. 24. 11:29

학습 목표

  • 배포 자동화의 정의와 이점에 대해 설명할 수 있다.
  • 배포 파이프라인이 무엇인지 정의할 수 있다.
  • 파이프라인을 구성하는 단계(Stages)와 작업(Actions)에 대해 설명할 수 있다.
  • AWS 개발자 도구를 활용하여 파이프라인을 구축할 수 있다.
  • 배포 자동화 파이프라인 구축 과정에서 문제가 발생할 경우, log 파일과 공식 문서를 통해 해결할 수 있다.
  • 다양한 배포 전략 (롤링, 블루/그린, 카나리)을 이해할 수 있다.

  • 한 번의 클릭 혹은 명령어 입력을 통해 전체 배포 과정을 자동으로 진행하는 것
  • 수동적이고 반복적인 배포 과정을 자동화함으로써 시간이 절약됨
  • 휴먼 에러를 방지할 수 있음

 

  • 배포 자동화 파이프라인

  • 소스 코드의 관리부터 실제 서비스로의 배포 과정을 연결하는 구조
  • 전제 배포 과정을 여러 단계(Stages)로 나누고, 각 단계는 파이프라인 안에서 순차적으로 실행되며 단계마다 주어진 작업(Actions)을 수행함
  • Source 단계: 원격 저장소에 관리되고 있는 소스 코드에 변경 사항이 일어날 경우, 이를 감지하고 다음 단계로 전달하는 작업ㅇ르 수행함
  • Build 단계: Source 단계에서 전달받은 코드를 컴파일, 빌드, 테스트하여 가공하며, Build 단계를 거쳐 생성된 결과물을 다음 단계로 전달하는 작업을 수행함
  • Deploy 단계: Build 단계로부터 전달받은 결과물을 실제 서비스에 반영하는 작업을 수행함
  • 파이프라인의 단계는 상황과 필요에 따라 더 세분화되거나 간소화될 수 있음
  • AWS 개발자 도구
    • CodeCommit
      • Source 단계를 구성할 때 이용
      • GitHub과 유사한 서비스를 제공하는 버전 관리 도구
      • GitHub과 비교했을 때 보안과 관련된 기능에 강점을 가짐
      • 과금 가능성을 고려해야 함
    • CodeBuild
      • Build 단계에서 이용
      • 유닛 테스트, 컴파일, 빌드와 같은 빌드 단게에서 필수적으로 실행되어야 할 작업을 명령어를 통해 실행할 수 있음
    • CodeDeploy
      • Deploy 단계를 구성할 때는 기본적으로 다양한 서비스를 이용할 수 있음
      • 실행되고 있는 서버 애플리케이션에 실시간으로 변경 사항을 전달할 수 있음
      • S3 서비스를 통해 S3 버킷에 업로드된 정적 웹 사이트에 변경 사항을 실시간으로 전달하고 반영할 수 있음
    • CodePipeline
      • 각 단계를 연결하는 파이프라인을 구축할 때 이용