Z Cloudでnodejsを動かす

前エントリ Objective-Cでsocket.ioクライアントを書いてみた で作成したsocket.ioクライアントをiPhoneアプリから3G経由でテストしたいのでZ CloudのSmartOSを借りてみました。

コースは一番安いSmall 1にしてみたんですが、どんな感じかというと

  1. OSはSmartOSはOpenSolarisベースのJoyent社によるカスタム
  2. CPUは1コア、状況に応じて2コアに拡張
  3. メモリは1G
  4. ディスクは30GでRAID5相当の冗長化構成
  5. root権限とグローバルIP
  6. ネットワーク転送量は月間20TBまで。超えたら応相談
  7. 料金はマシンの起動時間に応じて。1時間8.5円(税込み)

ということで複雑な料金計算もなく煙草を一本我慢すれば3時間動かせるというリーズナブルな感じです。
PaaSは他にもたくさんあるのですが、今回はwebsocketを使える事が大前提だったのでここにしてみました。

でオンラインから申し込んですぐに利用可能となりました。
さっそく管理画面から公開鍵を登録してsshでログイン。

インストール可能なパッケージにnodejsがあることを確認します。

# pkgin search nodejs
nodejs-0.6.6      Evented I/O for V8 javascript
nodejs-0.4.12    Evented I/O for V8 javascript

0.6.6をインストール。

# pkgin in nodejs-0.6.6

npmも一緒にインストールされて利用可能となりました。

nodejs用のサービスmanifestを確認してみます。

# vi /opt/local/share/smf/manifest/node.xml

自分はsolarisに疎いのですがnode用のサービスインスタンスexampleが定義済みで、/home/node/<インスタンス名>/server.jsを起動するようになっているようです。

ということで/home/node配下にexampleディレクトリを作成しその下にserver.jsを作成します。

exampleのserver.jsをサービスとして有効にします。

# svcadm enable node:example

無事server.jsが起動しました。