AWS CodeDeloy Lifecycle

ysong0504·2021년 8월 21일
0

AWS

목록 보기
3/3

AWS CodeDeploy는 AppSpec.yml 파일을 통해 lifecycle를 설정해줄수 있다.
AppSpec.yml에서 이벤트 후크를 생성하여 각 lifecycle 단계에 따라 실행되야하는 스크립트를 매핑해준다.

hooks:   
  ApplicationStop: 
    - location: scripts/application_stop.sh
      timeout: 300
      runas: ec2-user
  BeforeInstall:
    - location: scripts/before_install.sh
      timeout: 300
      runas: ec2-user
  ApplicationStart:
    - location: scripts/application_start.sh
      timeout: 300
      runas: ec2-user

무중단 배포를 진행할 수 있는 Blue/Green CodeDeploy는 아래와 같은 lifecycle를 가진다.

Start, DownloadBundle같이 회색으로 표시된 단계는 별로 scripting이 불가능하다.
하지만 AppSpec.yml 의 'files'에서 설치되는 항목을 지정할 수 있다.

ApplicationStop

  • 본격적인 배포가 이뤄지기 전에 기존에 있는 패키지를 제거하거나 현재 서버에서 돌아가고 있는 어플리케이션을 안정하게 종료시켜주는 단계

DownloadBundle

  • 신규 생성된 파일을 임시 폴더로 다운받는 단계

BeforeInstall

  • 파일 복호화나 파일 백업등 어플리케이션을 실행시키기 위한 준비 단계

Install

  • DownloadBundle에서 다운받아진 파일을 실제 작업 폴더로 복사, 붙여넣는 단계

AfterInstall

  • 파일 권한이나 어플리케이션의 구성을 변경하는 단계

ApplicationStart

  • 어플리케이션을 (재)실행시키는 단계

ValidateService

  • lifecycle의 마지막 단계로 배포가 성공적으로 완료되었는지 확인한다.

BeforeBlockTraffic, BlockTraffic, AfterBlockTraffic

  • 위 단계동안 기존에 있는 서버 (blue 서버)는 load balancer를 통해서 받는 트래픽을
    block 함

BeforeAllowTraffic, AllowTraffic, AfterAllowTraffic

  • 위 단계동안 새로 배포된 서버 (green 서버)는 load balancer에 등록됨

참조: https://docs.aws.amazon.com/ko_kr/codedeploy/latest/userguide/reference-appspec-file-structure-hooks.html

profile
Learn From Yesterday, Live Today, Hope for Tomorrow

0개의 댓글