🌊

Nest.jsアプリケーションをEC2インスタンス上で永続的に起動させる

2023/08/21に公開

pm2を利用した手順

  1. pm2のインストール

    npm install -g pm2 
    
  2. Nestjsをpm2で起動

    pm2 start npm --name your-app-name -- run start
    
  3. pm2 のプロセスリストを確認してアプリケーションが実行されていることを確認

    pm2 list
    
  4. pm2 で起動したアプリケーションを自動的に再起動するように設定(コマンドを実行するように指示を受けるのでコピペして実行する)

    pm2 startup
    
  5. 現在の pm2 のプロセスリストを保存

    pm2 save
    

pm2とは?

Node.jsをバックグラウンドで永続的に実行するためのプロセスマネージャ。
以下の特徴を持つ。

  1. 永続性: システムが再起動した後でも、pm2 で管理されているアプリケーションは自動的に再起動されます。
  2. クラッシュリカバリ: アプリケーションが何らかの理由でクラッシュした場合、自動的に再起動されます。
  3. ロードバランサ: 複数のプロセスインスタンスを起動してロードバランシングを実施することができます。
  4. ログ管理: アプリケーションのログを一元的に取得・管理することができます。
  5. モニタリング: 実行中のアプリケーションのパフォーマンスやリソースの利用状況をリアルタイムで監視できます

Gitで更新を行う場合

  1. git pull origin main
  2. npm install
  3. pm2 restart your-app-name
    *pm2で永続化しているため、pm2をリスタートしないと変更が適用されない。

Discussion