로드밸런서(ELB)

최형택·2022년 4월 1일
0

1. ELB

※ 로드밸런서(load balancer)란 ※

과거와 달리 폭팔적인 IT기기의 보급과 기술의 발전으로 인해 대규모의 트래픽이 몰리는 경우가 많은데 이런 대규모의 트래픽을 분산시켜주는 서버를 로드밸런서라고 부릅니다.

elb란 간략히 로드밸런서를 의미하는데 정확히 설명하면, 아마존(Amazon)이 제공하는 클라우드서비스인 aws는 elb란 이름으로 로드밸런서를 제공합니다.

1-1. 왜 로드밸런서를 써야하는가.

사람이 개입하지 않아도 시스템이 항상 작동하고 액세스 가능, 가동 중지를 최소화하도록 보장하는 가용성과 시스템의 일부 구성요소에 장애가 있어도 시스템이 계속 작동할 수 있는 내결함성의 기능이 전부 높아지기 때문입니다.

1-2.로드밸런서의 기능과 특징

(1)Health Check
기본적으로 로드밸런서가 트래픽을 보낼 대상의 상태를 확인합니다.
또한 정상적인 대상에만 요청을 보내도록 컴퓨터 리소스의 상태를 모니터링하는 상태 확인, 비정상적인 인스턴스를 감지하고 정상적인 인스턴스에만 트래픽을 라우팅. 서버몇 대에 이상이 생기더라도 다른 정상 동작중인 서버로 트래픽을 보내주는 Fail-over가 가능합니다.

(2) NAT
ip주소를 변환해주는 기능입니다.

(3)워크로드를 가상 서버와 같은 다수의 컴퓨팅 리소스로 분산

(4)컴퓨팅 리소스가 주요 작업에 집중할 수 있도록 임호화 및 복호화 작업.

1-3.로드밸런서 동작방식

하나이상의 '리스너'를 지정해서 클라이언트로브터 들어오는 트래픽을 허용합니다.
*리스너: 요청을 듣고 분배하는 역할

클라이언트와 로드밸런서 간의 연결을 위한 프로토콜 및 포트 번호
사용자가 구성한 프로토콜 및 포트 번호에 매칭된 인스턴스에 요청을 전달하도록 합니다.기초적인 방법인 Bridge/Transparent Mode에서는 사용자가 서버에 서비스를 요청할 때 중간에서 로드밸런서가 NAT를 통해 IP/MAC주소를 변조합니다. 즉 요청과 응답이 모두 Load Balancer를 경유합니다.

요청과정
1. 유저가 로드밸런서로 서비스를 요청합니다.
2. 로드밸런서는 NAT를 적용하여 IP/MAC주소를 변조하여 실제서버로 트래픽을 요청한다.

응답과정
1. 서버가 로드밸런서로 받은 요청에 대한 응답을 전달한다.
2.로드밸런서는 NAT를 적용하여 출발지 IP주소를 로드밸런서의 가상 IP주소로 변조하여 유저에게 전달한다.

One Arm Mode

사용자가 real server에 접근할 때 목적지 IP는 L4 스위치 IP를 바라봅니다. L4에 도달하면 L4가 클라이언트에게 받은 목적지 IP 주소를 L4 IP 주소에서 real server IP와 real server MAC 주소로 변조합니다. 되돌아가는 IP는 L4의 IP pool의 IP 주소로 변조합니다.

DSR (Direct Server Return) Mode

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

로드밸런싱 Failover

로드밸런서도 장애가 날 수 있으므로 이중화 구성을 합니다. 평소에는 active된 로드벨런서로 연결 장애가 났을경우에는 standby(대기)중인 로드밸런서로 연결이 됩니다, 때문에 이중화된 로드밸런서에서 Health Check(장애여부 체크)를 하고, 장애로 여분 로드밸런서가 동작 할 경우 이를 통해서 서버에 접근 합니다.

1-4. L4 VS L7

부하 분산에는 L4 Load Balancer와 L7 Load Balancer가 많이 사용됩니다. L4부터 Port를 다룰 수 있기 때문입니다.

한 대의 서버의 각각의 포트에 여러개의 서비스들을 운영하기 위해서 L4 Layer 위에서 작동하는 Load Balancer가 필요해진 것입니다.

  • L4는 로드밸런서에서 알고리즘을 통해 server1 또는 server2로 데이터를 전송할지 결정을 하고 Client와 3way handshake를 실시하여 하나의 TCP세션을 갖게 된다. (L/B는 중계역할을 하죠) 그 후 application 층에서 클라이언트의 요청정보(HTTP, FTP 등)를 전달받습니다.

  • L7는 L/B에서 콘텐츠 기반 스위칭을 위해 3way handshake를 보류합니 다. L/B와 client 간 3way handshake를 실시하여 따로 TCP 세션을 형성, L7과 server서버는 또 다른 TCP 세션을 형성하고 데이터를 중계합니다.

  • L7 패킷 분석을 통한 바이러스 감염 패킷 필터링이 가능합니다.

  • L7은 L4의 서비스 단위 로드밸런싱을 극복하기 위한 포트 + 페이로드 패턴을 이용하여 패킷스위칭을 합니다.

  • L4는 TCP/UDP 패킷 정보를 분석하고 해당 패킷이 사용하는 서비스 종류별(HTTP, FTP 등)로 처리하기 때문에 프록시 문제가 발생 될 수 있습니다.

출처: https://vaert.tistory.com/189 [Vaert Street]
https://jaehoney.tistory.com/73

0개의 댓글