Notfallwiederherstellung mit Umgebungs-Snapshots

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

Auf dieser Seite wird beschrieben, wie Sie Umgebungs-Snapshots für Notfallwiederherstellung.

Definitionen

In diesem Leitfaden werden die folgenden Definitionen verwendet:

  • Ein Notfall ist ein Ereignis, bei dem Cloud Composer oder andere Komponenten die für den Betrieb Ihrer Umgebung wichtig sind, nicht verfügbar sind. Dieser Termin erfordert einen Failover auf eine andere Region und Cloud Composer Umgebungen. Eine Katastrophe kann natürlich oder von Menschen verursacht worden sein. einschließlich Ausfallzeiten von Google Cloud-Regionen und eigenen Ausfällen und Infrastruktur.
  • Die Notfallwiederherstellung ist im Kontext von Cloud Composer ein Wiederherstellung der Umgebung nach einem Notfall. Die Die Umgebung muss reproduziert werden, gegebenenfalls in einer anderen Region. Weitere Informationen zur Notfallwiederherstellung finden Sie unter Leitfaden zur Planung der Notfallwiederherstellung
  • Die primäre Umgebung ist eine Cloud Composer-Umgebung, die Sie eine DR-Funktion aktivieren möchten.
  • Die Failover-Umgebung ist eine Cloud Composer-Umgebung, um Aktivitäten aus der primären Umgebung zu übernehmen.
  • Ein Warm-DR-Szenario ist eine Variante der Notfallwiederherstellung, bei der Sie einen Standby-Modus verwenden. eine Failover-Umgebung erstellen, die vor einem Notfall erstellt wird.
  • Ein Kaltes DR-Szenario ist eine Variante der Notfallwiederherstellung, bei der Sie eine Failover-Umgebung nach einem Notfall.
  • Die regionenübergreifende Notfallwiederherstellung ist eine Variante der warmen oder kalten Notfallwiederherstellung, bei der primäre und die Failover-Umgebung befinden sich in verschiedenen Regionen.

Informationen zum Notfallwiederherstellungsverfahren

Das Notfallwiederherstellungsverfahren behebt das Problem, wenn Ihre primäre die Umgebung nicht mehr funktioniert (defekt oder anderweitig nicht zugänglich), bei einer Katastrophe.

Bei diesem Verfahren wird davon ausgegangen, dass Ihre primäre Umgebung nicht repariert wird. zur Bekämpfung der Katastrophe. Stattdessen erstellen Sie eine zweite (Failover) Umgebung nebeneinander. Diese Umgebung wird anstelle der primären Umgebung zu verbessern. Später können Sie zur primären Version zurückkehren. oder die Failover-Umgebung weiterhin nutzen.

Da das Verfahren eine Failover-Umgebung verwendet, werden Änderungen eingeführt. wenn Sie von der primären Umgebung wechseln. Änderungen zwischen Primär- und Folgendes enthält die Failover-Umgebung (die Liste ist nicht vollständig):

  • die andere Webserver-URL. Dadurch wird die Adresse des Airflow-UI und der Airflow-REST API-Endpunkt

  • Die Bucket-URL der Umgebung wird sich unterscheiden.

  • Die Konfiguration der Netzwerk- und Zugriffsberechtigungen muss möglicherweise angepasst werden.

Wenn Sie das warme DR-Szenario verwenden, kennen Sie die Werte für den Webserver, Bucket-Adressen der Umgebung und die Netzwerkkonfiguration im Voraus.

Hinweise

  • Cloud Composer unterstützt geplante Snapshots in Version 2.0.32 und höher. Umgebungs-Snapshots werden in Version 2.0.9 und höher unterstützt.

Vorbereitungsübersicht

Beide DR-Szenarien umfassen die folgenden Vorbereitungsschritte:

  1. Failover-Umgebung erstellen

    • Beim Warm-DR-Szenario halten Sie diese Umgebung verfügbar.
    • Im kalten DR-Szenario erstellen Sie diese Umgebung nur, um Disaster Recovery-Verfahren. Nach Abschluss der Vorbereitung Umgebung löschen und nach einem Notfall neu erstellen.
  2. Bucket für Snapshots erstellen

    • Der Bucket muss in der DR-Region verfügbar sein. Für die regionsübergreifende Notfallwiederherstellung Snapshot-Bucket muss entweder multiregional sein oder sich in einem sich in einer anderen Region befindet als die primäre Umgebung.

    • Prüfen Sie, ob DAGs auf regionale Ressourcen zugreifen können.

  3. Datenbankwartung einrichten

  4. Geplante Snapshots einrichten

  5. Testen Sie Ihr Notfallwiederherstellungsverfahren.

Notfallwiederherstellung

Nach einem Notfall:

  1. (Nur kalte Notfallwiederherstellung) Erstellen Sie eine Failover-Umgebung.
  2. Beenden Sie nach Möglichkeit die Ausführung von DAGs in der primären Umgebung.
  3. Einen Snapshot vom Snapshot-Bucket in das Failover laden zu verbessern.
  4. Falls erforderlich: Konfiguration der Failover-Umgebung anpassen
  5. Entscheiden Sie, was mit der primären Umgebung geschehen soll.

Vorbereitungsschritte

Führen Sie die unten beschriebenen Schritte aus, um die Notfallwiederherstellung für Ihre Umgebung einzurichten.

Failover-Umgebung erstellen

Umgebung erstellen, die als Failover-Umgebung dient

Beachten Sie folgende Richtlinien:

  • Ihre primäre und Failover-Umgebung muss dieselbe Version von Cloud Composer und Airflow.

  • Bei einem warmen DR-Szenario sollten Sie Aktualisieren und Führen Sie ein Upgrade für beide Umgebungen gleichzeitig aus. Wenn Sie beispielsweise Upgrade der primären Umgebung auf eine neuere Cloud Composer-Umgebung durchführen oder PyPI-Pakete installieren, muss auch Ihre Failover-Umgebung die diese Änderungen haben.

  • Wir empfehlen, die Failover-Umgebung in einer anderen Region als der Primärumgebung. Dies hat zur Folge, dass mehr und mehr Szenarien abgedeckt werden, wie etwa eine Katastrophe, die die Verfügbarkeit der gesamten Region.

  • Wir empfehlen, Terraform zum Erstellen einer primären Instanz und eines Failovers zu verwenden damit beide eine einheitliche Konfiguration haben. Stellen Sie sicher, dass Terraform-Definitionen für primäre und Failover-Umgebungen sind synchronisiert.

  • Die Konfiguration der Failover-Umgebung (z. B. Umgebungsgröße, Anzahl der Planer und IAM-Berechtigungen) wird empfohlen. um der Konfiguration der primären Umgebung zu entsprechen. IAM-Berechtigungen für beide Umgebungen müssen Zugriff auf Nutzer und Snapshots.

Ressourcenverfügbarkeit prüfen

DAGs können auf externen Ressourcen ausgeführt werden. Der Zugriff auf diese Ressourcen ist möglicherweise von der Konfiguration der Umgebung abhängig (z. B. Berechtigungen, das Dienstkonto, die Netzwerkkonfiguration oder das Projekt der Umgebung). Marke um sicherzustellen, dass diese Ressourcen für die Failover-Umgebung verfügbar sind.

Eine Umgebung interagiert möglicherweise über in Airflow gespeicherte Verbindungen. Prüfen ob diese Ressourcen in der Failover-Umgebung der primären Umgebung.

Storage-Bucket für Snapshots erstellen

Erstellen Sie einen neuen Storage-Bucket für Umgebungs-Snapshots. Verwenden Sie keine Umgebungs-Buckets für die Notfallwiederherstellung, da die Konfiguration für Die Aufbewahrungsrichtlinie und der Lebenszyklus werden auf Bucket-Ebene angewendet.

Achten Sie darauf, dass dieser Storage-Bucket IAM-Berechtigungen hat, Aufbewahrungsrichtlinie und eine Lebenszykluskonfiguration so festgelegt sind, dass versehentlichem Löschen oder unbefugtem Zugriff. Weitere Informationen zu Konfigurieren eines Buckets für Snapshots finden Sie unter Geplante Snapshots konfigurieren

Sie haben folgende Möglichkeiten:

  • Erstellen Sie einen Bucket in einer anderen Region.
  • Erstellen Sie einen multiregionalen Bucket.

Datenbankwartung einrichten

Halten Sie die Airflow-Metadatendatenbank klein, indem Sie den DAG für Datenbankwartung Dadurch wird das Speichern und Schnappschüsse schneller laden. Die Airflow-Metadatendatenbank muss weniger als 20 GB an Daten, um Snapshots zu unterstützen.

Geplante Snapshots einrichten

Richten Sie geplante Snapshots für die primäre Instanz ein. zu verbessern.

Snapshots können nur in einer fehlerfreien Umgebung erstellt werden. Deshalb müssen Snapshots vor der Katastrophe gespart werden.

Weitere Informationen zur Funktionsweise von Snapshots Umgebungs-Snapshots speichern und laden Weitere Informationen finden Sie in der Bereich Umgebungs-Snapshot speichern des in der Dokumentation mit Informationen dazu, wo Sie die gespeicherten Snapshots finden.

(Optional) Monitoring für geplante Snapshot-Vorgänge einrichten

Bei geplanten Snapshots mit einer Häufigkeit von mindestens einmal alle 12 Stunden können Sie sich mit Cloud Monitoring benachrichtigen lassen, wenn ein Snapshot nicht automatisch erstellt wird.

Bei Zeitplänen mit geringerer Häufigkeit verwenden Sie die Google Cloud CLI, um die Ergebnisse von Snapshot-Vorgängen zu prüfen. Siehe Speichern von Snapshot-Vorgängen überprüfen.

  1. Rufen Sie in der Google Cloud Console die Seite Monitoring auf.

    Zu Monitoring

  2. Wählen Sie im Navigationsbereich „Monitoring“ die Option Benachrichtigungen aus.
  3. Wenn Sie keine Benachrichtigungskanäle erstellt haben und Benachrichtigungen erhalten möchten, klicken Sie auf Benachrichtigungskanäle bearbeiten und fügen Sie Benachrichtigungskanäle hinzu. Kehren Sie nach dem Hinzufügen der Kanäle zur Seite Benachrichtigungen zurück.
  4. Klicken Sie auf der Seite Benachrichtigungen auf Richtlinie erstellen.
  5. Maximieren Sie zum Auswählen des Messwerts das Menü Messwert auswählen und gehen Sie dann so vor:
    1. Um das Menü auf relevante Einträge zu beschränken, geben Sie in die Filterleiste Composer Snapshot ein. Wenn nach dem Filtern des Menüs keine Ergebnisse angezeigt werden, deaktivieren Sie die Option Nur aktive Ressourcen und Messwerte anzeigen.
    2. Wählen Sie als Ressourcentyp die Option Cloud Composer-Umgebung aus.
    3. Wählen Sie unter Messwertkategorie die Option Umgebung aus.
    4. Wählen Sie als Messwert die Option Anzahl der Snapshot-Erstellung aus.
    5. Klicken Sie auf Apply (Anwenden).
  6. Klicken Sie auf Filter hinzufügen und fügen Sie über die Drop-down-Menüs die folgenden Filter hinzu:
    Filter Vergleichsoperator Wert
    Ressourcenlabel > environment_name = Der Name der Umgebung, in der Sie geplante Snapshots überwachen möchten.
    Monitor-Label > Ergebnis = SUCCEEDED
  7. Legen Sie im Abschnitt Daten transformieren die folgenden Attribute fest: <ph type="x-smartling-placeholder">
      </ph>
    • Wählen Sie unter Rollierendes Zeitfenster das Monitoringfenster für diese Benachrichtigung aus. Dieser Wert wirkt sich auf die Konfiguration des Grenzwerts im nächsten Schritt aus.

      Empfohlener Wert für das geplante Snapshot-Monitoring: 1 Tag.

    • Wählen Sie für Funktion für rollierendes Fenster die Option Delta aus.
  8. Klicken Sie auf Weiter.
  9. Die Einstellungen auf der Seite Benachrichtigungstrigger konfigurieren bestimmen, wann die Benachrichtigung ausgelöst wird. Vervollständigen Sie diese Seite mit den Einstellungen aus der folgenden Tabelle.
    Feld Wert
    Condition type Threshold
    Alert trigger Any time series violates
    Threshold position Below threshold
    Threshold value Die Anzahl der geplanten Snapshots, die voraussichtlich gespeichert werden innerhalb des als rollenden Fenster konfigurierten Zeitraums für die Benachrichtigung.

    Berechnen Sie diesen Wert mithilfe der folgenden Formel:

    (rolling window in hours / schedule frequency in hours) - 1

    Hinweis:1 Stunde in der Formel werden abgezogen unterschiedlichen Fertigstellungszeiten von Snapshots zu berücksichtigen. So verhindern Sie, Fehlalarme auslösen, wenn der neueste Snapshot noch ausgeführt wird während der Überwachung.

    Beispiel:
    Wenn Sie das empfohlene rollierende Zeitfenster von 1 Tag verwenden, und die geplante Häufigkeit einmal alle 2 Stunden festgelegt ist, legen Sie diesen Wert auf 11 fest (gemäß Berechnung: 24 / 2 - 1 = 11).

    Wenn Ihr Zeitplan korrekt ausgeführt wird, sollte mindestens 11 Snapshots haben. Andernfalls wurde ein Snapshot-Vorgang nicht abgeschlossen. Cloud Monitoring löst diese Benachrichtigung aus.

    Condition name Ihr benutzerdefinierter Name für die Bedingung.
  10. Klicken Sie auf Weiter.
  11. Optional: Klicken Sie auf Benachrichtigungskanäle, um Benachrichtigungen zu Ihrer Benachrichtigungsrichtlinie hinzuzufügen. Wählen Sie im Dialogfeld einen oder mehrere Benachrichtigungskanäle aus dem Menü aus und klicken Sie dann auf OK.
  12. Optional: Aktualisieren Sie die Dauer bis zur automatischen Schließung von Vorfällen. Dieses Feld bestimmt, wann Monitoring Vorfälle ohne Messwertdaten schließt.
  13. Optional: Klicken Sie auf Dokumentation und geben Sie alle Informationen ein, die in einer Benachrichtigung angezeigt werden sollen.
  14. Klicken Sie auf Name der Benachrichtigung und geben Sie einen Namen für die Benachrichtigungsrichtlinie ein.
  15. Klicken Sie auf Richtlinie erstellen.
Weitere Informationen finden Sie unter Einführung in Benachrichtigungen.

Notfallwiederherstellung testen

Testen Sie das Verfahren zur Notfallwiederherstellung, nachdem Sie es eingerichtet haben, regelmäßig. So können Sie potenzielle Probleme auf den Notfallwiederherstellungsprozess auswirken.

Im kalten DR-Szenario können Sie die Failover-Umgebung löschen, den Test der Notfallwiederherstellung abschließen.

Snapshot-Speichervorgänge prüfen

Sie können die Google Cloud CLI verwenden, um die Liste Snapshot speichern abzurufen. und prüfen, ob die Snapshots für die Notfallwiederherstellung bereit sind Szenarien durchführen.

Diese Methode ist nützlich, wenn Sie Snapshots seltener als mindestens einmal pro 12 Stunden. Wenn Sie häufiger Snapshots überprüfen möchten, die häufiger gespeichert werden, konfigurieren Sie am besten Cloud Monitoring-Benachrichtigungen Weitere Informationen finden Sie unter Monitoring für geplante Snapshot-Vorgänge einrichten

gcloud

Listen Sie alle Snapshot-Vorgänge für eine bestimmte Umgebung auf. Die vollständige Befehlsreferenz finden Sie unter gcloud composer operations list:

gcloud composer operations list \
    --locations LOCATION \
    --filter="metadata.operationType=SAVE_SNAPSHOT AND 
    metadata.resource=projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_ID"
    --format yaml

Ersetzen Sie:

  • LOCATIONS durch die Liste der Regionskennungen, in denen sich die Umgebung befindet gelegen
  • PROJECT_ID durch die ID des Projekts, in dem sich die Umgebung befindet.
  • ENVIRONMENT_ID durch die ID der Umgebung, in der Sie Snapshot-Vorgänge prüfen möchten

Beispiel:

gcloud composer operations list \
    --locations us-central1 \
    --filter="metadata.operationType=SAVE_SNAPSHOT AND 
    metadata.resource=projects/my-project/locations/us-central1/environments/my-environment"
    --format yaml

Nach einem Notfall

Führen Sie nach einem Notfall die unten beschriebenen Schritte aus, um Ihre primäre zu verbessern.

(Nur kalte Notfallwiederherstellung) Failover-Umgebung erstellen

Folgen Sie der Anleitung im Abschnitt Failover-Umgebung erstellen.

Ausführung von DAGs in der primären Umgebung beenden

Beenden Sie nach Möglichkeit die Ausführung von DAGs in der primären Umgebung:

  • Wenn die primäre Umgebung noch zugänglich ist, Pausieren Sie alle DAGs.
  • Wenn auf den Bucket der primären Umgebung zugegriffen werden kann, verschieben Sie alle DAGs aus dem im Bucket der Umgebung oder in einen Ordner außerhalb von /dags in der primären Instanz im Bucket der Umgebung.

Snapshot in die Failover-Umgebung laden

Snapshot aus der primären Umgebung laden in die Failover-Umgebung ein.

Sobald der Snapshot in die Failover-Umgebung geladen wurde, Aufgaben so ausführen, als wäre nichts in der primären Umgebung ausgeführt worden, nachdem Erstellen eines Snapshots Einige dieser Aufgaben die in der primären Umgebung ausgeführt werden. Die Failover-Umgebung hat keine Sie erkennen, welche Aufgaben nach dem Erstellen des Snapshots ausgeführt wurden. und vor einer Katastrophe. Daher werden einige Aufgaben möglicherweise zweimal ausgeführt (in beiden der primären und der Failover-Umgebung). Wir empfehlen, dass alle Aufgaben idempotent sind und die geplanten Snapshots alle zwei Stunden erstellt.

(Falls erforderlich) Konfiguration der Failover-Umgebung anpassen

In einigen Fällen möchten Sie möglicherweise die Konfiguration des Failovers ändern. nachdem Sie den Snapshot der primären Umgebung geladen haben.

Bei einem kalten DR-Szenario müssen Sie beispielsweise Airflow-Umgebungsvariablen in der Failover-Umgebung. Als weiteres Beispiel Bei einem warmen DR-Szenario müssen Sie Nutzern möglicherweise Berechtigungen in der Airflow-UI, damit sie auf die Failover-Umgebung zugreifen können.

Sie können diese Änderungen entweder manuell vornehmen oder ein Shell-Skript mit , die die Konfiguration der Failover-Umgebung ändern, indem sie Folgendes ausführen: gcloud composer environment update-Befehle.

Entscheiden Sie, was mit der primären Umgebung geschehen soll

Es kann zu Katastrophen kommen, weil die primäre Umgebung nicht erreichbar ist. funktioniert aber nicht ordnungsgemäß. Sie können beispielsweise nicht Sie greifen aufgrund einer Infrastruktur über das Netzwerk auf die primäre Umgebung zu. Fehler. Ein weiteres Beispiel: Die Umgebung funktioniert mit einigen Fehlern oder mit reduzierte Kapazität, aber einige DAGs werden trotzdem ausgeführt.

Wenn die ursprüngliche Umgebung noch ausgeführt wird, Kosten generieren, die direkt mit Cloud Composer oder anderen Diensten in Verbindung stehen über die DAGs aufgerufen werden kann, obwohl eine neue Umgebung als . In dieser Umgebung können noch einige DAGs ausgeführt werden. Daher werden einige Vorgänge können zweimal ausgeführt werden: in der primären Umgebung, die noch nach dem Laden des Snapshots in der Failover-Umgebung ausgeführt wird.

Wenn die primäre Umgebung vorhanden ist, aber nicht ordnungsgemäß funktioniert

Die primäre Umgebung kann gelöscht werden, wenn alle relevanten Daten wiederhergestellt wurden. Für möchten Sie vielleicht die Daten, die nicht in den Umgebungs-Snapshots enthalten sind, z. B. die Netzwerkkonfiguration oder den Inhalt der Bucket außerhalb der Ordner /dags und /plugins.

Wenn die primäre Umgebung wieder zugänglich und fehlerfrei wird

Wenn die primäre Umgebung nur vorübergehend nicht zugänglich war und wieder barrierefrei zugänglich sind, können Sie einen Ansatz wählen:

  • Failover-Umgebung weiterhin verwenden
  • Kehren Sie zur primären Umgebung zurück.

So verwenden Sie die Failover-Umgebung weiterhin:

  1. Wenn die primäre Umgebung weiterhin DAGs ausführt, pausieren Sie sie, sobald möglich.
  2. Stellen Sie sicher, dass alle relevanten Daten wiederhergestellt wurden, und löschen Sie dann die primäre zu verbessern.
  3. Wiederholen Sie die Schritte zur Vorbereitung der Notfallwiederherstellung für die Failover-Umgebung, z. B. das Festlegen geplante Snapshots erstellen.

So kehren Sie zur primären Umgebung zurück:

  1. Halten Sie alle DAGs in der Failover-Umgebung an.
  2. Warten Sie, bis alle DAG-Ausführungen in der Failover-Umgebung abgeschlossen sind, oder beenden Sie sie.
  3. Snapshot der Failover-Umgebung speichern
  4. Laden Sie diesen Snapshot in die primäre Umgebung.
  5. Heben Sie die Pausierung der DAGs in der primären Umgebung auf.
  6. Löschen Sie bei Bedarf die Failover-Umgebung.

Nächste Schritte