로드 밸런싱 이란 | 로드 밸런싱이란? | 천상계 개발자가 되려면 이 정도는 알아야지 734 투표 이 답변

당신은 주제를 찾고 있습니까 “로드 밸런싱 이란 – 로드 밸런싱이란? | 천상계 개발자가 되려면 이 정도는 알아야지“? 다음 카테고리의 웹사이트 ppa.maxfit.vn 에서 귀하의 모든 질문에 답변해 드립니다: https://ppa.maxfit.vn/blog/. 바로 아래에서 답을 찾을 수 있습니다. 작성자 CODER X DOX 코더엑스독스 이(가) 작성한 기사에는 조회수 1,018회 및 좋아요 44개 개의 좋아요가 있습니다.

로드 밸런싱 이란 주제에 대한 동영상 보기

여기에서 이 주제에 대한 비디오를 시청하십시오. 주의 깊게 살펴보고 읽고 있는 내용에 대한 피드백을 제공하세요!

d여기에서 로드 밸런싱이란? | 천상계 개발자가 되려면 이 정도는 알아야지 – 로드 밸런싱 이란 주제에 대한 세부정보를 참조하세요

안녕하세요, 코독입니다 🙂
오늘 주제는 로드밸런싱 (Load Balancing) 인데요!
대규모 트래픽을 처리하려면 필수적인 개념이죠.
12분만에 A 부터 Z 까지 모두 알려드릴게요.

로드 밸런싱 이란 주제에 대한 자세한 내용은 여기를 참조하세요.

로드 밸런싱에 대해 알아보자! – Tecoble

로드 밸런싱이란 말 그대로 서버가 처리해야 할 업무 혹은 요청(Load)을 여러 대의 서버로 나누어(Balancing) 처리하는 것을 의미한다.

+ 여기에 표시

Source: tecoble.techcourse.co.kr

Date Published: 3/14/2021

View: 7319

Load Balancing이란? – velog

로드 밸런싱이란? … 부하분산 또는 로드 밸런싱은 컴퓨터 네트워크 기술의 일종으로 중앙처리장치 혹은 저장장치와 같은 컴퓨터 자원들에게 작업을 나누는 …

+ 자세한 내용은 여기를 클릭하십시오

Source: velog.io

Date Published: 7/13/2021

View: 7121

로드 밸런싱(Load balancing) 종류와 알고리즘 | DevelopersIO

부하분산 또는 로드 밸런싱(load balancing)은 컴퓨터 네트워크 기술의 일종으로 둘 혹은 셋이상의 중앙처리장치 …

+ 여기에 자세히 보기

Source: dev.classmethod.jp

Date Published: 5/11/2022

View: 7305

로드 밸런싱이란? Load balancing

로드밸런싱(부하 분산) 은 컴퓨터 네트워크 기술의 일종으로 중앙처리장치 또는 저장장치와 같은 컴퓨터 자원들에게 작업을 분산하는 것을 의미한다.

+ 여기를 클릭

Source: cheershennah.tistory.com

Date Published: 7/25/2021

View: 2009

[네트워크] 로드밸런싱의 개념 및 기법 설명

로드밸런싱(Load Balancing)이란? … 위 그림에서 보는 바와 같이, 로드밸런서는 클라이언트의 요청 및 네트워크의 트래픽이 집중되는 서버들 …

+ 자세한 내용은 여기를 클릭하십시오

Source: co-no.tistory.com

Date Published: 12/23/2021

View: 5617

로드밸런싱이란 무엇인가 – 오리용매거진

부하분산 또는 로드 밸런싱(load balancing)은 컴퓨터 네트워크 기술의 일종으로 둘 혹은 셋 이상의 중앙처리장치 혹은 저장장치와 같은 컴퓨터 자원들 …

+ 여기에 더 보기

Source: oriyong.tistory.com

Date Published: 1/22/2022

View: 1189

[이해하기] 네트워크의 부하분산, 로드밸런싱 (Load Balancing …

1. 로드밸런싱 (Load Balancing) 이란? 로드밸런싱은 네트워크 또는 서버에 가해지는 부하 (=로드) 를 분산 (=밸런싱) 해주는 기술을 의미합니다. 로드 …

+ 여기에 보기

Source: www.stevenjlee.net

Date Published: 2/27/2021

View: 9491

[Server] 로드 밸런싱이란? – 코딩히어로

로드 밸런싱이란 서버를 구축하고 관리하다 보면 한 번쯤 마주하게 되는 작은 규모의 서버에서는 볼일이 없겠지만 사용자수가 많고 트래픽이 많은 …

+ 여기에 자세히 보기

Source: codinghero.tistory.com

Date Published: 12/23/2022

View: 3671

로드밸런서(Load Balancer)의 개념과 특징 – Naver Post – 네이버

로드밸런서는 서버에 가해지는 부하(=로드)를 분산(=밸런싱)해주는 장치 또는 기술을 통칭합니다. 클라이언트와 서버풀(Server Pool, 분산 네트워크를 …

+ 자세한 내용은 여기를 클릭하십시오

Source: post.naver.com

Date Published: 12/16/2021

View: 1478

Elastic Load Balancing이란 무엇인가요?

Elastic Load Balancing은 둘 이상의 가용 영역에서 EC2 인스턴스, 컨테이너, IP 주소 등 여러 대상에 걸쳐 수신되는 트래픽을 자동으로 분산합니다.

+ 자세한 내용은 여기를 클릭하십시오

Source: docs.aws.amazon.com

Date Published: 11/6/2022

View: 9960

주제와 관련된 이미지 로드 밸런싱 이란

주제와 관련된 더 많은 사진을 참조하십시오 로드 밸런싱이란? | 천상계 개발자가 되려면 이 정도는 알아야지. 댓글에서 더 많은 관련 이미지를 보거나 필요한 경우 더 많은 관련 기사를 볼 수 있습니다.

로드 밸런싱이란? | 천상계 개발자가 되려면 이 정도는 알아야지
로드 밸런싱이란? | 천상계 개발자가 되려면 이 정도는 알아야지

주제에 대한 기사 평가 로드 밸런싱 이란

  • Author: CODER X DOX 코더엑스독스
  • Views: 조회수 1,018회
  • Likes: 좋아요 44개
  • Date Published: 2022. 3. 1.
  • Video Url link: https://www.youtube.com/watch?v=9_6COPOMZvI

로드 밸런싱이란? Load balancing

반응형

로드 밸런싱 Load balancing

로드밸런싱(부하 분산) 은 컴퓨터 네트워크 기술의 일종으로 중앙처리장치 또는 저장장치와 같은 컴퓨터 자원들에게 작업을 분산하는 것을 의미한다.

서버에 가해지는 부하(로드) 를 분산(밸런싱) 해주는 기술이다.

사업의 규모가 확장되고 클라이언트의 수가 증가하게 되면 기존 서버로 정상적인 서비스가 불가하게 되는 경우가 발생하는데, 이러한 증가 트래픽에 대처할 수 있는 방법은

1. Scale up: 서버자체의 성능을 높이는 것.

2. Scale out: 여러대의 서버를 두는 것.

이 있다. Scale out 방식은 여러대의 서버로 트래픽을 균등하게 분산하는 로드 밸런싱이 반드시 필요하다.

주요 기능

NAT(Network Address Translation) 사설 IP 주소를 공인 IP 주소로 바꾸는 데 사용하는 통신망의 주소 변조기

Tunneling 인터넷상에서 눈에 보이지 않는 통로를 만들어 통신할 수 있게 하는 개념 데이터를 캡슐화해서 연결된 상호 간에만 캡슐화된 패킷을 구별해 캡슐화를 해제할 수 있다.

DSR(Dynamic Source Routing protocol) 로드 밸런서 사용 시 서버에서 클라이언트로 되돌아가는 경우 목적지 주소를 스위치의 IP 주소가 아닌 클라이언트의 IP 주소로 전달해서 네트워크 스위치를 거치지 않고 바로 클라이언트를 찾아가는 개념

Load Balacer 종류

L2

Mac주소를 바탕으로 Load Balancing

L3

IP주소를 바탕으로 Load Balancing

L4

Transport Layer(IP와 Port) Level에서 Load Balancing

TCP, UDP

L7

Application Layer (사용자 Request) Level에서 Load Balancing

Http, Https, ftp

* Load Balancer는 어떤 기준으로 Server를 선택하나 ?

Round Robin

– 단순히 round robin으로 분산

Least Connection

– 연결개수가 가장 적은 서버를 선택.

– 트래픽으로 인해 세션이 길어지는 경우 권장

Source

– 사용자의 IP를 hashing하여 분배하는 방식

– 사용자는 항상 같은 서버로 연결되는 것을 보장

Load Balancer 장애대비

– Load balancer를 이중화 하여 장애를 대비할 수 있다.

반응형

[네트워크] 로드밸런싱의 개념 및 기법 설명

로드밸런싱(Load Balancing)이란?

: 컴퓨터 네트워크 기술의 일종으로 둘 혹은 셋 이상의 중앙처리장치 혹은 저장장치와 같은 컴퓨터 자원들에게 작업(Work), 즉, 부하(Load)를 나누는 것을 의미한다. 이로써 가용성 및 응답시간을 최적화시킬 수 있다. – 위키백과 –

=> “한 놈(한 서버)이 일을 다 처리하면 부담스러우니, 여러 놈(여러 서버)한테 일을 나누겠다!”

로드밸런싱 아키텍처 예시

위 그림에서 보는 바와 같이, 로드밸런서는 클라이언트의 요청 및 네트워크의 트래픽이 집중되는 서버들 (Server Pool / Server Farm) 또는 네트워크 허브 사이에 위치하여, 특정 서버 또는 네트워크 허브에 부하가 집중되지 않도록 트래픽을 분산시키는 역할을 한다.

로드 밸런싱의 기본 기능

Health Check (상태 확인)

– 서버들에 대한 주기적인 Health Check를 통해 서버들의 장애 여부를 판단 하여, 정상 동작 중인 서버로만 트래픽을 보낸다.

– L3 체크 : *ICMP를 이용하여 서버의 IP 주소가 통신 가능한 상태인지를 확인 한다.

– L4 체크 : TCP는 3 Way-Handshaking (전송 – 확인/전송 – 확인) 를 기반으로 통신하는데, 이러한 TCP의 특성을 바탕으로 각 포트 상태를 체크 하는 방식.

– L7 체크 : 어플리케이션 계층에서 체크 를 수행. 실제 웹페이지에 통신을 시도 하여 이상 유무를 파악.

Tunneling (터널링)

– 데이터 스트림을 인터넷 상에서 가상의 파이프를 통해 전달시키는 기술 로, 패킷 내에 터널링할 대상을 캡슐화시켜 목적지까지 전송.

– 연결된 상호 간에만 캡슐화된 패킷을 구별 해 캡슐화를 해제하게 함.

NAT (Network Address Translation)

– 내부 네트워크에서 사용하는 사설 IP 주소 와 로드밸런서 외부의 공인 IP 주소 간의 변환 역할.

– 로드밸런싱 관점에서는 여러 개의 호스트가 하나의 공인 IP 주소(VLAN or VIP)를 통해 접속하는 것이 주 목적.

– SNAT (Source Network Address Translation) : 내부에서 외부로 트래픽이 나가는 경우.

내부 사설 IP 주소 -> 외부 공인 IP 주소 로 변환.

– DNAT (Destination Network Address Translation) : 외부에서 내부로 트래픽이 들어오는 경우.

외부 공인 IP 주소 -> 내부 사설 IP 주소 로 변환.

DSR (Destination Network Address Translation)

– 서버에서 클라이언트로 트래픽이 되돌아가는 경우, 목적지를 클라이언트로 설정한 다음, 네트워크 장비나 로드밸런서를 거치지 않고 바로 클라이언트를 찾아가는 방식.

– 이 기능을 통해 로드밸런서의 부하를 줄여 줄 수 있음.

* ICMP : Internet Control Message Protocol. 패킷 전송에 실패했을 때 에러가 났음을 알림과 동시에, 해결 가능한 힌트를 제공하는 메시징 프로토콜. TCP/IP의 IP 계층 에서 동작.

로드밸런싱 알고리즘

라운드 로빈 방식 (Round Robin Method)

– 서버로 들어온 요청을 순서대로 돌아가며 배정 하는 방식.

– 클라이언트의 요청을 순서대로 분배하기 때문에 서버들이 동일한 스펙 을 갖고 있고, 서버와의 연결(세션)이 오래 지속되지 않는 경우 에 활용하기 적합.

– 서버로 들어온 요청을 하는 방식. – 클라이언트의 요청을 순서대로 분배하기 때문에 을 갖고 있고, 서버와의 에 활용하기 적합. 가중 라운드로빈 방식 (Weighted Round Robin Method)

– 각각의 서버마다 가중치(Weight) 를 매기고 가중치가 높은 서버에 클라이언트 요청을 우선적으로 배분.

– 주로 서버의 트래픽 처리 능력이 상이한 경우 사용되는 로드밸런싱 방식.

– ex) 서버 A의 가중치: 5 / 서버 B의 가중치: 2

=> A 서버에 5개의 Request, B 서버에 2개의 Request 할당.

– 각각의 서버마다 를 매기고 – 주로 사용되는 로드밸런싱 방식. – => A 서버에 5개의 Request, B 서버에 2개의 Request 할당. IP 해시 방식 (IP Hash Method)

– 클라이언트의 IP 주소를 특정 서버로 매핑 하여 요청을 처리하는 방식.

– 사용자의 IP를 *해싱(Hashing) 하여 부하를 분산하기 때문에 사용자가 항상 동일한 서버로 연결 되는 것을 보장.

– 경로가 보장되며, 접속자 수가 많을수록 분산 및 효율이 뛰어남.

* 해싱(Hasing) : 임의의 길이를 지닌 데이터를 고정된 길이의 데이터로 매핑 하는 것, 또는 그러한 함수.

– 하여 요청을 처리하는 방식. – 하여 부하를 분산하기 때문에 되는 것을 보장. – 최소 연결 방식 (Least Connection Method)

– Request가 들어온 시점에 가장 적은 연결(세션) 상태를 보이는 서버에 우선적으로 트래픽을 할당.

– 자주 세션이 길어지거나, 서버에 분배된 트래픽들이 일정하지 않은 경우 에 적합.

– Request가 들어온 시점에 트래픽을 할당. – 에 적합. 최소 응답시간 방식 (Least Response Time Method)

– 서버의 현재 연결 상태와 응답시간(Response Time)을 모두 고려하여, 가장 짧은 응답 시간을 보내는 서버 로 트래픽을 할당하는 방식.

– 각 서버들의 가용한 리소스와 성능, 처리중인 데이터 양 등이 상이할 경우 적합.

– 서버의 현재 연결 상태와 로 트래픽을 할당하는 방식. – 적합. 대역폭 방식 (Bandwidth Method)

– 서버들과의 대역폭을 고려 하여 서버에 트래픽을 할당.

로드밸런싱에는 L4 로드밸런서와 L7 로드밸런서가 가장 많이 활용되는데, 그 이유는 L4 로드밸런서부터 포트 정보를 바탕으로 로드를 분산 가능하기 때문이다. 한 대의 서버에 각기 다른 포트 번호를 부여하여 다수의 서버 프로그램을 운영하는 경우라면 최소 L4 로드밸런서 이상을 사용해야만 하는 것이다.

특정 기능이 필요한 것이 아니라면, 초당 연결수(Connections Per Sec), 동시 연결수(Concurrent Connections), 처리용량(Throughput)을 성능 지표로 하여 L4 로드밸런서와 L7 로드밸런서 중 적절히 선택하는 것이 바람직할 것이다.

L4 로드밸런서 vs L7 로드밸런서

L4 로드 밸런서

: 4 계층 – 네트워크 계층(IP, IPX) 이나 3 계층 – 전송 계층(TCP, UDP) 의 정보를 바탕으로 로드를 분산 .

즉, IP 주소 , 포트번호 , MAC 주소, 전송 프로토콜 등에 따라 트래픽을 분산하는 것이 가능.

L4 로드밸런싱 – 장점)

☞ 패킷의 내용을 확인하지 않고 로드를 분산하므로 속도가 빠르고 효율이 높음.

☞ 데이터의 내용을 복호화할 필요가 없기에 안전.

☞ L7 로드밸런서보다 가격이 저렴.

– 단점)

☞ 패킷의 내용을 살펴볼 수 없으므로, 섬세한 라우팅 불가.

☞ 사용자의 IP가 수시로 바뀌는 경우 라면, 연속적인 서비스를 제공하기 어려움.

: 4 계층 – 이나 3 계층 – . 즉, , , 주소, 등에 따라 트래픽을 분산하는 것이 가능. ☞ 패킷의 내용을 확인하지 않고 로드를 분산하므로 ☞ 데이터의 내용을 안전. ☞ L7 로드밸런서보다 ☞ 패킷의 내용을 살펴볼 수 없으므로, ☞ 라면, 연속적인 서비스를 제공하기 어려움. L7 로드 밸런서

: 7 계층 – 어플리케이션 계층(HTTP, FTP, SMTP 등)에서 로드를 분산 하기 때문에, HTTP 헤더, 쿠키 등과 같은 사용자 요청을 기준으로 특정 서버에 트래픽을 분산하는 것이 가능.

L7 로드밸런싱

– L4 로드밸런서의 기능에 더하여, 패킷의 내용을 확인하고 그 내용에 따라 로드를 특정 서버에 분배 하는 것이 가능.

– 특정한 패턴을 지닌 바이러스를 감지해 네트워크 보호 가능.

– Dos/DDos 와 같은 비정상적인 트래픽 필터링 가능.

– 방식)

▶ URL 스위칭(URL Switching) 방식 : 특정 하위 URL들은 특정 서버로 처리하는 방식.

ex) ‘…/steven/image’ => 이미지 처리 서버 / ‘…/steven/video’ => 동영상 처리 서버

▶ 컨텍스트 스위칭(Context Switching) 방식 : 클라이언트가 요청한 특정 리소스에 대해 특정 서버로 연결 가능.

ex) 이미지 파일에 대해서는 확장자를 참조하여, 별도로 구성된 이미지 파일이 있는 서버 or 스토리지로 직접 연결.

▶ 쿠키 지속성(Persistence with Cookies) : 쿠키 정보를 바탕으로 클라이언트가 연결했었던 동일한 서버에 계속 할당해 주는 방식. 특히, 사설 네트워크에 있던 클라이언트의 IP 주소가 공인 IP 주소로 치환되어 전송하는 방식을 지원.

ex) X-Forwarded-For 헤더에 클라이언트 IP 주소를 별도로 기입

– 장점)

☞ 상위 계층에서 로드를 분산하기 때문에 훨씬 더 섬세한 라우팅 가능.

☞ 캐싱(Cashing) 기능을 제공.

☞ 비정상적인 트래픽을 사전에 필터링할 수 있어 서비스 안정성 높음.

– 단점)

☞ L4 로드밸런서에 비해 비쌈.

☞ 패킷의 내용을 복호화하여야 하므로 더 높은 비용을 지불해야 함.

☞ 클라이언트가 로드밸런서와 인증서를 공유해야 하기 때문에, 공격자가 로드밸런서를 통해 클라이언트의 데이터에 접근할 수 있는 보안상의 위험성 존재.

참고

[이해하기] 네트워크의 부하분산, 로드밸런싱 (Load Balancing) 그리고 로드밸런서 (Load Balancer)

https://m.post.naver.com/viewer/postView.nhn?volumeNo=27046347&memberNo=2521903

로드밸런싱이란 무엇인가

로드밸런싱(load balancing)이란 무엇인가

이번에 알아볼 개념은 로드밸런싱입니다. 우리 말로는 부하분산이라고 합니다. 서비스의 규모가 커지면 자연스럽게 들을 수 있는 개념인데요. 알아보겠습니다.

로드밸런싱 정의

부하분산 또는 로드 밸런싱(load balancing)은 컴퓨터 네트워크 기술의 일종으로 둘 혹은 셋 이상의 중앙처리장치 혹은 저장장치와 같은 컴퓨터 자원들에게 작업을 나누는 것을 의미한다. 이로써 가용성 및 응답 시간을 최적화시킬 수 있다. 예를 들어, 메인프레임 1대(단일 구성체) 보다 IA-32와 같은 일반적인 서버(복합 구성체)가 안정성 면에서 유리한 위치에 있다. 부하분산 서비스는 그에 적합한 하드웨어와 소프트웨어에 의해 제공된다. 이 기술은 보통 내부 네트워크를 이용한 병렬 처리(특히, 고가용성의 병렬 처리)에 사용된다.

– 위키백과

간단히 말해서 컴퓨터 한 대로 처리하면 바쁘니까, 컴퓨터 여러 대를 놓고 나눠서 처리하는 개념입니다. 부하분산이라는 말대로 부하가 심하니, 그걸 분산해서 서비스를 원활히 하는 개념입니다.

로드밸런싱 개념

통상의 웹사이트라고 하면 클라이언트인 웹브라우저가 웹서버에 웹페이지를 요청합니다. 웹서버는 기다리고 있다가 요청을 받고 웹페이지를 내줍니다.

문제는 여러 클라이언트가 동시에 많은 웹페이지를 요청할 때입니다. 그러면 서버는 웹페이지를 만들어서 대답하기 너무 바쁩니다. 그래서 아래와 같이 요청이 올 때마다 처리할 서버를 지정해서 나눠주는 구조를 만듭니다.

위 그림에서 서버1, 서버 2, 서버 3은 동일한 기능을 하도록 만들어 놓습니다. 그래서 어느 쪽으로 보내더라도 동일한 결과를 받을 수 있습니다. 로드밸런서는 요청이 오면 설정에 따라 요청을 서버 1, 2, 3 중에 하나로 보냅니다. 예시에서는 서버 3대지만 큰 서비스의 경우 서버가 수십대가 되기도 합니다.

이런 로드밸런서는 하드웨어일 수도 있고, 소프트웨어로 구현되어 있을 수도 있습니다. 레이어 계층 차이인데, 우리는 굳이 거기까진 몰라도 됩니다. 우리가 알아야 할 것은 요청이 오면 여러 곳 중에 한 곳으로 요청을 보내준다 하는 개념 정도입니다.

요청을 보내주는 기준은 설정에서 시키는대로 하는데요. 설정 종류는 부하가 적은 곳으로, 연결이 적은 곳으로, 아니면 무조건 번호 순서대로 순차적으로 보낼 수도 있습니다. 언급한 설정 말고도 다양한데요. 하나씩 설정 이름을 알아두는 것보다는 저런 개념이 있다는 정도만 알아두면 좋습니다.

정리

참고로 로드밸런서는 컴퓨터를 여러 대 준비해서 부하를 분산하는데요. 이렇게 부하를 수평적으로 분산하는 방식을 스케일-아웃(Scale-out)이라고 합니다. 부하를 대응하기 위한 다른 방식은 스케일-업(Scale-up) 방식도 있습니다. 스케일업은 서버의 CPU, RAM 등 하드웨어를 더 좋은 장비로 교체해주는 것이죠.

어떤 방식이든 실무에서는 다양하게 단어가 튀어나오니, 미리 한 번쯤 들어두면 좋습니다.

클라우드 서비스들은 이런 부하 분산 자체를 신경 쓰지 않아도 되도록 다양한 기능을 제공하는데요. 당장 사용하지 않더라도 개념을 미리 알아두면 도움이 됩니다.

[이해하기] 네트워크의 부하분산, 로드밸런싱 (Load Balancing) 그리고 로드밸런서 (Load Balancer)

과거와 달리, 현대의 네트워크 환경은 폭발적인 IT 기기들의 보급과 기술의 발전에 따라 대규모의 트래픽이 불특정한 시점에 발생 및 집중 되는 양상을 보이고 있습니다. 예를 들어, 대규모의 할인 행사를 하는 블랙프라이데이가 포함된 11월의 온라인 쇼핑몰 네트워크 트래픽은 평소의 20% 수준 대비 80% 이상 까지도 치솟는 곳들이 많습니다.

이럴 때, 수백-수천만명의 접속자를 감당하기 위하여 서비스를 제공하는 측에서는 미리 트래픽을 예측하고 서버와 네트워크를 증설 해두게 됩니다. 특히, 한 서버의 성능을 높이는 스케일업 (Scale-up) 작업은 그 한계가 있으므로 분산 처리를 위해 여러 대의 서버들을 놓게 되는 스케일아웃 (Scale-out) 작업을 하게 되는데, 이 때 여러 서버들로 대규모의 네트워크 트래픽을 분산 처리하는 기술을 바로 로드밸런싱 (Load Balancing) 이라고 합니다.

| 로드밸런싱 아키텍처 예시 (출처 : 위키피디아)

1. 로드밸런싱 (Load Balancing) 이란?

로드밸런싱은 네트워크 또는 서버에 가해지는 부하 (=로드) 를 분산 (=밸런싱) 해주는 기술을 의미합니다. 로드밸런싱 기술을 제공하는 서비스 또는 장치 (로드밸런서, Load Balancer) 는 클라이언트와 네트워크 트래픽이 집중되는 서버들 (Server Pool) 또는 네트워크 허브 사이에 위치합니다.

특정 서버 또는 네트워크 허브에 부하가 집중되지 않도록 트래픽을 다양한 방법으로 분산하여 서버나 네트워크 허브들의 성능을 최적인 상태로 유지할 수 있도록 합니다. (본 포스트에서는 이해를 돕기 위해 서버를 대상으로만 설명 하도록 하겠습니다.)

2. 로드밸런서의 기본 동작 방식

로드밸런서는 대부분 아래와 같은 절차로 동작하게 됩니다.

(1) 클라이언트의 브라우저에서 stevenjlee.net 이라고 입력

(2) 클라이언트에 설정된 메인 DNS 서버로 stevenjlee.net 의 IP 주소를 문의

(3) 메인 DNS 서버는 stevenjlee.net 주소를 관리하는 별도의 DNS 서버에 IP 주소 문의

(4) 별도 관리 DNS 서버는 로드밸런서의 IP (Virtual IP) 주소를 메인 DNS 서버에게 알려줌

(5) 메인 DNS 서버는 획득한 VIP 주소를 클라이언트에 전송

(6) 클라이언트에서 로드밸런서의 VIP 주소로 http 요청

(7) 로드밸런서는 별도 로드밸런싱 방법 (예> 라운드 로빈 등) 을 통하여 서버에게 요청을 전송

(8) 서버의 작업 결과를 받은 로드밸런서는 전달받은 http 결과를 클라이언트에게 전송

3. 로드밸런서의 기본 기능

(1) Health Check

기본적으로 보통의 로드밸런서는 서버들 (또는 다음의 노드) 에 대한 주기적인 Health Check 를 통해 서버들의 장애 여부를 판단할 수 있습니다. 이로 인해 로드밸런서가 있을 때 서버 몇 대에 이상이 생기더라도 다른 정상 동작중인 서버로 트래픽을 보내주는 Fail-over가 가능하며, 또한 TCP/UDP 분석이 가능하기 때문에 Firewall 의 역할도 수행할 수 있습니다.

– L3 체크 : ICMP 를 이용하여 서버의 IP 주소가 통신 가능한 상태인지를 확인합니다.

– L4 체크 : TCP 는 3 Way-Handshaking (전송 -> 확인/전송 -> 확인) 를 기반으로 통신합니다. 이러한 TCP 의 특성을 바탕으로 각 포트 상태를 체크하는 방식입니다. 예를 들어, HTTP 웹 서버의 경우 80 포트를 사용하므로 TCP 80 포트에 대한 체크를 통해 서버가 살아 있는 상태인지 확인합니다.

– L7 체크 : 어플리케이션 계층에서 체크를 합니다. 즉, 실제 웹 페이지 (예> …/index.html) 에 통신을 시도하여 이상 유무를 파악합니다.

(2) Tunneling

눈에 보이지 않는 통로를 만들어 통신할 수 있게 하는 개념으로, 로드밸런서는 클라이언트와 서버 간 중간에서 터널링을 제공해 줍니다. 즉, 연결된 상호 간에만 캡슐화된 패킷을 구별해 캡슐화를 해제하게 합니다.

(3) NAT (Network Address Translation)

IP 주소를 변환해주는 기능입니다. (목적지와 수신지의 IP 주소와 TCP/UDP 포트를 재기록하여 변환하며 네트워크 트래픽을 주고 받을 수 있습니다.) 예를 들어, 내부 네트워크에서 사용하던 사설 IP 주소를 로드밸런서 외부의 공인 IP 주소로 변경해줍니다. (반대로도 가능) 이렇게 하면 부족한 공인 IP 주소를 효율적으로 사용할 수 있지만, 로드밸런싱 관점에서는 여러개의 호스트가 하나의 공인 IP 주소 (VIP) 를 통해 접속하는 것이 주 목적입니다.

– SNAT (Source Network Address Translation)

내부에서 외부로 트래픽이 나가는 경우, 내부 사설 IP 주소를 외부의 공인 IP 주소로 변환하는 방식입니다. 집에서 사용하는 공유기가 대표적인 예 입니다.

– DNAT (Destination Network Address Translation)

외부에서 내부로 트래픽이 들어오는 경우, 외부 공인 IP 주소를 내부의 사설 IP 주소로 변환하는 방식입니다. 본 포스트에서 설명하고 있는 로드밸런서가 대표적인 예 입니다.

(4) DSR (Direct Server Routing)

서버에서 클라이언트로 되돌아가는 경우, 목적지를 클라이언트로 설정한 다음 네트워크 장비나 로드밸런서를 거치지 않고 바로 클라이언트를 찾아가는 방식입니다. 이 경우, 로드밸런서의 부하를 줄여줄 수 있는 장점이 있습니다.

| NAT – DNAT 과 SNAT

4. 로드밸런싱 종류와 방법 (L4, L7 계층)

(1) L4 로드밸런싱

L4 로드밸런서는 L4 계층에서 동작하는 로드밸런서이므로 네트워크 계층 (예> IP) 이나 트랜스포트 계층 (예> TCP, UDP) 의 정보를 바탕으로 로드를 분산합니다. 즉, IP 주소나 포트번호, MAC주소, 전송 프로토콜 등에 따라 트래픽을 나누고 분산처리 하는 것이 가능합니다. 이런 이유로 L4 Load Balancer 를 CLB (Connection Load Balancer) 혹은 SLB (Session Load Balancer) 라고 부르기도 합니다. L4 로드밸런싱에는 다음과 같은 방법들이 있습니다.

– 라운드 로빈 (Round Robin) 기반 : 세션을 각 서버에 순차적으로 맺어주는 방식입니다. 단순히 순서에 따라 세션을 할당하므로 경우에 따라 경로별로 같은 처리량이 보장이 되지 않습니다.

– 가중치 및 비율 할당 방식 : 서버마다 비율을 설정해 두고 해당 비율 만큼 세션을 맺어주는 방식입니다. 예를 들어, 특정 서버의 성능이 월등히 뛰어나다면 해당 서버로 세션을 많이 맺어주도록 가중치를 설정하고 나머지 로우급들의 서버들은 적은 세션이 맺어질 수 있도록 가중치를 설정합니다.

– 최소 연결 (Least Connection) 기반 : 가장 적은 세션을 가진 서버로 트래픽을 보내는 방식입니다. (가장 많이 사용되는 방식)

– 응답 시간 (Response Time) 기반 : 가장 빠른 응답 시간을 보내는 서버로 트래픽을 우선 보내주는 방식입니다. 예를 들어, 각 서버들의 가용한 리소스와 성능, 그리고 처리중인 데이터 양 등이 다를 경우 적합한 방식입니다.

– 해시 (Hash) 기반 : 특정 클라이언트는 특정 서버로만 할당시키는 방식입니다. 예를 들어, 특정 IP 주소 혹은 포트의 클라이언트들은 특정 서버로만 세션이 맺어지도록 합니다. 경로가 보장되며 접속자 수가 많을수록 분산 및 효율이 뛰어납니다.

– 대역폭 (Bandwidth) 기반 : 서버들과의 대역폭을 고려하여 트래픽을 분산 하는 방식입니다.

(2) L7 로드밸런싱

L7 로드밸런서는 위와 같은 L4 로드밸런서의 기능을 포함하는 것 뿐 만 아니라 OSI 7계층의 프로토콜 (예> HTTP, SMTP, FTP 등) 을 바탕으로도 분산 처리가 가능합니다. 예를 들어, 온라인 쇼핑몰의 장바구니에 물건들을 담아놓았는데 다른 서버에서의 처리는 어려울 것입니다. L7 로드밸런싱에는 다음과 같은 방법들이 있습니다.

– URL 스위칭 방식 (URL Switching) : 특정 하위 URL 들은 특정 서버로 처리하는 방식입니다. 예를 들어, ‘…/steven/image’ 또는 ‘…/steven/video’ 와 같은 특정 URL 을 가진 주소들은 서버가 아닌 별도의 스토리지에 있는 객체 데이터로 바로 연결되도록 구성할 수 있습니다.

– 컨텍스트 스위칭 방식 (Context Switching) : 클라이언트가 요청한 특정 리소스에 대해 특정 서버 등으로 연결을 해줄 수 있습니다. 예를 들어, 이미지 파일에 대해서는 확장자를 참조하여 별도로 구성된 이미지 파일이 있는 서버/스토리지로 직접 연결해줄 수 있습니다.

– 쿠키 지속성 (Persistence with Cookies) : 쿠키 정보를 바탕으로 클라이언트가 연결 했었던 동일한 서버에 계속 할당해주는 방식입니다. 특히 사설 네트워크에 있던 클라이언트의 IP 주소가 공인 IP 주소로 치환되어 전송 (X-Forwarded-For 헤더에 클라이언트 IP 주소를 별도 기록) 하는 방식을 지원합니다.

5. 서버 관점에서의 로드밸런싱 종류와 방법 – SLB 와 GSLB

(1) SLB (Server Load Balancing)

간혹 SLB 라는 용어를 사용하는 곳이 있지만, 결국 서버를 위한 로드밸런싱을 의미하는 용어입니다. (네트워크 허브를 위한 로드밸런싱과는 다른 목적과 개념)

(2) GSLB (Global Server Load Balancing)

| 글로벌 네트워크 – GSLB 는 DNS 를 기반으로 동작

GSLB 는 DNS 를 기반으로 로드밸런싱을 하는 방법입니다. 예를 들어, 같은 동작을 하고 같은 서비스를 제공하는 서버들이 같은 네트워크 혹은 같은 지역 내에 배치 되어 있지 않고 여러 지역에 분산되어 운용 될 때 이용하는 방식입니다. DNS 와의 차이점은, GSLB 는 아래의 설명들과 같은 요소들을 고려하여 연결 대상 서버를 선택하기 때문에 지능형 DNS 라고도 이해할 수 있습니다.

| DNS 와 GSLB 와의 비교

6. L4/L7 로드밸런서의 주요 성능 지표

L4/L7 로드밸런서의 성능을 가늠할 수 있는 주요한 지표들은 다음과 같습니다.

(1) 초당 연결 수 (Connections per second)

최대 처리 가능한 초당 TCP 세션의 개수를 의미합니다.

(2) 동시 연결 수 (concurrent connections)

동시에 최대로 세션을 유지할 수 있는 개수를 의미합니다.

(3) 처리용량 (Throughput)

(패킷 자체에 대해 연결이 성립되는) UDP 프로토콜에 대한 로드밸런싱 성능 지표. FWLB에서 중요. 단위는 bps(bit per second) 또는 pps(packet per second)를 사용.

추가로 고려해야 할 사항은, 로드밸런서 또한 만능인 장비가 아니므로 장애가 날 경우를 대비하여 로드밸런서 자체도 이중화 구성을 할 필요가 있습니다.

– 참고

RFC 1794 (DNS Support for Load Balancing) : https://tools.ietf.org/html/rfc1794

RFC 2391 (Load Sharing using IP Network Address Translation (LSNAT)) : https://tools.ietf.org/html/rfc2391

Server Load Balancing Registration Protocol : https://tools.ietf.org/html/draft-wollman-slbrp-00

#Steven

[Server] 로드 밸런싱이란?

728×90

로드 밸런싱이란 서버를 구축하고 관리하다 보면 한 번쯤 마주하게 되는

작은 규모의 서버에서는 볼일이 없겠지만 사용자수가 많고 트래픽이 많은

중대형의 서버에서는 꼭 알아야 하는 개념입니다.

로드밸런싱은 컴퓨터 네트워크 기술로 중앙처리장치와 같은 컴퓨터 자원에게

작업을 분산하는 것을 의미합니다.

여기서 중요한 핵심이 바로 작업을 분산한다입니다.

자 그럼 이러한 작업을 분산하는 로드밸런싱이라는 것이 어떻게 사용되는지

어떤 개념인지에 대해 자세히 알아보도록 하겠습니다.

1. 트래픽 분산의 개념

단일 서버를 먼저 생각해보면 다음 그림은 서버와 DB의 1차적 구조입니다.

먼저도 이야기했듯이 소규모의 서버에서는 위와 같은 구조가 특별히 문제 될 것이 없습니다.

하지만 트래픽이 엄청나게 많이 발생하는 서버라고 한다면 어떻게 될까요?

아마도 위 그림처럼 서버로 트래픽량이 증가할 것이고 서버 혼자 감당할 수 있는

트래픽 이상이 오버되면 결국 서버가 다운되는 증상까지 발생하게 됩니다.

여기서 간단하게 트래픽을 분산시킬 수 있는 방법이 바로 로드밸런싱입니다.

즉 위 개념처럼 작업이 트래픽이 되는 것이고

작업을 분산시킨다 == 트래픽을 분산시킨다

라는 의미로 사용될 수 있습니다.

예를 들어 서버로 들어오는 트래픽은 이제 로드밸런싱을 사용하면서는

서버로 직접적인 접근은 하지 않고 로드밸런서로 접속되며 이 접속된 트래픽을

로드밸런싱이 연결된 서버의 상태를 체크하여 좀 더 여유 있는 쪽으로 전달합니다.

즉 트래픽 분산의 주차 게 바로 로드밸런서가 됩니다.

2. 로드밸런서 종류

이러한 분산작업을 해주는 로드밸런서는 크게 4가지로 나눌 수 있습니다.

1. L2

Mac 주소를 바탕으로 로드 밸런싱을 진행

2. L3

IP주소를 바탕으로 로드 밸런싱을 진행

3. L4

IP와 Port를 바탕으로 로드 밸런싱을 진행

UDP, TCP

4. L7

Application Layer Level에서 로드 밸런싱을 진행

Http, Https, ftp

로드 밸런서 서버 선택 시 동작 기능은 아래와 같습니다.

1. Round Robin 방식

단순히 Round Robin으로 계산하여 분산합니다.

2. Least Connection

연결 개수가 적은 서버를 선택합니다.

트래픽으로 인해 세션이 길어지는 경우에 권장됩니다.

3. Source

사용자의 IP를 hashing 하여 분배합니다.

사용자는 항상 같은 서버로 연결됩니다.

로드밸런싱은 트래픽이 증가하는 시점에 선택이 아닌 필수입니다.

그렇기에 추후 트래픽이 증가할 거라고 한다면 미리 설계에 대비를 해놓고

서버를 구성하는 것도 좋은 방법입니다.

728×90

반응형

키워드에 대한 정보 로드 밸런싱 이란

다음은 Bing에서 로드 밸런싱 이란 주제에 대한 검색 결과입니다. 필요한 경우 더 읽을 수 있습니다.

이 기사는 인터넷의 다양한 출처에서 편집되었습니다. 이 기사가 유용했기를 바랍니다. 이 기사가 유용하다고 생각되면 공유하십시오. 매우 감사합니다!

사람들이 주제에 대해 자주 검색하는 키워드 로드 밸런싱이란? | 천상계 개발자가 되려면 이 정도는 알아야지

  • #로드밸런서
  • #천상계개발자
  • #분산시스템

로드 #밸런싱이란? #| #천상계 #개발자가 #되려면 #이 #정도는 #알아야지


YouTube에서 로드 밸런싱 이란 주제의 다른 동영상 보기

주제에 대한 기사를 시청해 주셔서 감사합니다 로드 밸런싱이란? | 천상계 개발자가 되려면 이 정도는 알아야지 | 로드 밸런싱 이란, 이 기사가 유용하다고 생각되면 공유하십시오, 매우 감사합니다.

Leave a Comment