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

API 게이트웨이란 무엇인가요?

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

API 게이트웨이 기능

API 게이트웨이는 일반적으로 다음과 같은 기능을 구현합니다:

  • 보안 정책 – 인증, 권한 부여, 액세스 제어 및 암호화
  • 라우팅 정책 – 라우팅, 속도 제한, 요청/응답 조작, 서킷 브레이커, 블루-그린 및 카나리 배포, A/B 테스트, 부하 분산, 상태 확인, 사용자 지정 오류 처리
  • 관측성 정책 – 실시간 및 과거 메트릭, 로깅, 추적

애플리케이션 및 API 수준의 보안을 강화하기 위해 API 게이트웨이에 웹 애플리케이션 방화벽(WAF)과 서비스 거부(DoS) 공격 방지 기능을 추가할 수 있습니다.

API 게이트웨이의 이점

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

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

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

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

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

API 게이트웨이는 인증, 권한 부여, 모니터링, 부하 분산, 응답 처리 등 마이크로서비스를 위한 다양한 기능을 제공할 수 있습니다. 이를 통해 비기능 요구 사항의 구현을 인프라 계층으로 이전하고 개발자가 핵심 비즈니스 로직에 집중할 수 있도록 지원하여 앱 출시 속도를 높입니다.

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

Kubernetes용 API 게이트웨이

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

시스템 아키텍처와 애플리케이션 제공 요구 사항에 따라 API 게이트웨이는 Kubernetes 클러스터 앞에 로드 밸런서(다중 클러스터 수준)로, 클러스터 경계에 Ingress 컨트롤러(클러스터 수준)로, 또는 클러스터 내부에 서비스 메시(서비스 수준)로 배포할 수 있습니다.

에지 및 Kubernetes 클러스터 내부에 API 게이트웨이를 배포할 때는 Kubernetes 네이티브 도구를 API 게이트웨이로 사용하는 것이 좋습니다. 이러한 도구는 Kubernetes API와 긴밀하게 통합되고 YAML을 지원하며 표준 Kubernetes CLI를 통해 구성할 수 있습니다. 대표적인 예로는 NGINX Ingress Controller 및 NGINX Service Mesh가 있습니다.

API 게이트웨이와 Kubernetes에 대한 자세한 내용은 블로그의 API 게이트웨이와 Ingress 컨트롤러, 서비스 메시 비교에서 확인하세요.

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

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

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

API 게이트웨이는 Gateway API와 다릅니다

이름은 비슷하지만 API 게이트웨이는 Kubernetes Gateway API와 동일하지 않습니다. Kubernetes Gateway API는 Kubernetes의 서비스 네트워킹을 개선하고 표준화하기 위해 Kubernetes 커뮤니티에서 관리하는 오픈 소스 프로젝트입니다. Gateway API 사양은 Kubernetes Ingress API에서 발전한 것으로, 요청 처리에 대한 세분화된 정책을 정의하고 여러 팀과 역할에 걸쳐 구성 제어 권한을 위임하는 기능을 비롯해, 프로덕션 환경에서 Kubernetes 앱을 외부에 노출하기 위한 Ingress 리소스를 배포할 때 발생하는 다양한 문제를 해결합니다.

Gateway API 사양을 기반으로 구축된 도구(예: NGINX Kubernetes Gateway)는 특정 마이크로서비스로 요청을 라우팅하고, 트래픽 정책을 구현하며, 카나리 및 블루-그린 배포를 지원하는 등의 사용 사례에서 API 게이트웨이로 활용할 수 있습니다.

NGINX의 Jenn Gile이 API 게이트웨이와 Kubernetes Gateway API의 차이를 설명하는 짧은 동영상을 시청해 보세요.

서비스 메시와 API 게이트웨이 비교

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

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

서비스 메시에 대한 자세한 내용은 블로그의 서비스 메시 선택 방법에서 확인하세요.

API 게이트웨이 및 API 관리

The terms 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 – 서비스 간 연결, 보안, 오케스트레이션 및 관측성을 위한 개발자 친화적 솔루션

지금 바로 30일 무료 평가판 NGINX Ingress Controller with NGINX App Protect WAF and DoS를 신청하고, 항상 무료로 제공되는 NGINX Service Mesh를 다운로드하여 시작해 보세요.

범용 도구:

  • NGINX Plus API 게이트웨이로 활용 – 클라우드, 온프레미스 및 엣지 환경 전반에 배포할 수 있는 경량 고성능 API 게이트웨이
  • F5 NGINX Management Suite API Connectivity Manager – 개발자 친화적인 API 관리, 거버넌스 및 보안 도구를 사용하여 API 게이트웨이를 배포하고 운영

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