AWS 로 github 에 수정사항을 commit 하면 자동으로 수정사항을 반영하게 만들 수 있다.
Source stage -> Build stage -> Deploy stage
Pipeline 단계는 상황과 필요에 따라 세분화되거나 간소화될 수 있다.
Github 과 비슷한 version control tool
github 과 차이점 - 보안에 좀더 강점, 대신 과금 가능성
Compile, build, test 가능
buildspec.yml
파일을 참조하여 작업 수행
참고자료: https://docs.aws.amazon.com/ko_kr/codebuild/latest/userguide/build-spec-ref.html
실행되고 있는 서버 애플리케이션에 실시간으로 변경 사항 반영
appspec.yml
파일을 참조하여 작업 수행
참고자료: https://docs.aws.amazon.com/ko_kr/codedeploy/latest/userguide/reference-appspec-file.html
파이프라인 구축
free tier 계정은 2개부터 과금
Identity and Access Management
권한 관리 서비스 (admin 계정, 일반 계정같이)
buildspec.yml 예시 파일
version: 0.2
phases:
pre_build:
commands:
- cd client
- npm install
build:
commands:
- npm run build
artifacts:
files:
- '**/*'
base-directory: client/build
예시 appspec.yml 파일
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
#!/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
scripts/start.sh
#!/bin/bash
cd /home/ubuntu/im-sprint-practice-deploy/server
authbind --deep pm2 start app.js
scripts/stop.sh
scripts.stop.sh
#!/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
12factors.net