오픈소스 API 플랫폼 - Apache APISIX
- 오픈 소스 API 관리 플랫폼 10종 비교
- Apache APISIX 특징과 설치
- Apache APISIX - 아키텍처
- Apache APISIX - 인증(Authentication)
- APISIX - 플러그인(Plugin)의 개념
- APISIX - 네트워크 포트 용도
- APISIX - 모니터링 및 성능 관리 도구
10가지 대표적인 오픈 소스 API 관리 플랫폼의 기능을 비교해 보고 솔루션 선정시 또는 자체 개발시 고려사항을 정리해 봅니다. 예전에 Spring Cloud 기반의 오픈소스로 Open-API 플랫폼을 금융 그룹의 엔터프라이즈급 솔루션으로 개발 한 경험을 살려서 다시 정리해 보고 있습니다.
API 솔루션은 세상의 모든 비즈니스를 인공지능, 블록체인을 이용하여 B2B 시스템과 연결되는 확장 서비스에 필수적인 기술 입니다. 앞으로 안전한 비즈니스 생태계를 이어가기 위해서 API 기술을 탐독해 봅니다.
API 관리 플랫폼
API 관리 플랫폼은 API를 설계, 배포, 보호, 모니터링 및 로깅하는 데 필요한 도구와 안정적으로 서비스를 제공하는데 중요한 소프트웨어입니다.
여러 오픈 소스 API 관리 플랫폼이 있으며, 각 플랫폼은 고유한 기능과 장점을 가지고 있습니다.
API플랫폼의 구성요소
. API gateway : 서비스 라우팅
. API 서비스 : 작동되는 비즈니스 모듈 및 인터페이스
. API 관리포탈 : API 관리 콘트롤
. API 핵심 기능 : 인증 및 토큰 발급, 전문 변환 맵핑
리미팅, 모니터링, 장애 복구 등
API 플랫폼 선정시 중요한 사항
- API 인증 토큰, SAML 및 인증키 검증 기능
- CORS(Cross-origin Resourse Sharing)
- 불법이용을 차단하고 이용량을 제한하고 모니터링이 가능
Access Controll and limiting & metering , Bot Attack, IP Filter etc.
- 다양한 API 등록 관리가 용이한 관리 포탈
- API 를 테스트하고 검증할 수있는 API 테스트 기능
10가지 오픈 소스 API 관리 플랫폼 비교
주요 오픈 소스 API 관리 플랫폼을 비교하여 설명하겠습니다.
1. API Umbrella (Cisco)
홈페이지 : https://umbrella.cisco.com/blog/introducing-new-improved-cisco-umbrella-apis
오픈소스 : https://github.com/NREL/api-umbrella
기능:
. 여러 조직이 동일한 플랫폼에서 운영할 수 있도록 지원
. 레이트 리미팅(rate limiting), API 키, 캐싱, 실시간 분석 제공
. 관리 웹 인터페이스 제공
장점:
. 멀티 테넌시 지원
. 다양한 관리 기능을 위한 풍부한 관리자 인터페이스
단점:
. 설정 및 유지 관리가 복잡할 수 있음
2. Gravitee.io
- 모든 API 관리를 통합 할 수 있는 멀티 API 게이트웨이 및 멀티 브로커 를 제공합니다. 다양한 API 사양의 문서를 생성하고 API를 Publish 할 수 있는 "Gravitee Universal Developer Porta" 관리 기능을 제공합니다.
- 홈페이지 : https://www.gravitee.io/
기능:
. 경량화 및 유연성
. 레이트 리미팅, IP 필터링, CORS, OAuth2 및 JSON 웹. 토큰 정책 지원
. 로드 밸런싱 및 상세한 보고서 생성 기능
. Kafka와 같은 이벤트 브로커 리소스 제공 ( Kafka 메시지 스트림을 REST, WebSocket, Webhooks 및 SSE API로 노출)
. 타사 이벤트 API를 자동 검색하고 API 구독을 제어하며 이러한 이벤트 API를 범용 API 개발자 포털에 게시 가
장점:
. 플러그 앤 플레이 옵션
. 유연한 확장성
단점:
. 고급 기능 사용 시 추가 설정 필요
3. APIman.io
- Apiman Manager, Apiman Gateway (Vert.x), Keycloak, PostgreSQL 및 Elasticsearch를위한 독립 컨테이너로 구성됩니다.
- 홈페이지 : https://www.apiman.io/
기능:
. 다양한 백엔드 개발 도구 제공
. 레이트 리미팅, API 키 관리, 로깅, 트랜스포메이션 지원
. GitHub에서 쉽게 접근 가능
장점:
. Red Hat의 지원
. 다양한 개발 환경과의 호환성
단점:
. 다른 플랫폼에 비해 기능이 제한적일 수 있음
[운영]
docker-compose -f docker-compose.setup.yml up
docker-compose up
4. WSO2 API Manager
기능:
. 전체 라이프사이클 API 관리
. 온프레미스 및 프라이빗 클라우드 배포 지원
. API 배포 및 배포 기능
장점:
. 높은 확장성 및 유연성
. 다양한 배포 옵션
단점:
. 설정이 복잡할 수 있음
5. Kong Enterprise
기능:
. 마이크로서비스 및 API 관리
. 레이트 리미팅, 로드 밸런싱, 인증 및 권한 부여
. 플러그인 기반 아키텍처
장점:
. 높은 성능 및 확장성
. 다양한 플러그인 지원
단점:
. 엔터프라이즈 에디션은 비용이 발생할 수 있음
6. Tyk.io
기능:
. 오픈 소스 API 게이트웨이
. API 개발자 포털, API 분석 대시보드 제공
. 레이트 리미팅, 인증, 캐싱 지원
장점:
. 상세한 문서화 및 대시보드 제공
. 다양한 환경에서 사용 가능
단점:
. 상용 서비스는 유료 버전으로 제공
7. Fusio
기능:
. 다양한 데이터 타입에서 REST API 생성 및 유지 관리
. 백엔드 대시보드, JSON 검증, 사용자 권한 관리
. OAI 및 RAML 요구사항 자동 생성
장점:
. 효율적인 라이프사이클 관리
. 자동화된 클라이언트 SDK 생성
단점:
. 고급 설정이 필요할 수 있음
8. SwaggerHub
기능:
. API 설계 및 문서화 도구
. 스마트 에러 피드백, 구문 자동완성, 다중 스타일 검증기 제공
장점:
. 직관적인 에디터 제공
. 높은 설계 일관성 유지
단점:
. 고급 기능 사용 시 추가 비용 발생
9. KrakenD
- 시장에서 가장 빠른 API 게이트웨이
KrakenD는 고객에게 서비스를 백엔드하도록하는 일반적인 프록시 이상이지만 데이터를 변환, 집계 또는 제거 할 수있는 강력한 엔진입니다. KrakenD는 프론트 엔드, 백엔드와 마이크로 프론트 엔드 처리의 여러 REST 서비스를 구현하여 마이크로 서비스 를 구현 하기 용이합니다.
- 홈페이지 : https://www.krakend.io/
기능:
. 고성능 API 게이트웨이
. 무제한 엔드포인트 및 백엔드 지원
. 모니터링, 캐싱, 사용자 할당량, 레이트 리미팅 제공
장점:
. 간단한 설정 및 사용
. 다양한 프로토콜과의 호환성
단점:
. 설정 파일을 통한 관리가 필요
[Download and install]
# https://www.krakend.io/download/
apt install -y ca-certificates gnupg
apt-key adv --keyserver keyserver.ubuntu.com --recv 5DE6FD698AD6FDD2
echo "deb https://repo.krakend.io/apt stable main" | tee /etc/apt/sources.list.d/krakend.list
apt-get update
apt-get install -y krakend
[ for Ubuntu24.04 Security]
- Ubuntu24에서 apt-key command is deprecated and the keyserver is failing 으로 설치가 되지 않는 경우
(1) Download the key:
wget -O- https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x5DE6FD698AD6FDD2 |
sudo gpg --dearmor -o /usr/share/keyrings/repository-archive-keyring.gpg
(2) Add the repository with the key:
echo "deb [signed-by=/usr/share/keyrings/krakend-archive-keyring.gpg] https://repo.krakend.io/apt stable main" | sudo tee /etc/apt/sources.list.d/krakend.list
(3) Update your package lists:
sudo apt-get update
(4) re try install:
apt-get install -y krakend
root@couple:/DevApps/app_src# apt-key adv --keyserver keyserver.ubuntu.com --recv 5DE6FD698AD6FDD2
Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).
Executing: /tmp/apt-key-gpghome.4J7q9Ukhoc/gpg.1.sh --keyserver keyserver.ubuntu.com --recv 5DE6FD698AD6FDD2
gpg: key 5DE6FD698AD6FDD2: public key "Devops Faith Package Manager <packages@devops.faith>" imported
gpg: Total number processed: 1
gpg: imported: 1
root@couple:/DevApps/app_src# sudo apt-get update
Hit:1 http://kr.archive.ubuntu.com/ubuntu noble InRelease
Hit:2 http://security.ubuntu.com/ubuntu noble-security InRelease
Hit:3 http://kr.archive.ubuntu.com/ubuntu noble-updates InRelease
Get:4 https://repo.krakend.io/apt stable InRelease [4,314 B]
Hit:5 http://kr.archive.ubuntu.com/ubuntu noble-backports InRelease
Get:6 https://repo.krakend.io/apt stable/main amd64 Packages [8,893 B]
Fetched 8,893 B in 2s (4,075 B/s)
Reading package lists... Done
W: https://repo.krakend.io/apt/dists/stable/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.
- 설치 가이드 : https://couplewith.tistory.com/620
10. Gloo Edge
기능:
. 클라우드 네이티브 API 게이트웨이
. 레거시 앱, 마이크로서비스, 서버리스 지원
. 레이트 리미팅, 서킷 브레이킹, 리트라이, 캐싱 제공
장점:
. 다양한 오픈 소스 프로젝트와의 통합
. 강력한 기능 제공
단점:
. 초기 설정이 복잡할 수 있음
참고 사이트
20 Best Open-Source API Management Platforms to Consider in 2021
16 Best API Gateway for Modern Applications - Geekflare
Top 10 Best API Management Platforms, Tools & Solutions (2021)
6 Best Open-Source API Gateways | Nordic APIs
10 Best API Gateways and Management Tools in 2024 - Tecmint
'InfraPlatform' 카테고리의 다른 글
Linux run level 변경 - CLI와 GUI 모드 전환하는 방법 (4) | 2024.08.23 |
---|---|
오픈소스 IAM(Identity and Access Management) 시스템 (87) | 2024.08.14 |
KrakenD - 고성능 API 플랫폼 리눅스 우분투 설치 (6) | 2024.08.03 |
[꿀팁] 고성능 Nginx를위한 튜닝 - (1) 디스크의 I/O 병목 줄이기 (21) | 2024.05.22 |
(CentOS대체)How to Migrate to Rocky Linux from CentOS Stream, CentOS, RHEL (87) | 2024.05.07 |
꿀팁-완전-무료-윈도우10-삭제된-파일-무료-복구 (63) | 2024.04.28 |
How to Start WSL - docker-desktop 으로 도커 관리 (91) | 2024.03.28 |