Verwenden von Gateway-APIs als einzelner Einstiegspunkt für Webanwendungen und APIs

Die Übersetzung des Artikels wurde speziell für Studenten des Kurses „High Load Architect“ erstellt .




Einführung


AWS-Vorteile wie hohe Verfügbarkeit, Skalierbarkeit und Ausfallsicherheit haben sich für SaaS-Anbieter (Software-as-a-Service) bereits bewährt. Mit der Modernisierung von SaaS-Anwendungen hilft AWS beim reibungslosen Wechsel zu einer Microservice-Architektur, indem API-Zugriff auf externe Anwendungen bereitgestellt wird.

API-Verwaltungstools wie das Amazon API Gateway sind die natürliche Wahl für die Bereitstellung einer sicheren und skalierbaren externen API. Wenn SaaS-Anbieter ihre Anwendungen jedoch in die Cloud verschieben, müssen sie ihre Dienste häufig schnell auf mehreren verschiedenen Clients bereitstellen. Und natürlich mit den spezifischen Anforderungen jedes einzelnen von ihnen.

Die Gateway-API hilft beim Erstellen einer mandantenfähigen Microservice-Architektur. In einer solchen Architektur wird eine einzelne Instanz eines Mikrodienstes verwendet, um verschiedene Clients zu bedienen, wodurch es möglich wird, Ressourcen optimaler zu nutzen und Kosten zu optimieren. In dieser Konfiguration benötigen Anbieter für die Betreuung ihrer Kunden die Unterstützung von White-Label-Domänen sowie die Fähigkeit, eine Clientdomäne zu identifizieren, um eine bestimmte Geschäftslogik an einen bestimmten Client im Backend zu binden.

Dieser Artikel befasst sich mit der Referenzarchitektur, mit der Sie die Gateway-API als einen einzigen Einstiegspunkt für Webanwendungen und API-basierte Mikrodienste mit mehreren externen Clients verwenden können, wobei für jeden von ihnen unterschiedliche Subdomänen verwendet werden.

Amazon API Gateway - Einzelner Einstiegspunkt


Das Erstellen einer Architektur mit einer einzigen Gateway-API für mehrere Webanwendungen und Microservices ist ein wichtiger Faktor für die Wiederverwendung von Komponenten und die Kostenoptimierung.

Amazon API Gateway bietet eine hoch skalierbare Lösung zum Erstellen und Veröffentlichen von RESTful-APIs und WebSocket-APIs. Sie können eine Vielzahl von Technologien für das Backend auswählen: AWS Lambda- Funktionen , AWS Step Functions- Zustandsautomaten oder Aufruf von HTTP-Endpunkten, die auf AWS Elastic Beanstalk , Amazon EC2 oder außerhalb von AWS gehostet werden .

API Gateway übernimmt typische API-Verwaltungsaufgaben wie Sicherheit, Caching, Drosselung und Überwachung. Obwohl das Hauptziel darin besteht, eine abstrakte Ebene auf Ihrer internen API und Ihren Microservices aufzubauen, kann es auch Ihre Backend-Anwendungen vereinfachen oder den Zugriff auf statische Webseiten und Dokumente ermöglichen, die im Amazon S3- Bucket gespeichert sind .

Darüber hinaus helfen die folgenden wichtigen API-Gateway-Funktionen beim Erstellen der hier beschriebenen Architektur.

1. Unterstützung für benutzerdefinierte Domainnamen:


Bei der Bereitstellung einer API mithilfe der Gateway-API ist der Standarddomänenname des API-Endpunkts für den Endbenutzer nicht sehr praktisch:

https://api-id.execute-api.region.amazonaws.com/stage

  • api-id Gateway-API generiert
  • region Dies wird von Ihnen beim Erstellen der API angegeben.
  • stage Von Ihnen bei der Bereitstellung der API angegeben.

Es kann schwierig sein, mit dem Standard-API-Endpunkt zu arbeiten. Dank der Integration in AWS Certificate Manager, mit der Sie Subdomains basierend auf SSL-Zertifikaten testen können, können Sie Benutzern Ihrer API eine einfachere und intuitivere URL geben, z customer1.example.com. Mit der Gateway-API können Sie mehrere Subdomains einem einzelnen API-Endpunkt zuordnen, sodass Sie den Namen „White Label“ gemäß den Anforderungen externer Clients verwenden können.

2. Änderung von API-Anfragen / Antworten


Mit der Gateway-API können Sie für jeden Teil der API-Endpunktadresse eine separate Verarbeitung konfigurieren. Dank dessen ist es möglich, API-Anforderungen an einzelne Endpunktendpunkte weiterzuleiten und gleichzeitig die Header in der Anforderung / Antwort zu ändern, um die API-Anforderungen flexibler verarbeiten zu können.

Die Vorteile einer solchen Architektur


Die in diesem Artikel beschriebenen Funktionen sind in der folgenden Abbildung dargestellt.



Hier ist die Architektur für einen typischen SaaS-Anbieter, der seine Dienste anderen Organisationen anbietet und White-Label-Domänen für Web- und API-Infrastrukturen unterstützen muss. Eine ähnliche Architektur wird mit den folgenden Schritten erreicht:

  1. Die Domain example.comkann mit einem Domain - Registrar registriert werden, aber Sie können Sub - Domains durch den CNAME-Datensatz erstellen, zum Beispiel customer1.example.com, customer2.example.com. Dies kann in AWS über den Amazon Route 53-Dienst oder über einen DNS-Anbieter eines Drittanbieters erfolgen.
  2. AWS Certificate Manager (ACM) example.com *.example.com. ACM-, API Gateway.
  3. , ACM, API. API . : customer1.example.com customer2.example.com.

: CNAME- customer1 customer2 DNS, API Gateway.



4. API Endpoint


  • /service1 — integration type HTTP, ELB, ECS
  • /service2 - HTTP vom Integrationstyp, der den Datenverkehr an den Endpunkt einer ELB-Webanwendung weiterleitet, die in einem EC2-Cluster gehostet wird
  • /docs - Integrationstyp AWS S3 für statische Dokumente



5. Die Gateway-API kann den vollqualifizierten Domänennamen (FQDN) in der URL verarbeiten und benutzerdefinierten Headern oder Parametern in der Abfragezeichenfolge zuordnen, um sie an das entsprechende Backend zu senden.

Beispielsweise können wir einen benutzerdefinierten "Kunden" -Header erstellen, um Kunde1 oder Kunde2 an eine kundenspezifische Backend-Anwendung umzuleiten. Dies erfolgt mithilfe der Parameter Method Request und Integration Request in der Gateway-API.

Gesamt


Wie Sie sehen, ist dies nur ein Beispiel für die Verwendung der Gateway-API als einzelner Einstiegspunkt für API-basierte Mikrodienste und statische Webanwendungsressourcen. Mit der Gateway-API können Sie die Infrastruktur effizienter nutzen, ohne an Skalierbarkeit zu verlieren, und gleichzeitig die Belastung Ihrer Anwendungen erhöhen. Weitere Informationen zum Arbeiten mit der Gateway-API und dem Route 53-DNS finden Sie in der AWS-Dokumentation. Verwenden Sie diese Funktionen, um Architekturen zu erstellen, die Ihren Anforderungen entsprechen.

All Articles