1. 대용량 트래픽 이란?
- 웹 사이트, 서버 또는 애플리케이션이 처리해야 하는 데이터 전송량이나 사용자 요청의 수가 매우 큰 상태를 의미함
- 일반적으로는 수백만 명 이상의 동시 사용자, 또는 초당 수천 건 이상의 요청을 처리해야 하는 상황을 의미함
2. 대용량 트래픽 처리하는 방법
(1) 서버 확장 방식
1. 수평적 확장( scale-out )
- 서버의 수를 늘리는 개념이고 주로 로드 밸런서가 중간에서 트래픽을 부하분산을 해 서버의 성능을 올린다
2. 수직적 확장( scale-up )
- 서버의 성능을 올려주는 개념이고 주로 CPU, 메모리 등 하드웨어 부품의 교체로 성능을 올리는 것을 의미한다.
(2) 로드 밸런싱
서버와 클라이언트 간의 트래픽을 중간 매개체인 로드밸런서를 만들어 트래픽을 부하해 성능 유지 또는 향상 및 저하를 방지 할 수 있게 되고, 스케일 아웃을 통해 늘어난 서버에 부하를 분산해서 트래픽을 처리하는 역할을 한다.
- 대용량 트래픽을 처리할 때 많이 사용이 되는 처리 방식이다.
- 주로 대용량 트래픽을 처리하는 방법은 로드밸런싱을 활용하여 이뤄지지만 이 밖에도 다양한 방식으로 대용량 트래픽을 처리 할 수 있다.
3. 로드 밸런서
로드밸런싱을 해주는 하드웨어 및 소프트웨어를 로드밸런서 라고 하며, 해당 로드밸런서를 활용해 트래픽을 여러 서버에 부하분산을 해주는 기술을 의미한다.
(1) 로드 밸런싱 순서
1. 요청 수신
클라이언트의 요청이 로드 밸런서에 도착 한다.
2. 서버 선택
로드 밸런서는 사전에 정의된 알고리즘인 라운드 로빈, 최소 연결 수,IP 해싱 등에 따라 요청을 보낼 서버를 선택한다.
3. 요청 전달
선택된 서버로 요청을 전달한다.
4. 응답 수신
서버에서 응답이 오면 로드 밸런서는 클라이언트에게 응답을 전달한다.