본문 바로가기
IT/Knowledge

Kong API 란? (API gateway)

by 성준하이 2024. 3. 7.
반응형

API Gateway - 콩(Kong)이란?

Kong 공식 홈페이지를 보면, Kong은 하이브리드(hybrid) 및 멀티 클라우드(multi-cloud) 용으로 구축되었으며, 마이크로서비스 및 분산 아키텍처에 최적화된 API Gateway라고 한다.

그리고 가장 많이 사용되는 API Gateway 이다.

API Gatewau 에 대한 내용은 아래 참고 포스팅 참고 바란다.

 

Kong 의 공식 사이트는 아래이다.

https://konghq.com/products/kong-gateway

 

Most Trusted Open Source API Gateway | Kong Gateway

Kong is a natural fit for PEXA embarking on the modernization journey. It ticks all the boxes — scalability, security, and self-service — which takes the hassle of managing APIs

konghq.com

 

  • Kong은 Nginx + Cassandra + Lua Script 기반임
  • Kong은 밀리 초 미만의 처리 대기 시간 지원 및 높은 처리량, 고성능을 자랑함
  • Kong은 플러그인 SDK를 사용하여 Lua 또는 GoLang에서 확장성을 자랑함
  • Kong은 플러그인을 통해 로드밸런싱, 로깅, 인증, 속도 제한, 변환 등을 제공함
  • Kong은 모든 플랫폼, 모든 클라우드에서 실행이 가능하고 Kubernetes를 기본적으로 지원함
  • Kong은 스타트업과 Global 5,000개의 회사 및 정부 기관의 제품에 널리 사용됨

이외에도 가장 큰 특징은, 모든 기능을 Restful Interface로 제공하고 있으며, API Gateway를 구성하는 필수 기능들, 예를 들면 OAuth 인증, Logging, 유량제어 등을 플러그인 기반으로 손쉽게 추가하여 사용할 수 있으며, 특정 플랫폼에 종속되지 않고 어디서든지 Kong을 구축할 수 있다.

Kong의 특징 및 주요 개념

▶ 클라우드 네이티브

플랫폼에 구애받지 않는 Kong은 베어 메탈에서 컨테이너에 이르기까지 모든 플랫폼에서 실행할 수 있으며 모든 클라우드에서 기본적으로 실행할 수 있습니다.

▶ Kubernetes-Native

공식 Ingress Controller를 사용하여 모든 L4 + L7 트래픽을 라우팅하고 연결하는 네이티브 Kubernetes CRD로 Kong을 선언적으로 구성합니다.

▶ 동적 부하 분산

여러 업스트림 서비스에서 트래픽 부하를 분산합니다.

▶ 해시 기반 부하 분산

일관된 해싱 / 고정 세션으로 부하 분산.

▶ Circuit-Breaker

비정상 업스트림 서비스를 지능적으로 추적합니다.

▶ 상태 확인

업스트림 서비스의 능동 및 수동 모니터링.

▶ 서비스 검색

Consul과 같은 타사 DNS 확인자에서 SRV 레코드를 확인합니다.

▶ 서버리스

Kong에서 직접 AWS Lambda 또는 OpenWhisk 함수를 호출하고 보호합니다.

▶ WebSockets

WebSocket을 통해 업스트림 서비스와 통신합니다.

▶ gRPC

gRPC 서비스와 통신하고 로깅 및 관찰 플러그인으로 트래픽을 관찰합니다.

▶ 로깅

HTTP, TCP, UDP 또는 디스크를 통해 시스템에 대한 요청 및 응답을 기록합니다. 그리고 시스템 로그도 기록합니다.

▶ 보안

ACL, 봇 감지, IP 허용 / 거부 등 ...

▶ SSL

기본 서비스 또는 API에 대한 특정 SSL 인증서를 설정합니다.

▶ 모니터링

실시간 모니터링은 주요로드 및 성능 서버 메트릭을 제공합니다.

▶ 전달 프록시

Kong이 중간 투명 HTTP 프록시에 연결되도록합니다.

▶ 인증

HMAC, JWT, Basic 등... API에 OAuth2.0 인증을 쉽게 추가합니다.

▶ 속도 제한

많은 변수를 기반으로 요청을 차단하고 제한합니다.

▶ 변환

HTTP 요청 및 응답을 추가, 제거 또는 조작합니다.

▶ 캐싱

프록시 계층에서 응답을 캐시하고 제공합니다.

▶ CLI

명령 줄에서 Kong 클러스터를 제어합니다.

▶ REST API

Kong은 최대한의 유연성을 위해 RESTful API로 작동 할 수 있습니다.

▶ 지역 복제

구성은 항상 여러 지역에서 최신 상태로 유지됩니다.

▶ 실패 감지 및 복구

Cassandra 노드 중 하나가 다운 되더라도 Kong은 영향을받지 않습니다.

▶ 클러스터링

모든 Kong 노드는 클러스터에 자동 가입하여 노드 전체에서 구성을 업데이트합니다.

▶ 확장성

본질적으로 분산 된 Kong은 단순히 노드를 추가하여 수평 적으로 확장됩니다.

▶ 성능

Kong은 핵심에서 NGINX를 확장하고 사용하여로드를 쉽게 처리합니다.

▶ 플러그인

Kong 및 API에 기능을 추가하기위한 확장 가능한 아키텍처입니다.

 


참고 포스팅

https://thenicesj.tistory.com/266

 

API Gateway란?

요즘 인기있는 디자인 아키텍쳐 중에 가장 많이 언급되고 있는 MSA 를 알고 해당 포스팅을 보는것을 추천한다. 만약 MSA 에 대한 개념을 모른다면 아래 참고포스팅을 한번 보고 해당 포스팅을 읽

thenicesj.tistory.com

 

반응형

'IT > Knowledge' 카테고리의 다른 글

Bastion Host(배스천 호스트)  (14) 2024.03.09
'Service Mesh' VS 'API Gateway'  (20) 2024.03.08
ESB란?(Enterprise Service Bus)  (19) 2024.03.06
[K8S] namespace, pod 설명  (25) 2024.03.02
컨테이너 런타임 이란?(kubernetes 등장 배경)  (15) 2024.03.01

댓글