今回は、AWSでnode.jsを使用してみます。
node.jsのインストール
必要なソフトウェアをgitからインストールしたいので、まずはgitをインストールします。
コマンドは”sudo yum install git -y”で、最後にComplete!になればOKです。
sudo yum install git -y
Loaded plugins: priorities, update-motd, upgrade-helper
amzn-main/latest | 2.1 kB 00:00
amzn-updates/latest | 2.3 kB 00:00
Resolving Dependencies
--> Running transaction check
---> Package git.x86_64 0:1.8.3.1-2.37.amzn1 will be installed
--> Processing Dependency: perl-Git = 1.8.3.1-2.37.amzn1 for package: git-1.8.3.1-2.37.amzn1.x86_64
--> Processing Dependency: perl(Term::ReadKey) for package: git-1.8.3.1-2.37.amzn1.x86_64
--> Processing Dependency: perl(Git) for package: git-1.8.3.1-2.37.amzn1.x86_64
--> Processing Dependency: perl(Error) for package: git-1.8.3.1-2.37.amzn1.x86_64
--> Running transaction check
---> Package perl-Error.noarch 1:0.17020-1.7.amzn1 will be installed
---> Package perl-Git.noarch 0:1.8.3.1-2.37.amzn1 will be installed
---> Package perl-TermReadKey.x86_64 0:2.30-18.8.amzn1 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
==================================================================================
Package Arch Version Repository Size
==================================================================================
Installing:
git x86_64 1.8.3.1-2.37.amzn1 amzn-main 7.8 M
Installing for dependencies:
perl-Error noarch 1:0.17020-1.7.amzn1 amzn-main 32 k
perl-Git noarch 1.8.3.1-2.37.amzn1 amzn-main 55 k
perl-TermReadKey x86_64 2.30-18.8.amzn1 amzn-main 32 k
Transaction Summary
==================================================================================
Install 1 Package (+3 Dependent packages)
Total download size: 7.9 M
Installed size: 19 M
Downloading packages:
(1/4): git-1.8.3.1-2.37.amzn1.x86_64.rpm | 7.8 MB 00:00
(2/4): perl-Error-0.17020-1.7.amzn1.noarch.rpm | 32 kB 00:00
(3/4): perl-Git-1.8.3.1-2.37.amzn1.noarch.rpm | 55 kB 00:00
(4/4): perl-TermReadKey-2.30-18.8.amzn1.x86_64.rpm | 32 kB 00:00
---------------------------------------------------------------------------------
Total 6.8 MB/s | 7.9 MB 00:00:01
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : 1:perl-Error-0.17020-1.7.amzn1.noarch 1/4
Installing : perl-TermReadKey-2.30-18.8.amzn1.x86_64 2/4
Installing : git-1.8.3.1-2.37.amzn1.x86_64 3/4
Installing : perl-Git-1.8.3.1-2.37.amzn1.noarch 4/4
Verifying : perl-Git-1.8.3.1-2.37.amzn1.noarch 1/4
Verifying : 1:perl-Error-0.17020-1.7.amzn1.noarch 2/4
Verifying : git-1.8.3.1-2.37.amzn1.x86_64 3/4
Verifying : perl-TermReadKey-2.30-18.8.amzn1.x86_64 4/4
Installed:
git.x86_64 0:1.8.3.1-2.37.amzn1
Dependency Installed:
perl-Error.noarch 1:0.17020-1.7.amzn1 perl-Git.noarch 0:1.8.3.1-2.37.amzn1
perl-TermReadKey.x86_64 0:2.30-18.8.amzn1
Complete! |
sudo yum install git -y
Loaded plugins: priorities, update-motd, upgrade-helper
amzn-main/latest | 2.1 kB 00:00
amzn-updates/latest | 2.3 kB 00:00
Resolving Dependencies
--> Running transaction check
---> Package git.x86_64 0:1.8.3.1-2.37.amzn1 will be installed
--> Processing Dependency: perl-Git = 1.8.3.1-2.37.amzn1 for package: git-1.8.3.1-2.37.amzn1.x86_64
--> Processing Dependency: perl(Term::ReadKey) for package: git-1.8.3.1-2.37.amzn1.x86_64
--> Processing Dependency: perl(Git) for package: git-1.8.3.1-2.37.amzn1.x86_64
--> Processing Dependency: perl(Error) for package: git-1.8.3.1-2.37.amzn1.x86_64
--> Running transaction check
---> Package perl-Error.noarch 1:0.17020-1.7.amzn1 will be installed
---> Package perl-Git.noarch 0:1.8.3.1-2.37.amzn1 will be installed
---> Package perl-TermReadKey.x86_64 0:2.30-18.8.amzn1 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
==================================================================================
Package Arch Version Repository Size
==================================================================================
Installing:
git x86_64 1.8.3.1-2.37.amzn1 amzn-main 7.8 M
Installing for dependencies:
perl-Error noarch 1:0.17020-1.7.amzn1 amzn-main 32 k
perl-Git noarch 1.8.3.1-2.37.amzn1 amzn-main 55 k
perl-TermReadKey x86_64 2.30-18.8.amzn1 amzn-main 32 k
Transaction Summary
==================================================================================
Install 1 Package (+3 Dependent packages)
Total download size: 7.9 M
Installed size: 19 M
Downloading packages:
(1/4): git-1.8.3.1-2.37.amzn1.x86_64.rpm | 7.8 MB 00:00
(2/4): perl-Error-0.17020-1.7.amzn1.noarch.rpm | 32 kB 00:00
(3/4): perl-Git-1.8.3.1-2.37.amzn1.noarch.rpm | 55 kB 00:00
(4/4): perl-TermReadKey-2.30-18.8.amzn1.x86_64.rpm | 32 kB 00:00
---------------------------------------------------------------------------------
Total 6.8 MB/s | 7.9 MB 00:00:01
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : 1:perl-Error-0.17020-1.7.amzn1.noarch 1/4
Installing : perl-TermReadKey-2.30-18.8.amzn1.x86_64 2/4
Installing : git-1.8.3.1-2.37.amzn1.x86_64 3/4
Installing : perl-Git-1.8.3.1-2.37.amzn1.noarch 4/4
Verifying : perl-Git-1.8.3.1-2.37.amzn1.noarch 1/4
Verifying : 1:perl-Error-0.17020-1.7.amzn1.noarch 2/4
Verifying : git-1.8.3.1-2.37.amzn1.x86_64 3/4
Verifying : perl-TermReadKey-2.30-18.8.amzn1.x86_64 4/4
Installed:
git.x86_64 0:1.8.3.1-2.37.amzn1
Dependency Installed:
perl-Error.noarch 1:0.17020-1.7.amzn1 perl-Git.noarch 0:1.8.3.1-2.37.amzn1
perl-TermReadKey.x86_64 0:2.30-18.8.amzn1
Complete!
次にnode.jsをインストールしたいところですが、その前にnvm(Node Version Manager)を入れます。
nvmを経由でnode.jsを利用することで、node.jsのバージョン切り替えが容易になります。
git clone git://github.com/creationix/nvm.git ~/.nvm
Cloning into '.nvm'...
remote: Counting objects: 1541, done.
remote: Compressing objects: 100% (762/762), done.
remote: Total 1541 (delta 789), reused 1502 (delta 762)
Receiving objects: 100% (1541/1541), 281.79 KiB | 156.00 KiB/s, done.
Resolving deltas: 100% (789/789), done. |
git clone git://github.com/creationix/nvm.git ~/.nvm
Cloning into '.nvm'...
remote: Counting objects: 1541, done.
remote: Compressing objects: 100% (762/762), done.
remote: Total 1541 (delta 789), reused 1502 (delta 762)
Receiving objects: 100% (1541/1541), 281.79 KiB | 156.00 KiB/s, done.
Resolving deltas: 100% (789/789), done.
インストールが終わったら,”source ~/.nvm/nvm.sh”で、nvmを利用可能にします。
–versionオプションでバージョンのチェックが可能です。
source ~/.nvm/nvm.sh
[ec2-user@ip-172-xx-xx-xx .nvm]$ nvm --version
0.10.0 |
source ~/.nvm/nvm.sh
[ec2-user@ip-172-xx-xx-xx .nvm]$ nvm --version
0.10.0
nvmを使用して、指定したバージョンのnode.jsをインストールします。
[ec2-user@ip-172-xx-xx-xx .nvm]$ nvm install 0.10.0
######################################################################## 100.0%
Now using node v0.10.0 |
[ec2-user@ip-172-xx-xx-xx .nvm]$ nvm install 0.10.0
######################################################################## 100.0%
Now using node v0.10.0
念のためにnode.jsのバージョンを確認します
ちなみに2回目以降はinstallしなくても”node use 0.10.0″で利用できます。
[ec2-user@ip-172-xx-xx-xx .nvm]$ node --version
v0.10.0 |
[ec2-user@ip-172-xx-xx-xx .nvm]$ node --version
v0.10.0
動作確認用のプログラムを適当に作成します。
[ec2-user@ip-172-xx-xx-xx ~]$ cat test.js
var http = require('http');
var onRequest = function(req,res){
console.log( "request received." );
res.end('Hello world' )
};
var app = http.createServer( onRequest ).listen(3000);
console.log( "start server" ); |
[ec2-user@ip-172-xx-xx-xx ~]$ cat test.js
var http = require('http');
var onRequest = function(req,res){
console.log( "request received." );
res.end('Hello world' )
};
var app = http.createServer( onRequest ).listen(3000);
console.log( "start server" );
node.jsで作ったプログラムを起動します
[ec2-user@ip-172-xx-xx-xx ~]$ node test.js
start server |
[ec2-user@ip-172-xx-xx-xx ~]$ node test.js
start server
ブラウザからアクセスするために,ポートを開放する
上記のプログラムは、3000番のポートで接続を待ち受けますが、aws側はデフォルトではすべてのポートが閉じられています。
ですのでポート開放の作業が必要となります。
EC2の起動インスタンス一覧を開き、右端にあるSecurity Groupsを選択します。
inboundに3000番ポートを追加します。
以下のように追加されていればOKです。
接続先のIPアドレスは、EC2 Dashboardに記載されたPublic IPで確認できます。
動作確認
ブラウザから確認したアドレスにアクセスすると、プログラムの実行結果を確認できます。
作業の途中で行ったnvmコマンドはログアウトすると忘れてしまうので、
ログインしなおした場合は、下記のコマンドで再度プログラムを実行できます。
~/.nvm/nvm.sh
nvm use 0.10.0
node test.js |
~/.nvm/nvm.sh
nvm use 0.10.0
node test.js