はじめに
Node.jsで作ったWEBアプリを公開する方法の備忘録です。
デプロイ先には、操作が簡単で10日間無料でお試し利用できるLOLIPOP!マネージドクラウドを選びました。
1. Gitリポジトリを作成する
マネージドクラウドへのデプロイに必要なのでGitリポジトリを作成しておきます。
mkdir <ディレクトリ名>
cd <ディレクトリ名>
git init
マネージドクラウドでは、push1のたびにnpm install
が実行されます。そのため、node_modules
はpushしないように.gitignore
に設定しておきます。
echo 'node_modules' >> .gitignore
2. package.jsonを作成する
手順1で作成したGitリポジトリ上でnpm init
を実行してpackage.json
を作成します。
npm init
package.json
が作成されたら、scripts
にstart
という項目を追加して、アプリを起動するコマンドを追記します。起動コマンドは、マネージドクラウドでのコンテナ起動時に実行されます。
{
"name": "helloWorld",
"version": "1.0.0",
"main": "index.js",
"scripts": {
+ "start": "node ./index.js",
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git"
},
"author": "",
"license": "ISC",
"description": ""
}
3. WEBアプリケーションを作成する
お好みのWEBアプリケーションを作成します。
4. LOLIPOP!マネージドクラウドのアカウントを作成する
5. プロジェクトを新規追加する
ダッシュボード>プロジェクト一覧・編集画面で新規追加ボタンから新しいプロジェクトを作成します。
ダッシュボード>プロジェクト一覧・編集>新しいプロジェクトの追加画面に移動するので、言語・アプリケーションをNode.js
に設定し、使用するバージョンを選択します。
選択したら次へボタンを押します。
続いて、プロジェクトドメイン (独自ドメインを使用しない場合はランダムに割り当てられます。)、プロジェクト名、データベースパスワードを設定します。
クレジットカードを登録したら作成完了です。作成してから10日間はお試し期間として無料で利用できます。
6. プロジェクト設定を変更する
必要に応じで各種設定を行います。
6.1 運用ル−ルとアクションの設定
思わぬ高額課金にならないように利用金額が一定金額を超えると下記のアクションが実行されるように設定しておくことができます。
- メ−ルで通知する
- オ−トスケ−ルをOFFにする
- コンテナ起動をOFFにする
6.2 環境変数設定
PORT番号やデータベースの接続情報などを設定します。
環境変数への登録内容を反映するたびにコンテナが再起動されるので、まとめて追加するのがおすすめです。
6.2.1 PORT番号の設定
LOLIPOP!マネージドクラウドの仕様としてPORT:80番をListenする必要があります。(443はListenせずにHTTPSでアクセスできます。)
下記のように環境変数に応じてPORT番号を切り替えられるようにしておくと便利です。
import express from "express";
const app = express();
const PORT = process.env.PORT || 3000;
app.listen(PORT);
6.2.2 MySQLの利用
LOLIPOP!マネージドクラウドでは、追加料金無しでMySQLが利用できます。
環境変数からデータベースの接続情報を利用する場合はプロジェクトの環境変数設定から下記の手順で設定できます。
6.3 カスタムドメインとSSL設定
6.3.1 カスタムドメインの登録
デフォルトではランダムなドメインが割り当てられ、ドメインをお持ちの方はお好きなドメインに変更できます。
有効なドメインを追加したあとで、ドメイン管理サ−ビス側でCNAME
もしくはALIAS
としてプロジェクトドメインを登録します。
MuuMuu Domainの場合はムームーDNS>変更ボタン>設定2へ進むボタン>から設定できます。
設定が適用されるまでは数時間かかるようです。
私の場合は、ALIASを設定して20時間後あたりには適用されていました。
6.3.2 SSL証明書の設定
証明書を発行するボタンからLet's Encryptの無料SSL証明書を発行できます。
7. デプロイ
作成したアプリをデプロイします。
7.1 リモ−トリポジトリの登録
SSH接続にはGitHubに接続するときと同様に公開鍵の登録が必要です。
公開鍵の作成方法は、下記の記事がわかりやすいです。
作成した公開鍵は、SSH/SFTP
>公開鍵を追加ボタン
で表示される、公開鍵の登録欄に入力して保存します。
公開鍵を登録したら、プロジェクトホ−ムのSSH/SFTP>リポジトリに書いてある下記のコマンドでリモ−トリポジトリを登録します。
git remote add lolipop ssh://<ユーザー名>@<ホスト名>:<ポート>/
7.2 pushする
通常のリモ−トリポジトリへのpushと同様にpushします。
git push lolipop <ブランチ名>
pushした際にマネ−ジドクラウド側でnpm install
が実行されるため少しタイムラグがあり、通常1分程度で更新が反映されます。
参考