Amazon Web Serviceでnode.jsを起動させてみた
Amazon Web Service(AWS)が無料ティアが2010/11/1から公開されました(「Amazon EC2、1年間限定でフリーミアムサービスを開始。日本でも利用可能」とか「無料のクラウドリソース登場: アマゾンクラウド(AWS)が無料ティア(無料使用枠)を発表」)。
そこで、AWSでnode.jsを起動させてみることにしました。
まずは私のスペックとして、AWSは経験がありません。Linux経験は仕事を含めてそこそこあります(名目的にはサーバ管理者...?)。個人でレンタルサーバを借りた経験あります。AWSの本は1冊(以下にリンクあり)しか読んでいません。このスペックででAWSでnode.jsを起動させてみました。
AWSのアカウント作成からインスタンスの起動までは、以下を参考にしました。
・Welcome to AWS User Group -Japan
・無料でAWS(Amazon EC2,S3等)を使ってみた
・PuTTYでのアクセス
・よくわかるAmazon EC2/S3入門
セキュリティであけるポートはSSH(22)とHTTP(80)のみあけました。注意するところは、Instatnces WizardでInstance TypeでMicroを選択しないといけないところでしょうか。後、無料ティアの中でブログの説明だけ見るとどれを選ぶのが正しいのかわからないですがBasic 32/64-bit Amazon Linux AMI 1.0あたりを選ぶのが良いみたいです。
2,3時間程度でrunningまでもっていけました。
さて立ち上げinstanceにsshしてみます。上のページを参考にアクセス可能できます。注意点は、ユーザは"root"ではなく"ec2-user"のところです。
入って最初にhttpdを探したのですがインストールされていないのですね。知りませんでした。
次に最近流行(?)のnode.jshttp://nodejs.org/を入れてみます。ここでは、インスタンス上でget~build~install~起動まで行ってみました。
まずは必要なものをダウンロード及びインストールします。
wget http://nodejs.org/dist/node-v0.2.4.tar.gz
sudo yum -y install gcc-c++
sudo yum -y install openssl-devel
ここでgcc-c++とopenssl-develは、makeする上で必要です。node.jsをとってきたら解凍からmake installまで以下の手順です(node.jsの手順どおり)。
tar zxvf node-v0.2.4.tar.gz
cd node-v0.2.4
./configure
make
sudo make install
makeがすごく遅かったです。私のPCのUbunut 10.10 32bit(VMWare上)で行った時はAWS上よりも数倍速かったです。CPU( Xeon E5430@2.66GHz)が遅いわけでなさそうなのでEC2のディスクが遅いのかも知れません。EC2上のディスクはあまり使わないからかも知れませんが。
make installまでできたら起動させますが、ここで少しテクニックが必要です。まずは、example.jsをnode.jsから持ってきますが、listenの箇所を".listen(80, "")"に変更します。80だけあけているためです。
次に、nodeを/usr/sbinにリンクを貼ります。
sudo ln -s /usr/local/bin/node /usr/sbin/
sudo付きで起動させないといけないのですが、sudo対象パスに/usr/loca/binが入っていません。どこかを直すべきかわからなかったのでnodeを/usr/sbinにリンクを貼りました。
この設定後に起動させます。
sudo /usr/sbin/node example.js
正常に起動していれば、Public DNSで記載されているサイトにアクセスするとページが見えます。
これでAWS上でnode.jsを起動させることができます。ここまで来るのに4時間もかからなかったでしょうか。
たぶん手元でnode.jsをビルドしてバイナリを持っていったほうが早かったと思います。node.jsも経験がなかったため、AWS上でビルドしてみました。
PaaSやSaaSも良いのですが、ベンダロックしたくない場合IaaSの方が良いと思います。AWSの無料ティアはアカウント作成して1年間なのがが気になりますが、IaaSを気軽に試すのはいい環境です。無料期間がもっと長ければ個人的なサイトとしてもっと使うことができるように思えます(起動している時間をに制限をかけるとか、もう少し制限をかけて無料期間を長くしてほしい)。
AWS上でおこないたいことがこれといってありませんが、S3をまだ使っていないのでもう少し使ってみたいと思います。
【クラウドサービス】
・GPUを使ったクラウドサービス開始されますがこのままでいくのだろうか
・Googleクラウドの核心の感想
・大規模サービス技術入門の感想