AWS

【AWS】EC2に静的ファイルをデプロイしてnodeで公開する手順

個人的な備忘録としてEC2に静的ファイルをデプロイした手順をまとめます。

EC2インスタンスとhtml+javascriptのソースコードはすでに作成済みである前提です。

EC2の設定

EC2のAMIはAmazon Linux 2を選択します

また、インバウンドでSSH(22)・HTTP(80)・カスタム(3000)ポートを開放しておきます

SSH接続

WindowsからSSHで接続を行います

ssh接続に使うpemファイルはドキュメントフォルダに格納しました。Usersの配下のフォルダでないと、権限関係のよくわからないエラーになったためです。

pemファイルのディレクトリに移動して、sshコマンドを実行します。下記は適宜変更する必要があります。

cd C:\Users\username\Documents\pem
ssh -i "test.pem" ec2-user@xxx.xxx.xxx.xxx

Windowsのファイアウォール設定

インバウンドの設定でSSH(22)を設定しているのに、接続できない場合がありました。原因を調べていたところWindowsのファイアウォールで送信規則にSSHのポートを開放していなかったためでした。。。

Node.js のインストール

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

sudo yum update
## 必要なパッケージのインストール
sudo yum -y install git gcc-c++
## nvmをgithubからclone
git clone https://github.com/creationix/nvm.git ~/.nvm

bash_profileの編集

nvmコマンドのパスを通すために、bash_profileを編集

vi .bash_profile

下記を追記して保存

viの使い方:iでINSERTモード、保存する際はescshift+ZZで完了

source ~/.nvm/nvm.sh

nvmコマンドを叩いて、パスが通ったか確認します

エラーになる場合は一度exitで抜けてから再度ssh接続し、確認します

node.jsのインストール

## インストール可能なバージョンを表示
nvm ls-remote

## node.jsのインストール
nvm install v16.15.1

// バージョンの確認
node -v

ソースコードをサーバにデプロイ

ソースコードはローカルですでに存在している前提です

githubからcloneするか、ローカルからコピーしますが、今回はローカルからscpコマンドでファイルをコピーします

pemファイルのディレクトリに移動し、scpコマンドを実行します。-rでディレクトリごとコピーすることができます。

cd C:\Users\username\Documents\pem
scp -i "test.pem" -r コピーしたいディレクトリ ec2-user@xxx.xxx.xxx.xxx:\home\ec2-user\

webサーバの設定(http-server)

http-serverというモジュールをインストールして使う方法です

https://www.npmjs.com/package/http-server

プロジェクトのディレクトリに移動し、3000ポートを指定してhttp-serverコマンドを実行します

cd project

## http-serverのインストール
npm i -g http-server

## 3000ポートで公開する
http-server -p 3000 -s

上記を実行した際に、「permission denied」と表示されました。node-module内のhttp-serverの権限設定に不備があったようです。

権限の変更をnode-module内に対して行いました。chmodコマンドで-Rを付けると、ディレクトリ内全体に対して適用されます。

chmod -R 755 ./node-module

これでアプリの公開設定が完了しました。ブラウザのURLにパブリックIPアドレス:3000でアクセスするとアクセスできることが確認できます。

エンジニアの転職ならこれ!

【第二新卒向け】マイナビジョブ20's

マイナビジョブ20'sは、20代・第二新卒・既卒向けの転職エージェントです。

▼こんな方におすすめ
・はじめて転職しようと思っている
・転職できるだけのスキルが自分にあるか不安
・手厚いサポートを受けたい

【フリーランス向け】 Midworks

Midworksは豊富な案件と「フリーランス」と「正社員」の良いとこ取りをした働き方を実現する手厚い保障が特徴です。

▼こんな方におすすめ
・現在正社員でフリーランスになろうか悩んでいる
・フリーランスとして働いているが、先行きが不安がある  (安定的な案件確保や保障など)
・自分の市場価値を知りたい、見合った案件で参画したい
・今後のキャリアビジョンを踏まえて案件を選びたい