간단한 AWS EC2 서버 생성 및 Node.js 기반 Express API 프로젝트 구축 방법
간단한 AWS EC2 서버 생성 및 제거 방법
간단한 AWS EC2 서버 생성 방법
AWS > EC2 검색 > 인스턴스 시작 버튼 > 이름 : api-server 입력 > Quick Start : Ubuntu 운영체제 선택 > 인스턴스 유형 : t2.micro (프리 티어 사용 가능) 확인 > 키 페어(로그인) : 키 페어 없이 계속 진행 > 방화벽(보안 그룹) : 다음에서 SSH 트래픽 허용 (0.0.0.0/0), 인터넷에서 HTTP 트래픽 허용 선택 (80번 포트로 서버와 통신 가능) > 인스턴스 시작 > 인스턴스 상태가 대기 중에서 실행 중으로 변경되면 서버 연결 가능
키 페어를 생성하는 것이 좋지만, 잠시 테스트 후 삭제할 서버이므로 키 페어 없이 생성하였습니다.
SSH 트래픽 허용도 보안상 0.0.0.0/0이 아니라 내 IP만 허용하는 것이 권장됩니다.
AWS 콘솔에서 EC2 서버 접속 방법
AWS > EC2 검색 > 좌측 인스턴스 메뉴 > 우측 인스턴스 목록에서 EC2 서버 선택 > 상단 연결 버튼 > Ec2 인스턴스 연결 탭 > 우측 하단 연결 버튼
EC2 서버 종료 방법
AWS > EC2 검색 > 좌측 인스턴스 메뉴 > 우측 인스턴스 목록에서 EC2 서버 선택 > 상단 인스턴스 상태 버튼 > 인스턴스 종료(삭제) > 종료(삭제)
사용하지 않는 EC2 서버는 비용이 많이 나갈 수 있으니 종료시켜주는 것이 좋습니다.
EC2 서버에 Node.js 기반 Express 프로젝트 구축 방법
루트 권한으로 변경
sudo su
Node.js 설치
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 | 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" | tee /etc/apt/sources.list.d/nodesource.list && \
apt-get update && \
apt-get install nodejs -y
Express 서버를 실행하려면 Node.js가 설치되어 있어야 합니다.
Express는 Node.js 런타임 위에서 실행되는 웹 프레임워크이기 때문입니다.
Node.js 정상 설치 확인
node -v
설치된 노드 버전명이 출력되어야 합니다.
Express 프로젝트 생성
mkdir 프로젝트명
cd 프로젝트명
npm init 또는 npm init -y
# Node.js 프로젝트 정보 및 의존성 패키지를 관리하는 package.json 파일 생성
# 프로젝트명, 버전, 설명, 진입 파일 등 설정은 기본값을 사용할 경우 전부 Enter를 누르면 됨
npm i express
# express 프레임워크 설치
Express API 로직 작성
vi app.js
위 명령어로 app.js 파일을 생성하고 아래와 같이 작성합니다.
// Express 프레임워크를 불러와 변수에 할당
const express = require('express');
// Express 애플리케이션 객체 생성
const app = express();
// 포트번호 세팅
const port = 80;
// /boards GET 요청을 처리하는 API 엔드포인트 정의
app.get('/boards', (req, res) => {
res.send([
{ id: 1, title: '첫 번째 게시글', content: '첫 번째 게시글 내용입니다.' },
{ id: 2, title: '두 번째 게시글', content: '두 번째 게시글 내용입니다.' },
{ id: 3, title: '세 번째 게시글', content: '세 번째 게시글 내용입니다.' }
]);
})
// 서버 실행
app.listen(port, () => {
// 서버 실행이 완료되었을 때 실행되는 코드
console.log(`Example app listening on port ${port}`)
})
80 포트로 실행된 Express 서버에 /boards GET 요청 시,
객체 배열을 JSON 형식으로 반환하는 API 로직입니다.
API 로직 확인
cat app.js
파일 내용을 출력하여 잘 작성되었는지 확인합니다.
PM2 설치
npm i -g pm2
Node.js 기반 프로젝트를 실행시키고 관리하기 위해서 PM2 패키지를 설치합니다.
Express API 서버 실행
pm2 start app.js
프로젝트 경로에서 PM2를 이용하여 Express 서버를 실행시킵니다.
Express API 호출
http://EC2서버PublicIP/boards
웹 브라우저에서 위 URL로 접근하면 Express API 서버가 정상 작동되는지 확인할 수 있습니다.