AWS 프리티어 계정으로 실습 시간에 정적 웹 페이지를 자동 배포 및 호스팅하는 파이프라인을 구축해보았다. 실습 후 오피스 아워시간에 추가로 다루었던 내용을 아래와 같이 정리해보았다.
npm run start
)하기만 해도 충분하다.npm run build
로 실행)
아래는 appspec.yml 파일(appspec.yml은 배포 자동화를 도와주는 CodeDeploy-Agent가 인식하는 파일) 내 코드이다
version: 0.0
os: linux
files:
- source: /
destination: /home/ubuntu/im-sprint-practice-deploy
hooks:
ApplicationStop:
- location: scripts/stop.sh
runas: root
AfterInstall:
- location: scripts/initialize.sh
runas: root
ApplicationStart:
- location: scripts/start.sh
runas: root
최상위 위치에서 scripts
디렉토리 내 initialize.sh, start.sh, stop.sh
각각 3개의 파일은 appspec.yml
파일이 구성하고 있는 배포 수명 주기에 따라서 실행된다.
#!/bin/bash
cd /home/ubuntu/im-sprint-practice-deploy/server
npm install
npm install pm2@latest -g
sudo apt-get update
sudo apt-get install authbind
sudo touch /etc/authbind/byport/80
sudo chown ubuntu /etc/authbind/byport/80
sudo chmod 755 /etc/authbind/byport/80
#!/bin/bash
cd /home/ubuntu/im-sprint-practice-deploy/server
authbind --deep pm2 start app.js
#!/bin/bash
cd /home/ubuntu/im-sprint-practice-deploy/server
pm2 stop app.js 2> /dev/null || true
pm2 delete app.js 2> /dev/null || true