API Gateway 란 무언인가?

API Gateway 는 클라이언트의 요청(특히 API 호출)을 수락하여 적절한 백엔드 앱 또는 마이크로서비스로 라우팅합니다. 백엔드 서비스와 API 소비자 간의 중요한 트래픽을 보호하고 중개하여 보안 침해, 다운타임, 성능 저하 위험을 줄입니다.

오늘날 대부분의 최신 앱은 두 애플리케이션 또는 서비스가 통신하고 요청과 응답의 형태로 제품과 서비스 간의 상호 작용을 가능하게 하는 소프트웨어 인터페이스인 API를 사용하여 구축됩니다. API가 점점 더 보편화되고 마이크로서비스 아키텍처에 분산됨에 따라 확장성과 보안을 보장하기 위한 추가 인프라가 필요합니다.

목차

1. API Gateway를 사용하는 이유는 무엇인가요?
1-1. API Gateway의 기본 기능
2. API Gateway vs. API Management
3. 마이크로서비스용 API Gateway
4. API 보안
5. API Governance
6. API Gateway 리소스
7. NGINX는 어떤 도움을 줄 수 있나요?

1. API Gateway를 사용하는 이유는 무엇인가요?

API Gateway를 사용하면 단일 API 도메인(예: api.example.com)을 노출하고 유지 관리할 수 있습니다. API Gateway를 사용하면 모든 클라이언트에 하나의 진입점을 제공하여 사용자 요청에 따라 다른 버전의 API로 요청을 라우팅할 수 있습니다. API Gateway를 사용하면 단일 클라이언트 요청에 대해 여러 마이크로서비스를 호출하고 그 결과를 집계하여 최상의 응답을 제공할 수 있습니다.

NGINX를 API Gateway로 배포하는 방법에 대한 자세한 내용은 NGINX를 API Gateway로 배포하기 포스트 시리즈에서 확인할 수 있습니다.

1-1. API Gateway의 기본 기능

API Gateway는 모놀리식 앱과 마이크로서비스 기반 앱 모두에 사용할 수 있습니다. API Gateway는 다음과 같은 여러 기능을 수행합니다:

  • API 호출을 하는 요청자 인증(AuthN)
  • 요청자가 요청을 할 수 있는 권한이 있는지 확인(AuthZ)
  • 요청을 적절한 백엔드로 라우팅
  • 시스템 과부하 방지를 위한 속도 제한 적용
  • DDoS 공격 완화를 위한 전송률 제한 적용
  • 성능 향상을 위한 SSL/TLS 트래픽 오프로딩
  • 오류 및 예외 처리

2. API Gateway vs. API Management

API Gateway와 API Management라는 용어는 때때로 같은 의미로 사용되지만 실제로는 동의어가 아닙니다. API Gateway는 클라이언트와 API 엔드포인트 사이에 있는 data plane입니다. 라우팅, 정책, 보안을 담당하는 개별 프록시 서버입니다. API Management는 프로덕션 환경에서 API를 관리하는 control plane을 의미합니다. 정책을 정의하고, 구성을 푸시하고, 보고서와 알림을 생성하며, 모든 API Gateway에 대한 가시성을 갖습니다.

이상적인 API Management 플랫폼은 인프라에 구애받지 않으므로 사용 사례에 가장 적합한 방식으로 다양한 환경(예: 온프레미스, 클라우드, Edge)에 API Gateway를 자유롭게 배포할 수 있습니다.

3. 마이크로서비스용 API Gateway

마이크로서비스 아키텍처에서는 단일 API에 수백 개의 엔드포인트가 있을 수 있으며, 단일 애플리케이션은 API를 통해 통신하는 여러 마이크로서비스로 구성될 수 있습니다. 마이크로서비스 앱은 많은 API 엔드포인트를 노출하므로 모놀리식 앱에 비해 잠재적인 공격 표면이 훨씬 더 큽니다.

마이크로서비스용 API Gateway를 도입하면 클라이언트와 API 간의 액세스 및 통신을 간소화하여 위험을 완화할 수 있습니다. 하지만 API Gateway는 여전히 개방형이라는 특징이 있는 API를 캡슐화합니다. 연결에 필요한 데이터를 노출하기 때문에 API는 민감한 데이터도 노출할 수 있습니다.

4. API 보안

Open Web Application Security Project(OWASP)에서 가장 널리 퍼져 있는 취약점 10가지를 OWASP API Security TOP 10 프로젝트에서 소개합니다:

  • API1. Broken Object Level Authorization
  • API2. Broken User Authentication
  • API3. Excessive Data Exposure
  • API4. Lack of Resources & Rate Limiting
  • API5. Broken Function Level Authorization
  • API6. Mass Assignment
  • API7. Security Misconfiguration
  • API8. Injection
  • API9. Improper Assets Management
  • API10. Insufficient Logging & Monitoring

이러한 새로운 공격으로부터 API를 보호하려면 API Gateway를 보호하는 것이 중요합니다. 블로그의 NGINX App Protect WAF로 API Gateway 보호하기에서 API Gateway 보안의 중요성에 대해 자세히 알아보세요.

5. API Governance

API Governance는 API와 API Gateway 전반에 걸쳐 규칙과 가드레일을 적용하는 것을 말합니다. 유연한 API Governance 모델을 구현하면 로깅, 오류 응답 코드, TLS 구성과 같은 글로벌 정책의 균형을 맞추는 데 도움이 됩니다.

API-first 전략을 구현하는 모든 조직, 특히 수천 개의 API를 보유한 대규모 조직의 경우 API Governance를 통해 일관성을 보장하면 잠재적인 API sprawl을 방지할 수 있습니다. 한때 API Governance는 개발 속도를 늦출 수 있는 것으로 여겨졌지만, 이제는 API를 대규모로 관리할 때 필수적인 요소로 자리 잡았습니다.

6. API Gateway 리소스

다음 리소스에서는 API Gateway 기능, 사용 사례 및 일반적인 배포 패턴에 대한 자세한 정보를 제공합니다:

7. NGINX는 어떤 도움을 줄 수 있나요?

NGINX는 클라우드와 온프레미스 환경 전반에 배포할 수 있는 경량 클라우드 네이티브 API Gateway입니다. NGINX를 API Gateway로 구성하면 속도 제한 정책으로 API를 보호하고, 특정 요청 방법을 적용하고, 세분화된 액세스 제어를 제공할 수 있습니다.

또한 API Gateway로서의 NGINX는 고급 보안을 갖춘 고성능의 CI/CD 친화적인 솔루션입니다. 자세히 알아보려면 블로그 시리즈 API Gateway로 NGINX 배포하기를 참조하세요.

NGINX Plus를 사용한 API Gateway 경로

NGINX는 사용 사례와 배포 패턴에 따라 API Gateway를 구현하기 위한 범용 도구와 Kubernetes 네이티브 도구를 모두 제공합니다.

범용 도구:

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

Kubernetes 네이티브 도구:

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

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

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

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

* indicates required