API 게이트웨이는 클라이언트의 API 요청을 수락하고, 정의된 정책에 따라 이를 처리하고, 적절한 서비스로 연결하고, 응답을 결합하여 더욱 간소화된 사용자 경험을 제공합니다. 일반적으로 여러 개의 마이크로서비스를 호출하고 결과를 집계하여 요청을 처리합니다. 또한 기존 배포 환경에서 프로토콜 간 변환도 가능합니다.
API 게이트웨이는 클라이언트의 API 요청을 수락하고, 정의된 정책에 따라 이를 처리하고, 적절한 서비스로 연결하고, 응답을 결합하여 더욱 간소화된 사용자 경험을 제공합니다. 일반적으로 여러 개의 마이크로서비스를 호출하고 결과를 집계하여 요청을 처리합니다. 또한 기존 배포 환경에서 프로토콜 간 변환도 가능합니다.
API 게이트웨이는 일반적으로 다음을 포함하는 기능을 구현합니다.
추가적인 앱 및 API 수준 보안을 위해 API 게이트웨이를 웹 애플리케이션 방화벽(WAF) 및 서비스 거부(DoS) 보호 기능으로 강화할 수 있습니다.
앱 제공을 위한 API 게이트웨이를 배포하면 다음과 같은 이점이 있습니다.
마이크로서비스 기반 애플리케이션의 경우 API 게이트웨이는 시스템에 대한 단일 진입점 역할을 합니다. 마이크로서비스 앞에 위치하여 앱의 복잡성과 클라이언트를 분리함으로써 클라이언트 구현과 마이크로서비스 앱을 모두 단순화합니다.
마이크로서비스 아키텍처에서 API 게이트웨이는 요청 라우팅, 구성 및 정책 시행을 담당합니다. 일부 요청은 적절한 백엔드 서비스로 라우팅하여 처리하고, 다른 요청은 여러 백엔드 서비스를 호출하여 결과를 집계하여 처리합니다.
API 게이트웨이는 인증, 권한 부여, 모니터링, 부하 분산, 응답 처리와 같은 마이크로서비스에 대한 다른 기능을 제공하여 비기능적 요구 사항의 구현을 인프라 계층으로 오프로드하고 개발자가 핵심 비즈니스 로직에 집중할 수 있도록 돕고 앱 출시를 가속화할 수 있습니다.
블로그에서 API 게이트웨이를 사용하여 마이크로서비스를 구축하는 방법 에 대해 자세히 알아보세요.
컨테이너는 마이크로서비스를 실행하는 가장 효율적인 방법이며, 쿠버네티스는 컨테이너화된 애플리케이션과 워크로드를 배포하고 관리하기 위한 사실상의 표준입니다.
시스템 아키텍처와 앱 제공 요구 사항에 따라 API 게이트웨이는 로드 밸런서(다중 클러스터 수준)로 Kubernetes 클러스터 앞에 배포되거나, 클러스터 가장자리에 Ingress 컨트롤러(클러스터 수준)로 배포되거나, 클러스터 내부에 서비스 메시(서비스 수준)로 배포될 수 있습니다.
에지 및 Kubernetes 클러스터 내에서 API 게이트웨이를 배포하는 경우 Kubernetes 기본 도구를 API 게이트웨이로 사용하는 것이 가장 좋습니다. 이러한 도구는 Kubernetes API와 긴밀하게 통합되고 YAML을 지원하며 표준 Kubernetes CLI를 통해 구성할 수 있습니다. 예로는 NGINX Ingress Controller 와 NGINX Service Mesh가 있습니다.
API 게이트웨이 및 Kubernetes에 대해 자세히 알아보세요. API 게이트웨이 대 Ingress 컨트롤러와 서비스 메시 우리 블로그에서.
Ingress 게이트웨이와 Ingress 컨트롤러는 Kubernetes Ingress API의 일부인 Ingress 객체를 구현하여 Kubernetes에서 실행되는 애플리케이션을 외부 클라이언트에 노출하는 도구입니다. 이들은 사용자와 애플리케이션 간의 통신(사용자-서비스 또는 남북 연결)을 관리합니다. 그러나 Ingress 객체 자체의 기능은 매우 제한적입니다. 예를 들어, 여기에 첨부된 보안 정책을 정의하는 기능은 지원되지 않습니다. 그 결과, 많은 공급업체가 Ingress 컨트롤러의 기능을 확장하고 변화하는 고객 요구 사항과 필요 사항을 충족하기 위해 사용자 정의 리소스 정의(CRD)를 만듭니다. 여기에는 Ingress 컨트롤러를 API 게이트웨이로 사용하는 것도 포함됩니다.
예를 들어, NGINX Ingress Controller는 VirtualServer와 VirtualServerRoute , TransportServer , Policy 사용자 정의 리소스를 사용하여 Kubernetes 클러스터의 가장자리에서 모든 기능을 갖춘 API 게이트웨이로 사용할 수 있습니다.
이름은 비슷하지만 API 게이트웨이는 Kubernetes Gateway API 와 다릅니다. Kubernetes Gateway API는 Kubernetes 커뮤니티에서 Kubernetes의 서비스 네트워킹을 개선하고 표준화하기 위해 관리하는 오픈 소스 프로젝트입니다. Gateway API 사양은 Kubernetes 앱을 프로덕션에 노출하기 위해 Ingress 리소스를 배포하는 데 따른 다양한 과제를 해결하기 위해 Kubernetes Ingress API 에서 발전했습니다. 여기에는 요청 처리를 위한 세부적인 정책을 정의하고 여러 팀과 역할에 걸쳐 구성에 대한 제어를 위임하는 기능이 포함됩니다.
NGINX Kubernetes Gateway 와 같은 Gateway API 사양을 기반으로 구축된 도구는 특정 마이크로서비스에 대한 라우팅 요청, 트래픽 정책 구현, 카나리아 및 블루그린 배포 활성화 등의 사용 사례에 대한 API 게이트웨이로 사용할 수 있습니다.
NGINX의 Jenn Gile이 API 게이트웨이와 Kubernetes Gateway API의 차이점을 설명하는 짧은 영상을 시청해 보세요.
서비스 메시는 Kubernetes 클러스터의 서비스 간 통신(서비스 간 또는 동서 연결)을 제어하는 인프라 계층입니다. 서비스 메시는 부하 분산, 인증, 권한 부여, 액세스 제어, 암호화, 관찰 가능성 및 연결 관리를 위한 고급 패턴(서킷 브레이커, A/B 테스트, 블루-그린 및 카나리아 배포)을 포함하여 Kubernetes에서 실행되는 서비스를 위한 핵심 기능을 제공하여 통신이 빠르고 안정적이며 안전하도록 보장합니다.
앱과 서비스에 더 가깝게 배포되는 서비스 메시는 Kubernetes에서 서비스 간 통신을 위한 가볍지만 포괄적인 분산 API 게이트웨이로 사용할 수 있습니다.
블로그의 서비스 메시 선택 방법에서 서비스 메시에 대해 자세히 알아보세요.
API 게이트웨이 와 API 관리라는 용어는 종종 – 하지만 잘못해서 – 동일한 기능을 설명하는 데 사용됩니다.
API 게이트웨이는 클라이언트가 대상 애플리케이션과 서비스에 대한 요청을 나타내는 API 호출에 대한 데이터 평면 진입점입니다. 일반적으로 인증, 권한 부여, 액세스 제어, SSL/TLS 오프로드, 라우팅, 부하 분산을 포함한 정의된 정책에 따라 요청 처리를 수행합니다.
API 관리란 개별 API를 배포, 문서화, 운영, 모니터링하는 프로세스입니다. 일반적으로 이는 API 게이트웨이와 개발자 포털에 정책을 정의하고 적용하는 관리 평면 소프트웨어(예: API 관리자)를 통해 수행됩니다.
비즈니스 및 기능적 요구 사항에 따라 API 게이트웨이는 데이터 플레인의 독립 실행형 구성 요소로 배포되거나 F5 NGINX Management Suite API Connectivity Manager 와 같은 통합 API 관리 솔루션의 일부로 배포될 수 있습니다.
API 게이트웨이에 대한 요구 사항을 결정할 때 고려해야 할 몇 가지 주요 요소는 다음과 같습니다.
NGINX는 사용 사례 및 배포 패턴에 따라 API 게이트웨이를 배포하고 운영하기 위한 여러 가지 옵션을 제공합니다.
Kubernetes 네이티브 도구:
NGINX App Protect WAF 및 DoS가 포함된 NGINX Ingress Controller의 무료 30일 체험판을 요청하고, 항상 무료인 NGINX Service Mesh를 다운로드하여 시작하세요.
범용 도구:
NGINX Plus를 API 게이트웨이로 사용하는 방법에 대해 자세히 알아보려면 무료 30일 평가판을 요청하고 블로그에서 NGINX를 API 게이트웨이로 배포하기를 참조하세요. NGINX Management Suite를 사용해 보려면 무료 30일 체험판을 요청하세요.