グルチャ

AWS EC2にnode.jsサーバーを構築しよう

環境は以下の通り。
・サーバーはAWS EC2
・サーバーのOSはAMI Linux
・ローカルのOSはCentOS 6.5
・ローカルにはnode.jsサーバーのソースコードがあるものとする

説明内容は以下の通り。
・サーバーにnode.jsをインストール
・サーバーにgitサーバーを立てる
・サーバーにnode.jsサーバーのソースコードをデプロイする
・サーバーのnode.jsサーバーを起動する

AWS EC2でのサーバー構築方法はsimtterができるまで(サーバー取得と設定)を参照して欲しい。
EC2からのリモートコントロールにはTera Termを使う。
Tera Termの使い方はchat.acができるまで(statusnetをインストール)を参照して欲しい。
ただし、今回インストールするOSはubuntuではなくAMI Linuxとする。
AMI Linuxのユーザー名はec2-userになる。

では、OSまで入った前提で以降を説明する。
 

node.jsをインストール

参考文献:
node.jsをyumでインストールする(centos6.5)
Amazon Linux AMI に関するよくある質問
Tera Termから下記コマンド実行。

sudo yum install nodejs npm --enablerepo=epel

 

gitサーバーを立てる

参考文献:自宅のCentOSにGitサーバを構築してみた
Tera Termから下記コマンド実行。

sudo yum install git git-deamon git-all xinetd
sudo chkconfig xinetd on
sudo vi /etc/xinetd.d/git-daemon

 
内容は

service git
{
        disable         = no
        socket_type     = stream
        wait            = no
        user            = nobody
        server          = /usr/libexec/git-core/git-daemon
        server_args     = --base-path=/home --export-all --user-path=ec2-user --syslog --inetd --verbose
        log_on_failure  += USERID
}

 
xinetd を起動

sudo service xinetd start

 
リポジトリ作成

cd ~
mkdir test.git
cd test.git
git --bare init --shared

 
gitグループを作成してユーザをそのグループに追加

sudo groupadd git
sudo usermod -G wheel,git ec2-user
sudo chown -R root:git ~/test.git

 

node.jsサーバーをデプロイする

ローカルのgitにはすでに何らかのソースコードをコミットしているものとする。
ローカルから下記コマンドを実行する。
 
リモートリポジトリの登録

git remote add origin ssh://ec2-user@[Public IP]:/~/test.git

※ [Public IP]はAWS EC2に割り当てられたIPアドレスを指定する。独自ドメインを設定している場合はドメイン名でも良い。
※ ssh 用の鍵ペアはTera Termでの通信で使う鍵と同じである。
 
リモートリポジトリに push

git push origin master

 

node.jsサーバーを起動する

サーバーで下記コマンドを実行する。
 
クローン作成

cd ~
git clone test.git

 
node.jsサーバー起動

cd test
node app.js

※ app.jsは自分が起動したいソースファイルに適宜読み替えること。


Leave a reply

Your email address will not be published.

Time limit is exhausted. Please reload CAPTCHA.

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>