Node.jsとExpress.jsで開発したWebアプリをeXcaleで動かす

2013年1月17日(木)
西谷 圭介

eXcaleにデプロイする

早速、今作ったアプリケーションをeXcaleにデプロイしてみます。eXcaleではファイルアップロードによるデプロイとgitを利用したデプロイの2種類の方法でデプロイできますが、今回はgitを利用したデプロイを行います。また、eXcaleで実行するためには先ほどeXcaleコマンドで生成したアプリケーションに少し修正を加える必要があります。

まず、eXcaleでNode.jsのアプリケーションを実行する場合、実行するファイル名はindex.jsである必要がありますのでexample.jsをindex.jsにリネームします。

$ mv example.js index.js

続いて、eXcaleではサーバとして待受可能なポートが8080に限定されていますので、8080番ポートで待ち受けるようにindex.jsを修正します。listenメソッドでポートの設定を行っていますのでここを修正します。

(変更前)

listen(1337, '127.0.0.1');

(変更後)

listen(8080, '0.0.0.0');

eXcaleではgit pushを行うとサービス側でライブラリの依存関係を解決します。Node.jsの場合、必要となるライブラリをpackage.jsonに記述しておくことでこの依存関係の解決が行われます。従って今回のアプリケーションでもpackage.jsonを用意する必要があります。今回は実際には依存ライブラリがない状態ですので以下のような内容をpackage.jsonという名前で保存してください。

{
"name": "<アプリケーション名>"
, "version": "0.0.1"
, "private": true
}

次にアプリケーションのディレクトリをgitリポジトリして使用するように初期化して、リモートリポジトリとして全ファイルを追加した上でコミットします。

$ git init
$ git add .
$ git commit -m "initial commit"

最後にeXcale上でアプリケーションを作成した際に用意されたリポジトリURLをリモートリポジトリとして追加し、masterブランチをプッシュします。
このURLは「詳細」画面の「Git接続先」から確認することができます。eXcale上のGitリポジトリにプッシュすることでアプリケーションのデプロイが行われます。

$ git remote add excale <Git接続先>
$ git push excale master

ここで聞かれるユーザ名とパスワードは先ほど作成したeXcaleのアカウントとして登録したメールアドレスとパスワードです。eXcale側でプッシュを検知すると自動的に依存ライブラリの解決をした上でプッシュしたアプリケーションがパッケージングされ、eXcaleに登録された後、アプリケーションインスタンスの起動が行われます。ただし、git push完了時点ではあくまでもインスタンスの起動を開始しただけであり完了しているわけではありません。そこでデプロイしたアプリケーションのステータスを確認します。

eXcaleの「アプリケーション一覧」から対象アプリケーションの「詳細」ボタンをクリックして詳細画面を開いてください。画面下部に「ログ」という項目がありますので「表示」ボタンをクリックするとアプリケーションのログを確認できます。「ログ種類」から「システムログ」を選択して「表示」ボタンをクリックしてください。

画面下半分の領域にインスタンスのデプロイ状況に関するログが表示されますので"Instance started."と表示されていればデプロイは完了しています。また、簡単に確認する場合は詳細画面の「現在のインスタンス数」の値が最小インスタンス数以上(デフォルトでは1)になっていればデプロイが完了しています。

デプロイが完了したらブラウザからアクセスしてみてください。アクセスするURLは先程の詳細画面に表示されているアプリケーションURLです。このURLはインターネット上に公開されているURLですのでこの時点であなたのアプリケーションはWeb上に公開された状態となります。もし、まだデプロイが完了していない場合は"Down for maintenance"という画面が表示されます。その場合は何度かリロードしてみてください。また、ブラウザのキャッシュに残っている可能性もありますのでその場合はキャッシュのクリアを行った後アクセスしてみてください。

図6:デプロイしたアプリケーション(クリックで拡大)
TIS株式会社

TIS株式会社所属。金融系基幹システムの開発等に従事したのち、サービス企画・開発を担当。IaaS開発を経て、現在はアプリ開発者のためのPaaS「eXcale」の開発責任者兼プログラマとして活動中。
Twitter:@Keisuke69
eXcale:http://www.excale.net/

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています