로드 밸런싱, CDN

jiholee·2022년 6월 2일
1

cs

목록 보기
5/7

로드 밸런싱

서비스 규모가 커지고 이용자 수가 늘어날 때 대처할 수 있는 방법은 크게 두 가지로 나뉜다
1. 기존의 서버 성능 확장하는 scale-up
2. 서버를 증설하는 scale-out

이 중 서버를 증설하는 scale-out 방식을 사용한다면, 여러 대의 서버로 트래픽을 균등하게 분산해주는 로드밸런싱이 필요하다.

각각의 서버가 최적의 퍼포먼스를 낼 수 있도록 서버가 처리해야 할 요청을 여러 대의 서버로 나누어 처리하는 것을 의미한다.

로드밸런싱 기법

💡 라운드 로빈

서버에 들어온 요청을 순서대로 돌아가며 배정하는 방식 → 여러 대의 서버가 동일한 스펙이고 서버와의 연결이 오래 지속되지 않는 경우 적합

💡 가중 라운드로빈

각각의 서버마다 가중치를 매기고 가중치가 높은 서버에 클라이언트 요청을 우선적으로 배분한다. → 서버의 트래픽 처리 능력이 상이한 경우

💡 IP 해시 방식

클라이언트의 IP주소를 특정 서버로 매핑하여 요청을 처리하는 방식 → 사용자가 항상 동일한 서버로 연결되는 것을 보장한다.

💡 최소 연결 방식

요청이 들어온 시점에 가장 적은 연결상태를 보이는 서버에 우선적으로 배분

💡 최소 응답 시간 방식

서버의 현재 연결상태와 응답시간을 모두 고려하여 가장 짧은 응답 시간을 보이는 서버에 우선적으로 배분하는 방식


L4, L7

L4, L7은 각각 Layer 4(전송 계층) 프로토콜과 Layer 7(응용 계층) 프로토콜의 헤더를 부하 분산에 이용하기 때문에 붙은 접두사이다.

  • L4 : Transport 계층을 사용, IP 주소와 포트 번호 부하 분산이 가능
  • L7 : Application 계층을 사용, URL 또는 HTTP 헤더에서 부하 분산이 가능

L4 로드 밸런서는 네트워크 계층(IP, IPX)이나 전송 계층(TCP, UDP)의 정보(IP주소, 포트번호, MAC주소, 전송 프로토콜)를 바탕으로 로드를 분산한다.

L7 로드 밸런서는 애플리케이션 계층(HTTP, FTP, SMTP)에서 로드를 분산하기 때문에 HTTP 헤더, 쿠키 등과 같은 사용자의 요청을 기준으로 특정 서버에 트래픽을 분산하는 것이 가능하다. (패킷의 내용을 확인하고 그 내용에 따라 로드를 특정 서버에 분배하는 것이 가능하다.) URL에 따라 부하를 분산시키거나, HTTP 헤더의 쿠키 값에 따라 부하를 분산하는 등 클라이언트의 요청을 보다 세분화해 서버에 전달할 수 있다. 특정한 패턴을 지닌 바이러스를 감지할 수 있으며, DoS/DDoS와 같은 비정상적인 트래픽을 필터링할 수 있다.


CDN (Content Delivery Network)

정적 컨텐츠를 전송하기 위해 구축된 네트워크 POP 형태로 광범위한 지역에 캐시 서버로 분산 배치되어 있다.

Origin Server: 실제 서버
Edge Server(Cache Server): CDN 서버

  • CDN은 서버와 클라이언트 간 거리를 줄여 통신하는 시간을 단축시킨다.
  • CDN 서버 중 하나가 중지 된 경우에도 다른 서버는 계속 작동하여 컨텐츠를 제공할 수 있다.

참고

0개의 댓글