IBM Cloud Docs
Hoch verfügbare Anwendung konfigurieren

Hoch verfügbare Anwendung konfigurieren

Sie können Ihre IBM Cloud® Code Engine-Anwendung in mehreren Regionen bereitstellen, um regionale Ausfallsicherheit zu erreichen. Beachten Sie, dass in diesem Beispiel ein globales Content Delivery Network (CDN) mit dem Namen IBM Cloud Internet Services verwendet wird, Sie jedoch alternative Provider verwenden können. In diesem Beispiel wird auch eine angepasste Domäne verwendet.

Voraussetzungen

  • Sie müssen einen benutzerdefinierten Domänennamen für Ihre Anwendung haben, z. B. example.com. Dieser Domänenname wird von Ihrer Code Engine-Anwendung verwendet.
  • Richten Sie eine Instanz von Cloud Internet Services (CIS)ein.
  • Fügen Sie Ihren Domänennamen zu Cloud Internet Services (CIS)hinzu. Wenn Sie Ihren Domänennamen bei Cloud Internet Services (CIS) registrieren, delegieren Sie damit die Kontrolle über Ihren Domänennamen an Cloud Internet Services (CIS). Beachten Sie, dass dieser Schritt einige Zeit dauern kann.

Projekte in verschiedenen Regionen erstellen

Erstellen Sie ein Code Engine-Projekt in drei verschiedenen Regionen. Sie können ein allgemeines Benennungsmuster und einen gemeinsam genutzten Tag verwenden.

Erstellen Sie beispielsweise ein Projekt mit dem Namen global-app-project in den Regionen au-syd, eu-de und br-sao über die Befehlszeilenschnittstelle oder über die Konsole.

Projekte in mehreren Regionen
Name Status Tag Standort Ressourcengruppe Erstellungsdatum
global-app-project Bereit global-app Sydney (au-syd) Standardwert
global-app-project Bereit global-app Frankfurt (eu-de) Standardwert 2 Min.
global-app-project Bereit global-app Sao Paulo (br-sao) Standardwert 3 Min.

Weitere Informationen finden Sie unter Projekte verwalten.

Stellen Sie Ihre Anwendungen in mehreren Regionen bereit

Jetzt, da Ihre Projekte in mehreren Regionen erstellt werden, implementieren Sie Ihre Anwendung in jedem Projekt.

Stellen Sie beispielsweise die App codeengine/helloworld bereit.

  1. Klicken Sie auf der Seite Code Engine Projekte auf den Namen eines der von Ihnen erstellten Projekte.

  2. Klicken Sie auf Anwendungen und anschließend auf Erstellen, um eine Anwendung zu erstellen.

  3. Konfigurieren Sie Ihre App mit den folgenden Einstellungen:

    1. Nennen Sie Ihre Anwendung global-app.
    2. Wählen Sie Container-Image aus, um auf ein Container-Image für Ihre App zu verweisen.
    3. Geben Sie icr.io/codeengine/helloworld als Imagereferenz ein.
    4. Legen Sie im Abschnitt Ressourcen & Skalierung die Mindestanzahl der Instanzen auf 1 fest. Wenn Sie die Mindestanzahl von Instanzen auf 1 setzen, können Sie Statusprüfungen von Ihrer CIS-Instanz aktivieren, um die Verfügbarkeit von Pools zu überwachen, sodass Datenverkehr an die einwandfreien Instanzen weitergeleitet werden kann.
    5. Übernehmen Sie für die übrigen Optionen die Standardeinstellungen und klicken Sie auf Erstellen.
  4. Wiederholen Sie diese Schritte, um die Anwendung in jedem Projekt zu erstellen.

Weitere Informationen zur Bereitstellung Ihrer Anwendung finden Sie im Thema Anwendungen bereitstellen.

Zertifikat für angepasste Domäne generieren

Arbeiten Sie in einer Unternehmensumgebung mit Ihrem Domänenadministrator zusammen, um die erforderlichen Zertifikate zu erhalten. Wenn sich die angepasste Domäne jedoch unter Ihrer Kontrolle befindet und Sie schnell ein Zertifikat erstellen möchten, das nicht selbst zertifiziert ist, können Sie optional den Service Let' s Encrypt und Certbot verwenden, um ein Zertifikat abzurufen.

  1. Installieren Sie Certbot. Certbot ist ein Client für das Protokoll Automatic Certificate Management Environment(ACME) für die Automatisierung von Interaktionen zwischen einer Zertifizierungsstelle und einem Server. Der Let' s Encrypt-Service verwendet diesen Client, um das Eigentumsrecht an der Domäne zu überprüfen und Zertifikate auszugeben. Wählen Sie auf der Seite Certbot Instructions Other als Software aus und wählen Sie das Betriebssystem für Ihre Workstation aus, um die zutreffenden Informationen für die Installation der Certbot-Befehlszeile abzurufen.

  2. Führen Sie den folgenden Befehl aus, um Ihr Zertifikat zu erstellen. Dieser Beispielbefehl erstellt ein Zertifikat für die angepassten Domänen example.com und www.example.com. Achten Sie darauf, den Befehl für Ihre eigene angepasste Domäne zu aktualisieren.

    certbot certonly --manual --preferred-challenges dns --email webmaster@example.com --server https://acme-v02.api.letsencrypt.org/directory --agree-tos --domain example.com --domain www.example.com
    
  3. Um sicherzustellen, dass Sie Eigner der Domäne sind, legen Sie einen TXT-Datensatz mit Ihrem Domänenregistrator für die Domänen fest, die Sie im vorherigen Schritt mit Werten angefordert haben, die mit der Ausgabe des Certbot-Tools bereitgestellt wurden, z. B. _acme_challenge.example.com und _acme_challenge.ww.example.com. Fahren Sie nach dem Festlegen des TXT-Datensatzes mit dem Certbot-Befehl fort.

  4. Certbot ruft das von Let' s Encrypt signierte Zertifikat ab. Die Position, an der das Zertifikat gespeichert wird, wird von der Certbot-Ausgabe bereitgestellt. Suchen Sie die Dateien fullchain.pem und privkey.pem.

Geheimen TLS-Schlüssel erstellen

Erstellen Sie einen geheimen TLS-Schlüssel, um Ihr Zertifikat in Code Enginezu speichern.

  1. Klicken Sie auf der Seite Code Engine Projekte auf den Namen eines der von Ihnen erstellten Projekte.
  2. Wählen Sie Secrets und configmaps.
  3. Klicken Sie auf Erstellen.
  4. Klicken Sie auf Geheimer TLS-Schlüssel.
  5. Geben Sie global-tls als Namen ein.
  6. Kopieren Sie den Inhalt der Datei fullchain.pem in das Feld Zertifikatskette.
  7. Kopieren Sie den Inhalt der Datei privkey.pem in das Feld Privater Schlüssel.
  8. Klicken Sie auf Erstellen.
  9. Wiederholen Sie diese Schritte, um einen geheimen TLS-Schlüssel in jedem Projekt zu erstellen, das Sie zuvor erstellt haben.

Weitere Informationen finden Sie unter Mit geheimen Schlüsseln arbeiten.

Angepasste Domänenzuordnungen konfigurieren

Konfigurieren Sie nach der Bereitstellung Ihrer Apps eine angepasste Domänenzuordnung für sie.

  1. Klicken Sie auf der Seite Code Engine Projekte auf den Namen eines der von Ihnen erstellten Projekte.
  2. Anwendungen auswählen.
  3. Wählen Sie Ihre global-app-Anwendung aus.
  4. Wählen Sie Domänenzuordnungen aus.
  5. Wählen Sie Öffentlich für Ihre Sichtbarkeit aus.
  6. Klicken Sie auf Erstellen, um eine angepasste Domänenzuordnung zu erstellen.
  7. Klicken Sie auf Auswählen, um einen vorhandenen geheimen TLS-Schlüssel auszuwählen, und wählen Sie global-tls aus.
  8. Geben Sie Ihren vollständig qualifizierten Domänennamen ein, z. B. www.example.com.
  9. Notieren Sie den Zielwert CNAME. Sie benötigen diesen Wert, um das Routing für Ihre Domäne in CISeinzurichten.
  10. Überprüfen Sie, ob der App-Name global-app lautet.
  11. Klicken Sie auf Erstellen.
  12. Wiederholen Sie diese Schritte, um eine angepasste Domänenzuordnung für jede erstellte Anwendung zu erstellen.

Statusprüfung konfigurieren

Wenn Sie Ihre Anwendungen erstellt haben, setzen Sie die Mindestanzahl der Instanzen auf 1. Da in jeder Region immer eine Instanz Ihrer App ausgeführt wird, können Sie über Ihre CIS-Instanz eine Statusprüfung einrichten, um die Verfügbarkeit von Pools zu überwachen. Durch das Einrichten einer Statusprüfung wird der Datenverkehr immer an eine aktive Instanz weitergeleitet, wodurch Ihre App hoch verfügbar wird.

  1. Navigieren Sie in Ihrer CIS-Instanz zu Zuverlässigkeit > Globale Lastausgleichsfunktionen > Statusprüfungen.
  2. Klicken Sie auf Erstellen.
  3. Benennen Sie Ihre Statusprüfung mit dem Namen Ihrer Anwendung: global-app.
  4. Setzen Sie den Monitortyp auf HTTPS und den Port auf 443.
  5. Übernehmen Sie die Standardeinstellungen für die übrigen Optionen. Wenn Sie eine andere App als die codeengine/helloworld-App verwenden, passen Sie alle Optionen an, die für Ihre App erforderlich sind.
  6. Klicken Sie auf Erstellen.

Weitere Informationen finden Sie unter Statusprüfungen einrichten.

Cloud Internet Services (CIS)-Lastausgleichsfunktion konfigurieren

Wenn Ihre angepassten Domänenzuordnungen den Status Ready aufweisen, konfigurieren Sie die Cloud Internet Services (CIS)-Lastausgleichsfunktion für Ihren globalen Anwendungsendpunkt. Weitere Informationen finden Sie im Thema Globale Lastausgleichsfunktion konfigurieren.

  1. Navigieren Sie in der Konsole von Cloud Internet Services (CIS) zur Seite für 'Zuverlässigkeit'.

  2. Wählen Sie die Option für Ursprungspools aus und klicken Sie auf Erstellen.

    1. Nennen Sie Ihren Pool global-app-au-syd.
    2. Setzen Sie die Ursprungsadresse auf das CNAME-Ziel Ihrer Domänennamenszuordnung.
    3. Setzen Sie den Host-Header auf Ihren Domänennamen.
    4. Wählen Sie unter Statusprüfung die Option Vorhandene Statusprüfung und anschließend global-app aus.
    5. Klicken Sie auf Speichern.
    6. Wiederholen Sie diese Schritte für alle Regionen, die Ihre bereitgestellte App enthalten. Ändern Sie den Namen so, dass er der Zielregion entspricht. Beispiel: global-app-de-eu und global-app-br-sao.
  3. Wählen Sie die Option für Lastausgleichsfunktionen aus und klicken Sie auf Erstellen.

    1. Benennen Sie Ihre Lastausgleichsfunktion. Beachten Sie, dass dieser Name in Ihrer benutzerdefinierten Domain URL erscheint. Wenn Ihre benutzerdefinierte Domäne zum Beispiel global-app.example.com ist und Sie Ihren Load Balancer global-app nennen, ist Ihr URL global-app.example.com.
    2. Setzen Sie Traffic steering auf Geo.
    3. Fügen Sie Ihre Geo-Routen hinzu. Sie können eine Route für alle CIS-Regionen oder nur für einige Regionen erstellen.
      • Wenn Sie eine Route für alle CIS-Regionen erstellen, fügen Sie in jeder erstellten Route alle Ursprungspools hinzu, die Sie zuvor erstellt haben. Sortieren Sie sie so, dass eine Region, die Ihre aktive App enthält und der Regionsroute, die Sie konfigurieren, am nächsten ist. Wenn Sie beispielsweise Apps in au-syd, eu-de und br-sao erstellt haben, müssen Sie für Oceana zuerst au-syd angeben. Für Ost-und Westeuropa stellen Sie de-eu an die erste Stelle. Stellen Sie für Nord-und Südamerika br-sao an die erste Stelle.
      • Wenn Sie eine Route nur für einige CIS-Regionen erstellen, fügen Sie eine Route für die Standardregion hinzu. Diese Route ist die Rückübertragung, die verwendet wird, wenn eine angegebene Region nicht verfügbar ist.
    4. Klicken Sie auf Erstellen, um den Load Balancer zu erstellen.

Überprüfen Sie, ob Ihre Anwendung verfügbar ist

Öffnen Sie einen Browser und geben Sie Ihren Namen für die Lastausgleichsfunktion sowie Ihren angepassten Domänennamen ein. Beispiel: www.global-app.example.com

Jetzt sind Ihre Anwendungen hoch verfügbar.

Lernprogramm bereinigen

  1. Löschen Sie die globalen Lastausgleichsfunktionen und Ursprungspools aus CIS.
  2. Löschen Sie Ihre DNS-Datensätze aus CIS. Weitere Informationen finden Sie unter DNS-Datensätze löschen.
  3. Löschen Sie jedes von Ihnen erstellte Projekt. Wenn Sie ein Projekt löschen, werden alle in diesem Projekt enthaltenen Komponenten ebenfalls gelöscht. Weitere Informationen finden Sie unter Projekt löschen.

Beachten Sie, dass Ihre angepasste Domäne nicht gelöscht, aber nicht mehr der von Ihnen erstellten Anwendung zugeordnet ist.