Skip to content

Network Load Balancer and Driver API

ByoungSeob Kim edited this page May 12, 2022 · 34 revisions

Work In Progress


- CB-Spider Network Load Balancer(NLB) Specification V0.1
- Version 0.1: Driver 개발용

1. CB-Spider NLB Overview

  • 사용자는 VPC 내의 VM을 향한 입력 스트림 부하 분산(Load Balancing)을 관리하기 위해서
    • 특정 VPC에 소속되는 Network Load Balancer(NLB)를 생성 및 구성할 수 있다.
  • NLB는 Public 타입과 Internal 타입을 선택하여 생성할 수 있다.
    • Public Type(default): 외부 인터넷을 통한 사용자의 클라이언트 스트림에 대한 부하 분산 지원
    • Internal Type: 내부 VM 간의 스트림에 대한 부하 분산 지원
    • V0.1: Public Type 제공 중심으로 추진
  • NLB는 Region 범위와 Global 범위의 운영을 선택하여 생성할 수 있다.
    • Regional NLB(default): 단일 Region에서 운영되는 NLB
    • Global NLB: 멀티 Region에서 운영되는 NLB
    • v0.1: Regional NLB 제공 중심으로 추진


[CB-Spider Network Load Balancer Overview]


2. CB-Spider NLB Components


[CB-Spider Network Load Balancer Components]

  • NLB는 그림과 같이 프론트엔드(Frontend) 영역과 백엔드(Backend) 영역으로 구분되며, 주요 구성 요소는 다음과 같다.
    • [NLB-Frontend Tier]

      (1) 프론트엔드 서비스 IP(Frontend Service IP)

      • Client의 입력 스트림을 수신할 사용자를 위한 서비스 IP이며,
      • 하나의 NLB는 하나의 서비스 IP를 포함하며, 자동 생성 및 관리된다.
      • ※ 서비스 IP의 DNS Name 지원: 추후 고려

      (2) 서비스 리스너(Service Listener)

      • 서비스 리스너는 Client의 요청 및 입력 스트림을 수신하여 백엔드 영역의 서비스 그룹으로 전달한다.
      • 선택 가능한 프로토콜은 TCP 및 UDP이며, 1-65535 범위의 값으로 서비스 포트 설정이 가능하다.
      • 하나의 NLB는 복수 개의 서비스 리스너 추가가 가능하며,
      • 동일한 NLB의 리스너는 동일한 서비스 그룹으로 라우팅이 가능하다.
    • [NLB-Backend Tier]

      (3) 서비스 그룹(Service Group)

      • 서비스 그룹은 동일한 서비스를 제공하는 VM들의 집합이며, 서비스 VM은 추가 삭제가 가능하다.
      • 선택 가능한 프로토콜은 TCP, UDP, HTTP 및 HTTPS이며,
      • 서비스 그룹은 하나의 전용 서비스 포트를 설정할 수 있다.
      • 그룹 내의 서비스 VM들은 동일한 포트 번호를 통해서 서비스 제공이 가능하다.
      • 하나의 NLB는 하나의 서비스 그룹만을 포함한다.

      (4) 헬스 체크기(Health Checker)

      • 하나의 서비스 그룹은 하나의 헬스 체크기를 포함한다.
      • 선택 가능한 프로토콜은 TCP, HTTP 및 HTTPS이며,
      • VM의 건강 상태를 체크하기 위한 VM의 서비스 포트를 활용하거나
      • 별도의 헬스 체크 전용 포트를 활용하도록 설정할 수 있다.
      • 각 VM의 서비스 포트 및 헬스 체크용 포트는 사용자에 의해 사전에 준비되어야 한다.
      • 헬스 체크기는 상태 체크 주기 및 타임 아웃 등을 설정할 수 있으며,
      • 수집된 서비스 VM들의 헬스 상태 정보를 제공한다.

      (5) 서비스 그룹 오토 스케일링(Service Group Auto-Scaling)

      • 지원 여부 등 추후 고려

3. CB-Spider NLB Operation Flow


[CB-Spider Network Load Balancer Operation Flow]

  • NLB 주요 동작 흐름은 다음과 같다.
    • ① Client -> Frontend
      • Client는 TCP 또는 UDP 프로토콜 기반으로 Frontend Service IP 및 Service Listener 포트를 통해서 서비스 접근을 요청한다.
    • ② Frontend -> Backend
      • Service Listener에 의해 수신된 사용자 요청은 TCP, UDP, HTTP 또는 HTTPS 기반으로 Service Group 포트로 라우팅 된다.
    • ③ Service VM Scheduling
      • Service Group에 포함된 Service VM들 중 Healthy 상태의 VM으로 Client 요청 및 입력 스트림을 라우팅 한다.
    • ※ Health Checking
      • 헬스 체크기는 주기적으로 서비스 그룹에 포함된 VM 서비스의 Health 상태를 파악하고 제공한다.

3. NLB Driver Common API

  • Source Tree

  • Driver API Spec

Table of contents



Clone this wiki locally