Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Richten Sie mithilfe von Terraform eine CI/CD-Pipeline für die Datenbankmigration ein
Erstellt von Dr. Rahul Sharad Gaikwad (AWS), Aarti Rajput (), Ashish Bhatt (), Aniket Dekate (AWS), Naveen Suthar (), Nadeem Rahaman (AWS), Ruchika Modi (AWS) und Tamilselvan P () AWS AWS AWS AWS
Umgebung: PoC oder Pilotprojekt | Technologien: Datenbanken DevOps; Migration | Arbeitslast: Microsoft |
AWSDienstleistungen: AWS CodePipeline; AWSDMS; Amazon RDS |
Übersicht
Bei diesem Muster geht es darum, eine CI/CD-Pipeline (Continuous Integration and Continuous Deployment) einzurichten, um Datenbankmigrationen zuverlässig und automatisiert zu verwalten. Es behandelt den Prozess der Bereitstellung der erforderlichen Infrastruktur, der Migration von Daten und der Anpassung von Schemaänderungen mithilfe von Terraform, einem Infrastructure-as-Code-Tool (IaC).
Insbesondere richtet das Muster eine CI/CD-Pipeline ein, um eine lokale Microsoft SQL Server-Datenbank auf Amazon Relational Database Service (Amazon) zu migrieren. RDS AWS Sie können dieses Muster auch verwenden, um eine SQL Serverdatenbank, die sich auf einer virtuellen Maschine (VM) oder in einer anderen Cloud-Umgebung befindet, zu Amazon zu migrierenRDS.
Dieses Muster befasst sich mit den folgenden Herausforderungen im Zusammenhang mit der Datenbankverwaltung und -bereitstellung:
Manuelle Datenbankbereitstellungen sind zeitaufwändig, fehleranfällig und nicht einheitlich in allen Umgebungen.
Die Koordination von Infrastrukturbereitstellung, Datenmigrationen und Schemaänderungen kann komplex und schwierig zu verwalten sein.
Die Sicherstellung der Datenintegrität und die Minimierung von Ausfallzeiten bei Datenbankaktualisierungen sind für Produktionssysteme von entscheidender Bedeutung.
Dieses Muster bietet die folgenden Vorteile:
Optimiert den Prozess der Aktualisierung und Bereitstellung von Datenbankänderungen durch die Implementierung einer CI/CD-Pipeline für Datenbankmigrationen. Dadurch wird das Fehlerrisiko reduziert, die Konsistenz in allen Umgebungen gewährleistet und Ausfallzeiten minimiert.
Trägt zur Verbesserung der Zuverlässigkeit, Effizienz und Zusammenarbeit bei. Ermöglicht eine schnellere Markteinführung und geringere Ausfallzeiten bei Datenbankaktualisierungen.
Unterstützt Sie bei der Einführung moderner DevOps Methoden für das Datenbankmanagement, was zu mehr Agilität, Zuverlässigkeit und Effizienz Ihrer Softwarebereitstellungsprozesse führt.
Voraussetzungen und Einschränkungen
Voraussetzungen
Ein aktiver AWS-Konto
Richtlinie mit den geringsten IAM Rechten AWS Identity and Access Management (siehe den Blogbeitrag Techniken zum Schreiben von Richtlinien mit den geringsten
Rechten) IAM
Architektur
Dieses Muster implementiert die folgende Architektur, die die komplette Infrastruktur für den Datenbankmigrationsprozess bereitstellt.
In dieser Architektur:
Die Quelldatenbank ist eine SQL Serverdatenbank, die sich vor Ort, auf einer virtuellen Maschine (VM) befindet oder von einem anderen Cloud-Anbieter gehostet wird. Das Diagramm geht davon aus, dass sich die Quelldatenbank in einem lokalen Rechenzentrum befindet.
Das lokale Rechenzentrum und ich AWS sind über eine VPN AWS Direct Connect OR-Verbindung miteinander verbunden. Dies ermöglicht eine sichere Kommunikation zwischen der Quelldatenbank und der AWS Infrastruktur.
Die Zieldatenbank ist eine RDS Amazon-Datenbank, die mithilfe einer Datenbankbereitstellungspipeline in der Virtual Private Cloud (VPC) on AWS gehostet wird.
AWS Database Migration Service (AWS DMS) repliziert Ihre lokale Datenbank auf. AWS Es wird verwendet, um die Replikation der Quelldatenbank in die Zieldatenbank zu konfigurieren.
Das folgende Diagramm zeigt die Infrastruktur, die mit verschiedenen Ebenen des Datenbankmigrationsprozesses eingerichtet wurde, der die Bereitstellung, AWS DMS Einrichtung und Validierung umfasst.
In diesem Prozess:
Die Validierungspipeline validiert alle Prüfungen. Die integrierte Pipeline geht zum nächsten Schritt über, wenn alle erforderlichen Validierungen abgeschlossen sind.
Die DB-Bereitstellungspipeline besteht aus verschiedenen AWS CodeBuild Phasen, in denen Terraform-Aktionen für den bereitgestellten Terraform-Code für die Datenbank ausgeführt werden. Wenn diese Schritte abgeschlossen sind, werden Ressourcen im Ziel bereitgestellt. AWS-Konto
Die AWS DMS Pipeline besteht aus verschiedenen CodeBuild Phasen, in denen Tests durchgeführt und anschließend die AWS DMS Infrastruktur für die Durchführung der Migration mithilfe von IaC bereitgestellt wird.
Tools
AWS-Services und Tools
AWS CodeBuildist ein vollständig verwalteter Dienst für kontinuierliche Integration, der Quellcode kompiliert, Tests durchführt und ready-to-deploy Softwarepakete produziert.
AWS CodePipelineist ein vollständig verwalteter Continuous Delivery-Service, der Sie bei der Automatisierung Ihrer Release-Pipelines für schnelle und zuverlässige Anwendungs- und Infrastrukturupdates unterstützt.
Amazon Relational Database Service (AmazonRDS) unterstützt Sie bei der Einrichtung, dem Betrieb und der Skalierung einer relationalen Datenbank in der. AWS Cloud
Amazon Simple Storage Service (Amazon S3) ist ein Objektspeicherservice, der Skalierbarkeit, Datenverfügbarkeit, Sicherheit und Leistung bietet.
AWS Database Migration Service (AWS DMS) unterstützt Sie bei der Migration von Datenspeichern in die AWS Cloud oder zwischen Kombinationen von Cloud- und lokalen Konfigurationen.
Andere Dienste
Terraform
ist ein IaC-Tool von HashiCorp , mit dem Sie Cloud- und lokale Ressourcen erstellen und verwalten können.
Code-Repository
Der Code für dieses Muster ist im GitHub Database Migration DevOps Framework unter Verwendung des Terraform-Beispiel-Repositorys
Bewährte Methoden
Implementieren Sie automatisierte Tests für Ihre Datenbankmigration, um die Richtigkeit von Schemaänderungen und die Datenintegrität zu überprüfen. Dazu gehören Komponententests, Integrationstests und end-to-end Tests.
Implementieren Sie eine robuste Sicherungs- und Wiederherstellungsstrategie für Ihre Datenbanken, insbesondere vor der Migration. Dies gewährleistet die Datenintegrität und bietet eine Ausweichoption im Falle von Ausfällen.
Implementieren Sie eine robuste Rollback-Strategie, um Datenbankänderungen rückgängig zu machen, falls während der Migration Fehler oder Probleme auftreten. Dies könnte ein Rollback zu einem früheren Datenbankstatus oder das Zurücksetzen einzelner Migrationsskripten beinhalten.
Richten Sie Überwachungs- und Protokollierungsmechanismen ein, um den Fortschritt und den Status von Datenbankmigrationen zu verfolgen. Auf diese Weise können Sie Probleme schnell identifizieren und lösen.
Epen
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Richte Git auf deiner lokalen Workstation ein und konfiguriere es. | Installieren und konfigurieren Sie Git auf Ihrer lokalen Workstation, indem Sie den Anweisungen in der Git-Dokumentation | DevOps Ingenieur |
Erstellen Sie einen Projektordner und fügen Sie die Dateien aus dem GitHub Repository hinzu. |
| DevOps Ingenieur |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Aktualisieren Sie die erforderlichen Parameter. | In der Öffnen Sie die | DevOps Ingenieur |
Initialisieren Sie die Terraform-Konfiguration. | Geben Sie im
| DevOps Ingenieur |
Sehen Sie sich eine Vorschau des Terraform-Plans an. | Geben Sie den folgenden Befehl ein, um einen Terraform-Plan zu erstellen:
Terraform wertet die Konfigurationsdateien aus, um den Zielstatus für die deklarierten Ressourcen zu ermitteln. Anschließend wird der Zielstatus mit dem aktuellen Status verglichen und ein Plan erstellt. | DevOps Ingenieur |
Überprüfen Sie den Plan. | Überprüfen Sie den Plan und stellen Sie sicher, dass er die erforderliche Architektur in Ihrem Ziel AWS-Konto konfiguriert. | DevOps Ingenieur |
Stellen Sie die Lösung bereit. |
| DevOps Ingenieur |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Validieren Sie die Bereitstellung. | Überprüfen Sie den Status der 1. Melden Sie sich bei der an AWS Management Console, und öffnen Sie dann die AWS CodePipeline Konsole 2. Wählen Sie im Navigationsbereich Pipelines aus. 3. Wählen Sie die 4. Stellen Sie sicher, dass die Pipeline-Ausführung erfolgreich abgeschlossen wurde. | DevOps Ingenieur |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Säubere die Infrastruktur. |
| DevOps Ingenieur |
Zugehörige Ressourcen
AWS Dokumentation
Terraform-Dokumentation