Wie man die DataSunrise CloudFormation-Vorlage von Launch Configuration (LC) zur Launch Template (LT) Ressource in der Auto Scaling Gruppe migriert
Eine Migration von einer AWS Launch Configuration (LC basierten Auto Scaling Gruppe (ASG) zu einer Launch Template (LT) Ressource bietet erhebliche Vorteile für das Management von DataSunrise-Bereitstellungen, wie z.B. erhöhte Flexibilität und Unterstützung für moderne AWS- und Betriebssystemfunktionen. In vielen Fällen kann die Migration einfach durchgeführt werden, indem der bestehende Stack durch eine Vorlage von GitHub ersetzt wird, vorausgesetzt, die notwendigen Vorkehrungen werden getroffen, um Unterbrechungen zu verhindern, insbesondere bei AWS RDS Instanzen (DSDictionaryDB und DSAuditDB).
Diese Anleitung beschreibt die wichtigsten Schritte und Überlegungen zur Migration der CloudFormation-Vorlage, einschließlich der Handhabung von RDS-Instanzen und Anpassungen, um einen reibungslosen Übergang zu gewährleisten.
Wichtige Überlegungen zur Migration
- Vorteile des Launch Template:
- Versionierung. Mehrere Versionen eines Launch Template können beibehalten werden, was Flexibilität für zukünftige Updates oder Rollbacks bietet.
- Feature-Unterstützung. Neue Funktionen wie T2 Unlimited, erweiterte Netzwerke und IPv6 werden unterstützt.
- OS-Kompatibilität. LT unterstützt neuere Betriebssystemverteilungen wie RHEL8 und Amazon Linux 2023, die für das Ausführen von Python 3-Skripten in DataSunrise erforderlich sind.
- Vereinfachtes Stack-Update mit vorgefertigter Vorlage:
- Falls keine benutzerdefinierten Skripte oder Tools verwendet werden, kann die Migration einfach durchgeführt werden, indem der bestehende CloudFormation-Stack durch die vorgefertigte Vorlage von GitHub ersetzt wird.
- Stellen Sie sicher, dass die notwendigen Schritte unternommen werden, um zu verhindern, dass RDS-Instanzen, die von DataSunrise verwendet werden, ersetzt oder neu erstellt werden, da dies zu Datenverlust führen könnte.
Schritte zur Migration der CloudFormation-Vorlage
- Sichern und Überprüfen des bestehenden Stacks
- Sichern Sie die aktuelle CloudFormation-Vorlage und erstellen Sie Schnappschüsse Ihrer RDS-Instanzen (DSDictionaryDB und DSAuditDB), um Datenverlust vorzubeugen.
- Überprüfen Sie alle benutzerdefinierten Skripte oder Drittanbieter-Tools, die mit Ihrer aktuellen Launch Configuration verknüpft sind, um festzustellen, ob zusätzliche Schritte erforderlich sind, die über die Verwendung der GitHub-Vorlage hinausgehen.
- Neue Vorlage von GitHub herunterladen
- Laden Sie die neue Launch Template (LT)-basierte CloudFormation-Vorlage aus dem offiziellen DataSunrise GitHub-Repository herunter.
- Diese Vorlage ist einsatzbereit, wenn Ihre aktuelle Einrichtung keine benutzerdefinierten Skripte oder Tools beinhaltet, was den Prozess vereinfacht.
- Sicherstellen, dass RDS-Instanzen nicht aktualisiert werden
- Der kritischste Schritt bei dieser Migration ist sicherzustellen, dass AWS RDS-Instanzen (DSDictionaryDB und DSAuditDB) während des Stack-Updates nicht neu erstellt oder ersetzt werden. Eine versehentliche Ersetzung könnte zu Datenverlust führen.
- Überprüfung der Consts-Zuordnungen:
- EngineVersionPg, EngineVersionMs, EngineVersionMy;
- AuditAuroraEngineVersionPg, AuditAuroraEngineVersionMy;
- ParameterGroupFamilyPg, ParameterGroupFamilyMy, DictionaryParameterGroupFamilyMs;
- AuditParameterGroupFamilyMs, ParameterGroupFamilyPgCluster, ParameterGroupFamilyMyCluster.
- Anwendung von Aufbewahrungsrichtlinien:
- Führen Sie das Stack-Update durch
- Ersetzen Sie den bestehenden CloudFormation-Stack durch die neue LT-basierte Vorlage von GitHub.
- Validieren Sie die Vorlage mit den integrierten Validierungstools von AWS CloudFormation, um Syntax- oder Konfigurationsfehler zu erkennen.
- Fahren Sie mit dem Stack-Update fort und überwachen Sie es genau, um sicherzustellen, dass keine unbeabsichtigten Updates an den RDS-Instanzen vorgenommen werden.
- Migrieren Sie benutzerdefinierte Skripte (falls erforderlich)
- Aktualisieren Sie Python-Skripte zur Kompatibilität (falls erforderlich)
- Überprüfen Sie die Kompatibilität von Drittanbieter-Tools (falls erforderlich)
- Falls Drittanbieter-Tools über User Data Skripte installiert werden, überprüfen Sie bei den Anbietern, ob diese Tools mit den neuen Betriebssystemen (RHEL8 oder AL2023) kompatibel sind.
- Installieren Sie alle erforderlichen Updates, um die Kompatibilität mit den neueren Umgebungen sicherzustellen.
- Überwachen Sie das Stack-Update
- Überwachen Sie nach der Initiierung des Stack-Updates den Status der EC2-Instanzen und RDS-Instanzen, um sicherzustellen, dass sie nicht neu erstellt oder ersetzt werden.
- Überprüfen Sie, ob die neuen Instanzen basierend auf dem Launch Template wie erwartet funktionieren.
- Führen Sie Post-Migrations-Tests durch
- Führen Sie Funktionstests durch, um zu bestätigen, dass die DataSunrise-Anwendung und zugehörige Dienste ordnungsgemäß funktionieren.
- Überprüfen Sie, dass die RDS-Instanzen (DSDictionaryDB und DSAuditDB) ihre Daten behalten und nicht neu erstellt werden.
- Stellen Sie sicher, dass alle migrierten benutzerdefinierten Skripte oder Drittanbieter-Tools auf den neuen Instanzen korrekt funktionieren.
- Beenden Sie Instanzen, die mit der alten Launch Configuration (LC) gestartet wurden
- Sobald bestätigt ist, dass die neuen EC2-Instanzen, die vom Launch Template (LT) gestartet wurden, korrekt funktionieren, beenden Sie alle EC2-Instanzen, die weiterhin die alte Launch Configuration (LC) Ressource verwenden.
- Dieser letzte Schritt stellt sicher, dass die Auto Scaling Gruppe nur Instanzen verwaltet, die mit dem neuen Launch Template erstellt wurden, das moderne Funktionen und Konfigurationen unterstützt.
- Rollback-Plan
- Falls während des Updates Probleme auftreten, initiieren Sie ein Rollback mit der Rollback-Funktion von CloudFormation, um den vorherigen Stack wiederherzustellen.
- Im Falle von RDS-bezogenen Problemen stellen Sie die Daten aus den vor dem Update erstellten Schnappschüssen wieder her.
Im Template definiert der Consts-Zuordnungsabschnitt die Engine-Versionen und Parametergruppen für die RDS-Instanzen. Diese Parameter beinhalten:
Stellen Sie sicher, dass diese Werte den tatsächlichen Einstellungen Ihrer bestehenden RDS-Instanzen entsprechen. Abweichungen könnten die Neuinstallation der RDS-Instanzen während des Updates auslösen.
Verwenden Sie die Retain-Richtlinie für die RDS-Instanzen, indem Sie DeletionPolicy: Retain in der CloudFormation-Vorlage angeben. Dies stellt sicher, dass die Datenbanken nicht gelöscht werden, falls der Stack versucht, sie neu zu erstellen.
Konfigurieren Sie die UpdatePolicy, um eine gleichzeitige Ersetzung kritischer Ressourcen zu verhindern.
Falls Ihre aktuelle Bereitstellung benutzerdefinierte Skripte im AWS::CloudFormation::Init-Metadaten-Schlüssel umfasst, müssen diese Skripte in das neue Launch Template migriert werden.
Überprüfen Sie die bestehenden Skripte und kopieren Sie die notwendigen in die entsprechenden Abschnitte des neuen Launch Template.
Mit dem neuen Launch Template werden Ihre DataSunrise-Instanzen auf RHEL8 oder Amazon Linux 2023 laufen, die standardmäßig Python 3 verwenden. Falls Ihre benutzerdefinierten Skripte in Python 2 geschrieben wurden, müssen sie zur Kompatibilität mit Python 3 aktualisiert werden.
Aktualisieren Sie print-Anweisungen, ersetzen Sie xrange() durch range() und beheben Sie andere Python 2-spezifische Syntax. Testen Sie Ihre aktualisierten Skripte in einer nicht-produktiven Umgebung, um die Kompatibilität mit Python 3 zu bestätigen.
Fazit
Die Migration von Launch Configuration (LC) zu Launch Template (LT) in DataSunrise kann oft ein unkomplizierter Prozess sein, wenn keine Anpassungen am Stack vorhanden sind. In den meisten Fällen können Sie den bestehenden CloudFormation-Stack einfach durch die vorgefertigte Vorlage von GitHub ersetzen. Es muss jedoch besondere Aufmerksamkeit auf die RDS-Instanzen (DSDictionaryDB und DSAuditDB) gelegt werden, da das Synchronisieren des Consts-Zuordnungsabschnitts in der Vorlage mit den tatsächlichen Werten und das Anwenden von Aufbewahrungsrichtlinien entscheidend sind, um Datenverlust zu verhindern.
Falls benutzerdefinierte Skripte oder Drittanbieter-Tools beteiligt sind, stellen Sie sicher, dass diese ordnungsgemäß migriert und mit den neuen Umgebungen kompatibel sind. Der letzte Schritt ist das Beenden aller EC2-Instanzen, die mit der alten Launch Configuration gestartet wurden, um eine voll aktualisierte Auto Scaling Gruppe zu gewährleisten, die vom Launch Template verwaltet wird.
Durch die Beachtung dieser Schritte und Vorkehrungen können Sie erfolgreich zur neuen Vorlage migrieren und dabei erweiterte AWS-Funktionen nutzen und die Integrität Ihrer DataSunrise-Bereitstellung gewährleisten.