JSCODE Logo
JSCODE 박재성JSCODE 제이온JSCODE 시니
온라인 강의프로그래밍 과외책/전자책무료 강의
유튜브블로그
후기
완강 후기 이벤트블로그 리뷰 이벤트AWS SAA 합격 후기 이벤트
회사명 : JSCODE대표 : 박재성사업자 등록번호 : 244-22-01557통신판매업 : 제 2023-인천미추홀-0381 호

서울특별시 구로구 경인로 20가길 11(오류동, 아델리아)

Copyright ⓒ 2026 JSCODE - 최상위 현업 개발자들의 프로그래밍 교육 All rights reserved.

이용약관개인정보처리방침

비전공자도 이해할 수 있는 AWS 입문

백엔드 API 서버 배포하기 (EC2)

배포(Deployment)란
EC2란? / EC2를 왜 배울까? / 현업에서 EC2는 주로 언제 쓸까?
[실습] 1. 리전(Region) 선택하기
[실습] 2. EC2 셋팅하기 - 기본 설정
[실습] 3. EC2 셋팅하기 - 보안그룹 설정
[보충 강의] IP와 Port의 개념
[실습] 4. EC2 셋팅하기 - 스토리지 구성
[실습] 5. EC2 접속하기
[실습] 6. 탄력적 IP 연결하기
[실습] 7. Express 서버를 EC2에 배포하기
[보충 강의] 7-2.
비용 나가지 않게 EC2 깔끔하게 종료하기

도메인 연결하기 (Route 53)

Route 53이란? / DNS란? / 현업에서의 Route53 활용 여부
[실습] 1. Route53에서 도메인 구매
[실습] 2. Route53의 도메인을 EC2에 연결하기
[보충 강의] 무료로 도메인 구매하는 방법

HTTPS 연결하기 (ELB)

ELB란? / TLS, SSL과 HTTPS
ELB를 활용한 아키텍처 구성
[실습] 1. ELB 셋팅하기 - 기본 구성
[실습] 2. ELB 셋팅하기 - 보안그룹
[실습] 3. ELB 셋팅하기 - 리스너 및 라우팅 / 헬스 체크
[실습] 4. ELB에 도메인 연결하기
[실습] 5. HTTPS 적용을 위해 인증서 발급받기
[실습] 6. ELB에 HTTPS 설정하기
비용 나가지 않게 ELB 깔끔하게 종료하기
[보충 강의] HTTPS 연결 시 ELB vs Nginx, Certbot
[보충 강의] Nginx, Certbot을 활용해 HTTPS 연결하기

데이터베이스 연결하기 (RDS)

RDS란? / RDS를 왜 사용하는걸까? / 현업에서의 RDS
RDS를 활용한 아키텍처 구성
[실습] 1. RDS 생성하기
[실습] 2. 보안그룹 설정하기
[실습] 3. 파라미터 그룹 추가하기
[실습] 4. RDS에 접속하기
[실습] 5. Express 서버에 RDS 연결하기
[실습] 5-2. Spring Boot 서버에 RDS 연결하기
비용 나가지 않게 RDS 깔끔하게 종료하기

파일 및 이미지 업로드 (S3)

S3란? / S3를 왜 사용하는걸까? / 현업에서 S3를 많이 사용할까?
S3를 활용한 아키텍처 구성
[실습] 1. S3 버킷 생성하기
[실습] 2. S3에 파일 업로드 할 수 있도록 IAM에서 액세스 키 발급받기
[실습] 3. S3를 활용해 Express 서버에 이미지 업로드 기능 구현하기
[실습] 3-2. S3를 활용해 Spring Boot 서버에 이미지 업로드 기능 구현하기
비용 나가지 않게 S3 깔끔하게 종료하기

웹 페이지 배포하기 (S3, Cloudfront)

웹 서비스를 배포할 때 사용하는 S3, CloudFront
S3, CloudFront를 활용한 아키텍처 구성
[실습] 1. S3 버킷 셋팅하기
[실습] 2. S3에 업로드하기 / 웹 호스팅 설정하기
[실습] 3. CloudFront 생성하기
[실습] 4. 도메인 연결하기, HTTPS 적용하기
비용 나가지 않게 S3, CloudFront 깔끔하게 종료하기

기타

[보충 강의] 혹시나 비용 나가지 않는 지 체크하는 방법
[보충 강의] 사용 중인 Public IPv4 확인하는 방법
← 블로그 목록으로 돌아가기

[실습] 7. Express 서버를 EC2에 배포하기

JSCODE 박재성
JSCODE 박재성
2026. 03. 03.
author
JSCODE 박재성
category
AWS
createdAt
Nov 30, 2025 12:52 PM
isPublic
isPublic
series
비전공자도 이해할 수 있는 AWS 입문
slug
deploy-express-server-to-ec2
type
post
updatedAt
Mar 3, 2026 09:00
❗
리눅스와 Express에 대한 수업이 아니므로, 리눅스 명령어나 Express 코드에 대한 자세한 설명은 생략한다.
 

✅ 1. Ubuntu 환경에서 Node.js 설치하는 법

Ubuntu 환경에서 Express 서버를 실행시키려면 Node.js가 설치되어 있어야 한다. 그래서 Ubuntu에 우선 Node.js를 설치해보자.
distributions
nodesource • Updated Jun 10, 2026
$ 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
 
 

✅ 2. 잘 설치됐는 지 확인하기

$ node -v
notion image
 

✅ 3. Github으로부터 Express 프로젝트 clone하기

ec2-express-sample
JSCODE-EDU • Updated Jan 14, 2024
$ git clone https://github.com/JSCODE-EDU/ec2-express-sample $ cd ec2-express-sample $ npm i
 

✅ 4. .env 파일 직접 만들기

.env와 같은 민감한 파일은 Git으로 버전 관리를 하지 않는게 일반적이다. 따라서 .env 파일은 별도로 EC2 인스턴스에 올려주어야 한다. 하지만 .env 파일을 EC2 인스턴스에 올리는 작업보다는, .env 파일을 직접 만드는 게 훨씬 간단하다.
.env
DATABASE_NAME=my_database
 

✅ 5. pm2 설치해서 서버 실행시키기

Node 기반의 서버는 pm2를 활용해서 많이 실행시킨다. 서비스를 운영하는 데 있어서 유용한 기능들을 pm2가 많이 가지고 있기 때문이다.
$ sudo npm i -g pm2 $ sudo pm2 start app.js
 
 

✅ 6. 잘 작동하는 지 확인하기

notion image
 
📎
이 글은 비전공자도 이해할 수 있는 AWS 입문/실전 강의의 수업 자료 중 일부입니다.