Wie finden Sie die passende zentrale API-Lösung für Ihre Anwendungen in der Google Cloud? Wir vergleichen ApigeeX, Cloud Endpoints und API Gateway, damit Sie die richtige Wahl treffen.

Cloud Endpoints, API Gateway und ApigeeX im Vergleich
Seit ich als Senior Cloud Architect bei DoiT International arbeite, werde ich von Kunden immer wieder gefragt, wie sie auf GCP eine zentrale API-Lösung für ihre Anwendungen auswählen sollen. Vom Enterprise-Produkt ApigeeX einmal abgesehen: Was ist im direkten Vergleich von Cloud Endpoints und API Gateway die bessere Wahl? Und worin liegt der entscheidende Unterschied zwischen den beiden Lösungen?
Anfang 2017 gab Google die allgemeine Verfügbarkeit von Cloud Endpoints bekannt – einer Lösung, die auf einem serverlokalen Proxy auf Basis derselben Services aufsetzt. Anfangs arbeitete Cloud Endpoints mit dem Extensible Service Proxy (ESP) V1, einer nginx-basierten Data Plane, um die AppEngine Flexible Environment, GCE und GKE zu unterstützen. 2019 brachte Google den Envoy-basierten ESP v2 heraus, der weitere Serverless-Dienste wie Cloud Functions, Cloud Run und die AppEngine Standard Environment abdeckt. ESP v1 gilt zwar als veraltet, unterstützt aber weiterhin AppEngine Flexible und individuelle Nginx-Konfigurationen – Funktionen, die ESP v2 nicht bietet.
Da Cloud Endpoints zudem ein selbstverwalteter, verteilter API-Management-Dienst mit zusätzlichen Kostenfaktoren ist, hat Google mit API Gateway einen weiteren API-Management-Dienst auf den Markt gebracht, der sich in mancher Hinsicht als verbesserte Variante von Cloud Endpoints verstehen lässt.
Apigee bietet Google darüber hinaus in mehreren Managed-Varianten an, darunter ApigeeX (gehostet in der Google Cloud) und ApigeeEdge (gehostet in der Apigee Cloud).
In diesem Beitrag zeige ich Ihnen, wie Sie die passende API-Lösung für sich finden.
Unterstützte Protokolle
Welche Protokolle müssen unterstützt werden? Das ist die erste Frage, die Sie sich stellen sollten.
Auf allen drei Plattformen lässt sich der API-Proxy mithilfe der OpenAPI-Spezifikation definieren. Sie alle unterstützen HTTPS-Restful-APIs. Auch gRPC steht auf allen drei Plattformen zur Verfügung.
Wer hingegen WebSocket oder SOAP unterstützen möchte, kommt an ApigeeX nicht vorbei – das ist die einzige Plattform, die das leistet.
Integration mit Backend-Diensten
Cloud Endpoints, API Gateway und ApigeeX lassen sich mit Diensten der Google Cloud Platform wie Cloud Functions, Cloud Run, GKE und AppEngine sowie mit Nicht-Google-Funktionen und -Diensten wie AWS Lambda, Azure Functions und On-Premise-API-Services verbinden.
Setzt Ihr Backend allerdings auf SOAP, ist ApigeeX die einzige Option. ApigeeX kann eine RESTful-Schnittstelle zum SOAP-Backend generieren, sodass sich ein SOAP-Service als API-Proxy bereitstellen lässt. Daneben gibt es einen Pass-Through-Modus, der eingehende SOAP-Anfragen direkt an den Backend-Service weiterreicht.
Eine weitere Stärke von ApigeeX ist die Unterstützung benutzerdefinierter Skripte: Sie können eigene Funktionen in JavaScript implementieren und im ApigeeX-Portal bereitstellen. Innerhalb dieser Skripte greifen Sie über das `onLoad`-Event auf das DOM-Objekt der Portalseite zu, sobald der Nutzer die Seite öffnet, und über `onUnload`, wenn er sie wieder verlässt.
Cloud Endpoints und ApigeeX unterstützen zum Zeitpunkt der Veröffentlichung beide eigene Domain-Namen. API Gateway bietet ebenfalls Custom Domains, allerdings noch im Preview-Modus.
Sicherheit
API Keys sind der Standard, um APIs abzusichern. Cloud Endpoints, API Gateway und ApigeeX unterstützen alle die Authentifizierung per API Key.
Da es sich um Google-managed Services handelt, ist zusätzlich die Authentifizierung über Service Accounts möglich. (Dabei wird der private Schlüssel des Service Accounts verwendet, um ein sicheres JWT zu signieren; die API-Anfragen werden dann mit diesem signierten JWT versendet.)
Über diese beiden Methoden hinaus unterstützt Cloud Endpoints die Firebase-Authentifizierung und Auth0, ApigeeX bietet OAuth2.
Erwähnenswert ist außerdem, dass sich alle drei API-Management-Lösungen mit einem Rate Limit absichern lassen. So steuern Sie den Traffic zwischen Ihren APIs und Backend-Services und beugen DOS-Angriffen auf Ihre Anwendungen vor.
Monitoring
Alle drei API-Lösungen lassen sich auf der Google Cloud Platform problemlos überwachen.
Cloud Endpoints stellt ein Portal bereit, mit dem Sie ein Developer-Portal aufbauen sowie Logs und Metriken einsehen können. API Gateway liefert ein Dashboard mit zusätzlichen Diagrammen, das Spikes, Einbrüche oder ungewöhnliche Aktivitäten verständlich macht. Über die Methods-Tabelle des API Gateway können Sie noch tiefer ins Detail gehen.
Als Enterprise-API-Plattform bietet ApigeeX ein Monitoring-Dashboard, das alle Ausführungsmetriken sowohl auf Integrations- als auch auf Task-Ebene anzeigt. Zudem lassen sich in ApigeeX problemlos verschiedene Alerts einrichten.
Kosten
Sowohl Cloud Endpoints als auch API Gateway bieten ein Free-Tier-Kontingent für eine bestimmte Anzahl an API-Aufrufen. Liegen Ihre monatlichen Aufrufe darunter, fallen keine Kosten an. Da Cloud Endpoints aber eine Endpoints-Runtime in einem Google-Dienst benötigt, um eingehende Anfragen weiterzuleiten, entstehen für den Google-Dienst, der diese Runtime hostet, zusätzliche Kosten neben den eigentlichen API-Services.
ApigeeX bietet eine Evaluierungsoption, mit der Sie die Plattform ausrollen und testen können. Nach Abschluss der Evaluierung müssen Sie auf einen kostenpflichtigen Tarif wechseln. Wenn Ihre APIs nur ein geringes Anfragevolumen bedienen, eignet sich der Pay-as-you-go-Tarif: keine Vorabverpflichtung, Abrechnung rein nutzungsbasiert. Brauchen Sie mehrere Umgebungen für hohe Anfragevolumina, ist eine kommerzielle Subscription die richtige Wahl.
Insgesamt ist ApigeeX die teuerste API-Lösung. API Gateway ist eine gute Wahl für große Umgebungen, während Cloud Endpoints bei geringerem Volumen die günstigere Variante ist.
Fazit
Cloud Endpoints und API Gateway sind schlanke API-Management-Plattformen mit ähnlichem Funktionsumfang und decken die meisten Szenarien ab. API Gateway ist ein neuer Dienst in GCP; einzelne Funktionen wie Custom Domains befinden sich noch im Preview-Modus.
Die Enterprise-Lösung ApigeeX bringt einen umfassenden Funktionsumfang mit, hat dafür aber ihren Preis.
Cloud Endpoints
SaaS
Teilweise
Preis
Free Tier + Runtime-Kosten
Unterstützung interner GCP-Backend-Services
Ja
Unterstützung öffentlicher Nicht-GCP-Backend-Services
Ja
Unterstützte Protokolle
HTTPS / gRPC
CORS-Unterstützung
Ja
Custom Domain
Ja
Nachrichten formen, lesen und konvertieren
Nein
Authentifizierung
API Key / Firebase Authentication / Auth0 / Google ID Token / Google Service Account / Custom Authentication
OpenAPI-Spezifikation
Ja
Dokumentation
Schwach
API Gateway
SaaS
Ja
Preis
Free Tier
Unterstützung interner GCP-Backend-Services
Ja
Unterstützung öffentlicher Nicht-GCP-Backend-Services
Ja
Unterstützte Protokolle
HTTPS / gRPC
CORS-Unterstützung
Nein
Custom Domain
Preview
Nachrichten formen, lesen und konvertieren
Nein
Authentifizierung
API Key / Google Service Account
OpenAPI-Spezifikation
Ja
Dokumentation
Schwach
Apigee
SaaS
Ja
Preis
Pay-as-you-go, kommerzielle Subscriptions
Unterstützung interner GCP-Backend-Services
Nein
Unterstützung öffentlicher Nicht-GCP-Backend-Services
Ja
Unterstützte Protokolle
HTTPS / gRPC / WebSocket
CORS-Unterstützung
Ja
Custom Domain
Ja
Nachrichten formen, lesen und konvertieren
Ja
Authentifizierung
API Key / OAuth
OpenAPI-Spezifikation
Ja
Dokumentation
Gut
Cloud Endpoints
API Gateway
Apigee
SaaS
Teilweise
Ja
Ja
Preis
Free Tier + Runtime-Kosten
Free Tier
Pay-as-you-go, kommerzielle Subscriptions
Unterstützung interner GCP-Backend-Services
Ja
Ja
Nein
Unterstützung öffentlicher Nicht-GCP-Backend-Services
Ja
Ja
Ja
Unterstützte Protokolle
HTTPS / gRPC
HTTPS / gRPC
HTTPS / gRPC / WebSocket
CORS-Unterstützung
Ja
Nein
Ja
Custom Domain
Ja
Preview
Ja
Nachrichten formen, lesen und konvertieren
Nein
Nein
Ja
Authentifizierung
API Key / Firebase Authentication / Auth0 / Google ID Token / Google Service Account / Custom Authentication
API Key / Google Service Account
API Key / OAuth
OpenAPI-Spezifikation
Ja
Ja
Ja
Dokumentation
Schwach
Schwach
Gut