AWS EC2上で Expressアプリ起動

Express(Nodejs)でWebAPI作成 で作成した ExpressアプリをEC2上に配備してパフォーマンスを検証する。
EC2インスタンス、MySQL等は AWS EC2上で Spring Bootアプリ起動 で使用したものと同じものを使用する。


ExpressアプリをEC2インスタンスにアップロード

Express(Nodejs)でWebAPI作成 で作成したアプリをEC2にアップロードする。
※実際の開発時はコード三兄弟等を使用してデプロイする事になると思うが、ここではSFTPで直接アップする。

アプリをzip圧縮

zip -r sample.zip sample

SFTPでアップロード

sftp -i ~/Desktop/pem/キーペア.pem ec2-user@パブリックDNS
sftp> put sample.zip
sftp> exit

EC2に Nodejs 及び npm をインストール

EC2インスタンスにSSH接続する

ssh -i ~/Desktop/pem/キーペア.pem ec2-user@パブリックDNS

AmazonLinuxのアップデート

sudo yum update

必要なパッケージのインストール

sudo yum -y install gcc-c++ make openssl-devel
sudo yum -y install git

Node.jsのインストール(8.9.0)

wget https://nodejs.org/dist/v8.9.0/node-v8.9.0.tar.gz
tar -xf node-v8.9.0.tar.gz
cd node-v8.9.0
./configure
make
sudo make install

Node.jsパッケージをインストール用に /etc/sudoers を編集する

secure_path に/usr/local/bin を追加する

sudo su
visudo
Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin

expressインストール(グローバル)

sudo npm install -g express

expressコマンドを使用できるようにする(グローバル)

sudo npm install -g express-generator

Expressアプリの起動

アップしておいたzipを解凍

unzip sample.zip

DB接続用の環境変数を設定

/.bash_profile に追記

export NODE_DB_HOST=Aurora MySQLのエンドポイント
export NODE_DB_PORT=3306
export NODE_DB_NAME=example_db
export NODE_DB_USER=example_user
export NODE_DB_PASS=example_pass

反映

source ~/.bash_profile

Expressアプリを起動

cd sample
DEBUG=sample:* npm start

EC2インスタンスのセキュリティグループを修正

マネージメントコンソールから、対象のEC2インスタンスのセキュリティグループでポート3000を許可するように変更。
※もしくは新しいセキュリティグループを作成して、EC2インスタンスに追加で割り当てる。
※あくまでも動作確認用(本番運用時は 443 ポート以外は開けない)

動作確認

curl -v http://ec2インスタンスのパブリックDNS:3000/book

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-11-02 (木) 03:15:38 (2665d)