0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【AWS】EC2でExpressアプリケーションを動かす

Last updated at Posted at 2021-02-11

はじめに

趣味でAWSを触ってみようと思いその時調べたことを一通りまとめておこうと思います

環境

AWS側

種類 バージョン
Linux/UNIX Amazon Linux 2 AMI
Git 2.23.3
nvm 0.37.2
Node 14.15.5
  • nvm(Node Version Manager) ・・・ Nodeのバージョンを手軽に変更できるもの

ローカル

種類 バージョン
Windows Pro
Tera Term 4.97

インスタンスの作成

今回はAmazon Linux 2を選択します
ap-northeast-1.console.aws.amazon.com_ec2_v2_home_region=ap-northeast-1.png
デフォルトのまま「確認と作成」へ
ap-northeast-1.console.aws.amazon.com_ec2_v2_home_region=ap-northeast-1 (1).png
確認へ行くとセキュリティを強化してくださいと出ているので、セキュリティグループの編集を選択して変更します
ap-northeast-1.console.aws.amazon.com_ec2_v2_home_region=ap-northeast-1 (2).png
SSHでアクセスできるIPを自宅からだけに設定します
ソースのプルダウンからマイIPを選択して確認と作成を選択
3.png

セキュリティグループに先ほど設定した自分のIPが表示されているば大丈夫です
そのまま起動でインスタンスを起動
4.png

EC2に接続

インスタンス一覧から先ほど作成したものを選択します
インスタンスの状態が実行中になっていれば詳細のパブリックIpv4アドレスに接続先アドレスが出てきます
5.png
Tera Term(など)に先ほどのIPアドレスを入れて接続して下記のように表示されれば接続成功です


       __|  __|_  )
       _|  (     /   Amazon Linux 2 AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-2/
[ec2-user@ip-XXX-XXX-XXX-XXX ~]$

タイムゾーンの変更

タイムゾーンが初期設定だとUTCになっているので日本時間に変更する必要があります

clockファイルの変更

$ sudo vim /etc/sysconfig/clock

ZONE="UTC"
UTC=true
↓
ZONE="Japan"
UTC=true

iを押してインサートモードにしてUTCの部分をJapanに変更
完了したらEscを押し、:wqで保存して終了

シンボリックリンクをはる

$ sudo ln -sf /usr/share/zoneinfo/Japan /etc/localtime

ここまで完了したらシステムを再起動させてください
再起動後下記のようになっていれば完了

$ date
Thu Feb 11 15:30:00 JST 2021

Gitのインストール

nvmをインストールするためにインストールします

$ sudo yum install git

nvmのインストール

$ cd ~/
$ git clone https://github.com/nvm-sh/nvm.git .nvm
$ cd ~/.nvm
$ git checkout v0.37.2
$ . ./nvm.sh

.bash_profileを編集

$ cd ~/
$ sudo vim .bash_profile

.bash_profile ・・・ ログイン時に1回実行されるファイル
下記のように#nvm以降を追加

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/.local/bin:$HOME/bin

export PATH

# nvm ここから下記を追加
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"

追加し保存して終了したら下記コマンドでインストールするNodeのバージョン一覧を表示

$ nvm ls-remote
        v0.1.14
        v0.1.15
        v0.1.16
        ~~~~~~~
       v14.15.3   (LTS: Fermium)
       v14.15.4   (LTS: Fermium)
->     v14.15.5   (Latest LTS: Fermium)
        v15.0.0
        v15.0.1

現在v14.15.5がLTSなので14.15.5をインストール

nvm install 14.15.5

インストールが完了したら確認

$ node -v
v14.15.5

Express Generatorのインストール

Expressアプリケーションの雛形を簡単に生成できるものになります

$ npm install -g express-generator

インストールが成功したら下記コマンドでアプリを作成

$ express -e app_name(アプリ名)
$ cd app_name(アプリ名)
$ npm install

必要パッケージのインストールが終了したら下記コマンドで起動

$ npm start
> app_name(アプリ名)@0.0.0 start /home/ec2-user/app_name(アプリ名)
> node ./bin/www

インバウンドルールの変更

現在SSHポート(22)しか空いていないのでNodeアプリケーションで使用しているポート(3000)を許可する必要があります
インスタンス一覧のセキュリティからセキュリティグループを選択して3000のTCPを追加してください
6.png

アクセス

インスタンス一覧のパブリックIPv4アドレスに:3000を追加してブラウザでアクセスして下記のような画面が出れば成功
2021-02-11 (1).png

最後に

これで一通りアプリケーションにアクセスできるはずです

次は独自ドメイン+SSLでアクセスできるまでを書きたいなと思います

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?