기능 뒤에 숨은 API Gateway 트렌드: Apache APISIX 3.0 대 Kong 3.0
2022년 9월 28일, Kong은 새로운 Kong Gateway 3.0을 출시하며 몇 가지 새로운 기능과 성능 개선을 달성했습니다. 9월 21일에는 Apache 소프트웨어 재단의 탑 레벨 프로젝트인 Apache APISIX도 Apache APISIX 3.0의 프리뷰 버전을 출시하며, 생태계와 기능 측면에서 10가지 하이라이트를 소개했습니다.
이제 이 두 인기 있는 오픈소스 API 게이트웨이 프로젝트의 3.0 버전을 자세히 살펴보고, 이러한 업데이트 뒤에 숨은 개발 트렌드를 알아보겠습니다.
먼저 Kong Gateway 3.0의 8가지 하이라이트를 살펴보겠습니다.
Kong Gateway 3.0의 8가지 하이라이트
하이라이트 | OSS/Enterprise | 유형 | 대상 사용자 | 개선 사항 | APISIX 지원 여부 | 비고 |
---|---|---|---|---|---|---|
FIPS 140-2 | Enterprise 버전 | 규정 준수 | 북미 금융 기업 및 정부 기관 | 규정 준수 | 아니오 | 적용 불가 |
Secrets Management | 둘 다 | 규정 준수 | 금융 기업 | OSS: 환경 변수 Enterprise: AWS Secrets Manager 및 HashiCorp Vault | 예 | APISIX는 2021년 12월부터 OSS에서 HashiCorp Vault를 지원: feat(vault): vault lua module, integration with jwt-auth authentication plugin Kong은 2022년 2월: feat(vaults) adds vaults beta support to kong |
Plugin Ordering | Enterprise 버전 | 사용성 | 복잡한 시나리오를 가진 대기업 및 중견 기업 | 플러그인을 통해 비즈니스 유연성 증가 | 예 | APISIX 2022년 6월: feat: allows users to specify plugin execution priority Kong 2022년 7월: feat(plugins) add support for ordering |
Kong Manager 3.0 | Enterprise 버전 | 사용성 | 기술 팀이 많지 않은 중견 및 대기업 | 기업 사용자를 위한 API 관리 개선 | 예 | 적용 불가 |
Deep Websocket Support | Enterprise 버전 | 기능 | 웹소켓을 깊이 사용하는 기업 사용자 | 웹소켓 스키마 검증 및 웹소켓 프레임 크기 제한 | 예, 부분적으로 | Kong 2016년 12월: feat(proxy) supports websockets APISIX는 웹소켓 요청 프록시를 지원하며, 2020년 1월부터 limit-conn과 같은 플러그인과 함께 사용 가능: feature: upstream support websocket enable |
OpenTelemetry | 둘 다 | 기능 | 복잡한 비즈니스 호출 체인을 가진 대기업 및 중견 기업 | 관측 가능성 개선 | 예 | Kong 2022년 6월: feat(plugins) opentelemetry plugin APISIX 2022년 1월: feat: add opentelemetry plugin |
Performance Improvements | 둘 다 | 성능 | 클라우드 벤더, 빠르게 성장하는 SaaS 벤더 | 서버 비용 절감 | 예 | Apache APISIX는 2019년 오픈소스 이후로 다른 API 게이트웨이보다 성능 면에서 우수한 성과를 보여왔습니다. |
New Routing Engine | 둘 다 | 성능 | 클라우드 벤더, 빠르게 성장하는 SaaS 벤더 | 대량의 API로 인한 성능 문제 해결 및 서버 비용 절감 | 예 | Kong 2022년 7월: feat(router) new DSL based router support and tests fix APISIX 2019년 8월: feature: supported to use router lua-resty-radixtree |
Kong Gateway 3.0의 하이라이트를 통해 세 가지 트렌드를 분석할 수 있습니다:
- Kong은 금융 분야의 보안 및 규정 준수에 상대적으로 많은 투자를 하고 있으며, 이는 FIPS 140-2 규정 준수와 Secrets 관리 측면에서 분석할 수 있습니다.
-
FIPS 140-2 규정 준수: FIPS 140-2는 북미 금융 기업 및 정부 기관에서 암호화 모듈을 승인하기 위해 사용하는 컴퓨터 보안 표준입니다. Kong Gateway 3.0 Enterprise 버전은 BoringSSL을 기반으로 구축되었으며, 표준 요구 사항에 맞게 플러그인을 적응시킬 예정입니다. Kong의 FIPS 140-2 지원은 Kong의 개발 단계를 반영합니다: 7년간의 반복을 거치며 Kong은 점차 유료 사용자에 초점을 맞추고 있으며, 금융 기업 및 정부 기관의 요구를 충족시키는 데 주력하고 있습니다.
-
Secrets Management: 이 기능의 대상 사용자 역시 금융 기업입니다. Kong Gateway 3.0은 사용자가 AWS Secrets Manager 및 HashiCorp Vault에 민감한 정보를 안전하게 저장할 수 있도록 하며, Kong은 런타임에 이를 접근할 수 있습니다. 이를 통해 더 높은 수준의 보안 보호를 달성합니다.
-
각 하이라이트의 PR 링크를 통해 Kong Gateway 3.0의 8가지 하이라이트 대부분이 Apache APISIX에 의해 더 일찍 구현되었음을 알 수 있습니다.
-
Kong Gateway 3.0은 성능 면에서 상당한 개선이 이루어졌으며, 이는 두 가지 이유 때문입니다:
-
Kong은 라우팅에 캐시 계층을 추가하여 벤치마크 성능을 크게 개선했습니다. 그러나 문제는 URL 주소가 변경될 때 캐시가 무효화된다는 점입니다. 자세한 내용은 아래 코드 링크를 확인하세요: atc.lua
-
Kong은 Rust를 사용하여 완전히 새로운 라우팅 엔진을 구현했으며, DSL을 사용하여 라우팅 계층의 표현력을 높였습니다. HTTP 요청을 수신 및 전송할 때 다음과 같은 표현식을 작성할 수 있습니다:
net.protocol == "https" && (http.method == "GET" || http.method == "POST")
특정 호스트와 일치하는 요청 경로 시나리오에서는 다음과 같은 표현식을 작성할 수 있습니다:
(http.host == "example.com" && http.headers.x_example_version == "v2" ) || (http.host == "store.example.com" && http.headers.x_store_version == "v1")
Apache APISIX와 비교해보면, Apache APISIX는 2019년 8월에 **Lua-resty-radixtree**를 사용하여 유사한 라우팅 표현식 기능을 구현했습니다. APISIX의 표현식은 임의의 NGINX 변수를 지원하며, 더 풍부한 연산자를 제공합니다. 일반적인 숫자 및 문자열 비교 외에도 정규 표현식, 배열, IP 타겟팅도 지원합니다.
Kong Gateway 3.0 버전의 이 8가지 하이라이트 대부분은 Enterprise 버전에 치중되어 있습니다. 다음 두 그림은 Kong의 기술 발전 트렌드를 더 직관적으로 보여줍니다.
Kong Gateway 3.0에서 출시된 기능은 보안 규정 준수에 더 관심이 많은 정부, 금융 산업 및 대기업에 초점을 맞추고 있습니다.
Apache APISIX 3.0의 8가지 하이라이트 분석
오픈소스 API 게이트웨이 Apache APISIX는 3.0 버전의 프리뷰를 출시하며, Apache APISIX 3.0 버전의 10가지 하이라이트를 소개했습니다. 저자는 이 중 가장 중요한 8가지를 선택하여 분석했습니다. 이 8가지 하이라이트는 모두 오픈소스 버전을 대상으로 하며, 생태계와 기술 개선에 초점을 맞추고 있습니다.
하이라이트 | 유형 | 대상 사용자 | 개선 사항 | Kong 지원 여부 |
---|---|---|---|---|
ARM64 완전 지원 | 생태계 | 대규모 클라우드 마이그레이션을 진행하는 기업 | 서버 비용 절감 | 예, 부분적으로 |
gRPC 클라이언트 | 성능 | APISIX 최적화 요구 사항 | 최적화 | 아니오 |
강화된 서비스 디스커버리 지원 | 생태계, 기능 | 마이크로서비스에 의존하는 비즈니스 | 아니오 | |
xRPC 프레임워크 | 생태계, 기능 | 인터넷 기업 | 서버 비용 절감 | 아니오 |
L4 관측 가능성 | 기능 | 복잡한 비즈니스 기능을 가진 대기업 및 중견 기업 | 관측 가능성 강화 | 아니오 |
Gateway API 지원 | 생태계 | 인터넷 기업 | 기업 사용자를 위한 API 관리 개선 | 예 |
더 많은 플러그인: OpenFunction, ClickHouse, Elasticsearch, SAML, CAS | 생태계, 기능 | 인터넷 기업 | OSS: 환경 변수, Enterprise: AWS Secrets Manager 및 HashiCorp Vault | 아니오 |
AI 플레인 | 지능 | 인터넷 기업 | 대량의 API로 인한 성능 문제 해결 및 서버 비용 절감 | 아니오 |
위 표에서 얻을 수 있는 또 다른 정보는 Apache APISIX가 생태계와 기능 측면에서 개선되었다는 점입니다. 이 하이라이트 중 두 가지 주요 사항은 다음과 같습니다.
-
AI 플레인: 데이터 플레인과 컨트롤 플레인 외에, Apache APISIX는 3.0 버전에서 AI 플레인을 추가했습니다. 이는 API 트래픽 및 구성에 대한 학습과 분석을 통해 애플리케이션 및 운영 개발자의 사용 및 운영 압력을 완화합니다. 예를 들어, 다음 두 시나리오는 AI 플레인에 의해 자동으로 최적화될 수 있습니다:
- 인증 없이 사용되는 API를 발견하고 관리자에게 위험 경고를 보냅니다.
- 접근 단계에서만 플러그인이 구성된 API의 경우, 불필요한 단계를 건너뛰어 처리 속도를 높입니다.
AI 플레인은 트래픽 처리에 새로운 가능성을 열어줍니다. 앞으로, 업스트림 서비스의 자동 워밍업 및 보안 위협 탐지 등이 모두 AI 플레인을 통해 처리될 수 있습니다.
-
ARM64 완전 지원: ARM64는 클라우드 벤더를 위한 매우 주류 서버 아키텍처가 되었습니다. AWS Graviton 및 GCP Tau T2A와 같은 Arm 아키텍처 기반 서버를 다양한 클라우드 벤더가 출시하고 있습니다. Apache APISIX는 ARM64에 대한 포괄적인 CI 회귀 테스트를 수행하여 사용자가 Arm 아키텍처에서 Apache APISIX를 실행할 때 원활함을 보장합니다. 사용자들은 이에 대해 많은 관심을 가지고 있습니다. GCP와 AWS의 ARM 아키텍처 성능 비교는 _Hacker News_에서 거의 100개의 댓글을 받았습니다.
결론
Kong Gateway 3.0은 규정 준수, 사용성, 기능 및 성능 면에서 새로운 진전을 이루었으며, 기업 보안 규정 준수에 더 초점을 맞추고 있습니다. Apache APISIX 3.0에서 소개된 모든 기능은 오픈소스이며, 생태계와 새로운 기술 탐구에 더 많은 관심을 기울이고 있습니다.
앞으로 Kong과 Apache APISIX가 어떻게 반복하고 발전할지 지켜보겠습니다!