API Gateway

API Gateway란?

API Gateway는 클라이언트로부터 API 요청을 받아 정의된 정책에 따라 처리한 후 적절한 서비스로 전달하고 응답을 통합하여 사용자 경험을 간소화합니다. 일반적으로 여러 마이크로서비스를 호출하고 결과를 집계하여 요청을 처리하며, 레거시 배포에서 프로토콜 간에 변환할 수도 있습니다.

API Gateway는 클라이언트로부터 API 요청을 받아 정의된 정책에 따라 처리한 후 적절한 서비스로 전달하고 응답을 통합하여 사용자 경험을 간소화합니다. 일반적으로 여러 마이크로서비스를 호출하고 결과를 집계하여 요청을 처리하며, 레거시 배포에서 프로토콜 간에 변환할 수도 있습니다.

여기에 이미지 대체 텍스트 삽입

API Gateway 기능

API Gateway는 일반적으로 다음과 같은 기능을 구현합니다.

  • 보안 정책 - 인증, 권한 부여, 액세스 제어 및 암호화
  • 라우팅 정책 - 라우팅, 속도 제한, 요청/응답 조작, 회로 차단기, 블루-그린 및 카나리아 배포, A/B 테스트, 로드 밸런싱, 상태 확인 및 사용자 지정 오류 처리
  • 관찰 가능성 정책 - 실시간 및 기록 메트릭, 로깅 및 추적

추가적인 앱 및 API 수준 보안의 경우 Web Application Firewall(WAF) 및 서비스 거부(DoS) 보호를 통해 API Gateway를 보강할 수 있습니다.

API Gateway 이점

앱 딜리버리를 위해 API Gateway를 배포하면 다음과 같이 도움이 될 수 있습니다.

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

API Gateway 및 마이크로서비스 아키텍처

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

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

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

블로그에서 API Gateway를 사용한 마이크로서비스 구축에 대해 자세히 알아보십시오.

Kubernetes용 API Gateway

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

시스템 아키텍처와 앱 딜리버리 요구 사항에 따라, API Gateway는 로드 밸런서(멀티 클러스터 수준)로 Kubernetes 클러스터 앞에 배포하거나, 인그레스 컨트롤러(클러스터 수준)로 엣지에 배포하거나, 서비스 메시(서비스 수준)로 내부에 배포할 수 있습니다.

여기에 이미지 대체 텍스트 삽입

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

API Gateway, 인그레스 컨트롤러, 서비스 메시 비교 블로그에서 API Gateway와 Kubernetes에 대해 자세히 알아보십시오.

API Gateway 및 인그레스 게이트웨이 또는 인그레스 컨트롤러

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

예를 들어, NGINX Ingress ControllerVirtualServer 및 VirtualServerRoute, TransportServer, 정책 사용자 정의 리소스와 함께 Kubernetes 클러스터의 엣지에서 모든 기능을 갖춘 API Gateway로 사용할 수 있습니다.

API Gateway와 게이트웨이 API의 차이

이름은 비슷하지만, API Gateway는 Kubernetes 게이트웨이 API와 다릅니다. Kubernetes 게이트웨이 API는 Kubernetes의 서비스 네트워킹을 개선하고 표준화하기 위해 Kubernetes 커뮤니티에서 관리하는 오픈 소스 프로젝트입니다. 게이트웨이 API 사양은 요청 처리를 위한 세분화된 정책을 정의하고 여러 팀과 역할에 걸쳐 구성 제어를 위임하는 기능을 포함하여, 프로덕션 단계에서 Kubernetes 앱을 노출하기 위해 인그레스 리소스를 배포하는 것과 관련된 다양한 문제를 해결하기 위해 Kubernetes Ingress API에서 발전한 것입니다.

특정 마이크로서비스로 요청 라우팅, 트래픽 정책 구현, 카나리아 및 블루-그린 배포 활성화를 포함한 사용 사례를 위한 API Gateway로 NGINX Kubernetes 게이트웨이 등과 같은 게이트웨이 API 사양을 기반으로 구축된 도구를 사용할 수 있습니다.

이 짧은 동영상에서 NGINX의 Jenn Gile이 API Gateway와 Kubernetes 게이트웨이 API의 차이점을 설명합니다.

서비스 메시와 API Gateway

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

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

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

API Gateway 및 API 관리

API GatewayAPI 관리라는 용어는 종종 동일한 기능을 설명하는 데 사용되지만 잘못 사용되기도 합니다.

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

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

비즈니스 및 기능적 요구 사항에 따라 API Gateway는 데이터 평면의 독립형 구성 요소로 배포하거나 F5 NGINX Management Suite API 연결 관리자와 같은 통합 API 관리 솔루션의 일부로 배포할 수 있습니다.

API Gateway 선택 시 고려 사항

API Gateway에 대한 요구 사항을 결정할 때 고려해야 할 몇 가지 주요 요소가 있습니다.

  • 아키텍처 - API Gateway를 배포하는 위치는 클라우드 제공업체의 기본 제공 옵션을 사용할지 여부와 마찬가지로 도구 선택에 영향을 미칠 수 있습니다. 플랫폼 및 런타임에 구애받지 않는 API Gateway의 유연성이 필요하십니까?
  • 성능 - 트래픽이 많은 웹사이트와 애플리케이션에서는 성능이 매우 중요합니다. API Gateway가 필요한 높은 처리량과 짧은 지연 시간을 제공합니까?
  • 확장성 - API Gateway는 증가하는 트래픽 수요에 맞춰 쉽게 확장할 수 있어야 합니다. API Gateway가 수직적(높은 처리량) 및 수평적(고가용성) 확장을 지원하여 API를 항상 빠르게 사용할 수 있도록 보장합니까?
  • 보안 - API Gateway는 제로 트러스트 아키텍처의 중요한 부분입니다. API Gateway가 액세스 제어(AuthN/AuthZ), mTLS 및 기타 고급 보안 기능(예: 통합 WAF 및 OpenAPI 스키마 유효성 검사 등)을 제공하여 적극적인 보안 기능을 제공합니까?
  • 비용 - API Gateway의 총소유비용(TCO)을 파악합니다. 맞춤형 솔루션을 구축 및 유지 관리할 때와 엔터프라이즈급 API Gateway를 구매할 때의 비용과 상충 관계는 어떻게 됩니까?

NGINX의 지원 방법

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

  • NGINX Ingress Controller – API Gateway, 신원 및 관찰 기능을 사용하여 Kubernetes 클러스터 엣지에서 앱 연결을 관리합니다.
  • NGINX Service Mesh – 서비스 간 연결, 보안, 오케스트레이션, 관찰 기능을 위한 개발자 친화적인 솔루션

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

범용 도구:

  • API Gateway로서의 NGINX Plus - 클라우드, 온프레미스, 엣지 환경 전반에 배포할 수 있는 경량 고성능 API Gateway
  • F5 NGINX Management Suite API 연결 관리자 - API 관리, 거버넌스 및 보안을 위한 개발자 친화적인 도구로 API Gateway를 배포 및 운영합니다.

NGINX Plus를 API Gateway로 사용하는 방법에 대해 자세히 알아보려면 30일 무료 체험판을 요청하고 블로그에서 NGINX를 API Gateway로 배포를 참조하십시오. NGINX Management Suite를 사용해 보려면 30일 무료 체험판을 요청하십시오.