API Gateway는 API 클라이언트(사용자 기기의 애플리케이션)와 백엔드 서비스(서버에 위치) 사이의 중개자 역할을 하는 API Management 툴입니다. API Gateway는 API 호출을 위한 단일 진입점을 제공합니다.
API 또는 애플리케이션 프로그래밍 인터페이스는 소프트웨어 애플리케이션이 서로 통신하여 데이터, 특징 및 기능을 교환할 수 있도록 하는 일련의 규칙 또는 프로토콜입니다. 클라이언트에서 API로 데이터를 요청하는 것을 API 호출이라고 합니다.
API Gateway는 API 호출(API 요청이라고도 함)을 수신하여 하나 이상의 백엔드 서비스로 라우팅하고, 요청된 데이터를 수집하여 단일 결합 패키지로 클라이언트에 전달합니다. 또한 애플리케이션에 대한 분석, 위협 보호 계층 및 기타 보안 기능도 제공합니다.
예를 들어 레스토랑의 웹 애플리케이션을 생각해 보세요. 사용자는 노트북이나 휴대폰을 사용하여 요청을 한 번만 입력하면 레스토랑의 메뉴, 사진 및 리뷰, 결제 서비스를 확인할 수 있으며 지도에 쉽게 액세스하여 위치를 확인할 수 있습니다. 이 모든 정보는 다양한 백엔드 마이크로서비스 또는 API에서 수집되고 전달됩니다. 사용자의 애플리케이션을 통해 제출된 요청은 API Gateway에 의해 수신되고 실행됩니다.
API Gateway는 클라우드, 온프레미스 및 하이브리드 환경에 배포할 수 있으며 API Management 및 API 보안의 중요한 구성 요소입니다. API Gateway는 조직이 사용자에게 일관되고 안전하며 만족스러운 API 경험을 제공할 수 있도록 지원합니다.
API Management는 기업 내에서 API를 생성, 게시 및 관리하는 확장가능한 프로세스입니다. API Gateway는 요청 라우팅, 로드 밸런싱 및 오류 처리와 같은 관리 작업을 개선하고 간소화합니다. 또한 API Gateway는 API 호출 로그를 생성하고 통합 분석 도구를 사용할 수 있도록 하여 API 관측 가능성을 개선합니다.
API 보안이란 오용, 악의적인 공격 및 기타 사이버 보안 위협으로부터 API를 보호하는 관행과 절차를 말합니다. API Gateway는 API 보안 프로토콜을 적용하는 데 도움이 되며 인증, 권한 부여 및 기타 권한 및 액세스 제어(예: API 키를 확인하거나 OAuth와 같은 인증 프로토콜과 통합), 속도 제한(분산 서비스 거부 공격과 같은 공격으로부터 보호) 및 조직의 API 보안 정책에 따른 암호화를 관리하는 데 사용할 수 있습니다.
API Gateway는 기업 내 효율성을 향상시키는 추가 기능을 제공하여 애플리케이션과 백엔드 서비스의 고성능 및 고가용성을 지원합니다. 예를 들어, 일반적으로 참조되는 데이터를 로컬에 저장하는 프로세스인 캐싱에 API Gateway를 사용할 수 있습니다. 이렇게 하면 응답 시간을 개선하고 서버의 부하를 줄일 수 있습니다. 또한 대용량 응답을 작은 파일로 압축하여 대역폭 소비를 줄일 수 있습니다.
또한 클라이언트가 설정된 시간 동안 서비스에 요청을 보낼 수 있는 빈도를 제한하는 속도 제한 기능도 제공합니다. 이를 통해 안정성이 향상되고 서버의 과부하가 방지되며 클라이언트가 API에 동등하게 액세스할 수 있습니다.
API Gateway와 해당 기능은 조직이 확장됨에 따라 API 트래픽과 워크로드의 균형을 맞추는 데 도움이 됩니다. API Gateway는 이러한 기능을 중앙 집중화하여 기업이 API를 개발, 배포 및 관리하는 방법을 간소화하는 데 도움이 됩니다. 게이트웨이는 앱 및 서비스의 성능, 확장성 및 가용성을 개선하는 데 도움이 되며 개발자는 API 관리보다 핵심 비즈니스 로직에 더 집중할 수 있습니다.
API를 사용하면 애플리케이션이 조직의 IT 환경 안팎에서 서로 통신하고 데이터를 공유할 수 있습니다. 현대 기업에는 수천 개의 API가 있을 수 있으며, 게이트웨이는 한 곳에서 API 호출을 관리하고 라우팅하는 데 도움이 되는 중앙 집중점, 즉 '프론트 도어'와 표준화된 인터페이스를 제공합니다. 많은 조직이 그렇듯이 조직은 여러 개의 게이트웨이를 사용하여 서로 다른 보안 프로토콜과 표준을 다른 API 또는 사용자에게 적용할 수 있도록 선택할 수 있지만, 여기에는 동일한 원칙이 적용됩니다.
API Gateway는 엔터프라이즈 API 엔드포인트로 향하는 모든 호출을 수신하고, 호출을 인증하고, 조직 정책에 따라 처리하고, 적절한 서비스로 라우팅하고, 최종적으로 결과를 집계하여 호출을 수행한 API 클라이언트에 반환합니다. API 호출을 통해 여러 서비스를 요청하고 액세스하더라도 클라이언트는 모든 데이터와 함께 하나의 응답만 받습니다.
API Gateway는 여러 마이크로서비스에서 요청된 정보를 집계하고 데이터를 묶어 복합적인 형태로 요청자에게 반환하는 워크플로 오케스트레이션을 제공합니다.
API Gateway는 클라이언트 디바이스와 마이크로서비스가 서로 다른 언어, 형식(예: 요청은 JavaScript 또는 JSON을 사용하지만 마이크로서비스는 XML을 사용하는 경우) 또는 프로토콜(예: HTTP 요청 또는 gRPC 요청)을 사용하는 경우 데이터 및 프로토콜 변환을 처리합니다.
일반적으로 요청되는 정보의 경우, API Gateway는 캐싱을 사용하여 요청에 대한 응답 시간을 단축할 수 있습니다. 이 데이터는 별도의 캐시에 저장되므로 게이트웨이가 추가 서비스로 트래픽을 라우팅할 필요 없이 신속하게 반환할 수 있습니다.
API Gateway는 API 요청, 응답 및 오류를 모니터링하고 기록할 수 있습니다. 이 분석 데이터는 API 트래픽 및 성능을 더 잘 이해하고, 문제 해결을 개선하고, 보안을 강화하는 데 사용할 수 있습니다.
API는 최신 시스템의 데이터 흐름에 매우 중요하며, API Gateway는 API 및 애플리케이션을 보호하고, 조직이 중요한 데이터를 수집하도록 지원하며, API 성능을 보장하는 데 도움이 됩니다.
API Gateway를 사용하면 프로세스의 효율성을 높일 수 있습니다. 조직의 모든 API는 해당 API가 호출될 때마다 특정 기능과 함께 몇 가지 일반적인 작업을 완료해야 할 수 있습니다. API가 소프트웨어 구축의 기반이 되는 API 우선 에코시스템에서는 이러한 현상이 특히 일반적입니다.
예를 들어 API 보안 프로토콜을 준수하기 위해 모든 API 호출은 권한 부여 및 검증 프로세스를 거쳐야 할 수 있습니다. 또는 적절한 대역폭을 보장하기 위해 모든 API의 사용률과 트래픽을 모니터링해야 할 수도 있습니다. API로 수익을 창출하는 경우 모든 호출을 청구 서비스로 라우팅해야 할 수 있습니다. API Gateway는 이러한 모든 작업을 처리할 수 있습니다.
일부 API 호출에는 여러 마이크로서비스의 리소스가 필요합니다. API Gateway는 이러한 호출을 세분화하여 요청을 적절한 백엔드 서비스로 라우팅하고 요청된 리소스를 클라이언트에 대한 단일 응답으로 집계합니다. 이렇게 하면 클라이언트가 각 마이크로서비스에 별도의 API 호출을 보낼 필요가 없으므로 프로세스가 간소화되고 호출 부하가 줄어듭니다. 호출은 항상 동일한 위치로 이동하며 게이트웨이는 리소스 검색 및 반환을 구성합니다.
이러한 기능은 DevOps 환경에서 특히 유용합니다. 이러한 환경에서는 마이크로서비스 아키텍처를 사용하여 팀이 개발을 가속화하고 지속적으로 새로운 앱과 서비스를 제공할 수 있습니다. 마이크로서비스는 API를 사용하여 통신하며 게이트웨이를 사용하여 이 통신을 오케스트레이션할 수 있습니다. API Gateway는 또한 여러 버전의 애플리케이션이 동일한 서버에 있을 때 각 호출이 올바른 위치로 이동하도록 하는 데 도움이 될 수 있습니다.
API Gateway는 서버리스 컴퓨팅 모델 및 기타 클라우드 네이티브 개발 접근 방식에도 사용됩니다. 서버리스 모델에서 인프라 및 기타 백엔드 서비스는 온디맨드로 실행되고 API를 사용하여 가동됩니다. 게이트웨이를 사용하여 이 기능을 관리할 수 있습니다.
최신 IT 환경은 통합에 중점을 두고 있으며, 그 성공의 상당 부분은 API에 달려 있습니다. API 환경이 복잡하고 API가 수신하는 트래픽이 많을수록 API Gateway는 더 많은 가치를 제공할 수 있습니다.
마이크로서비스 아키텍처는 애플리케이션이 더 작고 독립적으로 작동하는 부분으로 구성된 소프트웨어 개발 접근 방식입니다. 이러한 고유한 기능은 자율적으로 배포될 수 있으며 API를 통해 통신할 수 있습니다. 이는 하나의 목표를 달성하기 위해 설계되었으며, 더 큰 프로그램의 구성 요소로 함께 그룹화될 수 있습니다.
API 클라이언트에서 이러한 개별 마이크로 서비스로 호출을 라우팅할 수 있지만 이는 그다지 효율적이지 않으며 각 리소스에 대해 별도의 호출이 필요합니다. 조직은 API Gateway를 사용하여 단일 API 호출로 요청된 리소스를 반환할 수 있습니다.
작동 방식은 다음과 같습니다. 게이트웨이는 여러 마이크로서비스와 통신이 필요한 API 호출을 수신합니다. 요청을 분할하고, 각 세그먼트를 적절한 리소스로 라우팅하고, 리소스를 API 클라이언트에 대한 단일 응답으로 집계합니다. 조직이 비즈니스 기능에 사용하는 API와 마이크로서비스의 수를 늘릴 때, API Gateway는 표준화된 단일 진입점 역할을 하여 통화량과 통화 라우팅의 복잡성을 줄이는 데 도움이 됩니다.
클라이언트가 마이크로서비스 아키텍처를 사용하여 구축된 전자 상거래 상점에서 제품 정보를 가져오려고 한다고 가정해 보겠습니다. 클라이언트가 가져오고자 하는 제품 세부 정보는 기본 제품 정보 서비스, 가격 책정 서비스, 재고 서비스 등 여러 서비스에 분산되어 있습니다.
API Gateway는 제품 정보에 대한 요청을 수신하고, 요청을 이행하는 데 필요한 각 서비스에서 데이터를 가져오도록 라우팅한 다음, 해당 데이터를 컴파일하여 하나의 완전한 응답으로 클라이언트에게 다시 보냅니다.
Kubernetes는 컨테이너화된 마이크로서비스를 배포하고 관리하기 위한 업계 표준으로 간주됩니다. API Gateway는 다양한 방식으로 컨테이너화된 Kubernetes 클러스터와 상호 작용할 수 있습니다.
둘 이상의 Kubernetes 클러스터 앞에 배포되는 경우, API Gateway는 로드 밸런서 역할을 할 수 있으며, 어떤 인스턴스도 오버로드되지 않도록 트래픽을 올바른 클러스터로 전달할 수 있습니다. 단일 Kubernetes 클러스터의 엣지에 배포되는 경우, API Gateway가 인그레스 컨트롤러 역할을 할 수 있습니다. 인그레스 컨트롤러는 트래픽을 Kubernetes 클러스터로, 요청된 서비스로 보낸 다음 다시 되돌려 보냅니다. Kubernetes 클러스터 내에 배포된 경우, API Gateway가 서비스 메시 역할을 할 수 있습니다. 서비스 메시는 Kubernetes Service 간의 트래픽 흐름을 처리하여 로드 밸런싱 및 서비스 검색을 제공하며 일반적으로 엔드투엔드 암호화에 사용됩니다.
API Gateway는 조직이 API 트래픽을 보다 효과적으로 라우팅하고 밸런싱할 수 있도록 지원하는 것 외에도 다음을 지원하여 API Management를 강화합니다.
API Gateway는 중앙 집중식 진입점을 통해 API 호출을 관리하여 백엔드 서비스 전반에서 트래픽 라우팅 및 로드 밸런싱을 최적화할 수 있습니다. 이러한 조치는 짧은 지연 시간을 유지하는 데 도움이 됩니다. API Gateway는 대역폭을 보다 효율적으로 사용하고 사용자 경험을 개선하는 다양한 API 트래픽 관리 방법을 사용합니다.
이러한 방법 중 하나가 속도 제한입니다. 속도 제한 정책은 특정 클라이언트가 특정 기간 동안 API에 요청할 수 있는 요청 수(요청 할당량)를 지정합니다. 이렇게 하면 사용자가 API에 동등하게 액세스할 수 있고 백엔드 서비스가 요청으로 인해 과부하가 걸리지 않도록 보호할 수 있습니다.
요청 스로틀링은 서버에 도달하는 요청의 속도를 조절하는 제한 유형입니다. 이를 통해 급증을 방지하고 조직이 성능과 안정성을 유지할 수 있습니다.
API Gateway는 백엔드 서비스에 대한 트래픽을 지속적으로 모니터링하여 동적 로드 밸런싱을 수행할 수도 있습니다. API Gateway는 실시간 메트릭을 기반으로 서버의 상태를 파악하고 백엔드 서비스에 대한 호출 라우팅 방식을 조정할 수 있습니다.
API는 분산 서비스 거부(DDoS) 공격과 같은 사이버 보안 공격에 취약합니다. DDoS 공격은 요청과 악성 트래픽으로 서버에 과부하를 일으켜 서버 충돌을 일으킵니다. API Gateway는 DDoS 공격을 차단하는 데 도움이 되는 속도 제한 및 기타 기술을 지원합니다.
API Gateway는 API 사용량을 모니터링하고 트래픽 로그를 제공하여 API를 보호하는 데 도움이 될 수 있습니다. 또한 일부 API Gateway는 조직 인프라의 모든 API에 대한 요청에 대한 보고서 및 분석을 제공하여 공격이 발생하기 전에 조직이 의심스러운 트래픽을 식별할 수 있도록 합니다.
API Gateway는 트래픽 관리를 지원하고 API에 대한 보안 연결을 제공할 뿐만 아니라 API 인증 및 요청 권한 부여를 제공하도록 구성되어 조직의 API Gateway 취약성을 줄일 수도 있습니다. 예를 들어, API Gateway는 리소스에 대한 액세스 권한을 부여하기 전에 클라이언트로부터 호출을 받는 경우 API 키를 확인하는 데 사용됩니다. 보안을 강화하기 위해 API Gateway를 웹 애플리케이션 방화벽(WAF)과 같은 툴과 함께 사용하여 악성 HTTP 트래픽을 모니터링, 필터링 및 차단할 수 있습니다.
API Gateway는 API 호출 흐름을 중앙 집중화하여 서비스 가시성과 검색 가능성을 개선합니다. 또한 서로 다른 프로토콜과 데이터 형식을 사용하는 API가 서로 통신할 수 있는 방법을 제공합니다.
많은 웹 API는 REST(REST API에서 사용되는 표현 상태 전송)라는 아키텍처 스타일을 사용하지만, 단순 객체 액세스 프로토콜(SOAP) 및 WebSocket API와 같은 다른 프로토콜도 사용됩니다. 조직 내부에 있든 조직의 내부 API를 대상으로 하는 외부 호출이든, 서로 통신하고 동일한 백엔드 서비스에서 리소스를 요청해야 하는 다양한 프로토콜 및 데이터 형식의 API가 있는 것이 일반적입니다.
수동으로 각 요청을 변환하려면 천문학적인 시간이 걸립니다. API Gateway는 데이터 및 프로토콜 변환을 수행하고 요청 및 응답을 필요한 형식으로 자동 변환하여 이 문제를 해결하는 데 도움이 됩니다.
또한 API Gateway는 동시에 여러 버전의 API를 관리할 수 있기 때문에 개발자가 API를 더 쉽게 반복하고 배포할 수 있습니다. 그런 다음 개발자는 배포 전에 여러 버전의 API를 서로 테스트하거나 특정 사용 사례에 대해 이전 API 버전의 인스턴스를 유지 관리할 수 있습니다.
API Gateway는 복잡한 라우팅 문제를 해결하는 데 도움이 될 수 있지만, 조직에 새로운 관리 소프트웨어를 추가하면 새로운 문제가 발생할 수도 있습니다. 일반적으로 해결해야 할 문제는 다음과 같습니다.
API Gateway는 API 인프라를 구성하고 지연 시간을 줄이는 데 도움이 될 수 있지만, 관리하도록 구성된 것보다 더 많은 요청을 받고 트래픽을 처리할 리소스가 충분하지 않은 경우 지연 시간이 늘어날 수 있습니다.
조직은 API Gateway가 엔터프라이즈의 API 환경 및 트래픽 요구 사항을 충족하도록 프로비저닝 및 구성되었는지 확인해야 합니다. 기업이 특정 시점에 사용하는 API와 서비스의 양을 늘릴 경우, 사용자가 서비스 중단을 경험하지 않도록 리소스를 그에 맞게 확장하고 프로비저닝해야 합니다.
단일 진입점은 단일 실패 지점이 있을 수 있음을 의미하기도 합니다. API를 중앙 집중화하면 많은 장점이 있지만 게이트웨이 자체가 공격 또는 침투의 잠재적 벡터가 된다는 단점이 있습니다. 게이트웨이 문제는 API 및 백엔드 서비스에 대한 액세스에 의존하는 기업의 모든 측면에 영향을 미칠 수 있습니다.
조직이 특정 요구 사항을 충족하는 API Gateway를 선택하고 해당 API Gateway를 기반으로 API 환경을 구축한 후에는 다른 공급업체로 이동하는 데 비용과 시간이 많이 소요될 수 있습니다.
또한 게이트웨이는 API 사용을 보다 비용 효율적으로 만들 수 있지만 모니터링 및 관리도 필요하므로 시간과 비용이 많이 듭니다. 경우에 따라 조직은 다양한 옵션을 보다 세밀하게 제어하기 위해 관리형 서비스를 사용하는 대신 오픈 소스 게이트웨이를 자체 호스팅하도록 선택할 수 있습니다. 조직에서 자체 호스팅 옵션을 선택하면 개발 팀의 전체 오버헤드 비용이 추가됩니다.
AI 기반 자동화를 통해 API, 앱, 이벤트, 파일, B2B/EDI 전반에서 민첩성을 확장합니다.
애플리케이션과 시스템을 연결하여 중요 데이터에 빠르고 안전하게 액세스할 수 있는 IBM 통합 솔루션을 활용해 비즈니스 잠재력을 실현하세요.
IBM Cloud 컨설팅 서비스를 통해 새로운 역량을 개발하고 비즈니스 민첩성을 향상하세요. 하이브리드 클라우드 전략 및 전문가 파트너십을 통해 솔루션을 공동으로 개발하고, 디지털 혁신을 가속화하고, 성능을 최적화하는 방법을 알아보세요.