간단한 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 서버가 정상 작동되는지 확인할 수 있습니다.

Categories:

Updated: