ec2 인스턴스에 node.js 올리기
ssh로 ec2 인스턴스에 접속
[ec2-user@ip-172-31-40-225 ~]$ whoami
ec2-user
nvm 바이너리를 이용하여 원하는 번전의 node.js를 스위칭하며 사용가능
https://github.com/nvm-sh/nvm
[ec2-user@ip-172-31-40-225 ~]$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 15916 100 15916 0 0 48441 0 --:--:-- --:--:-- --:--:-- 48376
=> Downloading nvm as script to '/home/ec2-user/.nvm'
=> Appending nvm source string to /home/ec2-user/.bashrc
=> Appending bash_completion source string to /home/ec2-user/.bashrc
=> Close and reopen your terminal to start using nvm or run the following to use it now:
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
[ec2-user@ip-172-31-40-225 ~]$ export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
VM_DIR/nv[ec2-user@ip-172-31-40-225 ~]$ [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
nvm을 깔았으면 앞으로 어떤 버전을 사용할 지 알려워야 한다.
nvm install 명령어를 사용해서 설치한다.
lts -> 안정된 릴리즈 버전
[ec2-user@ip-172-31-40-225 ~]$ nvm install --lts
Installing latest LTS version.
Downloading and installing node v18.15.0...
Downloading https://nodejs.org/dist/v18.15.0/node-v18.15.0-linux-x64.tar.xz...
################################################################################################# 100.0%
Computing checksum with sha256sum
Checksums matched!
Now using node v18.15.0 (npm v9.5.0)
Creating default alias: default -> lts/* (-> v18.15.0)
nvm use 명령어를 사용해서 스위칭한다.
[ec2-user@ip-172-31-40-225 ~]$ nvm use --lts
Now using node v18.15.0 (npm v9.5.0)
[ec2-user@ip-172-31-40-225 ~]$ node -v
v18.15.0
[ec2-user@ip-172-31-40-225 ~]$ npm -v
9.5.0
[ec2-user@ip-172-31-40-225 ~]$ mkdir app
[ec2-user@ip-172-31-40-225 ~]$ cd app
npm을 명령어를 통해 현재 폴더에 express 패키지 설치한다.
[ec2-user@ip-172-31-40-225 app]$ npm i -S express
added 57 packages in 5s
7 packages are looking for funding
run `npm fund` for details
npm notice
npm notice New minor version of npm available! 9.5.0 -> 9.6.2
npm notice Changelog: https://github.com/npm/cli/releases/tag/v9.6.2
npm notice Run npm install -g npm@9.6.2 to update!
npm notice
[ec2-user@ip-172-31-40-225 app]$ ls
node_modules package-lock.json package.json
[ec2-user@ip-172-31-40-225 app]$ vi index.js
[ec2-user@ip-172-31-40-225 app]$ cat index.js
const express = require('express')
const app = express()
app.get('', async (req, res) => {
res.send('Hello World\n')
})
app.listen(3000, () => {
console.log('App is listening 3000 port')
})
[ec2-user@ip-172-31-40-225 app]$ node index.js
App is listening 3000 port
다른 터미널
[ec2-user@ip-172-31-40-225 ~]$ curl http://localhost:3000
Hello World
보안그룹 인바운드 규칙에 3000포트 허용하도록 설정한다.

외부 접속 결과








