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
AfterInstall
ApplicationStart
ValidateService
BeforeBlockTraffic, BlockTraffic, AfterBlockTraffic
BeforeAllowTraffic, AllowTraffic, AfterAllowTraffic