Skip to content

Network Load Balancer(NLB) Guide(KR)

ByoungSeob Kim edited this page Feb 4, 2026 · 3 revisions

Network Load Balancer Management Guide

Language: English | 한국어

1. CB-Spider NLB 개요

  • 사용자는 VPC 내의 VM을 향한 외부의 Client 요청 및 입력 스트림에 대한 부하 분산(Load Balancing)을 관리하기 위해서
    • 그림과 같이 특정 VPC에 소속되는 Network Load Balancer(이하 NLB)를 생성 및 구성할 수 있다.
    • NLB 생성시에 대상 VM(VM Group)을 함께 설정할 수도 있고, NLB 생성 후에 VM을 추가할 수도 있다.
    • 예외: KT NLB는 VPC가 아닌 Subnet 대상으로 생성이 가능하다.
      • KT NLB는 대상 VM(VM Group)과 함께 생성하는 방식만 지원하며, 설정한 VM이 속한 Subnet에 NLB가 생성된다.
      • 또한, NLB와 동일한 Subnet의 VM들만 VM Group에 추가 및 운영이 가능하다.
  • NLB는 Public 타입과 Internal 타입을 선택하여 생성할 수 있다.
    • Public 타입(default): 외부 인터넷을 통한 사용자의 클라이언트 스트림에 대한 부하 분산
    • Internal 타입: 내부 VM 간의 스트림에 대한 부하 분산
    • Public 타입 제공 중심으로 선개발 및 우선 활용
  • NLB는 Region 범위와 Global 범위의 운영을 선택하여 생성할 수 있다.
    • Regional NLB(default): 단일 Region에서 운영되는 로드 밸런서
    • Global NLB: 멀티 Region에서 운영되는 로드 밸런서
    • Regional NLB 제공 중심으로 선개발 및 우선 활용


[CB-Spider Network Load Balancer Overview]


2. CB-Spider NLB 구성 요소


[CB-Spider Network Load Balancer Components]

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

      (1) 프론트엔드 리스너(Frontend Listener)

      • 리스너는 Client의 요청 및 입력 스트림을 수신하여 백엔드 영역의 VM그룹으로 전달한다.
      • 하나의 NLB는 하나의 리스너를 포함하며, 수신 프로토콜, IP 및 수신 포트로 구성된다.
      • 선택 가능한 수신 프로토콜은 TCP 및 UDP이며, IP는 CSP 또는 대상 Driver에서 자동 생성 및 관리된다.
      • 수신 포트는 1-65535 범위의 값으로 설정이 가능하다.
      • ※ 리스너 IP와 DNS-Name: 둘다 제공하거나 둘중 하나만 제공할 수 있음
    • [NLB-Backend Tier]

      (2) 백엔드 VM 그룹(Backend VM Group)

      • VM 그룹은 동일한 서비스(nginx, redis, 사용자 개발 서비스 등)를 제공하는 VM들의 집합이며, VM은 등록 또는 제외가 가능하다.
      • VM 그룹에 포함될 수 있는 VM은 NLB와 동일한 VPC에 속해 있는 VM들로 한정된다.
      • 하나의 NLB는 하나의 VM 그룹을 포함하며, VM 그룹은 수신 프로토콜, 수신 포트 및 VM들로 구성된다.
      • 선택 가능한 수신 프로토콜은 TCP, UDP이며,
      • VM 그룹은 하나의 수신 포트를 설정할 수 있다. (포트범위: 1-65535)
      • VM 그룹 내의 VM들은 VM 그룹 설정과 동일한 프로토콜 및 포트 번호를 통해서 서비스 제공이 가능하다.

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

      • 하나의 NLB는 하나의 헬스 체크기를 포함하며,

      • 헬스 체크기는 VM 그룹에 포함된 VM들의 헬스 상태 정보를 제공한다.

        • Healthy VM 목록, Unhealthy VM 목록 등 제공
        • 추가된 VM의 최초 헬스 상태 체크는 수초~수분 정도 소요
      • 헬스 체크기의 선택 가능한 프로토콜은 TCP 및 HTTP이며,

      • VM 그룹에 소속된 VM들의 헬스 상태를 체크하기 위해서 VM 그룹과 동일한 포트를 활용하거나

      • 별도의 헬스 체크 전용 포트(그림에서 Port 81)를 별도로 설정할 수 있다.

      • 각 VM의 서비스 포트 및 헬스 체크용 포트 용도의 서비스 데몬은 사용자에 의해 준비되어야 한다.

      • 헬스 체크기는 상태 체크 주기(Interval), Timeout 및 Threadhold 값을 설정할 수 있으며,

      • 사용자가 값을 설정하지 않거나, default 값을 명시할 경우, default 값이 설정된다.

        ※ cf) Health Check Interval, Timeout, Threshold default 값 및 설정 조건 등

        • [Interval]

          CSP TCP default HTTP default 설정 조건, 범위 및 특이사항
          AWS 10 10 * 범위: 10, 30만 가능
          Azure 10 10 * 범위: 5 이상
          * 조건: Interval * Threshold < 2147483647
          GCP 10 10 * 범위: 1~300
          * 조건: Timeout <= Interval
          Alibaba 10 10 * 범위: 1~50
          Tencent 10 10 * 범위: 2~300
          * 조건: Timeout <= Interval
          IBM 10 10 * 범위: 2~60
          * 조건: Timeout < Interval
          OpenStack 10 10 * 범위: 2147483647(int 최대값)
          * 조건: Timeout <= Interval
          NCP 10 10 * 범위: 5~300
          NHN 10 10 * 범위: 1~5000
          * 조건: Timeout < Interval
        • [Timeout]

          CSP TCP default HTTP default 설정 조건, 범위 및 특이사항
          AWS 10 6 * 설정 불가
          * TCP: 10s, HTTP: 6s 고정
          Azure 10 10 * 설정 불가
          * Interval과 Azure default Timeout(30) 중 작은 값
          GCP 10 6 * 범위: 1 이상
          * 조건: Timeout <= Interval
          Alibaba 10 6 * 범위: 1~300
          Tencent 10 6 * 범위: 2~60
          * 조건: Timeout <= Interval
          IBM 9 6 * 예외
          * 조건: Timeout < Interval
          OpenStack 10 6 * 범위: 2147483647(int 최대값)
          * 조건: Timeout <= Interval
          NCP 10 6 * 범위: 1~3600
          NHN 10 6 * 범위: 1~5000
          * 조건: Timeout < Interval
        • [Threshold]

          CSP TCP default HTTP default 설정 조건, 범위 및 특이사항
          AWS 3 3 * 범위: 2~10
          Azure 3 3 * 범위: 1 이상
          * 조건: Interval * Threshold < 2147483647
          GCP 3 3 * 범위: 1~10
          Alibaba 3 3 * 범위: 2~10
          Tencent 3 3 * 범위: 2~10
          IBM 3 3 * 범위: 1~10
          OpenStack 3 3 * 범위: 1~10
          NCP 3 3 * 범위: 2~10
          NHN 3 3 * 범위: 1~10

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

      • 오토 스케일링 정의 및 지원 여부 등 추후 고려

3. CB-Spider NLB 동작 흐름


[CB-Spider Network Load Balancer Operation Flow]

  • NLB 주요 동작 흐름은 다음과 같다.
    • ① Client -> Frontend 서비스 요청
      • Client는 TCP, HTTP 또는 UDP 프로토콜 기반으로 Frontend 리스너 IP 및 리스너 포트를 통해서 서비스를 요청한다.
      • Client의 HTTP 프로토콜 호출의 경우 VMGroup 수신 프로토콜이 TCP의 경우 가능하다.
    • ② Frontend -> Backend 서비스 라우팅
      • 리스너에 의해 수신된 사용자 요청은 TCP 또는 UDP 기반으로 VM 그룹 포트로 라우팅 된다.
    • ③ 라우팅 대상 VM 선정 및 라우팅 (대상 CSP에서 수행)
      • VM 그룹에 포함된 VM들 중 Healthy 상태의 VM에게 Client 요청 및 입력 스트림을 라우팅 한다.
      • VM 그룹에 포함된 모든 VM들이 Unhealthy 상태인 경우 CSP별로 다음과 같이 동작 한다.
        • VM 그룹에 포함된 모든 VM에 라우팅하는 CSP: AWS, GCP, Tencent
        • Client 스트림을 라우팅하지 않는 CSP: Azure, IBM
    • ※ Health Checking
      • 헬스 체크기는 주기적으로 VM 그룹에 포함된 VM의 Health 상태를 파악하고 제공한다.

4. CB-Spider NLB API 및 제공 정보 규격

  • 사용자는 다음과 같은 CB-Spider REST API를 이용하여 NLB 정보를 JSON 규격으로 제공받는다.

4.1 NLB 관리 API

# NLB 생성 및 조회
POST   /spider/nlb                      - Create NLB
GET    /spider/nlb                      - List NLBs
GET    /spider/nlb/{Name}               - Get NLB
DELETE /spider/nlb/{Name}               - Delete NLB

# NLB 등록/해제 (기존 CSP NLB 연동)
POST   /spider/regnlb                   - Register NLB
DELETE /spider/regnlb/{Name}            - Unregister NLB
POST   /spider/getnlbowner              - Get NLB Owner VPC

# NLB VM 관리
POST   /spider/nlb/{Name}/vms           - Add VMs to NLB
DELETE /spider/nlb/{Name}/vms           - Remove VMs from NLB

# NLB 헬스 정보
GET    /spider/nlb/{Name}/health        - Get VM Group Health Info

# NLB 목록 조회 (전체)
GET    /spider/allnlb                   - List All NLBs (CB-Spider + CSP)
GET    /spider/allnlbinfo               - List All NLB Info

# NLB 통계
GET    /spider/countnlb                 - Count All NLBs
GET    /spider/countnlb/{ConnectionName} - Count NLBs by Connection

# CSP NLB 직접 삭제
DELETE /spider/cspnlb/{Id}              - Delete CSP NLB

4.2 제공 정보 규격

  • NLB 정보 (NLBInfo)
필드 설명 예시
IId NLB의 식별자 정보 (NameId, SystemId) ● {Name: "nlb-01", SystemId: "nlb-1234abcd"}
VpcIID NLB가 속한 VPC 식별자 ● {Name: "vpc-01", SystemId: "vpc-5678efgh"}
Type NLB 타입 ● "PUBLIC" 또는 "INTERNAL"
Scope NLB 범위 ● "REGION" 또는 "GLOBAL"
Listener 리스너 정보 ● 아래 Listener 정보 참조
VMGroup VM 그룹 정보 ● 아래 VMGroup 정보 참조
HealthChecker 헬스 체크기 정보 ● 아래 HealthChecker 정보 참조
TagList NLB에 할당된 태그 리스트 ● [{Key: "Environment", Value: "Production"}]
KeyValueList CSP가 제공하는 추가 NLB 정보 ● [{Key: "State", Value: "active"}]
  • Listener 정보 (ListenerInfo)
필드 설명 예시
Protocol 수신 프로토콜 ● "TCP" 또는 "UDP"
Port 수신 포트 ● "80", "443", "22" (1-65535)
IP 리스너 IP (CSP에서 자동 할당) ● "52.12.34.56"
DNSName 리스너 DNS 이름 (선택적) ● "nlb-12345.elb.amazonaws.com"
KeyValueList CSP가 제공하는 추가 리스너 정보 ● [{Key: "Scheme", Value: "internet-facing"}]
  • VMGroup 정보 (VMGroupInfo)
필드 설명 예시
Protocol VM 그룹 수신 프로토콜 ● "TCP" 또는 "UDP"
Port VM 그룹 수신 포트 ● "80", "8080" (1-65535)
VMs VM 식별자 리스트 ● [{Name: "vm-01", SystemId: "i-1234"}, {Name: "vm-02", SystemId: "i-5678"}]
CspID CSP에서 할당한 VM 그룹 ID ● "tg-1234567890abcdef0"
KeyValueList CSP가 제공하는 추가 VM 그룹 정보 ● [{Key: "TargetType", Value: "instance"}]
  • HealthChecker 정보 (HealthCheckerInfo)
필드 설명 예시
Protocol 헬스 체크 프로토콜 ● "TCP" 또는 "HTTP"
Port 헬스 체크 포트 ● "80", "8080" (1-65535 또는 Listener Port)
Interval 헬스 체크 주기 (초) ● 10, 30 등 (기본값: -1 또는 "default")
Timeout 헬스 체크 타임아웃 (초) ● 5, 10 등 (기본값: -1 또는 "default")
Threshold 헬스 체크 임계값 ● 3, 5 등 (기본값: -1 또는 "default")
CspID CSP에서 할당한 헬스 체크기 ID ● "health-check-1234"
KeyValueList CSP가 제공하는 추가 헬스 체크기 정보 ● [{Key: "HealthCheckPath", Value: "/health"}]
  • HealthInfo 정보
필드 설명 예시
AllVMs VM 그룹에 포함된 모든 VM ● [{Name: "vm-01", SystemId: "i-1234"}, ...]
HealthyVMs 헬스 체크 결과 정상인 VM 목록 ● [{Name: "vm-01", SystemId: "i-1234"}]
UnHealthyVMs 헬스 체크 결과 비정상인 VM 목록 ● [{Name: "vm-02", SystemId: "i-5678"}]

5. CB-Spider NLB API 및 제공 정보 예시

5.1 NLB 생성 예시 - VMGroup 설정 제외

  • VMGroup 설정을 제외하고 NLB를 생성하는 API 호출 예시:
curl -sX POST http://localhost:1024/spider/nlb \
  -H 'Content-Type: application/json' \
  -d '{
    "ConnectionName": "aws-config01",
    "ReqInfo": {
      "Name": "nlb-01",
      "VPCName": "vpc-01",
      "Type": "PUBLIC",
      "Scope": "REGION",
      "Listener": {
        "Protocol": "TCP",
        "Port": "80"
      },
      "HealthChecker": {
        "Protocol": "TCP",
        "Port": "80"
      }
    }
  }' | jq

응답 예시:

{
  "IId": {
    "NameId": "nlb-01",
    "SystemId": "arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/net/nlb-01/1234567890abcdef"
  },
  "VpcIID": {
    "NameId": "vpc-01",
    "SystemId": "vpc-0a1b2c3d4e5f67890"
  },
  "Type": "PUBLIC",
  "Scope": "REGION",
  "Listener": {
    "Protocol": "TCP",
    "Port": "80",
    "DNSName": "nlb-01-1234567890.us-east-1.elb.amazonaws.com",
    "IP": "",
    "KeyValueList": [
      {
        "Key": "Scheme",
        "Value": "internet-facing"
      }
    ]
  },
  "VMGroup": {
    "Protocol": "TCP",
    "Port": "80",
    "VMs": [],
    "CspID": "arn:aws:elasticloadbalancing:us-east-1:123456789012:targetgroup/nlb-01-tg/1234567890abcdef",
    "KeyValueList": [
      {
        "Key": "TargetType",
        "Value": "instance"
      }
    ]
  },
  "HealthChecker": {
    "Protocol": "TCP",
    "Port": "80",
    "Interval": 10,
    "Timeout": 10,
    "Threshold": 3,
    "CspID": "",
    "KeyValueList": []
  },
  "KeyValueList": [
    {
      "Key": "State",
      "Value": "provisioning"
    },
    {
      "Key": "Type",
      "Value": "network"
    }
  ]
}

5.2 NLB 생성 예시 - VMGroup 포함

  • VMGroup(vm-01, vm-02)을 포함하여 NLB를 생성하는 API 호출 예시:
curl -sX POST http://localhost:1024/spider/nlb \
  -H 'Content-Type: application/json' \
  -d '{
    "ConnectionName": "aws-config01",
    "ReqInfo": {
      "Name": "nlb-02",
      "VPCName": "vpc-01",
      "Type": "PUBLIC",
      "Scope": "REGION",
      "Listener": {
        "Protocol": "TCP",
        "Port": "22"
      },
      "VMGroup": {
        "Protocol": "TCP",
        "Port": "22",
        "VMs": ["vm-01", "vm-02"]
      },
      "HealthChecker": {
        "Protocol": "TCP",
        "Port": "22",
        "Interval": "default",
        "Timeout": "default",
        "Threshold": "5"
      }
    }
  }' | jq

응답 예시:

{
  "IId": {
    "NameId": "nlb-02",
    "SystemId": "arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/net/nlb-02/abcdef1234567890"
  },
  "VpcIID": {
    "NameId": "vpc-01",
    "SystemId": "vpc-0a1b2c3d4e5f67890"
  },
  "Type": "PUBLIC",
  "Scope": "REGION",
  "Listener": {
    "Protocol": "TCP",
    "Port": "22",
    "DNSName": "nlb-02-abcdef1234.us-east-1.elb.amazonaws.com",
    "IP": "",
    "KeyValueList": []
  },
  "VMGroup": {
    "Protocol": "TCP",
    "Port": "22",
    "VMs": [
      {
        "NameId": "vm-01",
        "SystemId": "i-0a1b2c3d4e5f67890"
      },
      {
        "NameId": "vm-02",
        "SystemId": "i-1b2c3d4e5f678901"
      }
    ],
    "CspID": "arn:aws:elasticloadbalancing:us-east-1:123456789012:targetgroup/nlb-02-tg/abcdef1234567890",
    "KeyValueList": []
  },
  "HealthChecker": {
    "Protocol": "TCP",
    "Port": "22",
    "Interval": 10,
    "Timeout": 10,
    "Threshold": 5,
    "CspID": "",
    "KeyValueList": []
  },
  "KeyValueList": [
    {
      "Key": "State",
      "Value": "active"
    }
  ]
}

5.3 NLB 조회 예시

  • 생성된 NLB 정보를 조회하는 API 호출 예시:
curl -sX GET 'http://localhost:1024/spider/nlb/nlb-01?ConnectionName=aws-config01' | jq

5.4 NLB 목록 조회 예시

  • Connection에 생성된 모든 NLB 목록을 조회하는 API 호출 예시:
curl -sX GET 'http://localhost:1024/spider/nlb?ConnectionName=aws-config01' | jq

응답 예시:

{
  "nlb": [
    {
      "IId": {
        "NameId": "nlb-01",
        "SystemId": "arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/net/nlb-01/1234567890abcdef"
      },
      "VpcIID": {
        "NameId": "vpc-01",
        "SystemId": "vpc-0a1b2c3d4e5f67890"
      },
      "Type": "PUBLIC",
      "Scope": "REGION",
      ...
    },
    {
      "IId": {
        "NameId": "nlb-02",
        "SystemId": "arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/net/nlb-02/abcdef1234567890"
      },
      "VpcIID": {
        "NameId": "vpc-01",
        "SystemId": "vpc-0a1b2c3d4e5f67890"
      },
      "Type": "PUBLIC",
      "Scope": "REGION",
      ...
    }
  ]
}

5.5 VM 추가 예시

  • NLB의 VM Group에 VM을 추가하는 API 호출 예시:
curl -sX POST http://localhost:1024/spider/nlb/nlb-01/vms \
  -H 'Content-Type: application/json' \
  -d '{
    "ConnectionName": "aws-config01",
    "ReqInfo": {
      "VMs": ["vm-03", "vm-04"]
    }
  }' | jq

응답 예시:

{
  "IId": {
    "NameId": "nlb-01",
    "SystemId": "arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/net/nlb-01/1234567890abcdef"
  },
  "VMGroup": {
    "Protocol": "TCP",
    "Port": "80",
    "VMs": [
      {
        "NameId": "vm-03",
        "SystemId": "i-2c3d4e5f67890123"
      },
      {
        "NameId": "vm-04",
        "SystemId": "i-3d4e5f6789012345"
      }
    ],
    ...
  },
  ...
}

5.6 VM 제거 예시

  • NLB의 VM Group에서 VM을 제거하는 API 호출 예시:
curl -sX DELETE http://localhost:1024/spider/nlb/nlb-01/vms \
  -H 'Content-Type: application/json' \
  -d '{
    "ConnectionName": "aws-config01",
    "ReqInfo": {
      "VMs": ["vm-04"]
    }
  }' | jq

응답 예시:

{
  "Result": "true"
}

5.7 VM Group 상태 정보 확인 예시

  • VM Group의 헬스 상태 정보를 조회하는 API 호출 예시:
curl -sX GET 'http://localhost:1024/spider/nlb/nlb-01/health?ConnectionName=aws-config01' | jq

응답 예시:

{
  "healthinfo": {
    "AllVMs": [
      {
        "NameId": "vm-01",
        "SystemId": "i-0a1b2c3d4e5f67890"
      },
      {
        "NameId": "vm-02",
        "SystemId": "i-1b2c3d4e5f678901"
      },
      {
        "NameId": "vm-03",
        "SystemId": "i-2c3d4e5f67890123"
      }
    ],
    "HealthyVMs": [
      {
        "NameId": "vm-01",
        "SystemId": "i-0a1b2c3d4e5f67890"
      },
      {
        "NameId": "vm-02",
        "SystemId": "i-1b2c3d4e5f678901"
      }
    ],
    "UnHealthyVMs": [
      {
        "NameId": "vm-03",
        "SystemId": "i-2c3d4e5f67890123"
      }
    ]
  }
}

5.8 NLB 삭제 예시

  • NLB를 삭제하는 API 호출 예시:
curl -sX DELETE 'http://localhost:1024/spider/nlb/nlb-01' \
  -H 'Content-Type: application/json' \
  -d '{
    "ConnectionName": "aws-config01"
  }' | jq

응답 예시:

{
  "Result": "true"
}

5.9 강제 삭제 예시

  • NLB를 강제로 삭제하는 API 호출 예시 (VM이 연결되어 있어도 삭제):
curl -sX DELETE 'http://localhost:1024/spider/nlb/nlb-01?force=true' \
  -H 'Content-Type: application/json' \
  -d '{
    "ConnectionName": "aws-config01"
  }' | jq

6. CB-Spider NLB AdminWeb 활용 예시

  • AdminWeb을 통한 NLB 관리 절차는 다음과 같다:

    1. Connection 선택: AdminWeb 상단에서 대상 CSP Connection 선택
    2. NLB 메뉴 접근: 좌측 메뉴에서 "NLB" 선택
    3. NLB 생성: "Create NLB" 버튼 클릭 후 필요한 정보 입력
    4. NLB 관리: NLB 상태 확인, VM 추가/제거, 헬스 확인, 삭제 등

6.1 NLB 목록 화면 예시

AdminWeb에서 NLB 목록을 조회할 때 다음 정보가 표시된다:

  • NLB 이름
  • VPC 이름
  • 타입 (PUBLIC/INTERNAL)
  • 범위 (REGION/GLOBAL)
  • Listener 정보 (Protocol, Port, DNS Name)
  • VM Group 정보 (VM 개수)
  • 작업 버튼 (상세보기, VM 관리, 헬스 확인, 삭제 등)

6.2 NLB 생성 화면 예시

AdminWeb에서 NLB를 생성할 때 다음 정보를 입력한다:

  • NLB Name: CB-Spider에서 관리할 NLB 이름
  • VPC Name: NLB가 속할 VPC 선택
  • Type: PUBLIC 또는 INTERNAL 선택
  • Scope: REGION 또는 GLOBAL 선택
  • Listener:
    • Protocol: TCP 또는 UDP 선택
    • Port: 1-65535 범위의 포트 번호
  • VMGroup (선택적):
    • Protocol: TCP 또는 UDP 선택
    • Port: 1-65535 범위의 포트 번호
    • VMs: 추가할 VM 선택 (다중 선택 가능)
  • HealthChecker:
    • Protocol: TCP 또는 HTTP 선택
    • Port: 1-65535 범위의 포트 번호
    • Interval: 헬스 체크 주기 (초) 또는 "default"
    • Timeout: 헬스 체크 타임아웃 (초) 또는 "default"
    • Threshold: 헬스 체크 임계값 또는 "default"
  • Tags (선택적): 리소스 태그 정보

6.3 NLB 상세 정보 화면 예시

NLB 상세 정보 화면에서는 다음 정보가 표시된다:

기본 정보:

  • NLB IId (NameId, SystemId)
  • VPC 정보
  • Type, Scope

Listener 정보:

  • Protocol, Port
  • DNS Name 또는 IP

VMGroup 정보:

  • Protocol, Port
  • 등록된 VM 목록
  • VM 추가/제거 버튼

HealthChecker 정보:

  • Protocol, Port
  • Interval, Timeout, Threshold

Health 상태:

  • All VMs
  • Healthy VMs
  • Unhealthy VMs

작업 버튼:

  • VM 추가/제거
  • 헬스 정보 갱신
  • NLB 삭제

7. 주의사항 및 제약사항

7.1 NLB 생성 시 주의사항

  • 사전 준비 리소스: VPC가 미리 생성되어 있어야 함
  • VM 준비: VM Group에 추가할 VM은 NLB와 동일한 VPC에 속해야 함
  • 서비스 데몬: 각 VM에서 VMGroup Port 및 HealthChecker Port로 서비스가 실행 중이어야 함
  • 보안 그룹: VM의 보안 그룹에서 VMGroup Port 및 HealthChecker Port 허용 필요
  • KT 예외: KT NLB는 Subnet 기반으로 생성되며, VM과 함께 생성해야 함

7.2 NLB 삭제 시 주의사항

  • 강제 삭제: force=true 옵션 사용 시 연결된 리소스 검증 없이 강제 삭제됨 (주의!)

7.3 Health Check 주의사항

  • 초기 헬스 체크: VM 추가 후 최초 헬스 상태 확인까지 수초~수분 소요
  • 서비스 준비: VM에서 헬스 체크 포트로 응답할 수 있는 서비스가 실행 중이어야 함
  • 프로토콜 호환: HTTP 헬스 체크 시 VM에서 HTTP 응답을 제공해야 함

7.4 CSP별 특이사항

  • AWS: Interval은 10, 30만 선택 가능
  • Azure: Timeout 설정 불가 (Interval과 기본값 중 작은 값 자동 설정)
  • IBM: Timeout은 Interval보다 작아야 함
  • KT: Subnet 기반 NLB, VM과 함께 생성 필요

8. 참고 자료

Table of contents




Clone this wiki locally