Apigee Extension Processor(버전 1.0)의 GA(정식 버전) 출시를 발표하게 되어 기쁩니다! 이 강력한 새 기능은 Apigee의 도달 범위와 유연성을 크게 확대하여 그 어느 때보다 쉽게 더 광범위한 백엔드 서비스와 최신 애플리케이션 아키텍처를 관리하고 보호할 수 있게 해줍니다.
최신 배포 모델을 채택한 개발자를 위해 Extension Processor는 Cloud Run과의 원활한 통합을 제공합니다. 덕분에 확장 가능하고 컨테이너화된 애플리케이션에 Apigee 정책을 적용할 수 있습니다.
또한 Extension Processor는 강력하고 새로운 통신 패턴을 활용합니다. 이제 gRPC 양방향 스트리밍으로 고급 실시간 상호 작용을 쉽게 관리하여 지연 시간이 짧은 고도의 대화형 애플리케이션을 사용할 수 있습니다. 게다가, 이벤트 기반 아키텍처의 경우 Extension Processor는 SSE(Server-Sent Events)를 관리하고 보호할 수 있는 경로를 제공하여 클라이언트에 대한 효율적인 데이터 스트리밍을 촉진합니다.
이러한 여러 이점은 애플리케이션 배포 및 통신 프로토콜 너머까지 이어집니다. Apigee Extension Processor는 Google Token Injection 정책과 함께 Google Cloud 인프라에 대한 안전한 액세스를 획기적으로 간소화합니다. Apigee의 일관된 보안 프레임워크를 유지하면서 Bigtable과 같은 강력한 데이터 서비스에 대한 액세스를 원활하게 연결 및 제어하며 머신러닝 워크로드에 Vertex AI의 인텔리전스를 활용할 수 있습니다.
마지막으로, Extension Processor는 Google Cloud Load Balancing의 지능형 트래픽 관리 기능과 통합함으로써 다양한 트래픽 흐름을 라우팅하고 관리하는 데 탁월한 유연성을 제공합니다. 이 강력한 조합은 가장 복잡한 API 환경도 관리할 수 있는 수많은 가능성을 열어줍니다.
이 블로그에서는 오늘날 고성능의 실시간 애플리케이션 환경의 핵심 과제인 Apigee 내 gRPC 스트리밍 관리에 대한 강력한 솔루션을 설명합니다. gRPC는 효율적인 마이크로서비스의 초석이지만 스트리밍이라는 특성은 Google Cloud의 Apigee를 인라인 프록시(기존 모드)로 활용하는 조직에 난제를 안겨줍니다. Apigee Extension Processor를 통해 Apigee의 데이터 플레인이 ALB(애플리케이션 부하 분산기)를 통과할 때 gRPC 스트리밍 트래픽에 대한 정책을 적용하는 방법을 살펴보겠습니다. 이는 Service Extension(트래픽 확장)을 통해 달성되므로, gRPC 스트림이 Apigee 게이트웨이를 직접 통과하지 않고도 효과적인 관리와 라우팅이 가능합니다.
이 솔루션의 핵심 요소를 살펴보면서 여러 장점을 집중 조명하고 Cloud Run 백엔드와 관련된 실제 사용 사례에 대해서도 훑어보겠습니다.
Apigee Extension Processor는 강력한 트래픽 확장(서비스 확장의 한 유형)으로서, API 관리의 일환으로 Cloud Load Balancing을 활용하여 Apigee로 외부 요청을 보낼 수 있도록 해줍니다. 이를 통해 Apigee는 ALB가 사용자 관리 백엔드 서비스로 요청을 전달하기 전에 API 관리 정책을 적용할 수 있고, 앞단에 Cloud Load Balancing이 있는 워크로드까지 Apigee의 강력한 API 관리 기능을 효과적으로 확장할 수 있습니다.
아래 다이어그램은 Apigee Extension Processor 구성에 필요한 구성요소를 간략하게 설명합니다.
Apigee Extension Processor 구성에는 몇 가지 주요 요소가 포함되는데, 여기에는 Extension Processor가 활성화된 Apigee 인스턴스, ALB, Service Extension 등이 있습니다. 이러한 구성요소에 대한 자세한 설명은 Apigee Extension Processor 개요를 참조하세요.
번호가 매겨진 아래의 단계는 위 흐름도에서 번호가 붙은 화살표에 해당하며 이벤트의 순서를 보여줍니다.
1: 클라이언트가 ALB에 요청을 보냅니다.
2: PEP(Policy Enforcement Point) 역할을 하는 ALB가 트래픽을 처리합니다. 이 처리 과정의 일환으로, 구성된 Service Extension(트래픽 확장)을 통해 Apigee에 외부 요청을 보냅니다.
3: PDF(Policy Decision Point) 역할을 하는 Apigee Extension Processor가 외부 요청을 수신하고 관련 API 관리 정책을 해당 요청에 적용하고 처리된 요청을 ALB(PEP)에 반환합니다.
4: ALB가 처리를 완료하고 요청을 백엔드 서비스로 전달합니다.
백엔드 서비스는 응답을 시작하고 ALB가 이 응답을 수신합니다. ALB는 이를 클라이언트로 전달하기 전에 응답에 대한 정책을 적용하기 위해 Service Extension을 통해 Apigee에 다시 외부 요청을 보낼 수 있습니다.
많은 최신 애플리케이션이 스트리밍 gRPC의 힘을 필요로 하고 사용하지만, 인라인 프록시로 사용되는 Apigee는 현재 스트리밍을 지원하지 않습니다. 바로 이 부분에서 Apigee Extension Processor가 매우 중요해집니다. Apigee 런타임이 PDP(정책 결정 지점) 역할을 하는 동안 ALB가 스트리밍 gRPC 트래픽을 처리하고 PEP(정책 적용 지점) 역할을 하도록 하기 때문입니다.
Apigee Extension Processor를 사용하여 gRPC 스트리밍 패스스루를 활성화하려면 다음 핵심 요소가 필요합니다. 자세한 구성 지침은 Apigee Extension Processor 시작하기를 참조하세요.
고객이 실시간 애플리케이션 로그 제공과 같은 gRPC 스트리밍 기능을 갖춘 고성능 백엔드 서비스를 개발하는 상황을 가정해 보겠습니다. 확장성과 관리 편의성을 위해 이 백엔드 애플리케이션은 기본 Google Cloud 프로젝트 내에서 Google Cloud Run에 배포됩니다. 이제 고객은 잘 관리되고 안전한 API 게이트웨이를 통해 이 gRPC 스트리밍 서비스를 클라이언트에 노출하고자 합니다. 이 목적을 위해 Apigee를 선택하여 인증, 승인, 비율 제한 및 기타 정책과 같은 강력한 API 관리 기능을 활용합니다.
앞서 언급했듯이, Apigee는 인라인 프록시 모드에서 사용 시 기본적으로 gRPC 스트리밍을 지원하지 않습니다. 표준 Apigee 구성을 통한 Cloud Run gRPC 서비스의 직접 노출에서는 클라이언트, 서버 또는 양방향 스트리밍과 같은 스트리밍 사용 사례를 지원하지 않습니다.
Apigee Extension Processor는 동일한 Google Cloud 프로젝트 내에서 Cloud Run에 배포된 백엔드 애플리케이션을 목적지로 하는 gRPC 스트리밍 트래픽을 관리하는 데 필요한 브리지를 제공합니다.
다음은 간소화된 흐름입니다.
참고: 이 시나리오에서 Apigee 프록시는 대상이 없는 프록시입니다. 즉, Target Endpoint가 구성되어 있지 않으며 최종 라우팅을 위해 ALB에 의존합니다.
응답 처리는 요청 흐름과 유사한 패턴을 따릅니다. 백엔드에서 응답을 시작한 다음 ALB가 이를 처리합니다. ALB는 응답을 클라이언트에 전달하기 전에 정책 적용을 위해 Service Extension(트래픽 확장)을 통해 Apigee에 외부 호출을 할 수 있습니다.
이 간소화된 사용 사례는 Apigee Extension Processor를 사용하여 동일한 Google Cloud 프로젝트 내에서 Cloud Run에 배포된 애플리케이션으로 향하는 gRPC 스트리밍 트래픽에 API 관리 정책을 적용하는 방법을 보여줍니다. ALB는 주로 NEG 구성을 기반으로 Cloud Run 서비스에 대한 라우팅을 처리합니다.
Apigee Extension Processor를 활용하여 백엔드의 gRPC 스트리밍 서비스를 관리하면 얻을 수 있는 몇 가지 주요 이점이 있으며, Apigee의 핵심 역량을 이 플랫폼을 새롭게 활용하는 데 적용할 수도 있습니다.
이 접근 방식에서는 Apigee의 강력한 API 관리 기능을 Apigee 플랫폼의 코어 프록시가 기본적으로 지원하지 않는 스트리밍 통신 패턴인 gRPC 스트리밍으로 성공적으로 확장합니다.
RESTful API에 Apigee를 이미 사용 중인 조직의 경우, 이 솔루션을 통해 Apigee 내에서 gRPC 스트리밍 서비스를 관리할 수 있습니다. Extension Processor를 사용해야 하지만 익숙한 API 관리 개념을 활용하고 별도의 도구를 사용할 필요성을 줄여줍니다.
Apigee는 API 관리 정책을 정의하고 적용하기 위한 중앙 집중식 플랫폼을 제공합니다. Extension Processor를 통해 gRPC 스트리밍을 통합하면 모든 API 엔드포인트에서 일관된 거버넌스와 보안을 유지할 수 있습니다.
gRPC 스트리밍 서비스를 제품으로 노출하는 경우 Apigee의 수익 창출 기능을 활용할 수 있습니다. Apigee 내에서 만든 맞춤형 API 제품에 요금제를 추가하여 gRPC 스트리밍 API가 사용될 때마다 수익을 창출할 수 있습니다.
자세한 gRPC 프로토콜 수준 분석은 패스스루 시나리오에서 제한될 수 있지만, Apigee는 여전히 연결 시도, 오류율, 전반적인 사용 패턴을 포함하여 스트리밍 서비스로 유입되는 트래픽에 대한 귀중하고 유용한 정보를 제공합니다. 이러한 관측 가능성은 모니터링과 문제 해결에 매우 중요합니다.
Apigee의 분산 추적 시스템은 gRPC 스트리밍 서비스가 포함된 분산 시스템의 요청을 추적하는 데 도움을 주어 여러 애플리케이션, 서비스, 데이터베이스에 대한 철저하고 포괄적인 가시성을 제공할 수 있습니다.
Apigee API Analytics는 부하 분산기를 통과하는 풍부한 정보를 수집하여 UI에서 데이터 시각화를 제공하거나 오프라인 분석을 위한 데이터 다운로드 기능을 지원합니다. 이 데이터는 사용 패턴을 이해하고 성능 병목 현상을 파악하며 정보에 입각한 비즈니스 의사 결정을 내리는 데 매우 유용할 수 있습니다.
이러한 이점을 고려하면 Apigee Extension Processor가 Google Cloud의 gRPC 스트리밍 서비스에 필수적인 API 관리 기능을 제공하는 가치 있고 실용적인 방법을 제공한다는 점이 분명해집니다.
Apigee Extension Processor는 Apigee의 기능을 확장하는 데 있어 중요한 진일보입니다. 저희는 어느 게이트웨이에서나 Apigee 정책 적용 기능의 힘을 활용할 수 있는 미래를 그리고 있습니다. 여기에는 ext-proc 프로토콜을 활용하고 다양한 Envoy 기반 부하 분산기 및 게이트웨이와의 통합이 포함됩니다. 이를 통해 PDP(Policy Decision Point) 역할을 하는 Apigee 런타임과 더불어 Envoy 기반 부하 분산기 및 게이트웨이는 PEP(Policy Enforcement Point)로서 작동할 수 있습니다. 이러한 발전은 이기종 분산 환경에서 조직이 디지털 애셋을 지속적으로 관리하고 보호할 수 있는 역량을 더욱 강화시키는 데 도움이 될 것입니다.