An API gateway is a server-side entry point that routes, authenticates, throttles, and monitors traffic between API clients and the backend services they consume. Choosing one is rarely about raw feature parity. The decision turns on deployment model, ecosystem fit, and how much operational ownership a team wants to absorb. AWS API Gateway, Kong Gateway, and Zuul sit at three distinct points on that spectrum: a fully managed cloud service, a cloud-native open-source product with a managed control-plane option, and a JVM-embedded router tied to the Netflix OSS lineage.
What an API Gateway Does
An API gateway sits in front of one or more backend services and consolidates cross-cutting concerns that would otherwise be reimplemented in every service. AWS describes its own product as a "front door" for applications reaching backend data, business logic, or functions, which captures the role well across vendors (AWS docs). Four functions define the category.
- Request routing. Map inbound paths, methods, and headers to the correct upstream service, including versioned routes and host-based dispatch.
- Authentication and authorization. Validate API keys, JWTs, OAuth tokens, or mTLS certificates before traffic reaches a service.
- Rate limiting and traffic throttling. Enforce per-key, per-route, or per-consumer quotas to protect upstreams from spikes and abusive clients.
- Observability. Emit access logs, latency metrics, and audit events for usage analysis and incident response.
A microservices architecture (MSA) leans on the gateway to keep service code focused on business logic rather than transport-layer plumbing. Without it, every service ends up reinventing auth middleware, request routing tables, and rate limiting logic, with predictable drift across teams.
AWS API Gateway: Fully Managed and AWS-Native
AWS API Gateway is a managed service for creating, publishing, monitoring, and securing REST, HTTP, and WebSocket APIs at scale (AWS docs). There is no control plane to operate. AWS handles the runtime, autoscaling, and patching, and integrates the gateway with the rest of the AWS ecosystem by default.
- Three API flavors. REST APIs for full feature depth, HTTP APIs for lower latency and lower per-call cost, and WebSocket APIs for stateful bidirectional channels.
- AWS WAF integration. Attach a Web ACL to a stage to filter common web exploits such as SQL injection and bot traffic at the edge.
- CloudTrail logging. Every configuration change and API invocation can be captured as an audit event for compliance and forensic review.
- Custom domain names. Map a vanity domain with an ACM certificate, and front the API with CloudFront if needed.
- Native auth integrations. Lambda authorizers, IAM signing, and Cognito user pools cover most identity scenarios without external middleware.
Throttling and quota controls run through a usage plan, which AWS defines as a configuration that "sets a target for the throttling and quota limits on individual client API keys" (CloudFormation reference). Note the precise wording. AWS explicitly warns that "in some cases clients can exceed the targets that you set," so a usage plan is a soft enforcement boundary rather than a guarantee. Teams running compute on AWS already, especially those deciding between EC2, Lambda, and ECS, get the tightest integration here.
The tradeoff is portability. Routes, authorizers, integrations, and usage plan definitions are all expressed in AWS-specific resources, which makes vendor lock-in a structural property of the service rather than a side effect. Migration off the platform means re-expressing the entire control surface elsewhere.
Kong Gateway: Cloud-Native OSS with Enterprise Tier
Kong Gateway is what its own documentation calls "a lightweight, fast, and flexible cloud-native API gateway" (Kong developer portal). It runs anywhere you can run a container or a Linux process, with a plugin system that handles auth, rate limiting, transformations, and observability. Teams can self-host the OSS edition under Apache 2.0 or attach a managed control plane through Kong Konnect.
- Plugin system. Authentication (key-auth, JWT, OIDC), rate limiting, request and response transformers, logging adapters, and Lua-scripted custom plugins share one extension model.
- Kong Ingress Controller (KIC), Kubernetes ingress for cluster-native traffic. Run Kong Gateway as a Kubernetes ingress that translates Kubernetes resources such as Ingress and HTTPRoute into Kong configuration (Kong docs).
- Declarative configuration. In DB-less mode, each node loads declarative config into memory without persistent database storage, which suits GitOps pipelines.
- Traditional vs hybrid mode. Traditional mode runs control and data planes together; hybrid mode separates them (Kong upgrade guide).
- Kong Manager OSS and Konnect SSO. Kong Manager OSS is a free admin UI compatible with Kong Gateway 3.4 and later, and Konnect supports SAML and OIDC SSO for enterprise identity providers.
KIC is the differentiator for Kubernetes-first teams. Kong was an early contributor to the Kubernetes Gateway API standard, and the project states that KIC "was the first submitted conformance report, and is 100% compliant with the core conformance tests." That matters because it lets teams write portable Gateway API manifests, where rate limiting policies, traffic splits for canary testing, and route filters all live in version-controlled YAML rather than vendor-specific consoles. For teams building out a broader rate limiting and throttling strategy, Kong's plugin system gives more granular control than AWS usage plans without an SaaS commitment.
Zuul: JVM-Based Routing for Netflix OSS Stacks
Zuul is a JVM-based router and server-side load balancer from Netflix, embedded into Spring Cloud Netflix for Java applications (Spring Cloud Netflix docs). Its rule engine supports dynamic routing through filters written in any JVM language, with first-class support for Java and Groovy. Kubernetes ingress integration is delegated to the wrapping JVM gateway application rather than being a built-in product feature. That puts it in a different category from AWS API Gateway or Kong Gateway: not a standalone product to deploy in front of services, but a library to embed inside a JVM gateway application.
- Authentication and security filters. Pre- and post-routing filter chain entries that inspect and mutate requests in flight.
- Dynamic routing. Rule-driven dispatch where routes can be hot-reloaded without restarting the JVM.
- Canary testing. Splitting a small percentage of traffic to new service versions for live validation, a pattern Netflix documented as a core Zuul use case.
- Load shedding and active/active traffic. Filters can drop or redirect requests during regional failover or capacity events.
- Insights and stress testing. The filter chain doubles as an instrumentation point for traffic shaping and synthetic load.
Practically, Zuul is most relevant to teams already running Spring Cloud Netflix who would pay a high migration cost to swap gateways. The cited Spring Cloud Netflix material verifies historical and architectural capabilities, not current maintenance posture, so greenfield projects should treat Zuul as a niche option rather than a default. For teams new to building HTTP services on the JVM or Python, the framework-level groundwork sits in building a REST API with Flask, Django, or FastAPI.
Feature and Deployment Comparison
The three products diverge most clearly on deployment model and ecosystem coupling. The table below summarizes how each handles the decisions teams hit when standing up a gateway for a microservices architecture, including request routing, vendor lock-in exposure, and operational ownership.
| Feature | AWS API Gateway | Kong Gateway | Zuul |
|---|---|---|---|
| Deployment model | Fully managed AWS service | Self-hosted OSS or managed via Konnect | JVM library embedded in a Spring Cloud app |
| Kubernetes-native | Indirect; via ALB or App Mesh | Yes, via KIC with Gateway API conformance | No native ingress integration |
| Open source | No | Yes, Apache 2.0 | Yes, Apache 2.0 |
| Auth and authz | IAM, Cognito, Lambda authorizers | Key-auth, JWT, OIDC, mTLS plugins | Filter-chain custom code |
| Rate limiting | Usage plan targets per API key | Per-route, per-consumer plugins | Custom filters |
| Plugin extensibility | Lambda integrations | Lua and Go plugin system | Groovy or Java filters |
| Observability | CloudWatch, CloudTrail, X-Ray | Prometheus, Datadog, OpenTelemetry plugins | App-level metrics, no built-in dashboards |
| Pricing model | Per call plus data transfer | OSS free; Konnect subscription | Free; you operate the JVM |
| Best-fit team | AWS-native, low ops appetite | Kubernetes-first or multi-cloud | Existing Spring Cloud Netflix stacks |
Two patterns emerge from the matrix. AWS API Gateway minimizes operational work but maximizes vendor lock-in. Kong inverts that bet: you take on more operational ownership but keep the option to relocate the entire stack without rewriting routes. Zuul occupies a narrower slot, useful where the JVM gateway already exists and migration cost outweighs feature gaps.
How to Choose the Right API Gateway
The selection question reduces to five concrete checks. Run them in order; the first one that returns a strong yes usually settles the decision for a given microservices architecture.
- Are you already committed to AWS? If compute, identity, and data already live in AWS, the integration depth of AWS API Gateway (IAM, Cognito, CloudTrail, WAF) almost always outweighs the lock-in cost. Usage plan targets handle most throttling needs even with their documented soft enforcement.
- Do you need Kubernetes-native declarative configuration? Teams running Kubernetes as the primary platform should default to Kong with KIC. Gateway API conformance gives you portable manifests for routes, rate limiting, and traffic throttling that survive cluster rebuilds and cloud migrations.
- Are you already on Spring Cloud Netflix? Zuul stays in scope where the cost of replacing an embedded JVM router exceeds the cost of maintaining it. Greenfield JVM projects are usually better served by Spring Cloud Gateway or Kong.
- Do you need an OSS escape hatch? Kong OSS plus optional Konnect gives a two-step adoption path: start self-hosted, add a managed control plane later without re-platforming. AWS does not offer that gradient.
- What is your operational overhead tolerance? A small platform team with no Kubernetes operators on staff will get more done with AWS. A platform team that already runs Helm, Prometheus, and GitOps pipelines will get more value, and lower long-run cost, from Kong.
The decision is rarely permanent. Many teams run Kong for east-west traffic inside Kubernetes and a managed cloud service for north-south public APIs, which keeps the declarative configuration story consistent for internal microservices while offloading edge concerns. For related integration choices around event flow, see webhooks versus polling.
Further reading
Frequently Asked Questions
How does AWS API Gateway differ from Kong?
AWS API Gateway is a fully managed AWS service requiring zero self-hosted infrastructure. Kong is a cloud-native open-source gateway you deploy and operate yourself, with an optional managed tier (Konnect). AWS suits teams already on AWS who want no operational overhead; Kong suits teams needing deep plugin customization or Kubernetes-native deployment without AWS dependency.
What are the pricing models for AWS API Gateway?
AWS API Gateway charges per API call, per gigabyte of data transfer, and for optional features such as caching and custom domain names. Usage plans set throttling and quota targets per client API key, though AWS notes clients can sometimes exceed those targets. There is no base subscription fee , costs scale linearly with traffic volume.
Is Kong free to use?
Kong OSS is free and open source under the Apache 2.0 license. Kong also offers Kong Konnect, a managed SaaS control plane with additional enterprise features including analytics, SSO (SAML/OIDC), and support SLAs. Kong Manager OSS, the open-source admin UI, is compatible with Kong Gateway 3.4 and later.
Is Zuul still a viable choice for new microservices projects?
Zuul is a practical choice only for teams already running Spring Cloud Netflix stacks where replacing the existing gateway would carry high migration cost. For greenfield microservices architecture, Kong or AWS API Gateway provide more actively developed ecosystems, Kubernetes-native support, and documented upgrade paths.









