본문으로 건너뛰기

API Gateway Traffic Distribution / Load Balancing Configuration Method

이 가이드는 Kong Gateway의 클러스터와 노드 간의 트래픽 분배 및 로드 밸런싱 전략을 최적화하는 방법을 설명하며, 높은 가용성과 최대 처리량을 보장합니다. 이전 가이드라인에서 다룬 리소스 크기 조정, 클러스터 구성, 인메모리 성능 조정 및 확장 차원에 대해 언급합니다.

개념 개요

Kong Gateway에서의 트래픽 분배 / 로드 밸런싱이란?

트래픽 분배는 수신 API 요청이 Kong Gateway 클러스터와 그 노드 간에 어떻게 라우팅되어 CPU, 메모리 및 네트워크 활용도가 균형을 이루도록 하는지를 의미합니다. 로드 밸런싱은 단일 노드나 작업자가 병목 현상이 되지 않도록 하여 수평 확장성과 내결함성을 가능하게 합니다. 이 방법에는 다음과 같은 구성이 포함됩니다:

  • 게이트웨이 확장 전략 (수직/수평)
  • 노드 수준 리소스 크기 조정
  • 인메모리 캐싱 및 플러그인 큐 최적화
  • 지연/처리량 민감한 설정

구성 방법

방법 1: 클러스터 부하에 따른 크기 조정

최적의 트래픽 분배를 달성하기 위한 첫 번째 단계는 작업 유형과 예상 트래픽 양에 따라 게이트웨이를 분류하는 것입니다. 아래 표를 사용하여 초기 시스템 경계를 정의하십시오:

클러스터 크기CPURAM클라우드 인스턴스 예시사용 사례
개발1-2 코어2-4 GBAWS: t3.medium / GCP: n1-standard-1 / Azure: A1개발/테스트, 저지연 민감도
소형1-2 코어2-4 GBAWS: t3.medium / GCP: n1-standard-1 / Azure: A1경량 생산, 그린필드 트래픽
중형2-4 코어4-8 GBAWS: m5.large / GCP: n1-standard-4 / Azure: A1v4지연 요구가 있는 중요한 작업负载
대형8-16 코어16-32 GBAWS: c5.xlarge / GCP: n1-highcpu-16 / Azure: F8s엔터프라이즈급 대규모 클러스터
노트

생산 환경에서 스로틀링된 인스턴스 유형(예: AWS t2, t3)을 사용하지 마십시오. CPU 스로틀링은 부하 하에서 Kong 성능을 심각하게 저하시킵니다.

방법 2: 메모리 할당 및 인메모리 최적화

메모리 캐시 구성:

  • OS 및 인접 프로세스를 위해 메모리를 예약하면서 mem_cache_size를 가능한 한 크게 설정합니다.
  • 권장 기준: 코어당 약 500MB
  • 4코어, 8GB 인스턴스에서: Kong 캐시를 위해 4–6 GB를 할당합니다.
  • 캐시된 데이터에는 라우트, 서비스, 플러그인과 같은 구성 엔터티가 포함됩니다.

플러그인 큐 버퍼링:

  • http-log와 같은 플러그인은 비동기 이벤트 버퍼링을 위해 queue.max_entries를 사용합니다.
  • 기본값: 10,000
  • 높은 처리량을 위해 이 값을 실험하여 메모리 오버플로우 또는 메시지 손실을 피하십시오.
  • 각 플러그인 큐는 메모리 제한이 있으며 부하 프로필에 따라 확장해야 합니다.

방법 3: 지연/처리량 차원에 따른 확장

Kong의 성능은 다음에 따라 달라집니다:

  • 지연: 요청당 시간 (메모리 제한)
  • 처리량: 초당 요청 수 (CPU 제한)

최적화 전략:

시나리오최적화 초점
지연 민감데이터베이스 + 플러그인 캐시를 위한 메모리 증가
처리량 민감CPU 코어 추가; 수직/수평 확장
하이브리드 확장 (HA 설정)전용 구성 처리 사용

하이브리드 모드에서 dedicated_config_processing을 활성화하여 노드 간 구성 동기화와 같은 CPU 집약적인 작업을 오프로드합니다.

추가 고려 사항

데이터베이스 부하 영향

  • Kong은 노드가 시작되거나 구성 변경 시에만 DB에서 읽습니다.
  • 리소스 요구 사항은 다음에 따라 달라집니다: 트래픽, 엔터티 변경 비율 및 노드 수와 활성화된 기능
  • DB 압력을 줄이기 위해 인메모리 캐싱을 사용하십시오.
  • 데이터베이스가 일시적으로 사용할 수 없는 경우에도 최소한의 접근을 유지하고 (Kong Gateway를 운영 가능하게 유지) 합니다.

모니터링할 성능 요소

다음 사항을 추적하고 조정합니다:

  • 라우트, 서비스, 소비자 및 플러그인의 수
  • 플러그인 카디널리티 (다양한 플러그인 유형은 CPU 부하를 증가시킴)
  • 요청/응답 크기 (대용량 페이로드는 대기 시간을 증가시킴)
  • 작업 공간 수 및 메타데이터 (작업 공간당 더 많은 메모리)

요약

Kong Gateway에서 균형 잡힌 트래픽 분배와 최적의 부하 처리를 보장하기 위해:

  1. 적절한 클러스터 크기 정의로 시작합니다.
  2. 캐시 및 플러그인 큐 요구 사항에 따라 메모리를 할당합니다.
  3. 대기 시간과 처리량 우선 순위에 따라 조정합니다.
  4. 캐싱을 통해 데이터베이스 의존성을 최소화합니다.
  5. CPU/메모리 구성 및 하이브리드 처리 옵션을 통해 확장을 가능하게 합니다.

이러한 구성은 Kong을 사용하여 확장 가능하고 생산 등급의 API 게이트웨이를 구축하는 기반을 형성합니다.