gihyo.jp×東京Node学園祭2011コラボ企画―「東京Node学園祭2011」の見どころ教えます!

第4回 Node.jsホスティングサービスについて

この記事を読むのに必要な時間:およそ 3 分

はじめに

これまで3回にわたってNode.jsの魅力に触れてきた本特集も,今回をもって最終回となります。第4回目の本記事では,Node.jsと関連性のあるホスティングサービスについて紹介します。

概況

昨年までは,Node.jsに対応したホスティングサービスが大量にリリースされ,それはまさに雨後の筍のようでした。今年もいくつかのホスティングサービスがNode.jsの対応を表明し,買収や提携が行われています。Microsoftは,Node.js 0.5.x系より行われているWindows対応の開発を支援しており,Windows AzureでもNode.jsが提供される予定です。Node.jsの本格的な普及を前に,各社がこぞって注目していることがわかります。

Ryan Dahl氏とともにNode.jsの開発を進めているJoyent社のGithubページに,ホスティングサービスの一覧がまとめられています。この一覧の中から特徴的なサービスをピックアップして紹介していきます。ここでは「Managed」⁠Self-Managed」⁠DIY Platforms」の3つのカテゴリに分けられています。

Managed

「Managed」はその名の通りサービス提供者がNode.jsの実行環境を提供し運用管理をする,いわゆるPaaSと呼ばれるレイヤのサービスです。実行環境の構築や運用の手間が省けるうえ,開発に便利な機能なども提供されるため,利用者はアプリケーションの開発により専念することができます。その反面,与えられた環境の範囲で開発・運用する必要があり,できることに制限があります。

また,Node.js自体が言語としても発展途上であることもあり,多くのサービスがまだベータ版として無償で提供されています。個人でNode.jsを試してみる場合や,高い可用性よりも早く簡単にスタートアップしたいWEBサービスでの利用に向いているでしょう。

no.de

さきほどご紹介したJoyent社によるNode.js専用ホスティングです。同社が開発しているSmartOSと呼ばれるSolarisベースのOS上にNode.jsの環境が構築されています。今年のNode.js Knockout直前からversion 2になり,以前のように登録時にクーポンコードの発行を待つ必要はなくなりましたが,Proxyが間に入るなど一部仕様が変わっています。今まで利用されていた方は,Machineを作りなおすと新しいバージョンになりますが,先にドキュメントに目を通すことをお勧めします。

利用方法はごく一般的で,ローカルで開発したソースコードをgit pushします。サーバにデプロイされるとNode.jsのプロセスが再起動され,自動で反映されます。特徴としては,SSH接続が可能でMongoDBなどがインストールでき,SmartOSのDTrace機能を活かしたAnalyticsという画面でサーバ状態の可視性を高めています。

1ユーザごとに1環境まで無料で提供され,複数台やroot権限が欲しい場合はJoyentCloudで有料の仮想マシンを購入することになります。Joyent社は,次世代のリアルタイムWebや高負荷サービスにフォーカスしたサービスを提供し,その技術をオープンソースで公開しており,今後の動きが注目されています。

Heroku

元々はブラウザ上でRuby(Rack)アプリケーションを簡単に開発できるうえに,Amazon EC2上に複数デプロイすることで可用性や拡張性も確保されると話題を呼びました。今ではブラウザよりもコマンドラインベースでの開発にターゲットを変更し,APIやCLI(コマンドラインインターフェース。コマンドラインベースのツール)を提供しています。Salesforce.comに買収され動向が注目されていましたが,大きな方向性の変化もなく,Node.jsやJava,Pythonなどマルチ言語対応を進めています。

Add-onによる周辺機能も豊富で,様々な作業が簡単にできる仕組みが揃っており,PaaSとしての完成度は高いです。その反面,インフラが抽象化されているため多少のベンダロックイン感があり,自由度の低い部分もあります。

こちらも最小構成は無料で,処理能力(Dyno,workerの数)や周辺機能(DatabasesやAdd-on)の追加に対して課金しています。

Heroku(ヘロク)「hero(ヒーロー)⁠「haiku(俳句)⁠を組み合わせた造語で,Databaseの名称も「Ronin」「Fugu」など日本にまつわるネーミングが多いです。

Cloud Foundry

VMWareが提供する,こちらもマルチ言語(Java,Ruby,Node.js)に対応したPaaSです。

マルチ言語であるだけでなく,提供形態もマルチであるという特徴を持っています。公式に提供されるパブリッククラウドサービスに加えて,その仕組みをオープンソースで公開しているためプライベートクラウドとして構築することもでき,Micro Cloud Foundryを使えばローカルマシン内でも同様の環境が構築できてしまいます。

今はまだ価格設定が明らかになっていませんが,無償版でも複数のアプリを公開できるようになっています。対抗馬とされるRed HatのOpenShiftとともに今後の展開が期待されるサービスです。

Self-Managed

「Self-Managed」は利用者が自分で実行環境を構築・運用する,いわゆるVPSやIaaSと呼ばれるレイヤのサービスです。最初からある程度の環境が構築されているサービスもありますが,サーバの構築,セキュリティ対策や監視など,利用者がサーバの構築・運用をする必要があります。基本的に有償であるためサービスレベルが保証されておりサーバ内の制限はないため,個人で自分の好きな環境を構築したい場合や,Webサービスの本番運営に向いているでしょう。

Joyent社の提供するJoyentCloudにはNode.js専用マシンがあり,Amazon EC2のUS EASTリージョンではNode.jsのAMIがあるようです。そのほかの面では,とくにNode.jsに特化した特徴はないため各サービスの紹介は省きます。グローバルでサービスを展開しない限り,最近は国内のVPSやIaaSも安いのでそれで十分でしょう。

AWSが東京リージョンを開始したことは皆さんご存知だと思いますが,Linodeも進出しているようですね。

著者プロフィール

矢谷重人(やたにしげと)

Firstserverに勤務し,現在はJoyent社との協業に関する新規事業企画に従事。

「美味しい料理(酒)と音楽と自然が大好きです!神戸在住なのでなかなか東京の勉強会などには顔を出せませんが,関西で勉強会とかあれば手伝いますのでお声掛けください :D」

Twitter:@vanx2

コメント

コメントの記入