트래픽 증가 대비 전략 — 서비스 확장을 위한 기본 구조

조회수 25

서비스 초기에는 단일 서버로도 충분하지만, 트래픽이 증가하면 구조적인 대응이 필요해진다.
단순히 서버 스펙을 올리는 것만으로는 한계가 있고, 일정 수준 이후에는 아키텍처 자체를 확장해야 한다.

트래픽 대응 전략은 크게 세 가지 축으로 나뉜다.
캐시(Cache), 분산 처리(Scale Out), 병목 제거(Optimization)다.

1. 캐시 도입

트래픽 대응에서 가장 효과적인 방법 중 하나는 캐시다.
자주 조회되는 데이터를 매번 DB에서 가져오지 않고 메모리에 저장해 응답 속도를 높인다.

대표적인 캐시 대상은 다음과 같다.

  • 게시글 목록
  • 공지사항
  • 사용자 프로필
  • 통계 데이터

Redis나 Memcached를 사용하면 조회 부하를 크게 줄일 수 있다.
특히 읽기 요청이 많은 서비스에서는 DB 부하의 상당 부분을 캐시가 흡수한다.

flowchart TD A["Client"] B["Application Server"] C["Cache (Redis)"] D["Database"] A --> B B --> C C --> B B --> D

캐시는 응답 속도를 빠르게 하지만, 캐시 무효화 전략이 반드시 필요하다.
데이터 변경 시 캐시를 갱신하거나 TTL을 설정해 일관성을 유지해야 한다.

2. 수평 확장(Scale Out)

트래픽이 지속적으로 증가하면 서버를 여러 대로 분산하는 구조가 필요하다.
이를 수평 확장(Scale Out)이라고 한다.

로드 밸런서를 통해 여러 서버로 요청을 분산하면 처리량을 늘릴 수 있다.

flowchart TD A["Client"] B["Load Balancer"] C["App Server 1"] D["App Server 2"] E["App Server 3"] F["Database"] A --> B B --> C B --> D B --> E C --> F D --> F E --> F

AWS 환경에서는 다음 서비스를 자주 사용한다.

  • Elastic Load Balancer
  • Auto Scaling
  • EC2

이 구조를 사용하면 트래픽이 증가할 때 자동으로 서버를 확장할 수 있다.

3. 데이터베이스 부하 분산

트래픽 증가 시 가장 먼저 병목이 발생하는 곳은 DB다.
읽기와 쓰기를 분리하면 DB 부하를 줄일 수 있다.

대표적인 구조는 Master–Replica 구조다.

flowchart TD A["Application"] B["Master DB (Write)"] C["Replica DB 1 (Read)"] D["Replica DB 2 (Read)"] A --> B A --> C A --> D

쓰기 작업은 Master에서 처리하고, 조회 작업은 Replica에서 처리한다.
읽기 트래픽이 많은 서비스에서 효과적인 구조다.

4. CDN 활용

이미지, 영상, 정적 파일은 CDN을 통해 제공하는 것이 좋다.
사용자와 가까운 서버에서 콘텐츠를 전달해 응답 시간을 줄인다.

AWS에서는 CloudFront를 많이 사용한다.

  • 이미지
  • CSS
  • JavaScript
  • 동영상

정적 콘텐츠를 CDN으로 분리하면 애플리케이션 서버의 부하도 줄어든다.

5. 비동기 처리

트래픽이 증가하면 모든 작업을 동기 방식으로 처리하기 어렵다.
시간이 오래 걸리는 작업은 큐 기반 비동기 처리로 분리할 수 있다.

예를 들면 다음과 같은 작업이다.

  • 이메일 발송
  • 이미지 처리
  • 로그 분석

메시지 큐를 사용하면 요청 응답 시간을 줄일 수 있다.

flowchart TD A["Client Request"] B["Application"] C["Message Queue"] D["Worker"] A --> B B --> C C --> D

6. 모니터링 구축

트래픽 증가에 대응하려면 현재 상태를 계속 확인할 수 있어야 한다.
모니터링 시스템을 구축하면 문제를 조기에 발견할 수 있다.

대표적으로 다음 지표를 확인한다.

  • CPU 사용률
  • 메모리 사용량
  • API 응답 시간
  • DB 쿼리 속도

AWS에서는 CloudWatch를 활용해 모니터링을 구성할 수 있다.

한 줄 요약

트래픽 증가 대응은 캐시 도입, 서버 수평 확장, DB 부하 분산, CDN 활용, 비동기 처리, 모니터링 구축을 통해 단계적으로 확장하는 구조를 만드는 것이 핵심이다.

댓글 0

  • 첫 번째 댓글을 남겨보세요.