はじめに
最近新しくなったdotcloudでnode.jsのアプリケーションをデプロイして、動かしてみました。
このエントリを書くにあたり、以下のエントリを参考にさせていただきました。
ソフトバンククリエイティブ
売り上げランキング: 13,641
dotcloud(ドットクラウド)
dotcloudはnode.jsやRubyを動作させることができるプラットフォームを提供しているクラウド環境です。
Platform as a Service=PaaSの一種。 「日本を代表するアルファギーク」として有名なmiyagawaさんが最近joinしたことで有名になったサービスです。
DotCloudはただいまベータ版に付きinviteコードがあれば無料で使うことができます。 ホームページでメールアドレスを登録するとそのうち配布されます。
DotCloudは開発者のための優良なプラットフォーム - ゆーすけべー日記
検証した環境
- Mac OS X Lion
- node.js 0.4.9
dotcloudのクライアントツールのインストール
dotcloudのクライアントツールをインストールします。ターミナルを起動して、以下のコマンドを実行します。
sudo easy_install pip && sudo pip install dotcloud
dotcloudでアプリケーションを動かすにはAPIキーの登録が必要になります。以下のコマンドを実行してAPIキーを登録します。
dotcloud setup Enter your api key (You can find it at http://www.dotcloud.com/accounts/settings): →ここにAPIキーを打つ
クラウド上にアプリケーションを作成する
クラウド上にアプリケーションを作成します。hogeがアプリケーション名です。
dotcloud create hoge >Created application "hoge"
ローカルでサンプルアプリケーションをつくる
作業用のディレクトリを作成します。
cd ~ mkdir sample cd sample/
このディレクトリに以下のコードをserver.jsという名前で配置します。
require('http').createServer(function (request, response) { response.writeHead(200, {"Content-Type": "text/plain"}); output = "Hello World!\n"; for (k in request.headers) { output += k + '=' + request.headers[k] + '\n'; } response.end(output); }).listen(8080);
さらに、sampleディレクトリ配下に以下のコードをsupervisord.confという名前で配置します。node server.jsはおなじみの起動用のコマンドですね。
[program:node] command = node server.js directory = /home/dotcloud/current
最後にsampleディレクトリ同じ階層に以下のコードをdotcloud.ymlというファイルで配置します。
www: type: nodejs approot: hellonode
treeで表示するとこんな感じです。
tree sample/ sample/ ├── dotcloud.yml └── hellonode ├── server.js └── supervisord.conf
クラウド上にアプリケーションをデプロイする
カレントディレクトリをsampleディレクトリと同じにし、以下のコマンドを入力して、アプリケーションをクラウド環境に配備します。
dotcloud push hoge sample
作成したアプリケーションは以下のURLで確認することができます。
クラウド上のアプリケーションの一覧を確認する
クラウド上に作成したアプリケーションの一覧を確認するには以下のようにします。
dotcloud list >hoge: - www (type: nodejs; instances: 1)
アプリケーションを削除する
アプリケーションの公開を停止するには、以下のようにします。
dotcloud destroy hoge