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

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

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

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

대규모 트래픽 처리를 위한 부하테스트 입문/실전

부하 테스트의 기본 개념

취준생이 대규모 트래픽 처리 경험을 쌓는 방법 ?!
현업에서 부하 테스트를 왜 할까?
처리량(Throughput), 지연 시간(Latency)
부하 테스트 툴 선정 (k6)
[실습] EC2에 간단한 API 서버 셋팅하기
[실습] EC2에 부하 테스트 툴 셋팅하기
[실습] 내가 구성한 백엔드 서버는 1초당 몇 개의 요청을 견뎌낼 수 있을까?
[실습] 사용하지 않는 EC2 종료하기

부하 테스트를 통해 ‘병목 지점’ 진단하기

병목 지점 (
부하 테스트의 전체 흐름
부하 테스트 시 주의점
[실습] 부하 테스트 할 인프라 구성을 그림으로 파악하기
[실습] AWS EC2 셋팅하기
[실습] AWS RDS 셋팅하기
[실습] AWS ELB 생성하기
[실습] EC2에 백엔드 서버(Spring Boot) 셋팅하기
[실습] 내가 구성한 인프라는 1초당 몇 개의 요청을 견뎌낼 수 있을까?
모니터링(Monitoring), 메트릭(Metric)
CPU, 메모리(Memory), 디스크(Disk)
[실습] EC2 모니터링 셋팅하기
[실습] RDS 모니터링 셋팅하기
[보충 강의] ELB의 CPU, 메모리는 왜 측정하지 않나요?
[실습] 각 서버의 CPU, 메모리를 한 눈에 볼 수 있도록 셋팅하기
[실습] 부하 테스트를 통해 병목 지점 진단하기
[보충 강의] 실시간으로 CPU와 메모리를 관측하는 방법

병목 지점을 해결해 성능 개선하기

가용성(Availability), 시스템 이중화
수평적 확장, 수직적 확장, 캐싱
트래픽 증가에 따른 시스템 설계 및 확장 방법
[실습] 병목 지점(DB) 해결하기
[실습] 병목 지점(웹 애플리케이션 서버) 해결하기
부하 테스트의 전체 흐름 다시 점검
← 블로그 목록으로 돌아가기

[실습] EC2에 간단한 API 서버 셋팅하기

JSCODE 박재성
JSCODE 박재성
2026. 04. 01.
author
JSCODE 박재성
category
부하테스트
createdAt
Dec 6, 2025 03:41 AM
isPublic
isPublic
series
대규모 트래픽 처리를 위한 부하테스트 입문/실전
slug
exercise-setup-simple-api-server-on-ec2
type
post
updatedAt
Apr 1, 2026 09:00
🧑🏻
AWS에 초점을 맞춘 강의가 아니기 때문에 EC2, RDS, ELB에 대한 디테일한 설명은 생략할 예정이다. 혹시 AWS에 대한 기본기를 다지고 싶다면 아래 강의를 추천한다. 비전공자도 이해할 수 있는 AWS 입문/실전 (https://inf.run/73afg)

✅ EC2 인스턴스 생성하기

notion image
notion image
notion image
notion image
notion image
notion image
 
 

✅ 간단한 API 서버 셋팅하기

🧑🏻‍🏫
참고) 이번 실습에서는 Node 기반의 Express 서버를 활용하지만, 이후 실습에서는 Spring Boot를 활용해 테스트를 할 예정이다.
  1. Node 설치
    1. 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 # 잘 설치됐는 지 확인하기 $ node -v
       
  1. Express 서버 셋팅하기
    1. 기본 프로젝트 셋팅
      $ mkdir my-server $ cd my-server $ npm init # 의존성 관리 파일 생성 $ npm i express # express 라이브러리 설치
       
      API 로직 작성
      app.js
      const express = require('express'); const app = express(); const port = 80; 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}`) })
       
  1. pm2 설치하기
    1. Node 기반의 서버는 pm2를 활용해서 많이 실행시킨다. 서비스를 운영하는 데 있어서 유용한 기능들을 pm2가 많이 가지고 있기 때문이다.
      $ npm i -g pm2
 
  1. API 서버 실행시키기
    1. $ pm2 start app.js
       
  1. 잘 잘동하는 지 확인하기
    1. notion image
 
📎
이 글은 대규모 트래픽 처리를 위한 부하테스트 입문/실전 강의의 수업 자료 중 일부입니다.