API Gateway Apache APISIX와 Kong 선택 비교

API7.ai

January 18, 2020

Products

Apache APISIX와 Kong은 모두 오픈소스 마이크로서비스 API 게이트웨이입니다. 그렇다면 이 둘을 어떻게 비교하고 선택해야 할까요?

이 두 프로젝트는 완전한 문서와 테스트를 갖추고 있으며, 많은 프로덕션 사용자들이 사용하고 있으므로 안정성과 지속 가능한 개발에 대해 걱정할 필요가 없습니다. 이 글에서는 가장 직접적이고 검증 가능한 기능과 성능에 초점을 맞춰 다른 관점에서 비교를 진행하겠습니다.

이 두 프로젝트는 완전한 문서와 테스트를 갖추고 있으며, 많은 프로덕션 사용자들이 사용하고 있으므로 안정성과 지속 가능한 개발에 대해 걱정할 필요가 없습니다. 이 글에서는 가장 직접적이고 검증 가능한 기능과 성능에 초점을 맞춰 다른 관점에서 비교를 진행하겠습니다.

기능Apache APISIXKONG
동적 업스트림
동적 라우터
헬스 체크
동적 SSL
L4 및 L7 프록시
Opentracing
커스텀 플러그인
REST API
CLI

더 자세한 비교는 다음과 같습니다.

기능Apache APISIXKong
소속Apache Software FoundationKong Inc.
기술 아키텍처Nginx + etcdNginx + postgres
커뮤니케이션 채널메일 리스트, Wechat 그룹, QQ 그룹, GitHub, meetupGitHub, freenode, 포럼
싱글 코어 CPU, QPS(limit-count 및 prometheus 플러그인 활성화)180001700
지연 시간0.2 ms2 ms
Dubbo아니오
설정 롤백아니오
TTL이 있는 라우팅아니오
플러그인 핫 로딩아니오
커스텀 LB 및 라우팅아니오
REST API <--> gRPC 트랜스코딩아니오
Tengine아니오
MQTT아니오
설정 적용 시간이벤트 기반, < 1ms폴링, 5초
대시보드아니오
IdP아니오
설정 센터 HA아니오
지정된 시간 창에 대한 속도 제한아니오
Nginx 변수를 라우팅 조건으로 지원아니오

성능

limit-count 및 prometheus 플러그인을 활성화한 후, Apache APISIX의 성능은 Kong의 10배에 달합니다.

더 자세한 단계는 여기에서 확인할 수 있습니다. 관심 있는 개발자들은 그림을 따라 검증할 수 있습니다.

왜 Apache APISIX가 더 뛰어난가요?

여기서는 기능과 성능의 차이 뒤에 있는 이유를 논의합니다:

  1. Apache APISIX의 라우팅 복잡도는 O(k)로, uri의 길이와만 관련이 있으며 라우트 수와는 무관합니다. 반면 Kong의 라우팅 시간 복잡도는 O(n)으로, 라우트 수에 따라 선형적으로 증가합니다.

  2. Apache APISIX의 IP 매칭 시간 복잡도는 O(1)로, 많은 수의 IP 판단에도 CPU 리소스가 고갈되지 않습니다.

  3. Apache APISIX의 라우트 매칭은 Nginx의 모든 변수를 조건으로 받아들이며, 커스텀 함수를 지원합니다. 다른 게이트웨이는 몇 가지 내장 조건만을 가지고 있습니다.

  4. Apache APISIX는 etcd를 설정 센터로 사용합니다. 단일 장애점이 없으며, 어떤 머신이 다운되더라도 게이트웨이 클러스터는 정상적으로 운영될 수 있습니다. 관계형 데이터베이스를 기반으로 하는 다른 게이트웨이는 단일 장애점 문제를 가지고 있습니다.

  5. Apache APISIX의 설정은 etcd watch를 사용하여 1밀리초 이내에 모든 게이트웨이 노드에 도달합니다. 다른 게이트웨이는 주기적으로 데이터베이스를 폴링하며, 최신 설정을 얻는 데 보통 5초가 걸립니다.

  6. Apache APISIX의 플러그인은 고압력 상황에서도 밀리초 수준의 지연 시간을 유지하도록 세심하게 조정되었습니다.

  7. Apache APISIX의 독특한 플러그인 배열과 로우 코드 기능은 2차 개발의 문턱을 크게 낮출 수 있습니다.

더 읽어보기

Tags: