EC2でNode.js+MongoDB環境を作るまで
EC2でインスタンスを作成してから、Node.js+MongoDBの環境を構築するまでのメモ。
プロンプトが%になっているものはローカル、#はリモートのスーパーユーザ、$はリモートの一般ユーザで実行されたことをあらわす。
// EC2からダウンロードした秘密鍵を.sshディレクトリへ移動 % mv Downloads/xxx.pem .ssh/ // パーミッションの設定(読み出し可+書き込み可) % chmod 600 .ssh/xxx.pem // 秘密鍵を読むファイルを指定して、ssh接続 % ssh -i .ssh/xxx.pem ec2-user@ec2-xx-xxx-xxx-xx.ap-northeast-1.compute.amazonaws.com // rootユーザに切り替え $ sudo -s // ID番号に20000を指定して、deployグループを作成 # groupadd -g 20000 deploy // ID番号に19999を、グループに20000を指定して、deployユーザを作成 # useradd -u 19999 -g 20000 deploy // deployユーザのパスワードを設定 # passwd deploy // 環境変数を引き継ぎ、パスワードなしでsudoコマンドを実行可能に # visudo + # Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin + Defaults:deploy !env_reset ## Same thing without a password # %wheel ALL=(ALL) NOPASSWD: ALL + deploy ALL=(ALL) NOPASSWD: ALL // deployユーザのホームディレクトリに、.sshディレクトリを作成して、authorized_keysファイルを作成 # cd /home/deploy # mkdir .ssh # touch .ssh/authorized_keys // authorized_keysファイルを編集(自分の公開鍵を入力) # vim .ssh/authorized_keys // .sshディレクトリの所有者をdeployユーザに変更 # chown -R deploy:deploy .ssh // ディレクトリ.sshのパーミッションをrwx------に変更 # chmod 700 .ssh // ファイルauthorized_keysをrw-------に変更 # chmod 600 .ssh/authorized_keys // 開発向けのパッケージをまとめてインストール # yum -y groupinstall "Development Tools" // deployユーザで入りなおす % ssh deploy@ec2-xx-xxx-xxx-xx.ap-northeast-1.compute.amazonaws.com // nodebrewインストール $ curl https://raw.github.com/hokaccha/nodebrew/master/nodebrew | perl - setup // nodebrewへのパスを.bashrcに追加 $ vim .bashrc # User specific aliases and functions + export PATH=$HOME/.nodebrew/current/bin:$PATH // .bashrc読み込み $ source .bashrc // 安定版のnodeをインストール $ nodebrew install stable // 安定版のnodeを使用 $ nodebrew use stable // npmをインストール $ curl https://npmjs.org/install.sh | sh // foreverをインストール $ npm install forever -g // 設定ファイル作成 $ sudo touch /etc/yum.repos.d/10gen.repo // 10genリポジトリ追加 $ sudo vim /etc/yum.repos.d/10gen.repo + [10gen] + name=10gen Repository + baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64 + gpgcheck=0 + enabled=0 // MongoDBをインストール $ sudo yum install mongo-10gen mongo-10gen-server // mongodのランレベルを設定 $ sudo chkconfig mongod on // mongod起動 $ sudo service mongod start // ホスト名を変更する $ sudo hostname xxx.xxx.com // ホスト名を変更する(再起動時に元に戻らないように) $ sudo vim /etc/sysconfig/network NETWORKING=yes + HOSTNAME=xxx.xxx.com // 一度再起動 $ sudo reboot // デプロイ後forever起動 $ sudo PORT=80 forever start app.js