Wie man die DataSunrise CloudFormation-Vorlage von Launch Configuration (LC) zu Launch Template (LT) Ressource in Auto Scaling Group migriert
Die Migration von einer AWS Launch Configuration (LC basierten Auto Scaling Group (ASG) zu einer Launch Template (LT) Ressource bietet erhebliche Vorteile für das Management von DataSunrise-Bereitstellungen, wie erhöhte Flexibilität und Unterstützung für moderne AWS- und OS-Funktionen. In vielen Fällen kann die Migration einfach durch Ersetzen des bestehenden Stacks mit einer Vorlage von GitHub durchgeführt werden, vorausgesetzt, die notwendigen Vorsichtsmaßnahmen werden getroffen, um Unterbrechungen zu verhindern, insbesondere bei AWS RDS-Instanzen (DSDictionaryDB und DSAuditDB).
Dieser Leitfaden beschreibt die wichtigsten Schritte und Überlegungen zur Migration der CloudFormation-Vorlage, einschließlich der Handhabung von RDS-Instanzen und Anpassungen, um einen reibungslosen und nahtlosen Übergang zu gewährleisten.
Wichtige Überlegungen zur Migration
- Vorteile von Launch Templates:
- Versionierung. Mehrere Versionen eines Launch Templates können beibehalten werden, was Flexibilität für zukünftige Updates oder Rollbacks bietet.
- Feature-Unterstützung. Neue Features wie T2 Unlimited, erweiterte Netzwerke und IPv6 werden unterstützt.
- OS-Kompatibilität. LT unterstützt neuere OS-Distributionen 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:
- Wenn keine benutzerdefinierten Skripte oder Tools verwendet werden, kann die Migration durchgeführt werden, indem einfach 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 von DataSunrise verwendete RDS-Instanzen ersetzt oder neu erstellt werden, da dies zu Datenverlust führen könnte.
Schritte zur Migration der CloudFormation-Vorlage
- Sicherung und Überprüfung des bestehenden Stacks
- Sichern Sie die aktuelle CloudFormation-Vorlage und erstellen Sie Snapshots Ihrer RDS-Instanzen (DSDictionaryDB und DSAuditDB), um Datenverlust vorzubeugen.
- Überprüfen Sie alle benutzerdefinierten Skripte oder Drittanbieter-Tools, die an Ihre bestehende Launch Configuration gebunden sind, um festzustellen, ob zusätzliche Schritte über die Verwendung der GitHub-Vorlage hinaus erforderlich sind.
- 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 gebrauchsfertig, wenn Ihre aktuelle Konfiguration keine benutzerdefinierten Skripte oder Tools enthält, was den Prozess vereinfacht.
- Sicherstellen, dass RDS-Instanzen nicht aktualisiert werden
- Der kritischste Schritt bei dieser Migration besteht darin, sicherzustellen, dass AWS RDS-Instanzen (DSDictionaryDB und DSAuditDB) während des Stack-Updates nicht neu erstellt oder ersetzt werden. Ein versehentliches Ersetzen könnte zu Datenverlust führen.
- Überprüfung der Consts-Zuweisungen:
- EngineVersionPg, EngineVersionMs, EngineVersionMy;
- AuditAuroraEngineVersionPg, AuditAuroraEngineVersionMy;
- ParameterGroupFamilyPg, ParameterGroupFamilyMy, DictionaryParameterGroupFamilyMs;
- AuditParameterGroupFamilyMs, ParameterGroupFamilyPgCluster, ParameterGroupFamilyMyCluster.
- Aufbewahrungsrichtlinien anwenden:
- Stack-Update durchführen
- 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.
- Benutzerdefinierte Skripte migrieren (falls erforderlich)
- Python-Skripte für Kompatibilität aktualisieren (falls erforderlich)
- Kompatibilität von Drittanbieter-Tools prüfen (falls erforderlich)
- Wenn 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 notwendigen Updates, um die Kompatibilität mit den neueren Umgebungen zu gewährleisten.
- Stack-Update überwachen
- Überwachen Sie nach dem Start des Stack-Updates den Status der EC2-Instanzen und RDS-Instanzen, um sicherzustellen, dass sie nicht ersetzt oder neu erstellt werden.
- Stellen Sie sicher, dass die neuen Instanzen, die auf dem Launch Template basieren, einwandfrei funktionieren.
- Nach-Migrationstests durchführen
- Führen Sie Funktionstests durch, um zu bestätigen, dass die DataSunrise-Anwendung und die zugehörigen 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.
- Instanzen beenden, die mit der alten Launch Configuration (LC) gestartet wurden
- Sobald die neuen EC2-Instanzen, die aus dem Launch Template (LT) gestartet wurden, ordnungsgemäß laufen, beenden Sie alle EC2-Instanzen, die noch die alte Launch Configuration (LC) Ressource verwenden.
- Dieser letzte Schritt stellt sicher, dass die Auto Scaling Group nur Instanzen verwaltet, die mit dem neuen Launch Template erstellt wurden, das moderne Funktionen und Konfigurationen unterstützt.
- Rollback-Plan
- Wenn während des Updates Probleme auftreten, starten Sie ein Rollback mit der Rollback-Funktion von CloudFormation, um den vorherigen Stack wiederherzustellen.
- Bei RDS-bezogenen Problemen stellen Sie Daten aus den vor dem Update erstellten Snapshots wieder her.
In der Vorlage definiert der Abschnitt Consts-Mapping die Engine-Versionen und Parametergruppen für die RDS-Instanzen. Diese Parameter umfassen:
Stellen Sie sicher, dass diese Werte den tatsächlichen Einstellungen Ihrer bestehenden RDS-Instanzen entsprechen. Abweichungen könnten das Ersetzen 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, wenn der Stack versucht, sie neu zu erstellen.
Konfigurieren Sie die UpdatePolicy, um zu verhindern, dass kritische Ressourcen gleichzeitig ersetzt werden.
Wenn Ihre aktuelle Bereitstellung benutzerdefinierte Skripte im AWS::CloudFormation::Init-Metadatenschlüssel enthält, müssen Sie diese Skripte in das neue Launch Template migrieren.
Überprüfen Sie dazu die vorhandenen Skripte und kopieren Sie die notwendigen davon in die entsprechenden Abschnitte des neuen Launch Templates.
Mit dem neuen Launch Template werden Ihre DataSunrise-Instanzen auf RHEL8 oder Amazon Linux 2023 ausgeführt, die standardmäßig Python 3 verwenden. Wenn Ihre benutzerdefinierten Skripte in Python 2 geschrieben wurden, müssen sie für die 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 vorgenommen wurden. In den meisten Fällen können Sie den bestehenden CloudFormation-Stack einfach durch die vorgefertigte Vorlage von GitHub ersetzen. Dabei muss jedoch besonders auf die RDS-Instanzen (DSDictionaryDB und DSAuditDB) geachtet werden, da die Synchronisierung des Consts-Mapping-Bereichs in der Vorlage mit den tatsächlichen Werten und die Anwendung von Aufbewahrungsrichtlinien entscheidend sind, um Datenverlust zu verhindern.
Wenn benutzerdefinierte Skripte oder Drittanbieter-Tools involviert sind, stellen Sie sicher, dass sie ordnungsgemäß migriert und mit den neuen Umgebungen kompatibel sind. Der letzte Schritt besteht darin, alle EC2-Instanzen zu beenden, die mit der alten Launch Configuration gestartet wurden, um sicherzustellen, dass die Auto Scaling Group vollständig auf dem aktuellen Stand ist und von dem neuen Launch Template verwaltet wird.
Durch Befolgung dieser Schritte und Vorsichtsmaßnahmen können Sie erfolgreich zur neuen Vorlage migrieren, wobei Sie verbesserte AWS-Funktionen nutzen und gleichzeitig die Integrität Ihrer DataSunrise-Bereitstellung erhalten.