IaaS/퍼블릭클라우드

(AWS) CodeDeploy를 위한 appspec.yml

armyost 2022. 1. 7. 16:27
728x90

 

Appspec.yml을 통하여 배포 파이프라인이 EC2에서 실행된다. 

각 단계에서 script를 정의하고 있으며

 

레포지토리의 소스 /scripts/ 이하 경로에 sh형식의 script를 위치시켜 CodeDeploy가 각 Stage에 맞추어 실행할 수 있게끔 한다.  

 

version: 0.0
os: linux
files:
  - source: /
    destination: /var/www/html/WordPress
hooks:
  BeforeInstall:
    - location: scripts/install_dependencies.sh
      timeout: 300
      runas: root
  AfterInstall:
    - location: scripts/change_permissions.sh
      timeout: 300
      runas: root
  ApplicationStart:
    - location: scripts/start_server.sh
    - location: scripts/create_test_db.sh
      timeout: 300
      runas: root
  ApplicationStop:
    - location: scripts/stop_server.sh
      timeout: 300
      runas: root

 

Hooks가 실행되는 순서는 다음과 같다.

 

In-place deployments의 경우 Event들은 다음과 같이 LifeCycle이 수행된다. 이는 CodeDeploy가 이미 정해놓은 순서이다. 아래의 그림들에서 짙은 회색은 이미 콘솔에서 결정이 난 부분이기 때문에 스크립팅할 수 없다. 

하늘색 부분을 위해 Hook이 있는 것이다. 

 

In-place deployments 의 경우

 

 

ECS 의 경우

 

Lambda Function