$ sudo su
$ apt-get update && /
apt-get install -y ca-certificates curl gnupg && /
mkdir -p /etc/apt/keyrings && /
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg && /
NODE_MAJOR=20 && /
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list && /
apt-get update && /
apt-get install nodejs -y
이제 본격적으로 서버를 EC2에 올려보는 단계입니다.
이번 글에서는 Express로 만든 Node.js 서버를 EC2 인스턴스에 배포해보겠습니다.
이 글은 리눅스나 Express 자체를 배우는 게 아니라,
이미 만들어진 Express 서버를 EC2에서 실행하는 실습입니다.
명령어나 코드 설명은 최소한으로 하고, 흐름 중심으로 설명할게요.
✅ 1. Node.js 설치하기 (Ubuntu 환경)
Express 서버는 Node.js 환경에서 돌아가므로, 먼저 EC2 인스턴스(Ubuntu)에 Node.js를 설치해야 합니다.
공식 Node.js 설치 스크립트를 사용하면 최신 버전을 쉽게 설치할 수 있어요.
✅ 2. Node.js 설치 확인
설치가 끝났다면, 다음 명령어로 정상 설치됐는지 확인해보세요.
$ node -v
버전 번호가 출력되면 성공입니다.
✅ 3. GitHub에서 Express 프로젝트 가져오기
이제 샘플 Express 서버를 GitHub에서 clone합니다.
$ git clone https://github.com/JSCODE-EDU/ec2-express-sample
$ cd ec2-express-sample
$ npm i
위 명령어로 프로젝트 디렉토리를 내려받고, 필요한 패키지를 설치합니다.
✅ 4. .env 파일 직접 만들기
.env 파일은 일반적으로 Git에 올리지 않는 민감한 설정 파일입니다.
그래서 직접 EC2 인스턴스 안에서 만들어주는 게 가장 간단합니다.
.env 파일
DATABASE_NAME=my_database
✅ 5. pm2로 서버 실행하기
Node.js로 만든 서버는 터미널을 닫으면 꺼집니다.
이를 방지하기 위해, 프로세스를 백그라운드에서 관리해주는 pm2를 사용합니다.
$ sudo npm i -g pm2
$ sudo pm2 start app.js
이렇게 하면 서버가 EC2 인스턴스에서 계속 실행되는 상태가 됩니다.
✅ 6. 브라우저에서 접속해보기
이제 EC2 인스턴스의 탄력적 IP로 접속해봅니다.
- 브라우저 주소창에 http://<탄력적 IP> 입력
- 아래처럼 "Hello from Express" 메시지가 보이면 성공!