API 게이트웨이란 무엇입니까?

API 게이트웨이는 클라이언트의 API 요청을 수락하고, 정의된 정책에 따라 이를 처리하고, 적절한 서비스로 연결하고, 응답을 결합하여 더욱 간소화된 사용자 경험을 제공합니다. 일반적으로 여러 개의 마이크로서비스를 호출하고 결과를 집계하여 요청을 처리합니다. 또한 기존 배포 환경에서 프로토콜 간 변환도 가능합니다.

API 게이트웨이는 클라이언트의 API 요청을 수락하고, 정의된 정책에 따라 이를 처리하고, 적절한 서비스로 연결하고, 응답을 결합하여 더욱 간소화된 사용자 경험을 제공합니다. 일반적으로 여러 개의 마이크로서비스를 호출하고 결과를 집계하여 요청을 처리합니다. 또한 기존 배포 환경에서 프로토콜 간 변환도 가능합니다.

이미지 대체 텍스트는 여기에 있습니다

API 게이트웨이 기능

API 게이트웨이는 일반적으로 다음을 포함하는 기능을 구현합니다.

  • 보안 정책 – 인증, 권한 부여, 액세스 제어 및 암호화
  • 라우팅 정책 - 라우팅, 속도 제한, 요청/응답 조작, 회로 차단기, 블루-그린 및 카나리아 배포, A/B 테스트, 부하 분산, 상태 검사 및 사용자 정의 오류 처리
  • 관찰 정책 – 실시간 및 과거 메트릭, 로깅 및 추적

추가적인 앱 및 API 수준 보안을 위해 API 게이트웨이를 웹 애플리케이션 방화벽(WAF) 및 서비스 거부(DoS) 보호 기능으로 강화할 수 있습니다.

API 게이트웨이의 이점

앱 제공을 위한 API 게이트웨이를 배포하면 다음과 같은 이점이 있습니다.

  • 내부 애플리케이션 아키텍처를 캡슐화하고 각 클라이언트 유형에 맞게 조정된 API를 제공하여 복잡성을 줄이고 앱 릴리스 속도를 높입니다.
  • 제어 지점을 중앙 집중화하고 비기능적 요구 사항을 인프라 계층으로 오프로드하여 요청 처리 및 정책 시행을 간소화하고 단순화합니다.
  • 세부적인 실시간 및 과거 측정 항목과 대시보드를 통해 문제 해결을 간소화합니다.

API 게이트웨이 및 마이크로서비스 아키텍처

마이크로서비스 기반 애플리케이션의 경우 API 게이트웨이는 시스템에 대한 단일 진입점 역할을 합니다. 마이크로서비스 앞에 위치하여 앱의 복잡성과 클라이언트를 분리함으로써 클라이언트 구현과 마이크로서비스 앱을 모두 단순화합니다.

마이크로서비스 아키텍처에서 API 게이트웨이는 요청 라우팅, 구성 및 정책 시행을 담당합니다. 일부 요청은 적절한 백엔드 서비스로 라우팅하여 처리하고, 다른 요청은 여러 백엔드 서비스를 호출하여 결과를 집계하여 처리합니다.

API 게이트웨이는 인증, 권한 부여, 모니터링, 부하 분산, 응답 처리와 같은 마이크로서비스에 대한 다른 기능을 제공하여 비기능적 요구 사항의 구현을 인프라 계층으로 오프로드하고 개발자가 핵심 비즈니스 로직에 집중할 수 있도록 돕고 앱 출시를 가속화할 수 있습니다.

블로그에서 API 게이트웨이를 사용하여 마이크로서비스를 구축하는 방법 에 대해 자세히 알아보세요.

쿠버네티스를 위한 API 게이트웨이

컨테이너는 마이크로서비스를 실행하는 가장 효율적인 방법이며, 쿠버네티스는 컨테이너화된 애플리케이션과 워크로드를 배포하고 관리하기 위한 사실상의 표준입니다.

시스템 아키텍처와 앱 제공 요구 사항에 따라 API 게이트웨이는 로드 밸런서(다중 클러스터 수준)로 Kubernetes 클러스터 앞에 배포되거나, 클러스터 가장자리에 Ingress 컨트롤러(클러스터 수준)로 배포되거나, 클러스터 내부에 서비스 메시(서비스 수준)로 배포될 수 있습니다.

이미지 대체 텍스트는 여기에 있습니다

에지 및 Kubernetes 클러스터 내에서 API 게이트웨이를 배포하는 경우 Kubernetes 기본 도구를 API 게이트웨이로 사용하는 것이 가장 좋습니다. 이러한 도구는 Kubernetes API와 긴밀하게 통합되고 YAML을 지원하며 표준 Kubernetes CLI를 통해 구성할 수 있습니다. 예로는 NGINX Ingress ControllerNGINX Service Mesh가 있습니다.

API 게이트웨이 및 Kubernetes에 대해 자세히 알아보세요. API 게이트웨이 대 Ingress 컨트롤러와 서비스 메시 우리 블로그에서.

API 게이트웨이 및 Ingress 게이트웨이 또는 Ingress 컨트롤러

Ingress 게이트웨이와 Ingress 컨트롤러는 Kubernetes Ingress API의 일부인 Ingress 객체를 구현하여 Kubernetes에서 실행되는 애플리케이션을 외부 클라이언트에 노출하는 도구입니다. 이들은 사용자와 애플리케이션 간의 통신(사용자-서비스 또는 남북 연결)을 관리합니다. 그러나 Ingress 객체 자체의 기능은 매우 제한적입니다. 예를 들어, 여기에 첨부된 보안 정책을 정의하는 기능은 지원되지 않습니다. 그 결과, 많은 공급업체가 Ingress 컨트롤러의 기능을 확장하고 변화하는 고객 요구 사항과 필요 사항을 충족하기 위해 사용자 정의 리소스 정의(CRD)를 만듭니다. 여기에는 Ingress 컨트롤러를 API 게이트웨이로 사용하는 것도 포함됩니다.

예를 들어, NGINX Ingress Controller는 VirtualServer와 VirtualServerRoute , TransportServer , Policy 사용자 정의 리소스를 사용하여 Kubernetes 클러스터의 가장자리에서 모든 기능을 갖춘 API 게이트웨이로 사용할 수 있습니다.

API Gateway는 Gateway 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의 차이점을 설명하는 짧은 영상을 시청해 보세요.

서비스 메시 대 API 게이트웨이

서비스 메시는 Kubernetes 클러스터의 서비스 간 통신(서비스 간 또는 동서 연결)을 제어하는 인프라 계층입니다. 서비스 메시는 부하 분산, 인증, 권한 부여, 액세스 제어, 암호화, 관찰 가능성 및 연결 관리를 위한 고급 패턴(서킷 브레이커, A/B 테스트, 블루-그린 및 카나리아 배포)을 포함하여 Kubernetes에서 실행되는 서비스를 위한 핵심 기능을 제공하여 통신이 빠르고 안정적이며 안전하도록 보장합니다.

앱과 서비스에 더 가깝게 배포되는 서비스 메시는 Kubernetes에서 서비스 간 통신을 위한 가볍지만 포괄적인 분산 API 게이트웨이로 사용할 수 있습니다.

블로그의 서비스 메시 선택 방법에서 서비스 메시에 대해 자세히 알아보세요.

API 게이트웨이 및 API 관리

API 게이트웨이API 관리라는 용어는 종종 – 하지만 잘못해서 – 동일한 기능을 설명하는 데 사용됩니다.

API 게이트웨이는 클라이언트가 대상 애플리케이션과 서비스에 대한 요청을 나타내는 API 호출에 대한 데이터 평면 진입점입니다. 일반적으로 인증, 권한 부여, 액세스 제어, SSL/TLS 오프로드, 라우팅, 부하 분산을 포함한 정의된 정책에 따라 요청 처리를 수행합니다.

API 관리란 개별 API를 배포, 문서화, 운영, 모니터링하는 프로세스입니다. 일반적으로 이는 API 게이트웨이와 개발자 포털에 정책을 정의하고 적용하는 관리 평면 소프트웨어(예: API 관리자)를 통해 수행됩니다.

비즈니스 및 기능적 요구 사항에 따라 API 게이트웨이는 데이터 플레인의 독립 실행형 구성 요소로 배포되거나 F5 NGINX Management Suite API Connectivity Manager 와 같은 통합 API 관리 솔루션의 일부로 배포될 수 있습니다.

API 게이트웨이 선택 시 고려 사항

API 게이트웨이에 대한 요구 사항을 결정할 때 고려해야 할 몇 가지 주요 요소는 다음과 같습니다.

  • 아키텍처 - API 게이트웨이를 배포하는 위치는 툴링 선택에 영향을 미칠 수 있으며, 클라우드 공급자의 기본 제공 옵션을 사용할지 여부도 툴링 선택에 영향을 미칠 수 있습니다. 플랫폼과 런타임에 독립적인 API 게이트웨이의 유연성이 필요하신가요?
  • 성능 - 성능은 트래픽이 많은 웹사이트와 애플리케이션에 매우 중요합니다. 귀사의 API 게이트웨이가 필요한 높은 처리량과 낮은 지연 시간을 제공합니까?
  • 확장성 – API 게이트웨이는 증가하는 트래픽 수요를 충족하기 위해 쉽게 확장될 수 있어야 합니다. 귀사의 API 게이트웨이는 API가 항상 빠르고 가용성을 유지할 수 있도록 수직적(높은 처리량) 및 수평적(높은 가용성) 확장을 지원합니까?
  • 보안 – API 게이트웨이는 제로 트러스트 아키텍처의 중요한 부분입니다. 귀사의 API 게이트웨이는 긍정적 보안을 위해 액세스 제어(AuthN/AuthZ), mTLS 및 통합 WAF, OpenAPI 스키마 검증과 같은 기타 고급 보안 기능을 제공합니까?
  • 비용 – API 게이트웨이의 총 소유 비용(TCO)을 이해합니다. 맞춤형 솔루션을 구축하고 유지 관리하는 데 드는 비용과 상충 관계는 무엇이며 엔터프라이즈급 API 게이트웨이를 구매하는 데 드는 비용은 무엇입니까?

NGINX가 어떻게 도움이 될 수 있는가

NGINX는 사용 사례 및 배포 패턴에 따라 API 게이트웨이를 배포하고 운영하기 위한 여러 가지 옵션을 제공합니다.
Kubernetes 네이티브 도구:

  • NGINX Ingress Controller – API 게이트웨이, ID 및 관찰 기능을 통해 Kubernetes 클러스터의 가장자리에서 앱 연결을 관리합니다.
  • NGINX Service Mesh – 서비스 간 연결, 보안, 오케스트레이션 및 관찰성을 위한 개발자 친화적 솔루션

NGINX App Protect WAF 및 DoS가 포함된 NGINX Ingress Controller의 무료 30일 체험판을 요청하고, 항상 무료인 NGINX Service Mesh를 다운로드하여 시작하세요.

범용 도구:

  • API 게이트웨이로서의 NGINX Plus – 클라우드, 온프레미스 및 엣지 환경에 배포 가능한 가볍고 고성능 API 게이트웨이
  • F5 NGINX Management Suite API Connectivity Manager – API 관리, 거버넌스 및 보안을 위한 개발자 친화적인 도구로 API 게이트웨이를 배포하고 운영합니다.

NGINX Plus를 API 게이트웨이로 사용하는 방법에 대해 자세히 알아보려면 무료 30일 평가판을 요청하고 블로그에서 NGINX를 API 게이트웨이로 배포하기를 참조하세요. NGINX Management Suite를 사용해 보려면 무료 30일 체험판을 요청하세요.