Ubuntu 16.04でNode.js永続アプリケーションをセットアップする方法

Node.jsアプリケーションは、スケーリングする機能で人気があります。複数のサーバーで複数の同時プロセスを実行すると、レイテンシが低くなり、稼働時間が長くなります。複数のサーバーを管理する場合、Node.jsアプリケーションがクラッシュした場合に自動的に再起動させるのが最も簡単です。このチュートリアルでは、空のUbuntu 16.04インスタンスからアプリケーションの永続性をすばやく設定する方法を示します。

前提条件

  • Ubuntu 16.04 LTS x64で任意のサイズのVultrインスタンスを作成します。
  • rootユーザーでない場合は、実行sudo -sしてパスワードを入力します。起動時にプロセスマネージャが起動するように起動ファイルを変更するには、ルートアクセスが必要です。
  • Node.jsがインスタンスにインストールされていること、およびNode.jsのバージョンが8.9.3 LTS以降であることを確認します。これは、永続性マネージャーをスムーズに実行するために必要です。node -vインストールされているバージョンを確認するために使用します。Node.jsが正しいバージョンでない場合、次のコマンドでインストールされます。

Node.jsをインストールします。

$ sudo apt-get update
$ curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
$ sudo apt-get install -y nodejs

スワップパーティションを作成する

この手順はオプションですが、インストールに推奨されます。スワップパーティションは、RAMの補足に役立つハードディスクの一部です。512MB RAMインスタンスなどの小さいVultrインスタンスでは、スワップパーティションを作成するとパフォーマンスが向上します。スワップチュートリアルの自動バージョンについては、以下のコマンドを使用してください。

$ git clone https://github.com/teamtofu/server-tools.git tools
$ bash ./tools/swap.sh

一般的に、アプリケーションのパフォーマンスは向上するかもしれませんが、永続的なアプリケーションを設定する場合、4 GB以上のRAMを持つインスタンスではスワップの使用は必要ありません。RAMはスワップよりも応答性が高いため、RAMが多いインスタンスは、スワップに関係なくより良い結果をもたらす傾向があります。

糸をインストール

YarnはFacebookのNode.jsパッケージ用の使いやすいパッケージマネージャーです。これはNPMよりも高速であり、決定論的でもあります。これは、複数のサーバーを展開するときに特に役立ちます。

$ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
$ echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
$ sudo apt-get update && sudo apt-get install yarn

ただし、Yarnの代わりにNPMを使用でき、このチュートリアルのすべてのコマンドと同等のコマンドがあります。

Node.jsアプリケーションをインストールする

アプリケーションがgitリポジトリでホストされている場合は、それを複製して使用しますyarn install。アプリケーションには、次の手順で使用するサーバーエントリファイル(通常はserver.jsまたはindex.js)が必要です。

Process Manager 2をインストールする

Process Manager 2は、アプリケーションを自動再起動するパッケージです。Process Manager 2は非常に人気があり、Microsoft、PayPal、およびIntuitで使用されているため、安全で信頼できます。

$ yarn global add pm2

アプリケーションをプロセスとして追加する

アプリケーションはデーモン化(バックグラウンドで実行)され、startコマンドで自動再起動されます。

$ pm2 start [path to your entry.js] -i max

最大数のプロセスを自動的に起動する場合は、-i max引数を渡します。このVultrインスタンスの唯一の用途がアプリケーションの提供である場合は、これが推奨されます。複数のCPUを備えたVultrインスタンスの場合、複数のプロセスが起動され、Process Manager 2はこれらすべての個々のプロセスのロードバランサーとして機能します。

起動時にアプリケーションを自動的に起動します

アプリを起動したら、アプリケーションの構成を保存します。次に、起動コマンドを実行して、Ubuntuの起動時にプロセスマネージャー2をバックグラウンドで自動的に実行します。Ubuntu 16.04の場合、Process Manager 2はにバインドされsystemdます。

$ pm2 save
$ pm2 startup

これで、エラーが原因でNode.jsアプリケーションがクラッシュした場合は再起動し、Ubuntuが何らかの理由でクラッシュした場合は、プロセスがUbuntuで自動的に再起動します。プロセスはで再起動できpm2 gracefulReload all、Process Manager 2はで再起動できますpm2 update。起動時にProcess Manager 2が起動しないようにするには、を実行しpm2 unstartupます。

テスト中

入力rebootしてUbuntuの起動後にアプリケーションが提供されるかどうかを確認してみてください。アプリケーションは、Web用であり、ポート上で役立った場合は80、その後、curl http://localhost/開始ページのHTMLが表示されます。機能しない場合、コマンドpm2 statusは実行中のプロセスを表示し、開始コマンドを再発行できます。

アプリケーションの新しいバージョンをデプロイする

gitリポジトリーをプルするなどしてアプリケーションを更新する場合は、実行中のアプリケーションプロセスを更新するコマンドを発行する必要があります。

$ pm2 update

使用例

Parse Serverは、サービスとして人気のあるオープンソースプラットフォームであり、アプリケーションのバックエンドとして機能します。コードまたはリクエストの量のエラーが原因でバックエンドがクラッシュする可能性がありますが、他のサーバー(またはプロセス)が引き続き実行され、Parse Serverプロセスがすばやく再起動されるため、アプリケーションにダウンタイムは発生しません。



Leave a Comment

CentOS 7にApacheをインストールする方法

CentOS 7にApacheをインストールする方法

CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1におけるBlacklistdのインストール方法について詳しく解説します。この方法を通じて、強力なセキュリティ対策を実装できます。

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

サーバーマネージャーを使用して、Windows Serverの管理が向上します。セキュリティリスクを軽減し、効率的な管理を実現します。

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法。Seafile(コミュニティバージョン)は、ownCloudに似た無料のオープンソースファイル同期および共有ソリューションです。

DebianでSnortを設定する方法

DebianでSnortを設定する方法

Snortは無料のネットワーク侵入検知システムです。最新の方法で、SnortをDebianにインストールし、設定する手順を紹介します。ネットワークのセキュリティを強化しましょう。

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsサーバーでWebサイトを実行している場合、電子メールも受信できるようにするためにhMailServerを使用する方法を解説します。

Ubuntu 19.04にFiveMサーバーをインストールする方法

Ubuntu 19.04にFiveMサーバーをインストールする方法

FiveMサーバーをUbuntu 19.04にインストールするための詳細なガイド。必要条件からインストール、起動、トラブルシューティングまで、すべてのステップを含みます。

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

Debian 10にWebDAVをデプロイする方法を学び、WsgiDAVとSSL証明書で安全な接続を実現しましょう。

ヘルスケア2021における人工知能の影響

ヘルスケア2021における人工知能の影響

ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。