API Gateway 란?

API(애플리케이션 프로그래밍 인터페이스)는 최신 IT 환경에서 사용자, 애플리케이션, 서비스를 서로 연결하는 가장 일반적인 방법입니다. API Gateway 는 앱 전송 인프라의 구성 요소로, 클라이언트와 서비스 사이에 위치하며 클라이언트와 서비스 간의 API 통신을 중앙에서 처리합니다. 또한 온프레미스, 멀티클라우드, 하이브리드 환경 전반에서 보안, 정책 적용, 모니터링 및 가시성을 제공합니다.

목차

1. API Gateway란 무엇인가요?
2. API Gateway 기능
3. API Gateway 혜택
4. API Gateway 및 마이크로서비스 아키텍처
5. Kubernetes용 API Gateway
6. API Gateway 및 Ingress Gateway 또는 Ingress Controller
7. API Gateway는 Gateway API와 동일하지 않습니다.
8. API Gateway 및 API Management
9. API Gateway 선택 시 고려 사항
10. NGINX의 지원 방법

1. API Gateway란 무엇인가요?

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

예를 들어, e‑commerce 웹사이트는 API Gateway를 사용하여 모바일 클라이언트가 한 번의 요청으로 모든 제품 세부 정보를 검색할 수 있는 엔드포인트를 제공할 수 있습니다. Gateway는 제품 가용성 및 가격과 같은 다양한 서비스에서 정보를 요청하고 그 결과를 결합합니다.

2. API Gateway 기능

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

  • 보안 정책 – 인증, 권한 부여, 액세스 제어 및 암호화
  • 라우팅 정책 – 라우팅, 전송률 제한, 요청/응답 조작, 회로 차단기, blue-green 및 카나리 배포, A/B 테스트, 부하 분산, 상태 확인 및 사용자 지정 오류 처리
  • 통합 가시성 정책 – 실시간 및 기록 메트릭, 로깅 및 추적

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

3. API Gateway 혜택

앱 전송을 위한 API Gateway를 배포하면 도움이 될 수 있습니다:

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

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

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

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

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

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

5. Kubernetes용 API Gateway

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

시스템 아키텍처와 앱 전송 요구사항에 따라 API Gateway는 로드 밸런서(멀티클러스터 수준)로서 Kubernetes 클러스터 앞에, Ingress Controller(클러스터 수준)로서 Edge에, 또는 Service Mesh(서비스 수준)로서 내부에 배포할 수 있습니다.

API 게이트웨이를 배포할 세 가지 위치를 보여주는 다이어그램

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

6. API Gateway 및 Ingress Gateway 또는 Ingress Controller

Ingress Gateway와 Ingress Controller는 Kubernetes Ingress API의 일부인 Ingress object를 구현하여 Kubernetes에서 실행되는 애플리케이션을 외부 클라이언트에 노출하는 도구이다. 이 도구는 사용자와 애플리케이션 간의 통신(user-to-service 또는 north-south 연결)을 관리합니다. 그러나 Ingress 오브젝트 자체는 그 기능이 매우 제한적입니다. 예를 들어, Ingress 객체에 첨부된 보안 정책 정의를 지원하지 않습니다. 따라서 많은 벤더가 사용자 정의 리소스 정의(CRD)를 생성하여 Ingress Controller의 기능을 확장하고 API Gateway로 사용하는 등 진화하는 고객의 요구와 요구 사항을 충족합니다.

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

7. API Gateway는 Gateway API와 동일하지 않습니다.

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

NGINX Kubernetes Gateway와 같은 Gateway API 사양을 기반으로 구축된 도구는 특정 마이크로서비스로 요청 라우팅, 트래픽 정책 구현, 카나리 및 blue‑green 배포 활성화 등의 사용 사례를 위한 API Gateway로 사용할 수 있습니다.

8. API Gateway 및 API Management

[API Gateway와 API Management라는 용어는 종종 동일한 기능을 설명하는 데 사용되지만 잘못 사용되기도 합니다.]

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

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

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

9. 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를 구매할 때와 맞춤형 솔루션을 구축 및 유지 관리할 때의 비용과 장단점은 무엇인가요?

10. NGINX의 지원 방법

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


Kubernetes 네이티브 도구:

  • NGINX Ingress Controller – API Gateway, ID, 통합 가시성 기능으로 Kubernetes 클러스터의 엣지에서 앱 연결을 관리합니다.

범용 도구:

  • API Gateway로서의 NGINX Plus – 클라우드, 온프레미스, 엣지 환경에 배포할 수 있는 경량 고성능 API Gateway입니다.
  • F5 NGINX Management Suite API Connectivity Manager – API management, governance 및 security을 위한 개발자 친화적인 도구로 API Gateway를 배포 및 운영합니다.

NGINX Plus를 직접 사용해 보시려면 30일 무료 평가판을 신청하거나 NGINX STORE에 연락하여 문의하십시오.

NGINX에 대한 최신 정보들을 빠르게 전달받고 싶으시다면, 아래의 뉴스레터를 구독하세요.

NGINX STORE를 통한 솔루션 도입 및 기술지원 무료 상담 신청

* indicates required