API Gateway Traffic Distribution / Load Balancing Configuration Method
이 가이드는 Kong Gateway의 클러스터와 노드 간의 트래픽 분배 및 로드 밸런싱 전략을 최적화하는 방법을 설명하며, 높은 가용성과 최대 처리량을 보장합니다. 이전 가이드라인에서 다룬 리소스 크기 조정, 클러스터 구성, 인메모리 성능 조정 및 확장 차원에 대해 언급합니다.
개념 개요
Kong Gateway에서의 트래픽 분배 / 로드 밸런싱이란?
트래픽 분배는 수신 API 요청이 Kong Gateway 클러스터와 그 노드 간에 어떻게 라우팅되어 CPU, 메모리 및 네트워크 활용도가 균형을 이루도록 하는지를 의미합니다. 로드 밸런싱은 단일 노드나 작업자가 병목 현상이 되지 않도록 하여 수평 확장성과 내결함성을 가능하게 합니다. 이 방법에는 다음과 같은 구성이 포함됩니다:
- 게이트웨이 확장 전략 (수직/수평)
- 노드 수준 리소스 크기 조정
- 인메모리 캐싱 및 플러그인 큐 최적화
- 지연/처리량 민감한 설정
구성 방법
방법 1: 클러스터 부하에 따른 크기 조정
최적의 트래픽 분배를 달성하기 위한 첫 번째 단계는 작업 유형과 예상 트래픽 양에 따라 게이트웨이를 분류하는 것입니다. 아래 표를 사용하여 초기 시스템 경계를 정의하십시오:
클러스터 크기 | CPU | RAM | 클라우드 인스턴스 예시 | 사용 사례 |
---|---|---|---|---|
개발 | 1-2 코어 | 2-4 GB | AWS: t3.medium / GCP: n1-standard-1 / Azure: A1 | 개발/테스트, 저지연 민감도 |
소형 | 1-2 코어 | 2-4 GB | AWS: t3.medium / GCP: n1-standard-1 / Azure: A1 | 경량 생산, 그린필드 트래픽 |
중형 | 2-4 코어 | 4-8 GB | AWS: m5.large / GCP: n1-standard-4 / Azure: A1v4 | 지연 요구가 있는 중요한 작업负载 |
대형 | 8-16 코어 | 16-32 GB | AWS: 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에서 균형 잡힌 트래픽 분배와 최적의 부하 처리를 보장하기 위해:
- 적절한 클러스터 크기 정의로 시작합니다.
- 캐시 및 플러그인 큐 요구 사항에 따라 메모리를 할당합니다.
- 대기 시간과 처리량 우선 순위에 따라 조정합니다.
- 캐싱을 통해 데이터베이스 의존성을 최소화합니다.
- CPU/메모리 구성 및 하이브리드 처리 옵션을 통해 확장을 가능하게 합니다.
이러한 구성은 Kong을 사용하여 확장 가능하고 생산 등급의 API 게이트웨이를 구축하는 기반을 형성합니다.