학습목표
- 대규모 트래픽 처리 개요에 대해 이해한다.
목차
- 대규모 트래픽 발생의 주요 원인와 실패
- 대규모 트래픽 주요처리 전략
- 대규모 트래픽 처리 기술 개요
들어가기 전..
비동기 처리 시스템 복습하기
[대규모트래픽 이론] #2.3 비동기 처리 시스템의 장단점 및 사례
학습목표비동기 처리시스템의 장단점 및 사례를 살펴본다.목차비동기 처리의 장점비동기 처리의 단점실제 비동기 처리 시스템의 예시들어가기 전..비동기 메시징 시스템 복습하기 [대규모트
dev-rosiepoise.tistory.com
1.1 대규모 트래픽 발생의 주요 원인
- 마케팅 이벤트 : 대규모 할인 행사, 쿠폰 발급, 타임 세일, 새로운 상품 출시 등의 이벤트로 인해 트래픽이 급증
- 바이럴 콘텐츠 : sns, 뉴스 또는 인터넷에서 급속도로 퍼지는 콘텐츠로 인해 갑자기 트래픽 증가
- 인기 서비스 : 갑작스럽게 주목받은 애플리케이션이나 서비스는 예상보다 훨씬 많은 사용자가 동시 접속
- 리소스 집중 : 특정 시간대에 많은 사용자가 몰려드는 경우 (예, 저녁 시간대 스트리밍 서비스)
1.2 대규모 트래픽 처리 실패 시의 문제점
- 성능 저하
- 사용자 경험 저하로 이어짐
- 시스템 다운타임
- 매출손실, 브랜드 신뢰도 하락, 컴플레인으로 이어짐
- 데이터 일관성 문제
- 동시성이 증가할수록 일관성이 저하 (중복주문, 재고부족, 동기화 이슈)
- 서버 자원 낭비
- cpu, 메모리 비효율적 사용, 서버 유지비용 증가
1.3 대규모 트래픽 처리의 필요성
- 사용자 경험 향상
- 빠른 응답 시간, 안정적 서비스 제공
- 서비스 신뢰성 보장
- 확장성과 비지니스 성장 지원
- 비용 최적화
- 트래픽이 급증하더라도 적절한 리소스 사용으로 서버와 인프라 비용을 효과적으로 관리
2. 트래픽 급증 대비를 위한 주요 처리 전략
a) 수평적 확장
- 트래픽이 증가할 때 하나의 성능을 높이기보다, 여러개의 서버 추가하여 능력을 확장하는 방식.
- 각각의 서버는 동일한 역할을 수행하며, 트래픽을 분산 처리
- 특징
- 서버를 쉽게 추가하거나 제거할 수 있어 유연한 확장이 가능
- 장애가 발생한 서버를 제외하고도 다른 서버가 계속 요청을 처리할 수 있어 고가용성을 유지
- 실제 적용
- 클라우드 환경에서의 amazon ec2 auto scaling
- kubernetes와 같은 기술을 사용하여 자동으로 서버를 추가하거나 제거
b) 부하 분산
- load balancer는 다수의 서버가 있는 환경에서 트래픽을 균등하게 분배하는 역할
- 특정 서버에 부하가 집중되는 것을 방지
- 특징
- 트래픽이 많을 때도 각 서버가 안정적으로 작동하도록 보장
- 다양한 알고리즘(라운드 로빈, 최소 연결, ip 해시 등)을 사용하여 트래픽을 분배
- 서버 장애 시 다른 서버로 트래픽을 자동으로 전환하여 서비스 중단을 방지할 수 있음
- 실제 적용
- L4를 통한 하드웨어 로드 밸런서
- nginx, HAProxy 같은 소프트웨어 로드 밸랜서
- amazon elastic load balancing(elb)와 같은 클라우드 기반 로드
c) 캐싱
- 자주 조회되는 데이터를 미리 저장하여 사용자 요청 시 즉시 제공하는 방식
- 데이터베이스나 api 요청 대신 캐시된 데이터를 사용하므로써, 응답시간을 줄일고 트래픽 부하를 감소
- 주요 특징
- 반복 요청에 대해 빠른 응답을 제공
- 데이터베이스나 원본 서버의 부하를 줄여 성능 향상
- ttl(time to live)설정을 통해 캐시 데이터의 유효 기간을 관리
- 실제 적용
- redis, memcached와 같은 인메모리 캐시 솔루션
- cdn(content deliver network)을 통해 자주 요청도는 파일(이미지, 비디오 등)을 캐싱
d) 비동기 처리
- 즉시 응답할 필용가 없는 작업(ex. 이메일 발송, 로그 기록 등)은 비동기 처리를 통해 백그라운드에서 수행되며, 사용자 요청에 대한 응답은 빠르게 처리
- 주요 특징
- 실시간으로 즉시 처리할 필요가 없는 작업을 비동기적으로 처리하여 메인 시스템의 부담을 감소
- 큐를 통해 작업을 저장하고 필요한 시점에 나중에 처리
- 실제 적용
- rabbitMQ, Apache Kafka, Amazon SQS와 같은 메시지 큐 시스템을 사용하여 비동기 작업을 처리
e) 데이터베이스 샤딩
- 데이터베이스의 데이터를 여러 개의 샤드로 나누어 분산 저장하는 기술
- 한 번에 처리할 수 있는 데이터의 양을 줄이고, 데이터베이스의 부하를 분산
- 주요 특징
- 데이터가 샤드 단위로 분산되어, 각 샤드는 독립적으로 데이터를 처리
- 데이터베이스 성능 병목을 해소하고 확장성을 향상 시킴
- 실제 적용
- mysql, mongoDB, Cassandra와 같은 데이터베이스에서 샤딩 기능을 제공하여 대규모 데이터 처리에 대응
f) CDN (Content Delivery Network)
- CDN은 지리적으로 분산된 서버 네트워크로, 사용자가 서버와 가까운 위치에서 콘텐츠를 다운로드할 수 있도록 함
- 트래픽을 분산시키고 사용자에게 더 빠른 콘텐츠 제공을 가능하게 함
- 주요 특징
- 사용자가 가까운 노드에서 콘텐츠를 다운로드하여 응답 시간을 최소화
- 원본 서버의 부하를 줄여, 대규모 트래픽을 효과적으로 처리
- 실제 적용
- Akamai, Cloudflare, Amazon CloudFront와 같은 CDN 서비스를 통해 정적 파일(이미지, 동영상 등)을 빠르게 제공
3. 대용량 트래픽 처리 기술 개요
- 트래픽이 들어올 때 정적 콘텐츠 요청은 cdn을 통해서 처리, 전세계에서 들어오는 요청을 빠르게 처리가능
- api 요청은 Load balancer를 통해 서버에 분산되어 처리
- Load balancer 뒤에 있는 server1,2에 분산됨
- server1,2는 캐시에 있는 데이터베이스를 조회
- 캐시에 데이터가 없는 경우에 캐시미스로 데이터베이스 샤드에서 데이터를 찾도록 하고, 캐시에 있다면 캐시에서 데이터를 제공하거나 쿼리결과를 캐시에 업데이트
- db 샤드 1,2에서는 샤딩을 통해 데이터를 분산 저장하고 데이터 조회 및 반환 담당
- auto scailing system에서는 시스템 부하를 모니터링 하고 특정 임계치 도달시 서버 인스턴스 수를 늘리는 것을 담당
참고, 강의 및 구글링
1티어 패션 커머스의 세일 도메인 프로젝트로 배우는 대규모 트래픽을 견디는 실전 백엔드의 모
실전 대용량 트래픽 처리의 모든 것! 대규모 시스템 설계부터 기능 구현, 테스트까지!
fastcampus.co.kr
'대용량 시스템 > 대규모 트래픽 이론' 카테고리의 다른 글
[대규모트래픽 이론] #2.3 비동기 처리 시스템의 장단점 및 사례 (0) | 2025.04.06 |
---|---|
[대규모트래픽 이론] #2.2 비동기 메시징 시스템 이해 (0) | 2025.03.30 |
[대규모트래픽 이론] #2.1 비동기 처리 아키텍처 이해와 확장 (0) | 2025.03.29 |
[대규모트래픽 이론] #1.2 동시성 처리와 비동기 처리의 기본 구조 (0) | 2025.03.29 |
[대규모트래픽 이론] #1.1 동시성 처리와 비동기 처리의 기본 개념 (0) | 2025.03.11 |