Richten Sie mithilfe von Terraform eine CI/CD-Pipeline für die Datenbankmigration ein - AWS Prescriptive Guidance

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

Architektur

Dieses Muster implementiert die folgende Architektur, die die komplette Infrastruktur für den Datenbankmigrationsprozess bereitstellt.

CI/CD-Pipeline-Architektur für die Migration einer lokalen SQL Serverdatenbank zu Amazon on. RDS AWS

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.

Einzelheiten der CI/CD-Pipeline zum Migrationsprozess von lokal zu. AWS

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 verfügbar.

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

AufgabeBeschreibungErforderliche 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 folgen.

DevOps Ingenieur

Erstellen Sie einen Projektordner und fügen Sie die Dateien aus dem GitHub Repository hinzu.

  1. Öffnen Sie das GitHub Repository für dieses Muster.

  2. Wählen Sie Code, um die Klonoptionen zu sehen, und kopieren Sie die HTTPS auf der Registerkarte URL bereitgestellten Optionen.

  3. Erstellen Sie einen Ordner für Ihr Projekt auf Ihrer Workstation.

  4. Öffnen Sie ein Terminal und navigieren Sie zu diesem Ordner.

  5. Klonen Sie das GitHub Repository:

    git clone <github-repository-url>

    wo <github-repository-url> ist das, URL was Sie in Schritt 2 kopiert haben.

  6. Wenn das Klonen abgeschlossen ist, wechseln Sie zum geklonten Repository in Ihrem Projektordner:

    cd <folder-name>/aws-terraform-db-migration-framework-samples
  7. Öffnen Sie dieses Projekt in einer integrierten Entwicklungsumgebung (IDE) Ihrer Wahl.

DevOps Ingenieur
AufgabeBeschreibungErforderliche Fähigkeiten

Aktualisieren Sie die erforderlichen Parameter.

In der ssm-parameters.sh Datei werden alle erforderlichen AWS Systems Manager Parameter gespeichert. Sie können diese Parameter mit den benutzerdefinierten Werten für Ihr Projekt konfigurieren.

Öffnen Sie die ssm-parameters.sh Datei in dem setup/db-ssm-params Ordner auf Ihrer lokalen Workstation und legen Sie diese Parameter fest, bevor Sie die CI/CD-Pipeline ausführen.

DevOps Ingenieur

Initialisieren Sie die Terraform-Konfiguration.

Geben Sie im db-cicd-integration Ordner den folgenden Befehl ein, um Ihr Arbeitsverzeichnis zu initialisieren, das die Terraform-Konfigurationsdateien enthält:

terraform init
DevOps Ingenieur

Sehen Sie sich eine Vorschau des Terraform-Plans an.

Geben Sie den folgenden Befehl ein, um einen Terraform-Plan zu erstellen:

terraform plan -var-file="terraform.sample"

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.

  1. Geben Sie den folgenden Befehl ein, um den Plan anzuwenden:

    terraform apply -var-file="terraform.sample"
  2. Geben Sie yes zur Bestätigung ein. Terraform erstellt, aktualisiert oder zerstört die Infrastruktur, um den in den Konfigurationsdateien deklarierten Zielstatus zu erreichen. Weitere Informationen zur Sequenz finden Sie im Abschnitt Architektur dieses Musters.

DevOps Ingenieur
AufgabeBeschreibungErforderliche Fähigkeiten

Validieren Sie die Bereitstellung.

Überprüfen Sie den Status der db-cicd-integration Pipeline, um sicherzustellen, dass die Datenbankmigration abgeschlossen ist.

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 db-cicd-integration Pipeline aus.

4. Stellen Sie sicher, dass die Pipeline-Ausführung erfolgreich abgeschlossen wurde.

DevOps Ingenieur
AufgabeBeschreibungErforderliche Fähigkeiten

Säubere die Infrastruktur.

  1. Nachdem Ihr Projekt abgeschlossen ist, bereinigen Sie die von Ihnen erstellte Infrastruktur mit dem folgenden Befehl:

    terraform destroy --var-file=terraform.sample
  2. Geben Sie yes zur Bestätigung ein.

DevOps Ingenieur

Zugehörige Ressourcen

AWS Dokumentation

Terraform-Dokumentation