Skip to content

EC2 (ubuntu) node 설치 및 초기 환경설정

joohongpark edited this page Oct 23, 2022 · 1 revision

설치

AWS 공식홈페이지에서 제공하는 가이드는 다음과 같습니다. node를 직접 설치하지 않고 nvm (node version manager)를 설치하여 node를 설치하는 방식입니다.

$> curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
$> . ~/.nvm/nvm.sh
$> nvm install --lts

정상적으로 설치되었으면 node를 사용할 준비가 된 것입니다.

$> node -v
v16.16.0
$> npm -v
8.11.0

PM2 설치

PM2란?

EC2에서 node 앱을 구동하는 방법은 여러가지가 있지만 저는 pm2를 사용하여 백앤드 앱을 실행하기로 했습니다.

pm2는 node 기반 앱의 프로세스를 실행하고 관리할 수 있는 앱입니다. pm2의 기능은 다음과 같습니다.

  • node 앱을 데몬으로 실행 및 관리
    • 앱 리소스 파악
    • 앱 상태 확인
    • 앱 로그 확인
  • 앱 클러스터링 및 무중단 배포 등등…

PM2 설치

PM2는 글로벌 모듈로 설치합니다.

$> npm install -g pm2@latest

80 포트

EC2 인스턴스 이미지로 우분투를 사용하고 있으므로 80 포트는 sudo 계정이 아니면 사용이 불가능합니다.

그래서 80 포트를 사용하기 위한 여러가지 방법이 있습니다. EC2에서 80 포트가 아닌 다른 포트를 열어두고 EC2 외부에서 포트포워딩을 하거나, EC2 내부에서 포트포워딩을 하는 방법이 있습니다.

저는 EC2 내부에서 포트포워딩을 하는 방법을 사용하였으며, iptables이라는 우분투(리눅스) 기본 툴을 사용하였습니다.

Nginx 제거 혹은 중지

EC2 우분투는 기본적으로 Nginx가 설치되어 있고, 실행되는 상태입니다. 그래서 EC2의 80 포트로 접근하면 Nginx 웰컴페이지가 뜹니다.

80 포트를 다른 용도로 사용하기 위해 Nginx를 제거하거나 중지합니다. (저는 제거했습니다.)

# 설정 파일을 제외한 모든 파일 제거 
$> sudo apt-get -y remove nginx nginx-common 

# 모든 파일 제거 
$> sudo apt-get -y purge nginx nginx-common

# 삭제 후 nginx 에서 사용하는 의존 모듈 삭제하기 
$> sudo apt-get -y autoremove

8080:80 연결

80 포트를 사용하는 방법 중 여러가지가 있지만 간단하게 진행하기 위해 80 포트 외에 다른 포트 (예: 8080)를 열 때 외부에서 8080 포트에 접근하도록 포르 포워딩을 합니다.

iptables라는 리눅스 유틸리티를 이용하면 포트 포워딩을 할 수 있습니다.

# 80포트를 8080포트로 포워딩
$> sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

# 포트포워딩 현황 확인
$> iptables -t nat -L

이렇게 하면 EC2에서 8080 포트를 열면 외부에서 80 포트로 해당 서비스에 접속할 수 있습니다.