小さい頃はエラ呼吸

いつのまにやら肺で呼吸をしています。


新しくなったdotcloudでnode.jsのHello Worldを動かしてみたよ。

はじめに

最近新しくなったdotcloudでnode.jsのアプリケーションをデプロイして、動かしてみました。
このエントリを書くにあたり、以下のエントリを参考にさせていただきました。

はじめてのNode.js -サーバーサイドJavaScriptでWebアプリを開発する-
松島 浩道
ソフトバンククリエイティブ
売り上げランキング: 13,641

dotcloud(ドットクラウド)

dotcloudはnode.jsやRubyを動作させることができるプラットフォームを提供しているクラウド環境です。

Platform as a Service=PaaSの一種。 「日本を代表するアルファギーク」として有名なmiyagawaさんが最近joinしたことで有名になったサービスです。
DotCloudはただいまベータ版に付きinviteコードがあれば無料で使うことができます。 ホームページでメールアドレスを登録するとそのうち配布されます。
DotCloudは開発者のための優良なプラットフォーム - ゆーすけべー日記 はてなブックマーク - 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