Microservices를 위한 NGINX API Gateway

이 포스트는 다양한 API Gateway와 NGINX API Gateway 의 차이와 NGINX API Gateway 의 기능과 장점을 설명합니다.

API Gateway는 API 인프라의 기반입니다. API Gateway는 API를 노출하는 Backend 애플리케이션과 API 사용자 간의 트래픽을 보호하고 중재합니다. 예를 들어 API Gateway는 Uber와 같은 모바일 애플리케이션에서 Google Maps와 같은 Backend 애플리케이션으로의 호출에 의해 생성된 API 트래픽을 관리할 수 있습니다. API Gateway 기능에는 API 호출 인증, 적절한 Backend로 요청 라우팅, 시스템 과부하 방지를 위한 Rate Limit 적용, DDoS 공격 완화, 성능 향상을 위한 SSL/TLS 트래픽 Offload, 오류 및 예외 처리가 포함됩니다.

새로운 수익원을 창출하기 위해 기업은 타사 개발자가 애플리케이션을 구축하는 데 사용할 수 있는 외부 API를 개발하고 있습니다. 또한 비즈니스 프로세스를 단순화하기 위해 API를 제공하고 있습니다. 그리고 이러한 새로운 디지털 비즈니스 모델을 지원하기 위해 기업은 API를 정의, 게시, 보호 및 분석하고 API를 사용하는 타사 개발자를 신속하게 온보딩하는 데 도움이 되는 포괄적인 API 관리 솔루션이 필요합니다. 이에 따라 많은 업체에 기능이 많은 솔루션에 통합된 API Gateway와 함께 전체 API Lifecycle 관리를 위한 원스톱 솔루션을 제공하기 위해 등장했습니다. “Enterprise” 또는 “Edge” API Gateway라고도 하는 이러한 Gateway는 API를 제공하는 애플리케이션과 해당 API 사용자 사이의 “North‑South” 트래픽을 관리하고 보호합니다.

그러나 애플리케이션은 진화합니다. Microservices 아키텍처를 사용하는 애플리케이션은 Microservices 간에 “East‑West” 트래픽이라고 하는 상당한 양의 API 트래픽을 생성합니다. API 관리 업체가 대응했지만 결과적으로 발생하는 아키텍처는 지나치게 복잡합니다.

목록

1. Microservices의 증가
2. Microservices 간의 트래픽을 처리하기 위해 등장한 Microgateway
3. 모든 애플리케이션을 위한 하나의 API Gateway

4. NGINX Plus가 애플리케이션과 Microservices 를 위한 최고의 API Gateway인 이유
5. API 관리를 간소화하기 위해 NGINX 시작하기

1. Microservices의 증가

Microservices는 Netflix 및 Uber와 같은 회사에서 개발한 많은 분산 애플리케이션에서 채택한 소프트웨어 아키텍처에 대한 접근 방식으로, 애플리케이션은 자율적이고 단일 기능 또는 프로세스를 수행하는 별개의 더 작은 “Service”로 구성됩니다. 기존의 Monolithic 애플리케이션과 비교하여 Microservices 애플리케이션은 다음과 같습니다.

  • 복원력 향상 – 하나의 서비스가 실패해도 애플리케이션 전체가 다운되지는 않습니다.
  • 확장이 용이함 – 병목 현상을 완화하기 위해 관련 Microservices의 더 많은 인스턴스를 가동합니다.
  • 유연성 향상 – 애플리케이션이 작을수록 CI/CD 소프트웨어 개발 프로세스에 더 적합합니다.

정의상 Microservices는 단일 기능을 수행하므로 서버 또는 가상 머신에서 제공하는 전체 인프라 지원이 필요하지 않습니다. 대부분의 Microservices 아키텍처는 유연하고 휴대성이 뛰어나며 가벼운 컨테이너 기반 인프라를 사용합니다.

2. Microservices 간의 트래픽을 처리하기 위해 등장한 Microgateway

효과적으로 함께 작동하려면 애플리케이션을 구성하는 Microservices가 당연히 통신해야 합니다. 일반적인 메커니즘은 각 Microservices가 해당 Peer Microservices에 의해 Expose된 API를 호출하는 것입니다. 구성 요소 Microservices 간의 이 East‑West 트래픽 볼륨은 종종 애플리케이션과 외부 클라이언트 간의 North‑South 트래픽 볼륨보다 상당히 높습니다. 많은 API 관리 업체가 East‑West 트래픽 처리 전용인 새로운 종류의 Gateway인 Microgateway를 도입했습니다.

Gartner의 최근 보고서에 정의된 대로:

Microgateway는 서비스 Endpoint에서 또는 그 근처에서 정책을 시행하는 경량의 분산 API Proxy입니다. API Gateway가 Microgateway로 간주되려면 Microgateway 인스턴스와 페어링된 내부 Gateway로 배포해야 합니다. 따라서 다음을 수행해야 합니다.

  • 컨테이너화 또는 컨테이너 준비
  • 인스턴스 수에 제한이 없습니다
  • 추가 인스턴스에 대해 라이선스 비용이 없거나 매우 낮습니다.
  • 짧은 대기 지연 제공
  • 설치 공간이 적음
  • 중앙 집중식 및 자동 관리를 지원합니다.

레거시(Legacy) API 관리 업체가 새로운 유형의 Gateway로 Microgateway를 도입한 주된 이유는 1세대 솔루션이 Microservices 및 컨테이너가 등장하기 전에 설계되었기 때문입니다. 당시의 산물인 이러한 솔루션은 함께 작동하도록 설계된 Monolithic 애플리케이션의 특성을 공유합니다. 모든 처리 기능은 단일 Binary에 포함되며 구성 정보는 일반적으로 데이터베이스에 저장됩니다(Binary로 번들되거나 별도의 데이터베이스 업체에서 제공).

공급업체가 다양한 사용 사례를 통해 고객에게 솔루션의 매력을 극대화하기 위해 많은 기능을 포함했기 때문에 이러한 솔루션은 일반적으로 설치 공간이 큽니다. API Gateway(Data Plane)는 API 관리 소프트웨어(Control Plane)와 긴밀하게 연결되어 있으므로 Control Plane에 오류가 발생하면 API 트래픽 처리도 중단됩니다.

데이터베이스를 사용하여 트래픽 처리 방법(예: Rate Limit)을 제어하는 구성을 저장하면 API Gateway가 API 호출을 받을 때마다 데이터베이스에 액세스해야 하므로 지연 시간이 발생됩니다. Control Plane과 마찬가지로 데이터베이스를 사용할 수 없는 경우 API Gateway가 작동하지 않습니다.

데이터 센터 Edge에서 North‑South 트래픽을 처리하도록 최적화된 1세대 솔루션의 API Gateway는 분산 Microservices 환경에서 대량의 East‑West 트래픽에 대해 비효율적입니다. 즉, 설치 공간이 크고, 컨테이너화할 수 없으며, 데이터베이스 및 Control Plane의 지속적인 통신으로 인해 지연 시간이 증가합니다. 낮은 지연 시간이 중요한 East‑West 네트워크 트래픽을 관리하려면 Microgateway를 Bolit로 고정하는 것이 유일한 방법입니다.

Microgateway가 포함된 1세대 솔루션을 사용할 때의 장점은 이전에 North‑South 트래픽에 대해 선택한 API 관리 업체와의 관계를 유지하고 해당 솔루션을 사용하여 East‑West 트래픽도 처리할 수 있다는 것입니다. 단점은 Microgateway가 실제로 별도의 도구라는 것입니다. 그러나 자체적인 추가 비용, 복잡성, 확장성 및 안정성 문제를 가져오는 또 다른 움직이는 부분입니다.

서로 다른 두 가지 유형의 API Gateway에 대한 필요성을 없앨 수 있다면 어떨까요? 이제 할 수 있습니다.

3. 모든 애플리케이션을 위한 하나의 API Gateway

NGINX는 별도의 유형의 API Gateway가 필요하지 않습니다. NGINX의 Gateway인 NGINX 및 NGINX Plus는 North‑South 및 East‑West 트래픽 모두에 최적화되어 있습니다. 따라서 NGINX의 API 관리 솔루션은 Edge Gateway와 Microgateway 기능을 구분하지 않습니다. 모든 애플리케이션을 위한 하나의 Gateway가 있습니다.

기존 애플리케이션용 API Gateway는 네트워크 외부의 API 사용자와 네트워크에 상주하는 애플리케이션 사이의 North‑South 트래픽을 관리합니다. Microgateways는 네트워크 내에 있는 모든 서비스에서 East‑West 트래픽을 관리합니다. NGINX Plus는 API Gateway로 배포하여 두 종류의 트래픽을 모두 관리할 수 있습니다.

NGINX Plus가 API Gateway(Data Plane)로 처리하는 API 런타임 트래픽을 NGINX Management Suite(Control Plane)에서 처리하는 API 관리 트래픽과 분리합니다. NGINX Plus는 트래픽 처리 구성을 로컬에 저장하므로 NGINX Management Suite에 연결되어 있는지 여부에 관계없이 API 호출을 처리할 수 있습니다. 이는 API 호출을 제공하는 평균 응답 시간을 줄여 성능을 극대화하고 API Gateway의 공간과 복잡성을 최소화합니다. 스크립트 확장이 필요하지 않거나 런타임 기능 구성을 위해 데이터베이스에 의존할 필요가 없습니다. NGINX Management Suite는 수년간 학습한 모범 사례를 사용하여 NGINX Plus를 API Gateway로 구성합니다.

NGINX Management Suite와 NGINX Plus는 모두 유연하고 휴대성이 뛰어나며 Bare Metal, VM, 컨테이너, 퍼블릭, 프라이빗, 하이브리드 클라우드 등 모든 환경에 배포할 수 있습니다. 이러한 다재다능함은 기존 환경에서 NGINX Plus를 배포하여 Monolithic 애플리케이션의 트래픽을 관리할 뿐만 아니라 컨테이너에서 분산 애플리케이션의 Microservices 간의 트래픽을 관리할 수 있음을 의미합니다.

4. NGINX Plus가 애플리케이션과 Microservices를 위한 최고의 API Gateway인 이유

NGINX는 API 및 Microservices 사용 사례 모두에 대해 확립된 솔루션을 제공합니다. 따라서 NGINX의 솔루션은 다음 두 환경의 융합을 처리할 수 있는 고유한 위치에 있습니다.

  • NGINX 및 NGINX Plus는 이미 업계에서 가장 널리 보급된 API Gateway입니다. 2018년 사용자 설문 조사에 따르면 NGINX 및 NGINX Plus 사용자의 40%가 이를 API Gateway로 배포합니다. NGINX 및 NGINX Plus는 Axway, Kong, MuleSoft 및 Red Hat 3Scale과 같은 널리 사용되는 API 관리 솔루션에 사용되는 기본 Gateway이기도 합니다. NGINX Plus는 성능 향상을 위한 캐싱, 요청 라우팅, Rate Limiting, JSON 웹 토큰(JWT)을 사용한 API 인증과 같은 강력한 기능을 제공합니다. NGINX Management Suite를 사용하면 인프라 및 운영 팀이 API를 정의하고 NGINX Plus API Gateway에 게시할 수 있을 뿐만 아니라 API를 보호, 모니터링, 문제 해결 및 분석할 수 있습니다.
  • NGINX는 Microservices 참조 아키텍처 개발의 선구자이기도 합니다. Microsoft는 Microservices 여정의 어느 위치에 있는지에 따라 단순한 것부터 정교한 것까지 세 가지 다른 참조 아키텍처를 개발했습니다. NGINX는 Production Microservices 환경에서 300만 개 이상의 NGINX 인스턴스를 실행하는 250명 이상의 사용자가 있는 사실상의 Microservices표준입니다.
  • NGINX 및 NGINX Plus는 컨테이너용으로 설계되었습니다. 약 2MB이며 지원되는 Linux 서버(Bare Metal, 클라우드 또는 가상)에서 실행되거나 Kubernetes 및 기타 플랫폼에서 조정되는 Docker 컨테이너에서 직접 실행됩니다. NGINX는 지금까지 1,000만 회 이상 다운로드된 DockerHub에서 가장 널리 사용되는 애플리케이션입니다.

5. API 관리를 간소화하기 위해 NGINX 시작하기

NGINX Plus를 Data Plane으로, NGINX Management Suite를 Control Plane으로 사용하는 NGINX의 API 관리 솔루션은 가장 광범위한 애플리케이션 유형, 컴퓨팅 인프라 및 트래픽 패턴에 매우 적합합니다. 한 종류의 API Gateway만 사용하면 복잡성이 줄어들고 API 인프라 배포 및 유지 관리가 간소화되어 비용과 시간이 모두 절약됩니다. NGINX는 고성능과 안정성을 보장하는 접근 방식으로 Microservices로의 전환을 가속화합니다. Microservices를 사용하여 애플리케이션을 현대화할 때 또 다른 API 인프라를 배포하고 유지하는 것에 대해 걱정할 필요가 없습니다. 동시에 NGINX가 기존 애플리케이션에 대한 API 트래픽을 관리하는 강력한 기능을 제공합니다.

NGINX Plus의 무료 30일 평가판을 시작하십시오. 이 평가판은 기존 엔터프라이즈 Gateway이 및 Microgateway이와 동일하게 사용할 수 있습니다.

또한 NGINX 및 NGINX Plus의 최신 소식을 빠르게 전달 받고 싶으시면 아래 뉴스레터를 구독하세요.