Wie entkopple ich eine Amazon RDS-Instance von einer Elastic Beanstalk-Umgebung ohne Ausfallzeiten, Probleme mit der Datenbanksynchronisierung oder Datenverlust?

Lesedauer: 6 Minute
0

Ich habe eine Amazon Relational Database Service (Amazon RDS) DB-Instance, die an meine AWS Elastic Beanstalk-Umgebung angehängt ist. Ich möchte Ausfallzeiten, Probleme mit der Datenbanksynchronisierung und Datenverlust vermeiden, wenn ich die Abhängigkeiten zwischen der Instance und der Umgebung entferne.

Kurzbeschreibung

Das folgende Verfahren entkoppelt Ihre Datenbank von einer Elastic Beanstalk-Umgebung und hat keinen Einfluss auf den Zustand der Umgebung:

  1. Erstellen Sie einen Amazon RDS-DB-Snapshot.
  2. Schützen Sie Ihre RDS-DB-Instance vor Löschung.
  3. Erstellen Sie eine neue Elastic Beanstalk-Umgebung.
  4. Führen Sie eine Blau/Grün-Bereitstellung durch.
  5. Aktualisieren Sie die Richtlinie zum Löschen von Datenbanken für die alte Umgebung.
  6. Entkoppeln Sie die RDS-Instance von der alten Umgebung.
  7. Beenden Sie die alte Umgebung.

**Wichtig:**Es empfiehlt sich, eine RDS-DB-Instance nur in Entwicklungs- und Testumgebungen an eine Elastic Beanstalk-Umgebung anzuhängen. In der Produktionsumgebung ist der Lebenszyklus der Datenbank-Instance an den Lebenszyklus Ihrer Anwendungsumgebung gebunden. Daher ist es eine bewährte Methode, die RDS-DB-Instance nicht an eine Elastic Beanstalk-Umgebung in einer Produktionsumgebung anzuhängen. Wenn Sie die Umgebung beenden, verlieren Sie Ihre Daten, weil die DB-Instance von der Umgebung gelöscht wird. Weitere Informationen finden Sie unter Elastic Beanstalk mit Amazon RDS verwenden.

Behebung

Erstellen einer DB-Snapshot Ihrer Instance

Gehen Sie wie folgt vor, um einen DB-Snapshot Ihrer Instance zu erstellen:

  1. Öffnen Sie die Elastic Beanstalk-Konsole.
  2. Erstellen Sie Ihre Elastic Beanstalk-Umgebung.
  3. Kopieren Sie die Umgebungs-ID.
  4. Öffnen Sie die Amazon-RDS-Konsole.
  5. Wählen Sie im Navigationsbereich Datenbanken aus.
  6. Geben Sie die Umgebungs-ID in das Suchfeld ein und wählen Sie dann die Datenbank aus.
  7. Erstellen Sie einen DB-Snapshot.

Ihre DB-Instance vor dem Löschen schützen

Gehen Sie wie folgt vor, um Ihre DB-Instance vor Löschung zu schützen:

  1. Öffnen Sie die Amazon-RDS-Konsole.
  2. Wählen Sie im Navigationsbereich Datenbanken aus.
  3. Wählen Sie Ihre Datenbank aus und wählen Sie dann Ändern aus.
  4. Wählen Sie unter Löschschutz die Option Löschschutz aktivieren aus und wählen Sie dann Weiter aus.
  5. Wählen Sie für Änderungen terminieren die Option Sofort anwenden und dann Cluster ändern aus.
  6. Aktualisieren Sie die Amazon RDS-Konsole und stellen Sie dann sicher, dass der Löschschutz aktiviert ist.

Erstellen einer neuen Elastic Beanstalk-Umgebung

**Hinweis:**Ihre neue Elastic Beanstalk-Umgebung darf keine DB-Instance enthalten.

Gehen Sie wie folgt vor, um eine neue Elastic Beanstalk-Umgebung zu erstellen:

  1. Erstellen Sie eine neue Elastic Beanstalk-Umgebung.
  2. Verbinden Sie die neue Elastic Beanstalk-Umgebung mit der vorhandenen DB-Instance der alten Elastic Beanstalk-Umgebung. Weitere Informationen finden Sie unter Starten und Herstellen einer Verbindung zu einer externen Amazon RDS-Instance in einer standardmäßigen Virtual Private Cloud (VPC).
  3. Stellen Sie sicher, dass die neue Umgebung eine Verbindung zur vorhandenen DB-Instance herstellt und dass Ihre Anwendung ordnungsgemäß funktioniert.

Führen Sie eine Blau/Grün-Bereitstellung durch, um Ausfallzeiten zu vermeiden

**Hinweis:**Um später eine Blau/Grün-Bereitstellung oder einen CNAME-Swap durchzuführen, müssen beide Elastic Beanstalk-Umgebungen Teil derselben Anwendung sein.

Gehen Sie wie folgt vor, um eine Blau/Grün-Bereitstellung durchzuführen:

  1. Öffnen Sie die Elastic Beanstalk-Konsole für die neue Umgebung.
  2. Tauschen Sie die Umgebungs-URLs der alten und neuen Elastic Beanstalk-Umgebungen aus. Weitere Informationen finden Sie unter Blau/Grün-Bereitstellungen mit Elastic Beanstalk.
  3. Stellen Sie sicher, dass die URL der neuen Umgebung reagiert und dass Ihre Anwendung ordnungsgemäß funktioniert.

**Wichtig:**Beenden Sie die alte Elastic Beanstalk-Umgebung erst, nachdem die DNS-Änderungen weitergegeben wurden und Ihre alten DNS-Einträge abgelaufen sind. Es kann bis zu 48 Stunden dauern, bis DNS-Einträge ablaufen. DNS-Server löschen alte Einträge nicht aus ihrem Cache, basierend auf der Time to Live (TTL), die Sie in Ihren DNS-Einträgen festgelegt haben.

Aktualisieren der Richtlinie zum Löschen von Datenbanken für die alte Umgebung

Führen Sie die folgenden Schritte aus, um die Richtlinie zum Löschen der Datenbank für die alte Umgebung zu aktualisieren:

  1. Öffnen Sie die Elastic Beanstalk-Konsole für die alte Umgebung.
  2. Wählen Sie im Navigationsbereich Konfiguration aus.
  3. Wählen Sie unter Netzwerk und Datenbank die Option Bearbeiten aus.
  4. Stellen Sie unter Datenbankeinstellungen die Richtlinie zum Löschen von Datenbanken auf Beibehalten ein.
  5. Wählen Sie Anwenden aus. Das Speichern der Konfigurationsänderung dauert einige Minuten.

**Wichtig:**Fahren Sie erst mit dem nächsten Schritt fort, nachdem die Änderung der Richtlinie zum Löschen der Datenbank auf die alte Umgebung angewendet wurde.

Entkoppeln der RDS-Instance von der alten Umgebung

Führen Sie die folgenden Schritte aus, um die RDS-Instance von der alten Umgebung zu entkoppeln:

  1. Öffnen Sie die Elastic Beanstalk-Konsole für die alte Umgebung.
  2. Wählen Sie im Navigationsbereich Konfiguration aus.
  3. Wählen Sie unter Netzwerk- und Datenbankkonfiguration die Option Bearbeiten aus.
  4. Stellen Sie unter Datenbankeinstellungen sicher, dass die Richtlinie zum Löschen von Datenbanken auf Beibehalten gesetzt ist.
  5. Gehen Sie zum Abschnitt Datenbankverbindung und wählen Sie Datenbank entkoppeln.
  6. Wählen Sie Anwenden aus.

**Hinweis:**Wenn die Datenbank entkoppelt wird, bleibt die Datenbank betriebsbereit. Das Entkoppeln einer Datenbank dauert in der Regel weniger als 5 Minuten.

Beenden Sie die alte Umgebung

Nachdem Sie die Funktionalität der neuen Umgebung überprüft haben, beenden Sie die alte Elastic Beanstalk-Umgebung.

Wenn Sie die Umgebung beenden, werden alle Elastic Beanstalk-Ressourcen gelöscht, mit Ausnahme der DB-Instance und der RDS-Sicherheitsgruppe, die von Elastic Beanstalk erstellt wurden. Wenn Sie eine RDS-Instance als Teil einer Elastic Beanstalk-Umgebung mit Lastenausgleich erstellen, erstellt Elastic Beanstalk eine Elastic Load Balancing (ELB) -Sicherheitsgruppe. Elastic Beanstalk erstellt außerdem eine Amazon Elastic Compute Cloud (Amazon EC2)-Sicherheitsgruppe, die an die EC2-Instances in der Umgebung angehängt wird. Und Elastic Beanstalk erstellt eine RDS-Sicherheitsgruppe, die an die RDS-Instance angehängt wird. Um eingehenden Datenverkehr an Port 3306 von der EC2-Sicherheitsgruppe zuzulassen, fügt Elastic Beanstalk der RDS-Sicherheitsgruppe eine Regel für eingehenden Sicherheitsgruppen hinzu.

Wenn Sie die Datenbank entkoppeln, entfernt Elastic Beanstalk die Regel für eingehenden Sicherheitsgruppenverkehr nicht. Diese Regel für eingehende Sicherheitsgruppen verweist auf die EC2-Sicherheitsgruppe aus der RDS-Sicherheitsgruppe, die Elastic Beanstalk erstellt hat. Wenn Sie die Umgebung beenden, kann Elastic Beanstalk die Umgebung nicht beenden, da die entkoppelte RDS-Sicherheitsgruppe immer noch auf die EC2-Sicherheitsgruppe verweist.

Führen Sie die folgenden Schritte aus, um die Elastic Beanstalk-Umgebung zu beenden:

  1. Öffnen Sie die Elastic Beanstalk-Konsole für die alte Umgebung.
  2. Wählen Sie im Navigationsbereich Konfiguration aus.
  3. Notieren Sie sich unter Instance-Verkehr und Skalierung den Namen der EC2-Sicherheitsgruppe, der sich unter EC2-Sicherheitsgruppen befindet.
  4. Öffnen Sie die Amazon-EC2-Konsole.
  5. Wählen Sie im Navigationsbereich Sicherheitsgruppen aus.
  6. Geben Sie auf der Seite Sicherheitsgruppen den Namen der EC2-Sicherheitsgruppe ein.
  7. Notieren Sie sich die Sicherheitsgruppen-ID. Das Format ist ähnlich wie „sg-xxxxxxxx“.
  8. Öffnen Sie die Amazon-RDS-Konsole.
  9. Wählen Sie im Navigationsbereich Datenbanken und dann den Namen Ihrer DB-Instance aus.
  10. Notieren Sie sich unter Konnektivität und Sicherheit die Subnetze, Sicherheitsgruppen und Endpunkte. Wählen Sie dann unter Sicherheit den Namen der Sicherheitsgruppe aus.
  11. Nachdem die Seite Sicherheitsgruppen in der EC2-Konsole geöffnet wurde, wählen Sie die Sicherheitsgruppe aus.
  12. Wählen Sie für Regeln für eingehenden Verkehr die Option Regeln für eingehenden Verkehr bearbeiten aus.
  13. Identifizieren Sie die Sicherheitsgruppenregel.
  14. Wählen Sie Löschen und dann Regeln speichern aus.
  15. Öffnen Sie die Elastic Beanstalk-Konsole für die alte Umgebung.
  16. Wählen Sie Aktionen und dann Umgebung beenden aus. Wenn Sie die Datenbank entkoppeln, entfernt Elastic Beanstalk die Regel für eingehenden Sicherheitsgruppenverkehr nicht. Die Regel für eingehende Sicherheitsgruppen verweist auf die EC2-Sicherheitsgruppe aus der RDS-Sicherheitsgruppe, die Elastic Beanstalk erstellt hat.
AWS OFFICIAL
AWS OFFICIALAktualisiert vor 4 Monaten