17
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

node.jsのプロセス・マネージャー(PM)とデプロイツール

Last updated at Posted at 2016-06-26

プロセス・マネージャーの利用

node.jsをインストールした際にバンドルされるnodeコマンドでは、プロセスの監視は行われず、異常終了すると落ちたままになってしまいます。

$ node /<path>/app.js 

運用環境では、サービスが停止してしまうので、nodeプロセスを監視し、必要であれば再起動する必要があります。
これらの管理を行ってくれるのが、プロセス・マネージャーです。

  • プロセスが異常終了した際に再起動する
  • リソース利用率などを表示する
  • クラスタリングの制御

また、PMによっては、デプロイをサポートしているものもあります。

PM ローリングリスタート 起動スクリプト ログローテーション デプロイツール リモートデプロイ クラスタリング
forever × × × × × ×
PM2
StrongLoop ProcessManager
  • forever
  • PMのみ
  • 起動スクリプトは、initd-forever などで別途用意する必要がある
  • デプロイに関しても、Capistranoなどのツールを利用する必要がある
  • PM2
  • PM、リソースモニター、デプロイツールなど一通り揃っている
  • 最近、複数台のサーバーへのデプロイも可能になる
  • シンボリックリンクを利用したデプロイも検討中(graceful?ローリング?リスタートを考えると難しそう)
  • StrongLoop ProcessManager
  • LoopBackフレームワーク用のPM

所感としては、 forever だと機能不足。
StrongLoop ProcessManager だと、シンプルなserver.jsアプリケーションや、Expressフレームワークを利用したアプリケーションでは、大げさすぎる。
2〜3台のサーバーで運用するのであれば、 PM2 が程よいのではないかと思います。

Tips

開発環境用PM

  • hotnode
  • 開発環境用であれば、JSファイルを変更すると自動的にリロードを行ってくれるhotnodeが便利です。
  • ただし、htmlファイルなど、静的なファイルを編集しても、リロードはされません。(監視しているのは、JSファイルだけのよう)
17
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?