[Aws]EC2 #7-1 : Express 서버 배포

2025. 4. 7. 00:25·aws
$ 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" 메시지가 보이면 성공!

브라우저 접속

 

'aws' 카테고리의 다른 글
  • [Aws]Route 53 #1 : Route 53이란? / DNS란?
  • [Aws]EC2 #7-2 : Spring Boot 서버 배포
  • [Aws]EC2 #6 : 탄력적 IP 연결하기
  • [Aws]EC2 #5 : 접속
당훈이
당훈이
당훈이 님의 블로그 입니다.
  • 당훈이
    당훈IT
    당훈이
  • 전체
    오늘
    어제
    • 분류 전체보기 (40)
      • spring (7)
      • vue.js (8)
      • docker (1)
      • javascript (1)
      • aws (21)
      • database (1)
        • oracle (1)
      • nuxt (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    vue3
    nuxt fetch
    스프링 배포
    aws route53
    ec2 domain
    EC2
    ec2 route53
    nuxt usefetch
    AWS ELB
    ec2 nodejs
    스프링부트
    ec2 spring 배포
    route53
    aws dns
    AWS EC2
    spring boot
    nuxt dedupe
    aws 스프링
    aws domain
    nuxt cache
    중복요청
    스프링
    elb
    aws spring
    nodejs 배포
    nuxt vue
    AWS
    배포
    Spring
    Vue
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
당훈이
[Aws]EC2 #7-1 : Express 서버 배포
상단으로

티스토리툴바