Skip to content
Home » 로드 밸런싱 이중화 | 개발자가 아닌 It 관련자를 위한 업무용 It 지식 (시리즈 3 네트워크 이중화_L4, Was, Ha, Db Server 개념정리) 답을 믿으세요

로드 밸런싱 이중화 | 개발자가 아닌 It 관련자를 위한 업무용 It 지식 (시리즈 3 네트워크 이중화_L4, Was, Ha, Db Server 개념정리) 답을 믿으세요

당신은 주제를 찾고 있습니까 “로드 밸런싱 이중화 – 개발자가 아닌 IT 관련자를 위한 업무용 IT 지식 (시리즈 3 네트워크 이중화_L4, WAS, HA, DB Server 개념정리)“? 다음 카테고리의 웹사이트 sk.taphoamini.com 에서 귀하의 모든 질문에 답변해 드립니다: sk.taphoamini.com/wiki. 바로 아래에서 답을 찾을 수 있습니다. 작성자 불꽃남자25 IT도서관 이(가) 작성한 기사에는 조회수 3,946회 및 좋아요 119개 개의 좋아요가 있습니다.

Table of Contents

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

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

d여기에서 개발자가 아닌 IT 관련자를 위한 업무용 IT 지식 (시리즈 3 네트워크 이중화_L4, WAS, HA, DB Server 개념정리) – 로드 밸런싱 이중화 주제에 대한 세부정보를 참조하세요

#IT기초지식 #IT입문지식 #비개발자용개발지식
IT 관련자 분들(기획, 디자인, CS, IT컨설팅, IT기획 등)이 개발의 기본 지식을 쉽게 얻고, 개발자 분들과의 소통 향상 및 IT 관련 업무의 편의성이 향상 되었으면 하는 마음으로 콘텐츠 시리즈를 시작했습니다.
많이 사랑해주시고, 궁금하신 내용 댓글 주시면 만들어 드릴께요~^^
이전 영상 링크 : IT 시스템 개발 구조
https://youtu.be/p5qm-h04W5M

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

로드 밸런싱 & 인프라 이중화 구축 – velog

로드 밸런싱 : 여러 대의 서버에 트래픽을 분산시켜주는 서비스. 로드 밸런서의 서버 선택 방식 – 라운드 로빈 – Least Connection : 연결 개수가 …

+ 여기를 클릭

Source: velog.io

Date Published: 1/1/2021

View: 2522

이중화 와 로드 밸런싱의 차이 – 네이버 블로그

이중화 와 로드 밸런싱의 차이에 대해서 설명드리겠습니다. 이중화는 실제로 서버가 2대 들어가는 것을 의미합니다. 한 대의 서버는 액티브 ( 운영 상태) …

+ 여기에 표시

Source: m.blog.naver.com

Date Published: 11/17/2022

View: 4129

서버 이중화에 대하여 – L4, L7, 로드밸런싱

서버 이중화에 대하여 – L4, L7, 로드밸런싱 현재 실제 많은 서비스 들은 대부분 서버 이중화가 되어있다. 오늘은 서버이중화의 구조에 대해 포스팅 …

+ 여기에 자세히 보기

Source: devmoony.tistory.com

Date Published: 1/25/2022

View: 8372

서버 이중화(HA- High Availability) 솔루션 및 로드 밸런싱(Load …

서버 이중화(HA- High Availability) 솔루션 및 로드 밸런싱(Load Balancing) … HA(High Availability)를 간단히 한국어로 직역을 하자면 “고가용성”이다.

+ 더 읽기

Source: pythontoomuchinformation.tistory.com

Date Published: 7/23/2021

View: 8547

이중화 및 로드밸런싱 – JaeJae 의 블로그

한마디로 말하면, L4의 핵심은 ‘IP, 포트, 세션’ 을 기반으로한 로드 밸런싱(Load Balancing)이다! 라고 말하고 싶네요. L4에서 가장 중요한건 역시 4 …

+ 여기를 클릭

Source: sonsecurity.tistory.com

Date Published: 8/30/2021

View: 284

로드 밸런싱 이중화 | 개발자가 아닌 It 관련자를 위한 업무용 It …

로드밸런싱(Load Balancing)이란? [분산처리] WAS 이중화와 세션클러스터링 – 길은 가면, 뒤에 있다. L4, 로드밸런싱, 이중화 – Experience. 주제와 …

+ 여기에 보기

Source: ppa.covadoc.vn

Date Published: 3/11/2021

View: 6737

로드밸런싱(Load Balancing)과 고가용성(HA)

고가용성 클러스터 (High-availability cluster). 장애 발생 시, 서비스 운영 중단 시간을 최소한으로 하기 위해 대기 서버를 둔다. (이중화, 평소에는 …

+ 여기에 보기

Source: prohannah.tistory.com

Date Published: 2/9/2022

View: 9269

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

Load Balancer 장애 대비. 서버를 분배하는 로드 밸런서에 문제가 생길 수 있기 때문에 로드 밸런서를 이중화해 대비한다. 7 8.

+ 더 읽기

Source: sdesigner.tistory.com

Date Published: 11/14/2022

View: 2523

로드 밸런싱 Active-Active 방식의 웹 서버 이중화 구축 및 결함 …

로드밸런싱서버가 웹서버를 교대로 실행하여 부하를 분산하고, 빠른 서비스가 제공되도록 하였다. 또한 임의의 웹서버에 장애가 발생하더라도 또 다른 웹서버에 의해 …

+ 더 읽기

Source: dspace.kci.go.kr

Date Published: 8/6/2021

View: 2630

로드 밸런싱이란? Load balancing

로드밸런싱(부하 분산) 은 컴퓨터 네트워크 기술의 일종으로 중앙처리장치 또는 저장장치와 … Load balancer를 이중화 하여 장애를 대비할 수 있다.

+ 여기에 보기

Source: cheershennah.tistory.com

Date Published: 6/19/2021

View: 9655

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

주제와 관련된 더 많은 사진을 참조하십시오 개발자가 아닌 IT 관련자를 위한 업무용 IT 지식 (시리즈 3 네트워크 이중화_L4, WAS, HA, DB Server 개념정리). 댓글에서 더 많은 관련 이미지를 보거나 필요한 경우 더 많은 관련 기사를 볼 수 있습니다.

개발자가 아닌 IT 관련자를 위한 업무용 IT 지식 (시리즈 3 네트워크 이중화_L4, WAS, HA, DB Server 개념정리)
개발자가 아닌 IT 관련자를 위한 업무용 IT 지식 (시리즈 3 네트워크 이중화_L4, WAS, HA, DB Server 개념정리)

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

  • Author: 불꽃남자25 IT도서관
  • Views: 조회수 3,946회
  • Likes: 좋아요 119개
  • Date Published: 2021. 2. 25.
  • Video Url link: https://www.youtube.com/watch?v=5iift-Tgq_c

이중화 와 로드 밸런싱의 차이

이중화 와 로드 밸런싱의 차이

안녕하세요, 이중화와 로드 밸런싱의

차이에 대해서 포스팅을 하겠습니다.​

이중화 와 로드 밸런싱의 차이에 대해서 설명드리겠습니다.

이중화는 실제로 서버가 2대 들어가는 것을 의미합니다.

한 대의 서버는 액티브 ( 운영 상태) 인 것을 말하고,

반대로 다른 한 대는 스탠 바이 ( 대기 상태 ) 인 것을 말합니다.

액티브 상태인 서버가 문제가 생길 시 서비스에 지장이 없게

다른 스탠바이 상태인 서버가 액티브 상태가 되고, 액티브 상태인 서버가 스탠바이로 바뀝니다.

로드밸런싱은

두 대의 서버가 외부 도메인으로 접속 할 시에

각 각의 서버가 번갈아 가면서 사용자를 받아 들이는 것을 의미합니다.

무니의 개발 로그

반응형

서버 이중화에 대하여 – L4, L7, 로드밸런싱

현재 실제 많은 서비스 들은 대부분 서버 이중화가 되어있다.

오늘은 서버이중화의 구조에 대해 포스팅하려고 한다.

📌 이중화란?

시스템의 가용성을 높이기 위해 장비를 다중화 시키는 방법을 말한다.

가용성이란 N개의 서버 장비 중 하나의 서버 장비가 문제가 생겨도 다른 장비에서 서비스가 될 수 있도록 구현하여 서비스가 다운되지 않고 정상적으로 유지된 시간이 길어지는 것이다.

uptime(정상 서비스 시간) / uptime + downtime(총 서비스 시간) = 가용성

📌 로드밸런싱

L4 스위치란 OSI 7 Layer 중에서 4계층(transport)에 해당하는 장비 즉, 들어온 데이터를 로드밸런싱 해주는 장비를 말한다.

여기서 로드밸런싱이라는 말은 어려워 보이지만 간단하다.

로드밸런싱은 우리말로 해석하면 부하분산이다. 서버의 부하가 균등하게 유지되도록 분산하여 할당해주는 것이라고 이해하면 된다.

이러한 로드밸런싱의 기법은 여러가지가 있다. 활용할 수 있는 부하 분산 방식(로드밸런싱 알고리즘)에 어떠한 것들이 있는지 알아보자.

라운드로빈 방식(Round Robin)

서버에 들어온 요청을 순서대로 돌아가며 분산하는 방식이다. 클라이언트의 요청을 순서대로 분배하기 때문에 여러 대의 서버가 동일한 스펙을 갖고, 서버와이 연결(세션)이 오래 지속되지 않는 경우에 활용하기 적합하다.

가중 라운드로빈 방식(Weighted Round Robin)

각각의 서버마다 가중치를 매기고 가중치가 높은 서버에 클라이언트 요청을 우선적으로 배분한다. 주로 서버의 트래픽 처리 능력이 상이한 경우 사용되는 부하 분산 방식이다. 예를 들어 서버 A가 5라는 가중치를 갖고 서버 B가 2라는 가중치를 갖는다면, 로드밸런서는 라운드로빈 방식으로 서버A에 5개 서버B에 2개의 요청을 전달한다.

IP 해시 방식(IP Hash)

클라이언트의 IP 주소를 특정 서버로 매핑하여 요청을 처리하는 방식이다. 사용자의 IP를 해싱해(Hashing, 임의의 길이를 지닌 데이터를 고정된 길이의 데이터로 매핑하는 것) 로드를 분배하기 때문에 사용자가 항상 동일한 서버로 연결되는 것을 보장한다.

최소 연결 방식(Least Connection)

요청이 들어온 시점에 가장 적은 연결상태를 보이는 서버에 우선적으로 트래픽을 배분한다. 자주 세션이 길어지거나, 서버에 분배된 트래픽등이 일정하지 않은 경우에 적합한 방식이다.

최소 리스폰타임(Least Response Time)

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

📌 L4 로드밸런싱과 L7 로드밸런싱

네트워크 통신 시스템은 크게 일곱 가지의 계층(OSI 7 Layers)으로 나뉜다.

각각의 계층이 L1, L2, L3 .. L7에 해당하는데 상위 계층에서 사용되는 장비는 하위 계층의 장비가 갖고 있는 기능을 모두 가지고 있으며, 상위 계층으로 갈수록 더욱 정교한 로드밸런싱이 가능하다.

반응형

서버 이중화(HA- High Availability) 솔루션 및 로드 밸런싱(Load Balancing)

반응형

HA(High Availability)를 간단히 한국어로 직역을 하자면 “고가용성”이다.

고 가용성이란 “가용성이 높다”는 뜻으로서, “절대 고장 나지 않음”을 의미한다.

즉, 네트워크나 프로그램 등의 정보 시스템이 상당히 오랜 기간 동안 지속적으로 정상 운영이 가능한 성질을 말한다.

최근 들어 기업의 모든 비즈니스가 디지털화 되면서, 고 가용성이 보장된 서비스를 제공해야 하는 케이스가 점점 많이 발생하고 있다. 또한 단 한번의 예상치 못한 서버 다운은 기업 신용 실추 등의 문제와 직결되기 때문에 손실이 매우 크다.

여담으로 HA설계를 하느냐 안하느냐에 따라 주니어 개발자와 시니어 개발자를 나누는 기준이 되기도 한다고 한다.

제 14회 한국자바개발자 컨퍼런스 가이드집 (이미지 클릭!)

서버 이중화

서버 이중화란 운영중인 서비스의 안정성을 위해 각종 자원을 이중 또는 그 이상으로 구성하는 것을 말한다.

따라서 하나의 서비스에 장애가 발생하는 경우 다른 서버를 통해 서비스를 지속가능하게 한다.

[참고] clustering 클러스터링

다수의 서버를 중복 구성하는 것

장애가 일어난 Active 서버를 내리고 대기하고 있던 Stand by 서버를 올리는 것을 fail over라고 한다.

이를 보통 네트워크 장애 발생 시 노드 간 fail over가 실행되도록 설정했다고 말한다.

fail over 발생 시 Active 서버에 할당한 가상 IP주소를 제거하고 Stand by 서버에 해당 주소를 재할당하기 때문에,

클라이언트는 동일한 IP주소로 그대로 접속이 가능하다.

서버 이중화의 목적

장애 또는 재해 시 빠른 서비스 재개를 위함

오류가 발생하더라도 사용자는 인지하지 못하도록 하기 위함.

원활한 서비스를 위해

한 개의 장비에서 일정량 이상의 트래픽을 처리하는 경우 응답시간이 늦어질 수 있다.

서버 이중화의 구현

HA(High Availiability)서비스와 디스크 RAID 구성, 오라클의 RAC(Real Application Clusters) 등으로 구현 가능하다.

서버 이중화 솔루션이 반드시 갖추어야 할 기본 기능

1. 데이터 복제 기능

1번 서버에서 장애 발생 시 2번 서버가 1번 서버를 대신하여 바로 서비스하기 위해서는 양쪽 데이터는 항상 100% 동일해야 한다는 무결성을 보장해야 한다.

이렇게 Data를 동일히 맞추기 위해서는 Data Replication(데이터 복제) 기능이 발드시 필요하다.

이 때 Master(Read, Write) – Slave(Read) 구조를 가진다. 즉, 다수의 slave 구축으로 Read(읽기) 부하를 분산시킬 수 있다.

Master-Slave구조에서 한 개의 Master에 여러 Slave가 있는 구조를 클러스터링 구조라고 하며 DDR구조라 한다.

2. 장애 감시 기능

Stand by 서버는 Active 서버가 언제 장애가 발생할지 모르니 항상 감시하고 있어야 한다.

이러한 구성은 Active-Stand By HA 구성이라고 한다.

서버 이중화 구조

보통 서버 이중화의 구성은 Active-Active 구성과 Active-Standby 구성으로 나뉜다.

Active-Active구조

부하분산의 목적으로 주로 활용

서비스 단위를 나누어 분산시키기도 한다.

Active-Standby 구조

즉각적인 failover(=swap)을 위해 주로 활용.

서버를 이중화함과 동시에 부하 분산을 하여 장애시 서비스를 이전하여 운영하는 형태다.

서버를 이중화함과 동시에 부하 분산을 하여 장애시 서비스를 이전하여 운영하는 형태다. 지속적으로 Active서버에 장애가 발생했는지 확인하기 위해 Active서버와 Standby서버가 heartbeat을 주고받으며 health check를 한다.

Active서버에 장애 발생 시 다운된 서버를 대신하기 위하여 Standby서버로 fail over(=swap)되어 동작한다.

그 동안 개발자들은 다운된 Active에 접근하여 장애이슈처리.

그 동안 개발자들은 다운된 Active에 접근하여 장애이슈처리. 결국 일반적으로 Active와 Standby는 같은 기능을 함(=Mirroring Server)

서버 이중화 솔루션의 단점

데이터가 실시간 복제된다는 점이다.

실수로 반영된 데이터 혹은 바이러스에 감염된 파일도 복제가 되어 2번 서버 또한 감염이 될 수 있다는 점이다.

이러한 단점을 보완하기 위해서는 백업 솔루션을 추가 도입해야할 수 있다.

로드 밸런싱(Load Balancing)

client의 수가 많을 땐 server 1대 만으로는 트래픽을 감당하기 힘들다.

이 때 트래픽을 해결하기 위해 scale-up 혹은 scale-out 해줘야 한다.

보통은 scale-out방식으로 하게 되는데, 이는 장비를 여러대를 두는 것을 의미한다.

https://prohannah.tistory.com/62

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

장비를 여러대를 둔 상태에서 여러 서버에 트래픽이 고르게 분산되도록 도와주는 기능.

즉, 부하 분산을 위해서 가상(virtual) IP를 통해 여러 서버에 접속하도록 분배하는 기능!

이러한 작업을 하는 장비는 로드 밸런서(Load balancer)라고 한다.

로드 밸런스 및 방화벽 장비는 SPOF가 될 가능성이 높인 네트워크 장비다. 따라서 이중화 구성은 필수다.

쉽게 말해 한 개의 로드 밸런스만 두었을 땐 그 한 개가 오류나면 시스템 전체가 다운되니 최소 2개로 구성하라는 말!

로드 밸런싱은 구현하고자 하는 지점에 따라 미들웨어, 네트워크, OS 등 다양한 지점에서 구현 가능하다.

[참고] SPOF(Single Point Of Failure) 단일장애지점

장애가 발생하면 시스템 전체가 다운되는 지점

로드 밸런서의 주요 기능

1. NAT(Network Address Translation)

Private IP를 Public IP로 바꿔주는 통신망의 주소 변조기

2. Tunneling

눈에 보이지 않는 통로를 만들어 통신할 수 있게 하는 개념

데이터를 캡슐화하여 연결된 노드만 캡슐을 해제할 수 있게 만든다.

3. Dynamic Source Routing protocol(DSR)

요청에 대한 응답을 할 때 로드 밸런서가 아닌 client IP로 응답.

즉, 네트워크 스위치를 거치지 않고 바로 클라이언트를 찾아가는 개념

로드 밸런서가 동작하는 방법

기초적인 방법인 Bridge/Transparent Mode에서는 사용자가 서버에 서비스를 요청할 때 중간에서 로드밸런서가 NAT를 통해 IP/MAC주소를 변조합니다. 즉 요청과 응답이 모두 Load Balancer를 경유합니다.

https://deveric.tistory.com/91

반응형

이중화 및 로드밸런싱

한마디로 말하면,

L4의 핵심은 ‘IP, 포트, 세션’ 을 기반으로한

로드 밸런싱(Load Balancing)이다!

라고 말하고 싶네요. L4에서 가장 중요한건 역시 4계층답게

포트(port)라는 생각이 드네요.

2계층의 MAC

3계층의 IP

그럼 4계층은 바로 포트 입니다.

그리고 이 포트와 맞물려 로드 밸런싱이라는 개념이 등장 합니다.

L4 스위치는 마치 포트와 로드밸런싱의 오묘한 조합이랄까요.

L4 스위치 = 포트 + 로드밸런싱(물론 IP,세션도 중요합니다)

L4스위치가 로드밸런싱을 수행하는 장비이기 때문에 L4스위치를

다른말로 로드 밸랜서(Load Balancer) 라고도 합니다.

로드밸런싱은, 동일한 역할을 수행하는 서버 그룹을 VIP를 통해 관리하며,

서버로 향하는 트래픽을 일단 VIP를 가진 L4스위치로 수신한 후

분배정책에 따라 적절한 서버에 분배해 주는 것을 말합니다.

VIP는 Virtual IP의 약자로, 서버그룹의 대표 IP라 할 수 있습니다.

이 VIP를 로드밸런싱을 수행하는 L4 스위치가 가지고 있습니다.

서버와 통신하고자 하는 클라이언트는 VIP를 향해 트래픽을 전송하고

L4스위치가 이 트래픽을 받아 적절한 서버에 로드밸런싱 해주는 것이

L4스위치의 역할입니다.

한마디로, L4 스위치는 부하분산 장비입니다.

요즘 웬만한 사이트는 서버 한 대로 사용자들의 트래픽을 감당하기

어렵기 떄문에 동일한 역할을 수행하는 서버를 여러 대 두어서 사용자들의

트래픽이 많아져도 유연하고 안정적으로 사이트를 운영하기 위해

L4스위치를 통한 로드밸런싱 을 하는걸로 알고 있습니다.

L4스위치, 즉 로드밸란서가 없어도 네트워크를 하는데 지장은 없습니다.

하지만 IT가 발전하고 트래픽이 과도해지면서 로드밸런서 없이는 안정적인

네트워크를 구성하는것이 불가피해지고 있다는 생각이 드네요.

이 그림에서 보는바와 같이,

클라이언트와 서버 사이에 로드밸란서가 위치하여 서버 2대에 대해

로드밸런싱을 수행합니다.

즉, 로드밸런서가 트래픽을 왼쪽 서버로 보낼 수도 있고, 오른쪽 서버에 보낼

수도 있습니다.

###################################################

그러면 L4를 왜 쓰느냐??

2가지 이유가 있습니다.

첫 번째 로드를 분산하기 위해서 입니다.(로드 발란싱)

예를 들어 한 서버에 웹 서비스(80) 를 하는 서버가 있습니다.

그런데 서버에 부하 때문에 서버를 증설 해야 합니다.

하지만 서버를 분리 시키면 IP가 하나 더 필요하게 되고 IP가 늘어나면 기존 서비스와 IP가 달라지는 문제가 생깁니다.

이 때 사용하는 것이 L4장비의 VIP입니다.

예를 들어 기존에 사용하는 서버의 IP가 128.x.x.1이라고 합시다.

이 IP를 L4장비에 VIP로 할당합니다. 128.x.x.1 for 80 128.x.x.1 regarding 80

(VIP는 가상의 아이피를 말합니다.)

기존 서버에는 128.x.x.2 와 새로운 서버에는 128.x.x.3을 할당합니다.

(물론 기존 서버와 새로운 서버는 데이타가 동기되어 있어야 합니다.)

그리고 L4장비에 로드발란싱이 가능하게 세팅합니다.

그러면 이제 128.x.x.1로 요청하는 응답에 대해서 L4가 처리 하게됩니다. (대표IP로 서버여러대를 가지치기 할수 있다.)

L4는 로드발란싱 규칙에 따라서 기존 서버에서 응답하게 할 수도 있고 신규 서버에서 응답하게 할 수도 있습니다.

간단하게 L4에서 홀수 번째 요청은 기존 서버에서 짝수 번째 요청은 신규 서버에서 응답하게 설정 할 경우 요청에 대한 응답을 정확하게 반으로 나눌수 있습니다.

이렇게 한 서버의 요청건수를 줄여주어 실제로 한대의 서버가 처리해야 할 요청을 두대(여러 대)의 서버가 처리하게 되는 것을 로드 발란싱이라고 합니다.

알테온으로 설명 드리면, 웹서버 두대를 로드밸런싱 하려면 먼저

웹서버를 각각 real server 로 각각 ip를 등록합니다.

그리고 웹서버 즉 real server ip 두개 를 group1 에 소속시킵니다.

그리고 virtual ip (vip=대표ip)를 하나 등록해서 그 ip로 오는

패킷중에 http(80) 패킷에 대해서는 group1으로 보내면 설정된

matric(hash, 라운드로빈, least connection, weighted )값에 의해

로드밸런싱 되는것입니다. 대부분 hash 방식을 사용하죠…

이렇게 하면 128.x.x.1 for 80 은 오직 80 포트만을 받고, 다른 포트는 filtering 된다.. 쓸데없는 포트로 들어오는 공격을 막을수 있다.

그리고 L4의 두번째 기능으로 무결성을 위한 fail over기능입니다.

흔히 가장 안정적으로 서비스되는 서버는 일년에 다운타임(동작 불능시간)이 50분 미만인 서버라고 합니다.

(1년동안 50분 정도 다운되면 최고로 안정적인 서버가 되는 것입니다.)

서버역시 기계인 것이라 영원히 죽지 않는 서버는 존재하지 않습니다.

그러나 사람들은 좀더 서버가 안정적으로 동작하길 윈하게 되죠

아주 중요한 서버(예를 들면 정치 관련 홈페이지나 은행과 같은 금융 그리고 그 외 쇼핑몰등)의 경우 일년에 50분의 다운이라도 서비스에 큰 타격을 입을 수 있습니다.

예를 들어 128.x.x.1이라는 서버가 있습니다.

그러나 이 서버는 중요한 서버라 절대 서버에 장애가 있으면 안됩니다.

이럴경우 사용하는 장비가 L4입니다.

L4에 VIP를 이용해서 128.x.x.1이라는 IP를 할당합니다.

기존 서버의 IP를 128.x.x.2로 변경합니다.

새로운 서버에 128.x.x.3으로 할당합니다.(물론 기존 서버와 자료가 같도록 동기화 되어 있어야 합니다.)

L4에 fail over기능을 이용 할 경우

128.x.x.1로 오는 모든 요청에 대해서 L4는 128.x.x.2가 응답하게 합니다.

그리고 128.x.x.2에 장애가 있을 경우(서버가 다운될 경우)에는 128.x.x.3서버가 자동으로 응답하게 처리하게 됩니다.

이렇게 미리 동일한 서버를 준비해 놓고 L4를 이용해서 fail over로 연결하면 첫번째 서버(마스터)에 장애가 있을 경우라도 미리 준비해 놓은 서버(슬래이브)가 동작하게 되므로

실제로 서비스에는 문제가 없게되는 것입니다.

Alteon L4 스위치 기본 설정방법 – Real 서버가 2대이고 1개의 그룹으로 설정, vitural 서버는 1개 사용 – metric(분산알고리즘) 미설정 시 default는 leastconnection

– health 체크 미설정 시 default는 tcp, inter=2(매 2초마다 체크), retry=4(4번 실패 체크 시 down으로 정의)

– DAM(Direct Access Mode)가 default로 disable (Real IP를 통한 직접 서비스 안됨)

※ 즉, 여기서는 Real IP를 이용한 http(80번 포트) 접속 안됨

(하지만 Load Balance와 무관한 서비스는 각각 가능: ssh, 터미널 접속,… 등) Main#

Main# /cfg/l3 ; 스위치 IP 설정…

(또는 Main# /cfg/ip)

Layer 3# if 1 ; 스위치 자체 IP 설정…

IP Interface 1# addr 1.2.3.4 ; IP address 할당

IP Interface 1# mask 255.255.255.0 ; subnet mask 할당 (필요시)

IP Interface 1# ena ; IP address 활성화 IP Interface 1# /cfg/l3/gw ; default gateway 설정…

Enter default gateway number: (1-255) 1 [Enter] ; gateway 번호 입력 (필요시)

Default gateway 1# addr 1.2.3.1 ; default gateway 할당

Default gateway 1# ena ; gateway 활성화 Default gateway 1# /cfg/slb/real 1 ; 첫번째 real 서버 설정…

Real server 1# rip 1.2.3.5 ; real 서버 IP address 할당

Real server 1# ena ; 첫번째 real 서버 활성화 Real server 1# /cfg/slb/real 2 ; 두번째 real 서버 설정…

Real server 2# rip 1.2.3.6 ; real 서버 IP address 할당

Real server 2# ena ; 두번째 real 서버 활성화 Real server 2# /cfg/slb/group 1 ; real 서버 그룹 설정…

Real server group1# add 1 ; 등록된 real 서버 1번을 그룹에 추가

Real server group1# add 2 ; 등록된 real 서버 2번을 그룹에 추가 Real server group1# /cfg/slb/virt 1 ; virtual 서버 설정…

Virtual server 1# vip 1.2.3.2 ; virtual 서버 IP address 할당

Virtual server 1# ena ; virtual 서버 활성화

Virtual server 1# service http ; http 서비스 설정…

Virtual server 1 http Service# group 1 ; http 서비스를 real 서버 그룹에 할당

(필요시 Virtual server 1 http Service# rport 8080 ; http 서비스를 real 서버의 8080 포트에 매핑) Virtual server 1# /cfg/slb/port 1 ; L4의 물리적인 포트 1번 설정…

SLB port 1# server ena ; 포트 1번을 서버 포트로 할당

SLB port 1# /cfg/slb/port 2 ; L4의 물리적인 포트 2번 설정…

SLB port 2# server ena ; 포트 2번을 서버 포트로 할당 SLB port 8# /cfg/slb/port 8 ; L4의 물리적인 포트 8번 설정…

SLB port 8# client ena ; 포트 8번을 클라이언트 포트로 할당 SLB port 8# /cfg/slb ; SLB 설정…

Layer 4# on ; Server Load Balancing 모드 On

Layer 4# apply ; 변경된 설정값 적용

Layer 4# cur ; 현재 설정값 확인

Layer 4# save ; FLASH 메모리에 현재 설정내용 저장

Layer 4# /info/slb/dump ; SLB 정보 확인

——————————————————

| ㅁ1 ㅁ2 ㅁ3 ㅁ4 ㅁ3 ㅁ4 ㅁ5 ㅁ6 ㅁ5 ㅁ6 ㅁ7 ㅁ8 | –> Alteon L4 스위치

–+—+————————————–+——–

| | |

| | |–> 클라이언트 포트 (외부 연결)

| |

| |–> 서버 포트 (서버 연결)

|

|

|–> 서버 포트 (서버 연결)

※ 설정 시 port 9번은 미사용

출저 : http://annehouse.tistory.com/365

로드 밸런싱 이중화 | 개발자가 아닌 It 관련자를 위한 업무용 It 지식 (시리즈 3 네트워크 이중화_L4, Was, Ha, Db Server 개념정리) 6980 투표 이 답변

당신은 주제를 찾고 있습니까 “로드 밸런싱 이중화 – 개발자가 아닌 IT 관련자를 위한 업무용 IT 지식 (시리즈 3 네트워크 이중화_L4, WAS, HA, DB Server 개념정리)“? 다음 카테고리의 웹사이트 https://ppa.covadoc.vn 에서 귀하의 모든 질문에 답변해 드립니다: https://ppa.covadoc.vn/blog/. 바로 아래에서 답을 찾을 수 있습니다. 작성자 불꽃남자25 IT도서관 이(가) 작성한 기사에는 조회수 3,715회 및 좋아요 111개 개의 좋아요가 있습니다.

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

#IT기초지식 #IT입문지식 #비개발자용개발지식

IT 관련자 분들(기획, 디자인, CS, IT컨설팅, IT기획 등)이 개발의 기본 지식을 쉽게 얻고, 개발자 분들과의 소통 향상 및 IT 관련 업무의 편의성이 향상 되었으면 하는 마음으로 콘텐츠 시리즈를 시작했습니다.

많이 사랑해주시고, 궁금하신 내용 댓글 주시면 만들어 드릴께요~^^

이전 영상 링크 : IT 시스템 개발 구조

로드 밸런싱 : 여러 대의 서버에 트래픽을 분산시켜주는 서비스. 로드 밸런서의 서버 선택 방식 – 라운드 로빈 – Least Connection : 연결 개수가 …

+ 여기를 클릭

Source: velog.io

Date Published: 2/4/2021

View: 3034

서버 이중화에 대하여 – L4, L7, 로드밸런싱 현재 실제 많은 서비스 들은 대부분 서버 이중화가 되어있다. 오늘은 서버이중화의 구조에 대해 포스팅 …

+ 여기에 더 보기

Source: devmoony.tistory.com

Date Published: 8/12/2021

View: 4075

이중화 와 로드 밸런싱의 차이에 대해서 설명드리겠습니다. 이중화는 실제로 서버가 2대 들어가는 것을 의미합니다. 한 대의 서버는 액티브 ( 운영 상태) …

+ 여기에 자세히 보기

Source: m.blog.naver.com

Date Published: 12/23/2021

View: 2584

본문 제목. 서버 이중화(HA- High Availability) 솔루션 및 로드 밸런싱(Load Balancing). TIL. by 둥굴둥굴둥굴레차 2021. 9. 7. 22:10 …

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

Source: pythontoomuchinformation.tistory.com

Date Published: 1/29/2022

View: 7080

한마디로 말하면, L4의 핵심은 ‘IP, 포트, 세션’ 을 기반으로한 로드 밸런싱(Load Balancing)이다! 라고 말하고 싶네요. L4에서 가장 중요한건 역시 4 …

+ 여기에 표시

Source: sonsecurity.tistory.com

Date Published: 8/3/2022

View: 418

고가용성 클러스터 (High-availability cluster). 장애 발생 시, 서비스 운영 중단 시간을 최소한으로 하기 위해 대기 서버를 둔다. (이중화, 평소에는 …

+ 여기에 자세히 보기

Source: prohannah.tistory.com

Date Published: 6/14/2022

View: 7911

Load Balancer 장애 대비. 서버를 분배하는 로드 밸런서에 문제가 생길 수 있기 때문에 로드 밸런서를 이중화해 대비한다. 7 8.

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

Source: sdesigner.tistory.com

Date Published: 4/18/2022

View: 1210

WAS 이중화 방법 및 세션 클러스터링 로드밸런싱 방법에는 크게 두가지가 있습니다. 하나는 L4를 이용한 웹서버 로드밸런싱, 그리고 나머지는 WAS 로드밸런싱입니다.

+ 여기에 보기

Source: 12bme.tistory.com

Date Published: 2/15/2021

View: 7723

L7 : 패킷분석, 웹방화벽, 보안스위치 등이 포함됨. 로드밸런싱, Load Balancing. 하나의 서버가 부하를 감당할 수 없을 때 여러대의 서버를 두고 …

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

Source: sgpassion.tistory.com

Date Published: 4/7/2021

View: 7123

주제와 관련된 더 많은 사진을 참조하십시오 개발자가 아닌 IT 관련자를 위한 업무용 IT 지식 (시리즈 3 네트워크 이중화_L4, WAS, HA, DB Server 개념정리). 댓글에서 더 많은 관련 이미지를 보거나 필요한 경우 더 많은 관련 기사를 볼 수 있습니다.

목차

로드밸런싱(Load Balancing)의 이점

로드밸런서(Load Balancer)

로드밸런서의 주요 기능

로드밸런서 동작 방식

서비스 중단 없이 장애를 대처하는 방법 (HA 클러스터 구성)

트래픽을 분산하는 로드밸런싱 주요 알고리즘

로드밸런싱 (Load Balancing)의 이점

로드밸런싱이란 병목현상을 방지하기 위해 서버의 부하를 분산하기 위해 N개의 서버에 트래픽을 분배하는 것이다. 트래픽이 높은 서비스를 다룰 때, 서비스의 무결성과 가용성을 유지하기 위해 로드 밸런싱은 필수적이다. From DNS requests to web servers, load balancing can mean the difference between costly downtime and a seamless end user experience.

로드밸런싱의 이점은 다음과 같다.

시스템 관리자가 클라이언트 요청을 쉽게 처리할 수 있게 하고 사용자의 대기 시간을 단축함 사용자들은 빠른 무중단 서비스를 경험할 수 있음. 클라이언트의 요청이 즉시 사용 가능한 서버에 분배되므로 단일 서버가 이전 작업들을 처리할 때 까지 기다릴 필요가 없다. 서비스 제공하는 입장에서 장애로 인한 서비스 중단시간이 적고 처리량이 높다. 모든 서버가 장애가 발생할 지라도 로드밸런서가 정상적인 대기 서버로 라우팅되기 때문에 최종 사용자(End user)에게 영향이 없다. 시스템 관리자는 장애나 부하가 더 적은 구성을 경험한다. 단일 서버가 많은 작업을 수행하는 대신, 로드밸런싱이 여러 서버에 작업을 분산해 적은 양으 작업을 수행하게 한다.

로드밸런서 (Load Balancer)

L4 (Trasnport Layer) : IP, Port, Session 기반으로 로드밸런싱 작업을 한다. 로드밸런서 설정 시 Health Cehck를 통해 장애여부를 판단하며, 보통은 라운드로빈 방식을 채택한다.

L7 (Application Layer) : packet payload(관심있는 데이터)를 분석하여 원하는 포트로 전달이 가능하다. (콘텐츠 기반 스위칭)

NginX

HAProxy

자세한 내용은 아래 포스팅을 참고한다.

로드밸런서 (L4, L7, NginX, HAProxy)

로드밸런서의 주요 기능

DSR (Driect Server Return)

서버의 응답 결과를 받을 목적지 주소를 L/B과 같은 네트워크 스위치 IP 주소가 아닌, 클라이언트의 IP주소로 전달해서 네트워크 스위치를 거치지 않고 바로 클라이언트를 찾아가는 개념

예를 들어, L/B가 양방향 프록시라면 모든 웹서버가 받는 트래픽을 L/B가 받게 된다. DSR은 응답 시 L/B를 거치지 않고 출발지 IP로 바로 응답하게 한다. DSR 기능을 통해 L/B는양방향에서 발생하는 모든 트래픽을 받는 게 아닌, 클라이언트에서 발생한 트래픽만 처리하게 된다.

적합한 경우 : 요청 패킷이 적은 케이스 (일반적인 웹 요청, 파일 다운로드)

적합하지 않은 경우 : 요청 패킷이 많은 케이스 (파일업로드, SMTP) – 파일 업로드 시에는 L/B를 거치지 않도록 해야함

NAT (Network Address Translation)

사설 IP 주소를 공인 IP 주소로 변경하는 통신망의 주소 변조기

사설 네트워크에 속한 여러개의 호스트가 하나의 공개 IP를 통해 접속하는 것을 목적으로 한다.

Tunneling

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

로드밸런서 동작 방식

로드 밸런서는 네트워크에서 IP 주소와 MAC 주소를 이용해 목적지(destination) IP 주소를 찾아가고 출발지로 되돌아오는 구조로 동작한다.

기본 동작 방식

최종 사용자가 특정 작업을 수행한다. 프론트엔드 서버는 요청을 받고 전달할 곳을 결정한다. (프론트엔드 서버에서 로드밸런싱을 한다고 가정) 백엔드 서버는 요청을 처리하고 응답 결과를 생성한다. 한편 백엔드 서버는 로드밸런서에 주기적으로 현재 상태를 보고한다. 백엔드 서버는 프론트엔드 서버에 응답을 반환하고, 프론트엔드 서버는 사용자에게 응답결과를 전달한다.

4가지의 동작 모드를 통해 로드밸런서를 이해해보자.

1. Bridge/Transparent Mode

사용자가 서비스를 요청하면 L4로 전달된 목적지 IP주소를 실서버 IP 주소로 변조하고 MAC 주소를 변조해서 목적지를 찾아가는 방식

– 요청 전달 시 변조

사용자 > L4 > NAT (IP/MAC 주소 변조) > 실서버

사용자가 L4를 호출하면 NAT가 목적지 IP주소를 실서버의 IP주소와 MAC주소 변조

– 응답 전달 시 변조

실서버 > NAT > L4 > 사용자

실서버에서 L4를 거치면서 출발지 IP주소를 L4 가상IP 주소로 변조. 동일 네트워크 대역이므로 MAC주소는 변조하지 않음

2. Router Mode

Bridge/Transparent Mode와 유사하지만 출발지의 MAC 주소도 변조함

3. One Arm Mode

사용자가 실서버에 접근할 때 목적지 IP는 L4 스위치 IP를 바라봄. L4에 도달하면 L4가 클라이언트에게 받은 목적지 IP주소를 L4 IP주소에서 -> 실서버 IP와 실서버 MAC 주소로 변조함. 되돌아가는 IP는 L4의 IP pool의 IP주소로 변조함.

4. DSR (Direct Server Return) Mode

사용자가 실서버에 접근할 때 출발지와 목적지의 IP주소를 변조하지 않고, L4에서 관리하는 실서버의 MAC 주소 테이블을 확인해서 MAC 주소만 변조함

장애를 대비하는 방법은? 고가용성 클러스터 (High-availability cluster)

장애 발생 시, 서비스 운영 중단 시간을 최소한으로 하기 위해 대기 서버를 둔다. (이중화, 평소에는 트래픽 분배 X)

Acitve 중인 로드밸런서와 Standby 상태의 로드밸런서가 heartbeat를 주고 받으며 서로 정상적으로 동작하는 지 health check를 한다.

Ative L/B에 장애가 발생했을 경우 Standby L/B가 작업을 이어받을 수 있게 페일오버(Failover) 해서 서비스가 중단되지 않도록 HA cluster를 구성한다. Standby L/B가 Active 상태로 변경되면서 장애가 발생한 L/B의 가상 IP주소를 가져오기 때문에 서비스가 무정지 상태를 유지한다. 다만 1초 정도의 순단 현상은 발생할 수 있다.

로드밸런싱 알고리즘

RR(Round Robin) : 가장 일반적으로 구현되는 알고리즘이다. L/B는 각 서버의 가중치에 따라 순차적으로 서버를 사용하며, 서버의 처리 시간이 균등하게 분산된다. 동적 알고리즘으로서 RR(Round Robin)은 서버 가중치를 실행 중에도 조정이 가능하다. 다만, RR은 연결 중인 세션을 고려하지 않는다.

Static-RR (Static Round Robin) : RR과 유사한 알고리즘으로, 각 서버에 부여된 가중치에 따러서 분배한다. RR과 비교하여 static-RR은 실행 중에 서버의 가중치를 즉시 변경할 수 없다. 하지만 서버 수에 대한 설계의 제약은 없다. When a server goes up, it will always be immediately reintroduced into the farm once the full map is recomputed.

When a server goes up, it will always be immediately reintroduced into the farm once the full map is recomputed. Least Connections : 접속 수가 가장 적은 서버로 분배한다. RR과 같이 동적 알고리즘이다. LDAP, SQL, TSE와 같이 긴 세션이 필요할 경우에 사용하면 좋으며, HTTP와 같은 짧은 세션을 사용하는 프로토콜에는 적합하지 않다.

Source : 클라이언트 IP를 해싱(hashing)하여 운영 중인 서버의 가중치로 나누어 분배한다. 서버의 수가 변경되지 않는 이상 동일한 클라리언트 IP는 항상 동일한 서버로 도달한다. 이 알고리즘은 일반적으로 cookie를 사용할 수 없는 TCP 모드에서 사용된다. 단, 클라리언트가 동적 IP를 사용한다면 같은 서버로 세션을 연결하기 어렵다.

URI : 접속하는 URI의 왼쪽 부분 혹은 전체를 해싱URI의 길이 또는 depth로 해싱)해서 운영 중인 서버의 가중치를 나눠서 분배한다. 정적 알고리즘으로 서버의 수가 변경되지 않는 한 동일한 서버로 지정되며, Source 알고리즘과 동일한 방식으로 작동한다. 이 알고리즘은 캐싱 서버의 부하를 분산할 때 주로 사용된다. 범용성이 낮아 특정 상황에만 사용된다.

URL_Parameter : HTTP GET의 파라미터를 확인 후 조건에 맞는 서버로 분배한다. 조건이 없는 경우에는 RR로 처리된다. 발견된 파라미터 뒤에 기호와 값이 같으면 값은 해시되고 실행 중인 서버의 가중치로 나뉜다. 오직 HTTP 모드에서만 작동한다.

HRD : HTTP Header에서 hdr( )으로 지정된 조건이 있는 경우에 대해서만 분배하며, 조건이 없는 경우 RR로 처리한다. 이 알고리즘은 브라우저 유형, 쿼리 주소 등을 기준으로 사용자를 서버에 분배해야하는 경우 유용하다. 범용성은 낮아 특정 상황에서만 사용된다.

rdp-cookie : TCP 요청에 대한 RDP 쿠키에 따른 분배한다. Frontend의 ACL ‘req_rdp_cookie()’에 해당한다. 이 알고리즘은 쿠키 식별을 통해 동일한 사용자를 특정 서버에 연결하는 것이 목적이다. 특정 쿠키와 세션을 특정 서버에 연결하는데 적합하며, 클라이언트가 쿠키를 사용하지 않는다면 알고리즘은 RR으로 작동한다.

보통 HTTP 트래픽 분산을 위해서는 “RR(Round Robin)” 알고리즘을, 데이터베이스를 위해서는 “Least Connections” 알고리즘이 많이 사용된다. 그 외 알고리즘은 상황에 따라 사용된다.

만약 여러 개의 캐시 서버가 있다면 “URI” 알고리즘이 적합하며, 요청을 특정 서버에 연결하려면 “Source” 알고리즘과 “rdp-cookie” 알고리즘이 적합하다.

쿼리 속성에 따라 분배하려면 “HDR” 알고리즘과 “URL parameter” 알고리즘이 적합하다.

내 업무에 적용해서 생각해보기

서버 구성은 아래와 같다. (로드밸런서 한 대, 노드 서버 두 대)

L/B -> Server 1

-> Server 2

조만간 각 노드 서버에 캐시를 적용할 예정이다.

ex) 호출 예시

https://my_server_api.com?id=1234567890

캐시는 LRU로, 요청받은 URL의 결과값을 저장해둘 것이다.

만약 로드밸런스를 L4, 그리고 라운드로빈 방식을 채택한다면 동일한 데이터가 각각 Server1, Server2 캐시 메모리에 저장될 수 있다.

L/B에 캐싱을 할 수도 있지만 부하가 생길 수 있다.

현재 나의 업무 서버는 L/B를 이중화 하지 않고 한 대로 운용중이기 때문에 각 노드 서버에 캐시를 적용하고, 로드밸런서는 L7, Url_based 알고리즘을 채택하는 게 어떨까 싶다.

N개의 분산된 서버에 캐시를 적용할 경우, 어디에 캐시를 할지, 캐시에 따라 로드밸런싱은 어떻게 할 것인지 등 고려사항이 생긴다.

아직은 서버 구성과 운영함에 있어서 어떤 것을 고려해야하는 지 조차 알 지 못하니까, 섣불리 이것저것 하지말고 주위 동료들과 차근차근 업무에 적용해봐야겠다.

참고문서

로드밸런서란?(L4, L7)

L4/L7 스위치의 대안, 오픈 소스 로드 밸런서 HAProxy – 네이버 기술블로그

최신 네트워크 로드 밸런싱 및 프록시 소개

Load Balancing with HAProxy

HAProxy load balancer. Part 2: Backend section and the algorithms

What is Load Balancing?

로드밸런싱(Load Balancing)과 고가용성(HA)

목차

로드밸런싱(Load Balancing)의 이점

로드밸런서(Load Balancer)

로드밸런서의 주요 기능

로드밸런서 동작 방식

서비스 중단 없이 장애를 대처하는 방법 (HA 클러스터 구성)

트래픽을 분산하는 로드밸런싱 주요 알고리즘

로드밸런싱 (Load Balancing)의 이점

로드밸런싱이란 병목현상을 방지하기 위해 서버의 부하를 분산하기 위해 N개의 서버에 트래픽을 분배하는 것이다. 트래픽이 높은 서비스를 다룰 때, 서비스의 무결성과 가용성을 유지하기 위해 로드 밸런싱은 필수적이다. From DNS requests to web servers, load balancing can mean the difference between costly downtime and a seamless end user experience.

로드밸런싱의 이점은 다음과 같다.

시스템 관리자가 클라이언트 요청을 쉽게 처리할 수 있게 하고 사용자의 대기 시간을 단축함 사용자들은 빠른 무중단 서비스를 경험할 수 있음. 클라이언트의 요청이 즉시 사용 가능한 서버에 분배되므로 단일 서버가 이전 작업들을 처리할 때 까지 기다릴 필요가 없다. 서비스 제공하는 입장에서 장애로 인한 서비스 중단시간이 적고 처리량이 높다. 모든 서버가 장애가 발생할 지라도 로드밸런서가 정상적인 대기 서버로 라우팅되기 때문에 최종 사용자(End user)에게 영향이 없다. 시스템 관리자는 장애나 부하가 더 적은 구성을 경험한다. 단일 서버가 많은 작업을 수행하는 대신, 로드밸런싱이 여러 서버에 작업을 분산해 적은 양으 작업을 수행하게 한다.

로드밸런서 (Load Balancer)

L4 (Trasnport Layer) : IP, Port, Session 기반으로 로드밸런싱 작업을 한다. 로드밸런서 설정 시 Health Cehck를 통해 장애여부를 판단하며, 보통은 라운드로빈 방식을 채택한다.

L7 (Application Layer) : packet payload(관심있는 데이터)를 분석하여 원하는 포트로 전달이 가능하다. (콘텐츠 기반 스위칭)

NginX

HAProxy

자세한 내용은 아래 포스팅을 참고한다.

로드밸런서 (L4, L7, NginX, HAProxy)

로드밸런서의 주요 기능

DSR (Driect Server Return)

서버의 응답 결과를 받을 목적지 주소를 L/B과 같은 네트워크 스위치 IP 주소가 아닌, 클라이언트의 IP주소로 전달해서 네트워크 스위치를 거치지 않고 바로 클라이언트를 찾아가는 개념

예를 들어, L/B가 양방향 프록시라면 모든 웹서버가 받는 트래픽을 L/B가 받게 된다. DSR은 응답 시 L/B를 거치지 않고 출발지 IP로 바로 응답하게 한다. DSR 기능을 통해 L/B는양방향에서 발생하는 모든 트래픽을 받는 게 아닌, 클라이언트에서 발생한 트래픽만 처리하게 된다.

적합한 경우 : 요청 패킷이 적은 케이스 (일반적인 웹 요청, 파일 다운로드)

적합하지 않은 경우 : 요청 패킷이 많은 케이스 (파일업로드, SMTP) – 파일 업로드 시에는 L/B를 거치지 않도록 해야함

NAT (Network Address Translation)

사설 IP 주소를 공인 IP 주소로 변경하는 통신망의 주소 변조기

사설 네트워크에 속한 여러개의 호스트가 하나의 공개 IP를 통해 접속하는 것을 목적으로 한다.

Tunneling

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

로드밸런서 동작 방식

로드 밸런서는 네트워크에서 IP 주소와 MAC 주소를 이용해 목적지(destination) IP 주소를 찾아가고 출발지로 되돌아오는 구조로 동작한다.

기본 동작 방식

최종 사용자가 특정 작업을 수행한다. 프론트엔드 서버는 요청을 받고 전달할 곳을 결정한다. (프론트엔드 서버에서 로드밸런싱을 한다고 가정) 백엔드 서버는 요청을 처리하고 응답 결과를 생성한다. 한편 백엔드 서버는 로드밸런서에 주기적으로 현재 상태를 보고한다. 백엔드 서버는 프론트엔드 서버에 응답을 반환하고, 프론트엔드 서버는 사용자에게 응답결과를 전달한다.

4가지의 동작 모드를 통해 로드밸런서를 이해해보자.

1. Bridge/Transparent Mode

사용자가 서비스를 요청하면 L4로 전달된 목적지 IP주소를 실서버 IP 주소로 변조하고 MAC 주소를 변조해서 목적지를 찾아가는 방식

– 요청 전달 시 변조

사용자 > L4 > NAT (IP/MAC 주소 변조) > 실서버

사용자가 L4를 호출하면 NAT가 목적지 IP주소를 실서버의 IP주소와 MAC주소 변조

– 응답 전달 시 변조

실서버 > NAT > L4 > 사용자

실서버에서 L4를 거치면서 출발지 IP주소를 L4 가상IP 주소로 변조. 동일 네트워크 대역이므로 MAC주소는 변조하지 않음

2. Router Mode

Bridge/Transparent Mode와 유사하지만 출발지의 MAC 주소도 변조함

3. One Arm Mode

사용자가 실서버에 접근할 때 목적지 IP는 L4 스위치 IP를 바라봄. L4에 도달하면 L4가 클라이언트에게 받은 목적지 IP주소를 L4 IP주소에서 -> 실서버 IP와 실서버 MAC 주소로 변조함. 되돌아가는 IP는 L4의 IP pool의 IP주소로 변조함.

4. DSR (Direct Server Return) Mode

사용자가 실서버에 접근할 때 출발지와 목적지의 IP주소를 변조하지 않고, L4에서 관리하는 실서버의 MAC 주소 테이블을 확인해서 MAC 주소만 변조함

장애를 대비하는 방법은? 고가용성 클러스터 (High-availability cluster)

장애 발생 시, 서비스 운영 중단 시간을 최소한으로 하기 위해 대기 서버를 둔다. (이중화, 평소에는 트래픽 분배 X)

Acitve 중인 로드밸런서와 Standby 상태의 로드밸런서가 heartbeat를 주고 받으며 서로 정상적으로 동작하는 지 health check를 한다.

Ative L/B에 장애가 발생했을 경우 Standby L/B가 작업을 이어받을 수 있게 페일오버(Failover) 해서 서비스가 중단되지 않도록 HA cluster를 구성한다. Standby L/B가 Active 상태로 변경되면서 장애가 발생한 L/B의 가상 IP주소를 가져오기 때문에 서비스가 무정지 상태를 유지한다. 다만 1초 정도의 순단 현상은 발생할 수 있다.

로드밸런싱 알고리즘

RR(Round Robin) : 가장 일반적으로 구현되는 알고리즘이다. L/B는 각 서버의 가중치에 따라 순차적으로 서버를 사용하며, 서버의 처리 시간이 균등하게 분산된다. 동적 알고리즘으로서 RR(Round Robin)은 서버 가중치를 실행 중에도 조정이 가능하다. 다만, RR은 연결 중인 세션을 고려하지 않는다.

Static-RR (Static Round Robin) : RR과 유사한 알고리즘으로, 각 서버에 부여된 가중치에 따러서 분배한다. RR과 비교하여 static-RR은 실행 중에 서버의 가중치를 즉시 변경할 수 없다. 하지만 서버 수에 대한 설계의 제약은 없다. When a server goes up, it will always be immediately reintroduced into the farm once the full map is recomputed.

When a server goes up, it will always be immediately reintroduced into the farm once the full map is recomputed. Least Connections : 접속 수가 가장 적은 서버로 분배한다. RR과 같이 동적 알고리즘이다. LDAP, SQL, TSE와 같이 긴 세션이 필요할 경우에 사용하면 좋으며, HTTP와 같은 짧은 세션을 사용하는 프로토콜에는 적합하지 않다.

Source : 클라이언트 IP를 해싱(hashing)하여 운영 중인 서버의 가중치로 나누어 분배한다. 서버의 수가 변경되지 않는 이상 동일한 클라리언트 IP는 항상 동일한 서버로 도달한다. 이 알고리즘은 일반적으로 cookie를 사용할 수 없는 TCP 모드에서 사용된다. 단, 클라리언트가 동적 IP를 사용한다면 같은 서버로 세션을 연결하기 어렵다.

URI : 접속하는 URI의 왼쪽 부분 혹은 전체를 해싱URI의 길이 또는 depth로 해싱)해서 운영 중인 서버의 가중치를 나눠서 분배한다. 정적 알고리즘으로 서버의 수가 변경되지 않는 한 동일한 서버로 지정되며, Source 알고리즘과 동일한 방식으로 작동한다. 이 알고리즘은 캐싱 서버의 부하를 분산할 때 주로 사용된다. 범용성이 낮아 특정 상황에만 사용된다.

URL_Parameter : HTTP GET의 파라미터를 확인 후 조건에 맞는 서버로 분배한다. 조건이 없는 경우에는 RR로 처리된다. 발견된 파라미터 뒤에 기호와 값이 같으면 값은 해시되고 실행 중인 서버의 가중치로 나뉜다. 오직 HTTP 모드에서만 작동한다.

HRD : HTTP Header에서 hdr()으로 지정된 조건이 있는 경우에 대해서만 분배하며, 조건이 없는 경우 RR로 처리한다. 이 알고리즘은 브라우저 유형, 쿼리 주소 등을 기준으로 사용자를 서버에 분배해야하는 경우 유용하다. 범용성은 낮아 특정 상황에서만 사용된다.

rdp-cookie : TCP 요청에 대한 RDP 쿠키에 따른 분배한다. Frontend의 ACL ‘req_rdp_cookie()’에 해당한다. 이 알고리즘은 쿠키 식별을 통해 동일한 사용자를 특정 서버에 연결하는 것이 목적이다. 특정 쿠키와 세션을 특정 서버에 연결하는데 적합하며, 클라이언트가 쿠키를 사용하지 않는다면 알고리즘은 RR으로 작동한다.

보통 HTTP 트래픽 분산을 위해서는 “RR(Round Robin)” 알고리즘을, 데이터베이스를 위해서는 “Least Connections” 알고리즘이 많이 사용된다. 그 외 알고리즘은 상황에 따라 사용된다.

만약 여러 개의 캐시 서버가 있다면 “URI” 알고리즘이 적합하며, 요청을 특정 서버에 연결하려면 “Source” 알고리즘과 “rdp-cookie” 알고리즘이 적합하다.

쿼리 속성에 따라 분배하려면 “HDR” 알고리즘과 “URL parameter” 알고리즘이 적합하다.

내 업무에 적용해서 생각해보기

서버 구성은 아래와 같다. (로드밸런서 한 대, 노드 서버 두 대)

L/B -> Server 1

-> Server 2

조만간 각 노드 서버에 캐시를 적용할 예정이다.

ex) 호출 예시

https://my_server_api.com?id=1234567890

캐시는 LRU로, 요청받은 URL의 결과값을 저장해둘 것이다.

만약 로드밸런스를 L4, 그리고 라운드로빈 방식을 채택한다면 동일한 데이터가 각각 Server1, Server2 캐시 메모리에 저장될 수 있다.

L/B에 캐싱을 할 수도 있지만 부하가 생길 수 있다.

현재 나의 업무 서버는 L/B를 이중화 하지 않고 한 대로 운용중이기 때문에 각 노드 서버에 캐시를 적용하고, 로드밸런서는 L7, Url_based 알고리즘을 채택하는 게 어떨까 싶다.

N개의 분산된 서버에 캐시를 적용할 경우, 어디에 캐시를 할지, 캐시에 따라 로드밸런싱은 어떻게 할 것인지 등 고려사항이 생긴다.

아직은 서버 구성과 운영함에 있어서 어떤 것을 고려해야하는 지 조차 알 지 못하니까, 섣불리 이것저것 하지말고 주위 동료들과 차근차근 업무에 적용해봐야겠다.

참고문서

로드밸런서란?(L4, L7)

L4/L7 스위치의 대안, 오픈 소스 로드 밸런서 HAProxy – 네이버 기술블로그

최신 네트워크 로드 밸런싱 및 프록시 소개

Load Balancing with HAProxy

HAProxy load balancer. Part 2: Backend section and the algorithms

What is Load Balancing?

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

728×90

본 포스팅은 jisikTank 스터디에 참여하며 정리한 문서입니다.

jisikTank CS지식 Git Repository

본 포스팅 내용을 기반으로 제작한 영상입니다.

로드 밸런싱(Load Balancing, 부하 분산)

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

네트워크에서의 부하 분산은 VLAN을 이용한 Layer 2 부하 분산, Routing Protocol을 이용한 Layer 3 부하 분산, 서버 부하 분산 등이 존재한다.

서버 부하 분산

외부의 사용자로부터 들어오는 다수의 요청을 서버들에게 적절히 배분해 처리케 하는 것

부하 분산 Network Switch 혹은 소프트웨어 가 담당함

혹은 가 담당함 외부로부터의 요청을 서버가 직접 받지 않고, 담당 Network Switch 혹은 소프트웨어가 받아 적절히 나눠줌

Network Switch를 L4/L7 Switch, Load Balancer라 부름

일반적으로 로드밸런싱, LB라고 하면 서버 부하 분산을 의미함.

L4 Switch만 하나의 공인 IP(123.111.43.1)를 갖고 각 서버 호스트는 사설IP를 갖는 PAT(NAT 종류) 형태의 구조에서 외부 클라이언트는 로드밸런서의 공인 IP로 접근한다. L4 Switch는 NAT를 기반으로 로드밸런싱을 수행한다.

왜 Load Balancer가 필요한가?

Client가 한 두명인 경우에는 Server가 여유롭게 클라이언트의 요청을 처리할 수 있다.

그러나, Client가 수천만명이라면? Server는 과부하에 동작을 멈추게 된다.

이를 해결하기 위해서는 두가지 방법이 있다.

Scale-up : Server가 더 빠르게 동작하기 위해 하드웨어 성능을 올리는 방법

Scale-out : Server의 개수를 늘려 여러 대의 Server가 나눠 작업을 수행하는 방법

Scale-out이 일반적으로 비용이 더 적고, 무중단 서비스를 운용하기 용이하기 때문에 주로 채택된다. 이때, 여러 대의 Server에게 균등하게 Traffic을 분산시켜 주기 위해 Load Blancer 를 사용한다. 서비스를 운영하는 사이트의 규모에 따라 웹 서버를 추가로 증설하면서 로드 밸런서로 관리해주면 웹 서버의 부하를 해결할 수 있다.

서버 부하 분산의 방법

Round Robin

로드밸런서가 다수의 서버에게 순서대로 요청을 할당하는 방법

가장 단순함

Least Connection

로드밸런서가 서버에게 요청을 전달하고, 사용자와 서버가 정상적인 연결을 맺으면 사용자와 서버는 Connection을 생성함(3 – handshake)

로드밸런서 또한 중간자로서 Connection 정보를 갖고 있는데 이 Connection 수 정보를 기반으로 가장 Connection이 적은 서버, 즉 부하가 가장 덜한 서버로 요청을 전달함.

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

Ratio(가중치)

서버의 처리 능력을 고려해 할당될 수 있는 각 서버가 가질 수 있는 Connection의 비율을 정해두고, 이를 토대로 부하를 할당하는 방법

Fastest

응답속도가 가장 빠른 서버에게 우선적으로 할당하는 방법

e.g. 서버에 할당된 Connection이 5개인데 Response도 5개라면 갖고 있는 Connection에 대해 모두 응답하고 있으므로 성능이 충분하다고 판단해 추가 요청을 보냄. 만약 Response의 수가 더 적다면 추가 요청을 해당 서버로 보내지 않음.

Source

사용자 IP를 해싱하여 분배하는 방식

특정 사용자가 항상 서버로 연결되는 것 보장

Load Balancer 장애 대비

서버를 분배하는 로드 밸런서에 문제가 생길 수 있기 때문에 로드 밸런서를 이중화해 대비한다.

이중화된 Load Blancer들은 서로 Health Check를 함

Main Load Balancer가 동작하지 않으면 VIP(Virtual IP)는 여분의 Load Balancer로 변경된다.

이후 여분의 Load Balancer로 운영된다.

출처

로드 밸런싱 Active-Active 방식의 웹 서버 이중화 구축 및 결함내성 시험

본 논문에서는 Active-Active 방식의 웹서버 이중화 방법에 관해 연구하였다. Rsync과 crontab을 이용하여 웹서버 간에 주기적인 복사가 이루어지도록 하여 동일한 상태를 유지시켰다. 로드밸런싱서버가 웹서버를 교대로 실행하여 부하를 분산하고, 빠른 서비스가 제공되도록 하였다. 또한 임의의 웹서버에 장애가 발생하더라도 또 다른 웹서버에 의해 서비스가 계속 유지되도록 하였다.

In this paper we researched on the Duplication Techniques for Active-Active Web Servers. Rsync and crontab utilities make copy periodically between web servers and maintain the same status. Load Balancing Server makes web servers load balanced and fast servicing by executing web servers alternatively. Even though one web server stops due to some critical errors, the remaining web server can take over and provide services continuously.

로드 밸런싱이란? 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를 이중화 하여 장애를 대비할 수 있다.

반응형

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

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

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

사람들이 주제에 대해 자주 검색하는 키워드 개발자가 아닌 IT 관련자를 위한 업무용 IT 지식 (시리즈 3 네트워크 이중화_L4, WAS, HA, DB Server 개념정리)

  • IT기초지식
  • IT개발지식
  • 비전공자용 개발지식
  • 비전공자용 IT지식
  • IT초보
  • IT입문
  • IT입문지식
  • PO
  • PM
  • 기획
  • 디자인
  • 기획자
  • 디자이너
  • 비전공자
  • 업무 IT 지식
  • 네트워크 이중화_L4
  • WAS
  • HA
  • DB Server 개념정리
  • CS
  • IT컨설팅
  • IT기획

개발자가 #아닌 #IT #관련자를 #위한 #업무용 #IT #지식 #(시리즈 #3 #네트워크 #이중화_L4, #WAS, #HA, #DB #Server #개념정리)


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

주제에 대한 기사를 시청해 주셔서 감사합니다 개발자가 아닌 IT 관련자를 위한 업무용 IT 지식 (시리즈 3 네트워크 이중화_L4, WAS, HA, DB Server 개념정리) | 로드 밸런싱 이중화, 이 기사가 유용하다고 생각되면 공유하십시오, 매우 감사합니다.

See also  위내시경 전날 음식 | 위내시경 하기 전, '이것'만은 반드시 지켜라? 19397 투표 이 답변

Leave a Reply

Your email address will not be published. Required fields are marked *