BLOG | NGINX

Anleitung: Hohe Verfügbarkeit für API-Gateways in Multi-Cloud- und Hybridumgebungen

NGINX-Teil-von-F5-horiz-schwarz-Typ-RGB
Akash Ananthanarayanan Miniaturansicht
Akash Ananthanarayanan
Veröffentlicht am 20. Dezember 2022

Multi-Cloud-Bereitstellungen werden uns erhalten bleiben. Laut dem Bericht „State of Application Strategy in 2022“ von F5 betreiben 77 % der Unternehmen Anwendungen über mehrere Clouds hinweg. Die Einführung von Multi-Cloud- und Hybridarchitekturen bringt wichtige Vorteile mit sich, beispielsweise eine höhere Effizienz, ein geringeres Ausfallrisiko und die Vermeidung einer Abhängigkeit von einem bestimmten Anbieter. Allerdings stellen diese komplexen Architekturen auch einzigartige Herausforderungen dar.

Die von F5 befragten Software- und IT-Leiter nannten dies als ihre größten Multi-Cloud-Herausforderungen:

  • Sichtbarkeit (45 % der Befragten)
  • Sicherheit (44 %)
  • Migrieren von Apps (41 %)
  • Leistungsoptimierung (40 %)

Die Verwaltung von APIs für Microservices in Multi-Cloud-Umgebungen ist besonders komplex. Ohne eine ganzheitliche API-Strategie verbreiten sich APIs in öffentlichen Clouds, lokalen Umgebungen und Edge-Umgebungen schneller, als Platform Ops-Teams sie sichern und verwalten können. Wir bezeichnen dieses Problem als „API-Wildwuchs“ und haben in einem früheren Beitrag erklärt, warum es eine so große Bedrohung darstellt.

Sie benötigen eine Multi-Cloud-API-Strategie, damit Sie einen durchdachten Ansatz zur Vereinheitlichung Ihrer Microservices (die jetzt über mehrere Clouds verteilt sind) implementieren und so eine durchgängige Konnektivität gewährleisten können. Zwei der häufigsten Szenarien für Multi-Cloud- und Hybridbereitstellungen sind:

  • Unterschiedliche Dienste in Multi-Cloud-/Hybridumgebungen – Sie müssen unterschiedliche Anwendungen und APIs an unterschiedlichen Standorten betreiben, möglicherweise aus Kostengründen oder weil unterschiedliche Dienste für unterschiedliche Benutzergruppen relevant sind.
  • Dieselben Dienste in Multi-Cloud-/Hybridumgebungen – Sie müssen eine hohe Verfügbarkeit für dieselben Anwendungen sicherstellen, die an verschiedenen Standorten bereitgestellt werden.

Im folgenden Tutorial zeigen wir Schritt für Schritt, wie Sie den API Connectivity Manager , Teil der F5 NGINX Management Suite , im zweiten Szenario verwenden: Bereitstellung derselben Dienste in mehreren Umgebungen für hohe Verfügbarkeit. Dadurch wird ein einzelner Ausfallpunkt in Ihrer Multi-Cloud- oder Hybrid-Produktionsumgebung eliminiert: Wenn eine Gateway-Instanz ausfällt, übernimmt eine andere Gateway-Instanz und Ihre Kunden erleben keinen Ausfall, selbst wenn eine Cloud ausfällt.

API Connectivity Manager ist eine Cloud-native, laufzeitagnostische Lösung zum Bereitstellen, Verwalten und Sichern von APIs. Über eine einzige Oberfläche können Sie alle Ihre API-Vorgänge für NGINX Plus-API-Gateways und Entwicklerportale verwalten, die in öffentlichen Clouds, vor Ort und in Edge-Umgebungen bereitgestellt werden. Dadurch erhalten Ihre Platform-Ops-Teams vollständige Transparenz über den API-Verkehr und können problemlos für jede Umgebung einheitliche Governance- und Sicherheitsrichtlinien anwenden.

Aktivieren der Hochverfügbarkeit für API-Gateways in einer Multi-Cloud-Bereitstellung

Wie in der Einleitung erwähnt, konfigurieren wir in diesem Tutorial den API Connectivity Manager für die Hochverfügbarkeit von Diensten, die in mehreren Bereitstellungsumgebungen ausgeführt werden. Konkret setzen wir NGINX Plus als API-Gateway ein, das den Datenverkehr an zwei Dienste weiterleitet, Dienst A und Dienst B , die in zwei öffentlichen Clouds ausgeführt werden, Google Cloud Platform (GCP) und Amazon Web Services (AWS). (Das Setup gilt gleichermaßen für jede beliebige Mischung aus Bereitstellungsumgebungen, einschließlich Microsoft Azure und lokalen Rechenzentren.)

Abbildung 1 zeigt die im Lernprogramm verwendete Topologie.

Topologie mit Clientzugriff auf hochverfügbare API-Gateways, die über zwei Clouds verteilt sind
Abbildung 1: API Connectivity Manager ermöglicht Multi-Cloud-HA-Bereitstellung von API-Gateways und -Diensten

Befolgen Sie die Schritte in diesen Abschnitten, um das Tutorial abzuschließen:

Installieren und Konfigurieren des API Connectivity Managers

  1. Holen Sie sich eine Testversion oder ein kostenpflichtiges Abonnement für die NGINX Management Suite, die Instance Manager und API Connectivity Manager sowie NGINX Plus als API-Gateway und NGINX App Protect zum Sichern Ihrer APIs umfasst. Starten Sie eine kostenlose 30-Tage-Testversion der NGINX Management Suite, um loszulegen .
  2. Installieren Sie die NGINX Management Suite . Befolgen Sie im Abschnitt „Management Suite-Module installieren“ die Anweisungen für API Connectivity Manager (und optional andere Module).
  3. Fügen Sie die Lizenz für jedes installierte Modul hinzu.
  4. (Optional.) Richten Sie TLS-Terminierung und mTLS ein , um Clientverbindungen zur NGINX Management Suite und den Datenverkehr zwischen API Connectivity Manager und NGINX Plus-Instanzen auf der Datenebene zu sichern.

Stellen Sie NGINX Plus-Instanzen als API-Gateways bereit

Wählen Sie die Umgebungen aus, aus denen Ihre Multi-Cloud- oder Hybrid-Infrastruktur besteht. Für das Tutorial haben wir AWS und GCP ausgewählt und installieren in jeder Cloud eine NGINX Plus-Instanz. Führen Sie in jeder Umgebung diese Schritte auf jedem Data‑Plane‑Host aus, der als API‑Gateway fungieren soll:

  1. Installieren Sie NGINX Plus auf einem unterstützten Betriebssystem .
  2. Installieren Sie das NGINX JavaScript-Modul (njs).
  3. Fügen Sie die folgenden Anweisungen im Hauptkontext (oberste Ebene) in /etc/nginx/nginx.conf hinzu:

    lade_Modulmodule/ngx_http_js_module.so;lade_Modulmodule/ngx_stream_js_module.so;
    
  4. Starten Sie NGINX Plus neu, beispielsweise indem Sie diesen Befehl ausführen:

    $ nginx -s neu laden
    

Einrichten eines Infrastruktur-Arbeitsbereichs

Sie können im API Connectivity Manager mehrere Infrastrukturarbeitsbereiche erstellen (zum Zeitpunkt des Schreibens bis zu 10). Mit getrennten Arbeitsbereichen können Sie Richtlinien und Authentifizierungs-/Autorisierungsanforderungen anwenden, die für verschiedene Geschäftsbereiche, Entwicklerteams, externe Partner, Clouds usw. spezifisch sind.

Erstellen Sie in der GUI des API Connectivity Managers einen neuen Arbeitsbereich:

  1. Klicken Sie in der linken Navigationsspalte auf „Infrastruktur“ .
  2. Klicken Sie auf die Schaltfläche + Erstellen , um einen neuen Arbeitsbereich zu erstellen, wie in Abbildung 2 dargestellt.

    Abbildung 2: Erstellen eines neuen Infrastruktur-Arbeitsbereichs
  3. Füllen Sie im sich öffnenden Fenster „Arbeitsbereich erstellen“ das Feld „Name“ aus ( Demo in Abbildung 3). Füllen Sie optional das Feld „Beschreibung“ und die Felder im Abschnitt „Workspace-Kontaktinformationen“ aus. Der Infrastrukturadministrator (z. B. Ihr Platform Ops-Team) kann die Kontaktinformationen verwenden, um den Benutzern des Arbeitsbereichs Status- oder Problemaktualisierungen bereitzustellen.

    Abbildung 3: Einen neuen Infrastruktur-Arbeitsbereich benennen und Kontaktinformationen hinzufügen
  4. Klicken Sie auf die Schaltfläche Erstellen .

Erstellen einer Umgebung und von API-Gateway-Clustern

Im API Connectivity Manager ist eine Umgebung eine logische Gruppierung dedizierter Ressourcen (wie API-Gateways oder API-Entwicklerportale). Sie können pro Arbeitsbereich mehrere Umgebungen erstellen (zum Zeitpunkt des Schreibens bis zu 25). Diese entsprechen normalerweise verschiedenen Phasen der App-Entwicklung und -Bereitstellung, z. B. Codierung, Test und Produktion, können jedoch jedem beliebigen Zweck dienen.

Innerhalb einer Umgebung ist ein API-Gateway-Cluster eine logische Gruppierung von NGINX Plus-Instanzen, die als API-Gateways fungieren. Eine einzelne Umgebung kann mehrere API-Gateway-Cluster haben, die denselben Hostnamen verwenden (z. B. api.nginx.com , wie in diesem Tutorial). Die NGINX Plus-Instanzen in einem API Gateway-Cluster können sich in mehr als einem Infrastrukturtyp befinden, beispielsweise in mehreren Clouds.

Es gibt zwei Möglichkeiten, eine Umgebung im API Connectivity Manager für die Aktiv-Aktiv-Hochverfügbarkeit von API-Gateways zu konfigurieren:

Der Hauptgrund für die Bereitstellung mehrerer API Gateway-Cluster besteht darin, dass Sie auf jeden Cluster einen anderen Satz von Sicherheitsrichtlinien anwenden können.

Beim Bereitstellen von NGINX Plus-Instanzen als API-Gateways haben wir zwei NGINX Plus-Instanzen bereitgestellt – eine in AWS und die andere in GCP. Das Tutorial verwendet dieselben Instanzen, um beide Umgebungstypen zu veranschaulichen (mit einem einzelnen API-Gateway-Cluster oder mit mehreren API-Gateway-Clustern). Wenn Sie beide Umgebungstypen in einem einzelnen Arbeitsbereich bereitstellen möchten, müssen Sie zusätzliche NGINX Plus-Instanzen für die zweite Umgebung erstellen.

Bereitstellen einer Umgebung mit einem API-Gateway-Cluster

Für eine Umgebung mit einem API-Gateway-Cluster gelten für alle NGINX Plus API-Gateway-Instanzen dieselben Sicherheitsrichtlinien, wie in Abbildung 4 dargestellt.

Diagramm, das zeigt, wie dieselben Sicherheitsrichtlinien für API-Gateways gelten, die in einem API-Gateway-Cluster im API Connectivity Manager bereitgestellt werden
Abbildung 4: Für API-Gateways, die in einem API-Gateway-Cluster bereitgestellt werden, gelten die gleichen Sicherheitsrichtlinien.
Erstellen einer Umgebung und eines API-Gateway-Clusters
  1. Navigieren Sie zu Ihrem Arbeitsbereich und klicken Sie auf die Schaltfläche „Umgebung erstellen“ , wie in Abbildung 5 gezeigt.

    Abbildung 5: Erstellen einer neuen Umgebung in einem Infrastrukturarbeitsbereich
  2. Füllen Sie im daraufhin geöffneten Fenster „Umgebung erstellen“ das Feld „Name“ ( prod in Abbildung 6) und optional das Feld „Beschreibung“ aus und wählen Sie den Umgebungstyp aus (hier wählen wir „Prod“ ).

    Abbildung 6: Eine neue Umgebung benennen und ihr einen API-Gateway-Cluster zuweisen
  3. Füllen Sie im Abschnitt „API Gateway-Cluster“ die Felder „Name“ und „Hostname“ aus ( api-cluster und api.nginx.com in Abbildung 6).
  4. Klicken Sie auf die Schaltfläche Erstellen .

    Das Fenster „Umgebung erstellt“ wird geöffnet und zeigt den Befehl an, den Sie auf jeder NGINX Plus-Instanz ausführen müssen, um sie dem API Gateway-Cluster zuzuweisen. Der Einfachheit halber zeigen wir die Befehle unten in Schritt 7 .

Zuweisen von API-Gateway-Instanzen zu einem API-Gateway-Cluster

Wiederholen Sie dies auf jeder NGINX Plus-Instanz:

  1. Verwenden Sie SSH , um eine Verbindung mit der Instanz herzustellen und sich anzumelden.
  2. Wenn der NGINX-Agent bereits ausgeführt wird, stoppen Sie ihn:

    $ systemctl stop nginx-agent
    
  3. Führen Sie den Befehl Ihrer Wahl (entweder curl oder wget ) aus, um das NGINX-Agent-Paket herunterzuladen und zu installieren:

    • Wenn Sie mTLS unter „Installieren und Konfigurieren des API Connectivity Manager“ nicht aktiviert haben, fügen Sie Folgendes hinzu:

      • Das Flag -k für den curl -Befehl
      • Das Flag --no-check-certificate für den Befehl wget
    • Für <NMS_FQDN>, ersetzen Sie die IP-Adresse oder den vollqualifizierten Domänennamen Ihres NGINX Management Suite-Servers.
    • Für <Clustername>, ersetzen Sie den Namen des API Gateway-Clusters (API-Cluster in diesem Tutorial).
    $ locken [-k] https://<NMS_FQDN>/install/nginx-agent > install.sh und sudo sh -install.sh -g <Clustername> && sudo systemctl starte nginx-agent
    

    oder

    $ wget [--no-check-certificate] https://<NMS_FQDN>/install/nginx-agent --no-check-certificate -O install.sh und sudo sh install.sh -g <Clustername> && sudo systemctl starte nginx-agent
    

    Die NGINX Plus-Instanzen werden jetzt im Abschnitt „Instanzen“ des Clusterfensters für den API-Cluster angezeigt, wie in Abbildung 7 dargestellt.

    Abbildung 7: Ein einzelner API Gateway Cluster gruppiert NGINX Plus-Instanzen, die in mehreren Clouds bereitgestellt werden
  4. Fahren Sie mit dem Anwenden globaler Richtlinien fort.

Bereitstellen einer Umgebung mit mehreren API-Gateway-Clustern

Für eine Umgebung mit mehreren API-Gateway-Clustern können für verschiedene NGINX Plus API-Gateway-Instanzen unterschiedliche Sicherheitsrichtlinien gelten, wie in Abbildung 8 dargestellt.

Diagramm, das zeigt, wie unterschiedliche Sicherheitsrichtlinien auf API-Gateways angewendet werden können, die in separaten API-Gateway-Clustern im API Connectivity Manager bereitgestellt werden
Abbildung 8: Für API-Gateways, die in bereitgestellt werden, können unterschiedliche Sicherheitsrichtlinien gelten.
separate API-Gateway-Cluster
Erstellen einer Umgebung und eines API-Gateway-Clusters
  1. Navigieren Sie zu Ihrem Arbeitsbereich und klicken Sie auf die Schaltfläche „Umgebung erstellen“ , wie in Abbildung 9 gezeigt.

    Abbildung 9: Erstellen einer neuen Umgebung in einem Infrastrukturarbeitsbereich
  2. Füllen Sie im sich öffnenden Fenster „Umgebung erstellen“ das Feld „Name“ ( prod in Abbildung 10) und optional das Feld „Beschreibung“ aus und wählen Sie den Umgebungstyp aus (hier wählen wir „Prod“ ).

    Abbildung 10: Benennen einer neuen Umgebung und Zuweisen des ersten API-Gateway-Clusters
  3. Füllen Sie im Abschnitt „API Gateway-Cluster“ die Felder „Name“ und „Hostname“ aus (in Abbildung 10 lauten dies „aws-cluster“ und „api.nginx.com“ ).
  4. Klicken Sie auf die Schaltfläche Erstellen .

    Das Fenster „Umgebung erstellt“ wird geöffnet und zeigt den Befehl an, den Sie auf jeder NGINX Plus-Instanz ausführen müssen, um sie dem API Gateway-Cluster zuzuweisen. Der Einfachheit halber zeigen wir die Befehle unten in Schritt 10 .

  5. Navigieren Sie zurück zur Registerkarte „Umgebung“ und klicken Sie auf die Schaltfläche „+ Hinzufügen“ in der oberen rechten Ecke des Abschnitts „API Gateway-Cluster“ , wie in Abbildung 11 dargestellt.

    Abbildung 11: Hinzufügen eines weiteren API Gateway-Clusters zu einer Umgebung
  6. Füllen Sie im Fenster „API-Gateway-Cluster erstellen“ das Feld „Name“ mit dem Namen des zweiten Clusters ( gcp-cluster in Abbildung 12) und das Feld „Hostname“ mit demselben Hostnamen wie für den ersten Cluster ( api.nginx.com ) aus.

    Abbildung 12: Hinzufügen des zweiten API Gateway-Clusters zu einer Umgebung

Die beiden API-Gateway-Cluster werden jetzt in den API-Gateway-Clustern für die Produktionsumgebung angezeigt, wie in Abbildung 13 dargestellt.

Abbildung 13: Liste der in mehreren Clouds und separaten API-Gateway-Clustern bereitgestellten NGINX Plus-Instanzen
Zuweisen von API-Gateway-Instanzen zu einem API-Gateway-Cluster

Wiederholen Sie dies auf jeder NGINX Plus-Instanz:

  1. Verwenden Sie SSH , um eine Verbindung mit der Instanz herzustellen und sich anzumelden.
  2. Wenn der NGINX-Agent bereits ausgeführt wird, stoppen Sie ihn:

    $ systemctl stop nginx-agent
    
  3. Führen Sie den Befehl Ihrer Wahl (entweder curl oder wget ) aus, um das NGINX-Agent-Paket herunterzuladen und zu installieren:

    • Wenn Sie mTLS unter „Installieren und Konfigurieren des API Connectivity Manager“ nicht aktiviert haben, fügen Sie Folgendes hinzu:

      • Das Flag -k für den curl -Befehl
      • Das Flag --no-check-certificate für den Befehl wget
    • Für <NMS_FQDN>, ersetzen Sie die IP-Adresse oder den vollqualifizierten Domänennamen Ihres NGINX Management Suite-Servers.
    • Für <Clustername>, ersetzen Sie den Namen des entsprechenden API Gateway-Clusters (in diesem Tutorial aws‑cluster für die in AWS bereitgestellte Instanz und gcp‑cluster für die in GCP bereitgestellte Instanz).
    $ locken [-k] https://<NMS_FQDN>/install/nginx-agent > install.sh und sudo sh -install.sh -g <Clustername> && sudo systemctl starte nginx-agent
    

    oder

    $ wget [--no-check-certificate] https://<NMS_FQDN>/install/nginx-agent --no-check-certificate -O install.sh und sudo sh install.sh -g <Clustername> && sudo systemctl starte nginx-agent
    

    Die entsprechende NGINX Plus-Instanz wird jetzt im Abschnitt „Instanzen“ der Cluster- Fenster für aws-cluster (Abbildung 14) und gcp-cluster (Abbildung 15) angezeigt.

    Abbildung 14: Der erste von zwei API Gateway-Clustern in einer Umgebung, die sich über mehrere Clouds erstreckt
    Abbildung 15: Der zweite von zwei API Gateway-Clustern in einer Umgebung, die sich über mehrere Clouds erstreckt

    Globale Richtlinien anwenden

    Jetzt können Sie globale Richtlinien hinzufügen, die für alle NGINX Plus-Instanzen in einem API Gateway-Cluster gelten. Um beispielsweise den Clientzugriff auf Ihre APIs zu sichern, können Sie die OpenID Connect Relying Party- oder TLS Inbound -Richtlinie anwenden. Um die Verbindung zwischen einem API-Gateway und dem Backend-Dienst, der die API bereitstellt, zu sichern, wenden Sie die TLS-Backend -Richtlinie an. Weitere Informationen zu TLS-Richtlinien finden Sie in der API Connectivity Manager-Dokumentation .

    1. Navigieren Sie zur Registerkarte „Cluster“ für das API-Gateway, auf das Sie eine Richtlinie anwenden möchten ( API-Cluster in Abbildung 16). Klicken Sie auf die Schaltfläche „Verwalten“ über der rechten Ecke der Richtlinientabelle .

      Abbildung 16: Verwalten von Richtlinien für einen API Gateway-Cluster
    2. Klicken Sie in der linken Navigationsspalte auf „Globale Richtlinien“ und dann auf das Symbol in der äußersten rechten Spalte der Zeile für die Richtlinie ( TLS-Backend in Abbildung 17). Wählen Sie „+ Richtlinie hinzufügen“ aus dem Dropdownmenü aus.

      Abbildung 17: Hinzufügen einer globalen Richtlinie zu einem API Gateway-Cluster

    Abschluss

    Die Verwaltung von Multi-Cloud- und Hybridarchitekturen ist keine leichte Aufgabe. Es handelt sich dabei um komplexe Umgebungen mit sich schnell ändernden Anwendungen, die oft schwer zu überwachen und zu sichern sind.

    Mit den richtigen Tools können Sie jedoch die Abhängigkeit von einem Anbieter vermeiden und gleichzeitig die Agilität und Flexibilität bewahren, die Sie benötigen, um neue Funktionen schneller auf den Markt zu bringen. Als Cloud-natives Tool bietet Ihnen der API Connectivity Manager von NGINX die Skalierbarkeit, Sichtbarkeit, Governance und Sicherheit, die Sie zum Verwalten von APIs in Multi-Cloud- und Hybridumgebungen benötigen.

    Starten Sie eine 30-tägige kostenlose Testversion der NGINX Management Suite , die Zugriff auf API Connectivity Manager , NGINX Plus als API-Gateway und NGINX App Protect zum Sichern Ihrer APIs umfasst.


„Dieser Blogbeitrag kann auf Produkte verweisen, die nicht mehr verfügbar und/oder nicht mehr unterstützt werden. Die aktuellsten Informationen zu verfügbaren F5 NGINX-Produkten und -Lösungen finden Sie in unserer NGINX-Produktfamilie . NGINX ist jetzt Teil von F5. Alle vorherigen NGINX.com-Links werden auf ähnliche NGINX-Inhalte auf F5.com umgeleitet."