Node.js アプリを無料でデプロイ出来る Glitch を試してみた

Node.js アプリをデプロイ出来るサービスといえば、Heroku だったり、Azure App Service なんかの PaaS が有名であろう。しかし、Azure は有料だし、Heroku の無料枠は起動時間に制限があったりして少々使いづらい。

GitHub Pages は静的ページのみでサーバサイドを持てないし、Netlify も静的ページのみ。一応 Lambda ベースの FaaS は持てるが、常時起動のサーバとしては使えないし、Lambda 的な書き方で実装しないといけない。

無料の IaaS (VPS) もなくはないが、そこに Node.js サーバを立てて HTTPS 化したりするのはしんどい。もっと楽に、サクッと Node.js サーバを公開したいんじゃ。

そこで見つけたのが Glitch というサービス。「Joel On Software」で知られる Joel Spolsky 氏が立ち上げた Fog Creek が前身の会社・ウェブサービスだ。Trello なんかも作っているところだ。

目次

Glitch に登録する

Glitch への登録は GitHub アカウント連携だけで良い。他のアカウントでの連携も対応しているし、メールアドレスで登録したりもできるが、後述の GitHub 連携も考えると、GitHub アカウントでサインインするのが良さそう。

登録後に有料版への申込みもできるが、設定しなければずっと無料で、クレジットカードも要らず使い続けられる。

Glitch でアプリを作る

Glitch はブラウザ上に独自の IDE が開き、そこに自由にファイルを追加してウェブアプリを公開できる。

雛形プロジェクトも揃っているので、とりあえず Express ベースの Node.js サーバプロジェクトを立ち上げてみて、様子を確かめてみると良いかと。

ファイルは書いている最中から自動的に保存されていくのが嬉しい。

なんとターミナルも扱えるので、軽く npm コマンドを叩くとか、git 同期してファイルを取り込んでみたりしても良いだろう。

プロジェクト名は最初はランダムで決まるが、任意に変更可能。HTTPS で https://【アプリ名】.glitch.me/ という URL が発行される。

自分が作ってみたアプリ

自分が Glitch を使って公開してみたアプリがあるので紹介する。

コレは WebRTC でビデオチャットが行えるアプリで、シグナリングサーバを動かしたかったために、Express サーバがホスティングできる場所を探していて、Glitch に辿り着いたというワケ。ちなみにソースコードは以下。

Node.js サーバを公開するための注意

package.json を書いていくと自動的に npm install が行われる。npm-scriptsstart スクリプトだけ定義しておこう。

完全に静的なコンテンツを配信する際も、package.jsonstart スクリプトだけは必要になるので、serve あたりを使って静的コンテンツを配信できるようにしておこう。

それから、Heroku 同様に engines プロパティを使って Node.js のバージョンを指定できる。

Express でサーバを公開する時は、process.env.PORT でポート番号を注入するようにしておけば、.env ファイルがなくともうまいこと処理してくれる。

GitHub からソースコードをインポートする

プロジェクトを新規作成する際、およびプロジェクト編集画面で、「Import from GitHub」を選ぶと、GitHub リポジトリの資材をプロジェクトに持ち込める。

ファイル群は常に同期されるワケではないので、Glitch 上で編集していくと GitHub 上と差異が出ていくことになる。

ターミナルを使って git コマンドを叩いて同期しても良いし、GitHub 側の変更を Glitch に投げられる sync-glitch-cli などもあったりするので、上手く組み合わせてみよう。

無料でどこまで出来るか

先程有料版もあると書いたとおり、無料で出来る範囲には制限がある。

一番大きいのは、アクセスがないとインスタンスが停止してしまい、再アクセス時に少し待たされるところ。Heroku と同様の作りだが、Heroku よりも断然起動時間が速いので、Glitch に軍配。

また、メモリや CPU リソース、1時間あたりのアクセス数なんかにも制限があるので、より高負荷なサーバを常時絶えず動かしたい場合は、有料版にするか、他のサービスを使う必要があるだろう。

とはいえ、無料版で困ることもなく、プロジェクトもホイホイ新規作成できるので、全然なんとかなりそうだ。

以上

無料にしてはかなり高速で、サクサク使えるので、Glitch とてもオススメ。