본문 바로가기
클라우드 및 인프라/네트워크

예상 트래픽 산정하기 (QPS와 RPS)

by 작은소행성 2024. 12. 23.

이 주제로 블로그를 작성한 이유 

MongoDB 에서 컬렉션을 생성할 때, 효율적인 데이터 설계와 시스템 안정성 확보하기 위해 예상 트래픽을 산정하는 과정을 거친다.

예상 트래픽을 통해 조회, 쓰기 요청의 비율을 파악할 수 있고

조회 트래픽이 많다면 적절한 인덱스를 설계해 조회 속도를 최적화할 수 있다. 

(그렇다고 인덱스를 많이 만들면 쓰기 성능이 저하되므로 트래픽 패턴에 따라 필요한 인덱스만 설정하는게 좋다. )

 

트래픽

트래픽이란 서버를 통해 최종 사용자에게 전달된 데이터의 양을 말한다. 

시스템을 설계할 때 트래픽을 예측하고 이에 적합한 설계를 하는것은 안정성과 성능을 보장하는데 중요하다. 

 

QPS RPS 개념

RPS 는 QPS 보다 더 상위 개념이다. (RPS  > QPS)

QPS(Queries Per Second)

  • 정의 : 초당 처리되는 쿼리(Query) 의 수 
  • 활용 : 주로 데이터베이스와 관련된 성능 지표로 사용됨
  • 목적 : 특정 초당 데이터베이스에서 얼마나 많은 조회/쓰기 쿼리 처리가 가능한지 

RPS(Requests Per Second) 

  • 정의 : 초당 처리되는 요청(Request) 의 수 
  • 활용 : 데이터베이스 뿐만 아니라 API 호출, 웹 서버 요청 등 모든 형태의 요청을 포함 
  • 목적 : 특정 초당 얼마나 많은 요청을 처리할 수 있는지, 예상 트래픽 증가에 따른 서버 용량 평가

 

트래픽을 산정하는 과정

QPS RPS를 기준으로 예상 트래픽을 산정하는 과정은 다음과 같다.

이 과정은 사용자의 활동 패턴, 시스템 구조, 서비스 유형에 따라 달라질 수 있다.

 

트래픽 산정의 기본 요소

트래픽을 예측하려면 다음 요소를 고려해야 한다.

  1. 사용자 수: 동시 접속 사용자(Concurrent Users)의 수
  2. 평균 요청 빈도: 사용자 한 명이 초당 또는 분당 발생시키는 요청 수
  3. 피크 시간(Peak Time): 사용자 활동이 가장 많은 시간대의 트래픽
  4. 트래픽 분포: 하루 동안 트래픽이 어떻게 분산되는지(예: 아침과 저녁 피크, 낮은 야간 활동 등)

 

트래픽 산정 공식

(1) QPS = 사용자 수 × 평균 요청 수

  • 예제:
    • 동시 접속 사용자 수: 1,000명
    • 1명의 사용자당 초당 0.2개의 요청
    • QPS = 1,000 × 0.2 = 200 QPS

(2) RPS = 사용자 수 × 평균 요청 빈도 × API 요청 수

  • 예제:
    • 동시 접속 사용자 수: 1,000명
    • 초당 0.1개의 요청
    • API 요청: 3개의 서비스 호출
    • RPS = 1,000 × 0.1 × 3 = 300 RPS

 

예상 트래픽 계산 단계

  1. 동시 사용자 수 추정
    • 최대 동시 접속 사용자를 추정한다.
      예: 앱의 활성 사용자가 10만 명이고, 피크 타임의 10%가 동시 접속한다면, 10,000명.
  2. 평균 요청 빈도 측정
    • 사용자 활동에 따라 초당 요청 빈도를 추정한다.
      예: 한 사용자가 초당 0.1회 요청(10초에 1회 클릭).
  3. 서비스 호출 수 고려
    • 한 번의 요청이 내부적으로 몇 개의 API를 호출하는지 분석한다.
      예: 검색 요청이 데이터 조회, 사용자 권한 확인, 로깅 API 호출을 포함 → 3회 호출.
  4. 트래픽 분포 예측
    • 피크 시간과 비피크 시간의 트래픽 비율을 나눈다.
      예: 하루 총 요청 1,000만 건, 피크 시간에 50% 발생 → 500만 건/피크 시간.

 

도구 활용

트래픽을 산정할 때 실시간 데이터를 활용하면 더 정확히 예측할 수 있다.

  • 로그 분석: Google Analytics, ELK Stack(Kibana)로 사용자 요청 패턴 확인
  • 부하 테스트: JMeter, Locust 같은 도구로 예상 QPS/RPS를 시뮬레이션
  • 모니터링: Prometheus, Grafana로 실제 트래픽 추적 및 예측

 

트래픽 산정은 동시 사용자 수, 요청 빈도, 서비스 구조에 따라 유동적이다.
예상 트래픽을 기반으로 데이터베이스와 서버를 최적화하고 트래픽 증가에도 유연하게 대응할 준비를 해두는 것이 좋다.

 

반응형