スクリーンショット_2019-10-02_17

AWSのCode三兄弟を使ってEC2にAngular Universalアプリケーションをデプロイする

やりたいこと

Githubのリポジトリでdevelopブランチが更新されたのをトリガーに
CodeBuildでAngular Universalアプリをビルドし
CodeDeployでEC2へのソース配布とアプリ再起動を行う

手順

1. CodePipelineでパイプライン作成
2. CodeBuildのビルドプロジェクト作成
3. CodeDeployアプリケーションの作成
4. デプロイ先のEC2インスタンスの設定

詳しく

1. CodePipelineでパイプライン作成
2. CodeBuildのビルドプロジェクト作成
3. CodeDeployアプリケーションの作成

Code兄弟の設定だいたいは前に書いたのと同じ

CodeBuildのDockerレジストリをnode:10.16-alpineに変えるくらい

buildspec.yml

version: 0.2

phases:
 build:
   commands:
     - echo Build started on `date`
     - npm install
     - npm run build:ssr
 post_build:
   commands:
     - echo Build completed on `date`
     - cp deploy/appspec.yml appspec.yml
artifacts:
 files:
   - dist/**/*
   - appspec.yml
cache:
 paths:
   - '/root/.npm/**/*'

/.npm以下をローカルキャッシュしておく

appspec.yml

version: 0.0
os: linux
files:
 - source: dist
   destination: /opt/my-app/dist

4. デプロイ先のEC2インスタンスの設定

4.1. node.jsのインストール

nodeのバージョンマネジャーも入れといたほうがいい

LTSを使う

$ nvm install --lts
$ nvm use --lts

4.2. PM2でアプリケーションをデーモン化する

pm2のインストール

pm2の自動起動設定

$ npm install pm2 -g
$ cd /opt/my-app
$ pm2 start dist/server --name my-app --watch # watchしておけば、今後デプロイされて内容変わったら自動で再起動かかる
$ pm2 startup # サーバー再起動時にpm2が自動的に起動するようにしておく
$ pm2 save


いいなと思ったら応援しよう!