Stellen Sie mithilfe von Terraform SQL Server-Failover-Cluster-Instances auf Amazon EC2 und Amazon FSx bereit - 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.

Stellen Sie mithilfe von Terraform SQL Server-Failover-Cluster-Instances auf Amazon EC2 und Amazon FSx bereit

Erstellt von Mark Hudson (AWS) und Matt Burgess (AWS)

Übersicht

Dieses Muster verwendet Terraform, um SQL Server-Failover-Cluster-Instances (FCIs) auf Windows Server Failover Cluster (WSFC) -Knoten auf Amazon Elastic Compute Cloud (Amazon) bereitzustellen. EC2 Darüber hinaus verwendet das Muster FSx gemeinsam genutzten Speicher von Amazon für Daten und Protokolldateien.

Wenn SQL Server-Datenbanken migriert werden AWS, ist Amazon RDS for SQL Server die erste Wahl. Manchmal ist Amazon RDS for SQL Server jedoch nicht geeignet und SQL Server muss auf Amazon EC2 in einer hochverfügbaren Architektur bereitgestellt werden. In dieser Lösung FCIs werden SQL Server auf allen WSFC-Knoten installiert.

Das in diesem Muster enthaltene Terraform-Modul stellt bis zu zwei Amazon EC2 SQL Server-Instances bereit. Ein Dateisystem von Amazon FSx für Windows File Server fungiert als Quorum-Zeuge und speichert gemeinsam genutzte Daten und Protokolldateien. Unabhängig von der Anzahl der konfigurierten Instances erstellen die SQL Server-Instanzknoten immer einen FCI-Cluster und schließen sich diesem an, um die Umgebungsparität sicherzustellen. (In der Regel wird eine Instanz für die Entwicklung und zwei Instanzen für Produktionsumgebungen konfiguriert.) Für Konfigurationen, die zwei Knoten für hohe Verfügbarkeit verwenden, wird ein interner Network Load Balancer bereitgestellt. Der Network Load Balancer verwendet eine auf dem FCI-Cluster konfigurierte Integritätsprüfung, um zu ermitteln, welcher Knoten der primäre ist.

Voraussetzungen und Einschränkungen

Voraussetzungen

  • Ein aktiver. AWS-Konto

  • Amazon Virtual Private Cloud (Amazon VPC) mit zwei Subnetzen in separaten Availability Zones.

  • Amazon VPC DHCP-Optionssatz. Konfigurieren Sie den Domänennamen so, dass er in Ihren Active Directory-Domänennamen aufgelöst wird, und konfigurieren Sie die Domänen- und NetBIOS-Nameserver so, dass sie auf Ihre Active Directory-Domänencontroller verweisen. Weitere Informationen finden Sie unter VPC-Konfiguration unter Zusätzliche Informationen.

  • AWS Directory Service for Microsoft Active Directory (AWS Managed Microsoft AD).

  • Benutzerdefiniertes Amazon Machine Image (AMI). Weitere Informationen finden Sie unter AMI-Konfiguration unter Zusätzliche Informationen.

  • Amazon Simple Storage Service (Amazon S3) -Bucket, der das SQL Server-ISO-Image enthält. Diese Voraussetzung ist nur erforderlich, wenn Sie EC2 Image Builder mit der bereitgestellten component.yaml Datei verwenden, um das benutzerdefinierte AMI zu erstellen.

  • AWS Key Management Service (AWS KMS) Verschlüsselungsschlüssel.

  • Standardmäßig wird SQL Server mit einem Product Key für die Developer Edition installiert. Von Produktionssystemen wird erwartet, dass sie einen gültigen Produktschlüssel verwenden, der von der entsprechenden Variablen an das Modul übergeben wird.

Einschränkungen

  • Diese Lösung erfordert AWS Managed Microsoft AD. Wenn Sie möchten, können Sie jedoch stattdessen eine selbstverwaltete Active Directory-Implementierung verwenden. Ändern Sie dazu das enthaltene Amazon FSx Terraform-Modul, um das Attribut zu entfernen. active_directory_id Fügen Sie dann die vier Attribute hinzu, die für selbstverwaltetes Active Directory erforderlich sind, wie in der Terraform-Dokumentation gezeigt.

  • SQL Server ist für die Verwendung der Authentifizierung im gemischten Modus eingerichtet. Wenn Sie möchten, können Sie die reine Windows-Authentifizierung verwenden. Entfernen Sie dazu im bereitgestellten Benutzerdatenskript die /SAPWD Parameter /SECURITYMODE und, die für den setup.exe Befehl angegeben wurden. Sie können die sql_accounts.tf Datei entfernen, und Sie können die instances.tf Datei ändern, um den sql_sa_password Eintrag zu entfernen.

  • Wenn Sie einen bereitgestellten Cluster löschen, müssen Sie die entsprechenden virtuellen Computerobjekte und einzelne Computerobjekte in Active Directory entfernen. Verwenden Sie die Active Directory-Verwaltungstools, um die Objekte zu entfernen.

  • Einige AWS-Services sind nicht in allen verfügbar AWS-Regionen. Informationen zur Verfügbarkeit in den einzelnen Regionen finden Sie unter AWS Dienste nach Regionen. Informationen zu bestimmten Endpunkten finden Sie unter Dienstendpunkte und Kontingente. Wählen Sie dort den Link für den Dienst aus.

Produktversionen

Diese Lösung wurde mit den folgenden Versionen getestet:

Architektur

Quelltechnologie-Stack

  • SQL Server

Zieltechnologie-Stack

  • SQL Server FCI auf WSFC-Knoten mit Amazon EC2

  • Amazon FSx für Windows-Dateiserver

  • Amazon-S3-Bucket

  • AWS Secrets Manager

  • AWS Managed Microsoft AD

  • AWS KMS

  • AWS Identity and Access Management (IAM)

Zielarchitektur

Das folgende Diagramm zeigt die Architektur für diese Lösung.

Architektur für die Bereitstellung von SQL Server-Failover-Cluster-Instances auf Windows Server-Failover-Cluster-Knoten auf Amazon. EC2

Das Diagramm zeigt Folgendes:

  • Eine IAM-Rolle, die den EC2 Instances Zugriff auf AWS KMS und Secrets Manager bietet

  • Zwei SQL Server-Knoten, die auf EC2 Amazon-Instances in privaten Subnetzen in zwei Availability Zones bereitgestellt werden

  • Ein Network Load Balancer zur Erleichterung von Verbindungen zur aktiven SQL Server-Instanz (wird nicht bei der Einrichtung eines Clusters mit einem einzelnen Knoten bereitgestellt)

  • Das Dateisystem Amazon FSx for Windows File Server wird in beiden privaten Subnetzen für gemeinsamen Speicher durch die SQL Server-Knoten bereitgestellt

  • Secrets Manager zum Speichern von Anmeldeinformationen und Konfigurationen für Active Directory und SQL Server

  • Amazon S3 S3-Bucket zum Speichern des SQL Server-Installationsabbilds

  • AWS Managed Microsoft AD für die Windows-Authentifizierung

  • AWS KMS zur Erstellung des Verschlüsselungsschlüssels

Automatisierung und Skalierung

Sie können die Bereitstellung der Zielarchitektur automatisieren, indem Sie die Terraform-Module verwenden, die sich im GitHub Repository befinden. Sie müssen die terraform.tfvars Datei so ändern, dass sie Variablenwerte enthält, die für Ihre Umgebung spezifisch sind. Der Amazon S3 S3-Bucket, die AWS Managed Microsoft AD Komponenten, der AWS KMS Verschlüsselungsschlüssel und einige Geheimnisse sind Voraussetzungen für diese Bereitstellung und nicht im Terraform-Code enthalten.

Tools

AWS-Services

  • AWS Directory Service for Microsoft Active Directoryermöglicht Ihren verzeichnissensitiven Workloads und AWS Ressourcen die Verwendung von Microsoft Active Directory in der. AWS Cloud In diesem Muster AWS Managed Microsoft AD wird es für die Windows Server- und SQL Server-Authentifizierung sowie für DNS verwendet.

  • Amazon Elastic Compute Cloud (Amazon EC2) bietet skalierbare Rechenkapazität in der AWS Cloud. Sie können so viele virtuelle Server wie nötig nutzen und sie schnell nach oben oder unten skalieren. In diesem Muster werden SQL Server-Failover-Cluster-Instances auf EC2 Amazon-Instances installiert.

  • EC2 Mit Image Builder können Sie die Erstellung, Verwaltung und Bereitstellung von benutzerdefinierten Server-Images automatisieren.

  • Amazon FSx für Windows File Server bietet vollständig verwalteten gemeinsamen Speicher auf Windows Server. In diesem Muster stellt der Dateiserver FSx für Windows gemeinsam genutzten Speicher für SQL Server-Daten und Protokolldateien sowie den Quorum-Zeugen bereit.

  • AWS Identity and Access Management (IAM) unterstützt Sie bei der sicheren Verwaltung des Zugriffs auf Ihre AWS Ressourcen, indem kontrolliert wird, wer authentifiziert und autorisiert ist, diese zu verwenden.

  • AWS Key Management Service (AWS KMS) hilft Ihnen dabei, kryptografische Schlüssel zu erstellen und zu kontrollieren, um Ihre Daten zu schützen. In diesem Muster wird es verwendet, um Secrets Manager Manager-Geheimnisse, den SQL Server-Speicher auf Amazon Elastic Block Store (Amazon EBS) -Volumes und das Dateisystem FSx für Windows File Server zu verschlüsseln.

  • Mit AWS Secrets Manager können Sie fest codierte Anmeldeinformationen im Code (einschließlich Passwörter) durch einen API-Aufruf an Secrets Manager ersetzen und das Geheimnis programmgesteuert abrufen. In diesem Muster werden die Active Directory-Anmeldeinformationen für die Installation und Ausführung von SQL Server, die sa Benutzeranmeldeinformationen und die Datenbankverbindungsinformationen in Secrets Manager gespeichert.

  • Amazon Simple Storage Service (Amazon S3) ist ein cloudbasierter Objektspeicherservice, der Sie beim Speichern, Schützen und Abrufen beliebiger Datenmengen unterstützt. Dieses Muster verwendet einen Amazon S3 S3-Bucket zum Speichern des SQL Server-Installationsabbilds.

  • Amazon Virtual Private Cloud (Amazon VPC) hilft Ihnen dabei, AWS Ressourcen in einem von Ihnen definierten virtuellen Netzwerk bereitzustellen. Dieses virtuelle Netzwerk entspricht einem herkömmlichen Netzwerk, wie Sie es in Ihrem Rechenzentrum betreiben würden, mit den Vorteilen der Verwendung der skalierbaren Infrastruktur von AWS.

Andere Tools

  • Microsoft SQL Server FCIs werden auf allen Windows Server-Clusterknoten installiert. Darüber hinaus können sie in mehreren Subnetzen installiert werden. In diesem Muster werden SQL Server-FCI-Instanzen auf allen WSFC-Knoten installiert.

  • Terraform ist ein IaC-Tool (Infrastructure as Code), mit dem Sie mithilfe von Code Cloud-Infrastruktur und -Ressourcen bereitstellen und verwalten können. In diesem Muster wird Terraform verwendet, um die Ressourcen zu erstellen und die SQL Server-FCI-Instanzen zu konfigurieren.

  • Windows Server Failover Clustering bietet Infrastrukturfunktionen, die die Hochverfügbarkeit von gehosteten Serveranwendungen wie SQL Server unterstützen. In diesem Muster nutzen die FCI-Knoten die WSFC-Funktionalität, um lokale Hochverfügbarkeit durch Redundanz auf Instanzebene zu gewährleisten.

Code-Repository

Der Code für dieses Muster ist im Repository GitHub cluster-amazon-elastic-compute- cloud-amazon-fsx-microsoft -sql-server verfügbar. Die folgenden Ressourcen sind im Repository verfügbar:

  • Eine README.md Datei, die einen Überblick über die Lösung und zusätzliche Installations- und Nutzungsinformationen bietet

  • Ein Basissatz von Terraform-Konfigurationsdateien und ein FSx Amazon-spezifisches Modul zur Bereitstellung der Komponenten für dieses Muster

  • Ein Instance-Setup-Skript, das als EC2 Amazon-Benutzerdatenskript ausgeführt wird

  • Eine component.yam l-Datei, mit der Image Builder ein benutzerdefiniertes AMI erstellen kann

Bewährte Methoden

Sicherheit und Patching

  • Die erforderlichen AMI-Installationen und -Konfigurationen sind die Mindestanforderungen für die Bereitstellung von SQL Server-FCI-Clustern. Zusätzliche Software und Konfigurationen sind möglicherweise erforderlich, um die Standards und Sicherheitsanforderungen Ihres Unternehmens zu erfüllen.

  • Patchen Sie Windows nach der Bereitstellung regelmäßig. Patchen Sie entweder direkt die laufenden Instances oder erstellen Sie ein neues AMI mit den neuesten Windows-Patches und ersetzen Sie die Instances (nacheinander) mithilfe des neuen AMI. AWS veröffentlicht AMIs monatlich neue Windows-Versionen, die die neuesten Betriebssystem-Patches, Treiber und Start-Agents enthalten. Wir empfehlen Ihnen, beim Starten neuer Instances oder beim Erstellen eigener benutzerdefinierter Images nach dem neuesten AMI zu suchen.

  • Die EC2 Amazon-Instances sind so konfiguriert, dass sie den gesamten ausgehenden Datenverkehr zulassen. Bei der Bereitstellung in einer Produktionsumgebung sollten Regeln für ausgehenden Datenverkehr in der Sicherheitsgruppe eingerichtet werden, um diesen Datenverkehr auf die erforderlichen Ziele zu beschränken.

  • Das Dateisystem FSx für Windows File Server kann automatisch Auditprotokolle für Dateifreigaben sowie Datei- und Ordnerzugriffe aufzeichnen und sie an das gewünschte Ziel senden, falls dies in Ihrer Umgebung erforderlich ist.

  • Rotieren Sie Secrets Manager-Geheimnisse automatisch und regelmäßig. Ziehen Sie für das EC2 Amazon-Instance-Schlüsselpaar eine automatisierte Rotationslösung in Betracht, wie unter So verwenden Sie AWS Secrets Manager zum sicheren Speichern und Rotieren von SSH-Schlüsselpaaren beschrieben. Richten Sie für die Active Directory-Anmeldeinformationen und die SQL sa Server-Anmeldeinformationen eine automatische Rotation gemäß Ihren Richtlinien für die Passwortverwaltung ein.

Active Directory-Verwaltung

  • Als Teil des FCI-Clusters generiert Windows ein Computer Name Object (CNO) in Active Directory. Das CNO reagiert auf DNS-Anfragen und leitet den Datenverkehr an den aktiven SQL-Knoten weiter. Wir empfehlen nicht, dieses von Active Directory bereitgestellte DNS zu verwenden. Die TTL ist zu hoch, um eine angemessene Failover-Zeit zu gewährleisten, und es dauert oft mehr als 5 Minuten, bis die neue primäre IP-Adresse wiedergegeben wird. Im Gegensatz dazu ist der interne Network Load Balancer für Installationen mit hoher Verfügbarkeit so konfiguriert, dass er innerhalb von 30 Sekunden ein Failover durchführt.

  • Für die Erstellung des Clusters ist ein Active Directory-Domänenadministrator erforderlich. Diese Anforderung ist auf die erhöhten Berechtigungen zurückzuführen, die zum Erstellen der Clusterobjekte und zum Ändern von Berechtigungen in Active Directory erforderlich sind. Die SQL Server-Dienste müssen jedoch nicht als Domänenadministrator ausgeführt werden. Daher empfehlen wir, dass Sie zu diesem Zweck einen zweiten Active Directory-Benutzer erstellen. Sie können diesen Benutzer jedoch entfernen, wenn die Dienste als Domänenadministratorbenutzer ausgeführt werden. In diesem Fall muss der Domänenadministratorbenutzer der Active Directory-Administratorgruppe hinzugefügt werden, die als Teil dieses Musters erstellt wurde.

Epen

AufgabeBeschreibungErforderliche Fähigkeiten

Erstellen Sie Active Directory-Gruppen.

Erstellen AWS Managed Microsoft AD Sie in die folgenden Gruppen:

  • Cluster-Administratorgruppe — Diese Gruppe wird der lokalen Administratorgruppe auf jedem Clusterknoten hinzugefügt.

  • Cluster-Remote-Desktop-Gruppe — Diese Gruppe wird der lokalen Gruppe der Remote-Desktop-Benutzer auf jedem Clusterknoten hinzugefügt.

Weitere Informationen finden Sie in der AWS Dokumentation unter AWS Managed Microsoft AD Gruppe erstellen.

AD-Administrator

Erstellen Sie Active Directory-Benutzer.

Erstellen AWS Managed Microsoft AD Sie in die folgenden Benutzer

  • Domänenadministrator-Benutzer — Verwenden Sie dieses Konto, um den Cluster zu erstellen.

  • Domänenbenutzer — Die SQL Server-Dienste verwenden dieses Konto zur Ausführung. Fügen Sie diesen Benutzer der Cluster-Administratorgruppe hinzu, die Sie in der vorherigen Aufgabe erstellt haben.

Weitere Informationen finden Sie in der AWS Dokumentation unter AWS Managed Microsoft AD Benutzer erstellen.

AD-Administrator

Fügen Sie Active Directory-Anmeldeinformationen zu Geheimnissen hinzu.

Verwenden Sie Secrets Manager, um vier Secrets zum Speichern der folgenden Informationen zu erstellen:

  • Benutzername des Domain-Administrator-Benutzers

  • Passwort des Domain-Administrator-Benutzers

  • Der Benutzername des Domänenbenutzers

  • Passwort des Domänenbenutzers

Weitere Informationen finden Sie in der AWS Dokumentation unter Create an AWS Secrets Manager Secret.

AWS-Administrator
AufgabeBeschreibungErforderliche Fähigkeiten

Erstellen Sie das Windows-AMI.

Erstellen Sie ein benutzerdefiniertes Windows-AMI, das die erforderliche Software und die erforderlichen Konfigurationen enthält. Weitere Informationen finden Sie unter Zusätzliche Informationen.

AWS-Administrator, AWS DevOps

Installieren Sie Terraform.

Folgen Sie den Anweisungen auf der Terraform-Website, um Terraform zu installieren.

AWS DevOps

Klonen Sie das Repository

Klonen Sie das Repository dieses Musters. Weitere Informationen finden Sie unter Klonen eines Repositorys auf der GitHub Website.

AWS DevOps
AufgabeBeschreibungErforderliche Fähigkeiten

Ändern Sie die Terraform-Variablen.

Aktualisieren Sie die bereitgestellte terraform.tfvars Datei, um alle Variablen auf Werte zu setzen, die für Ihre Umgebung geeignet sind.

Aktualisieren Sie beispielsweise die domain_group_rdp_users Variablen domain_group_administrators und, sodass sie Ihren Active Directory-Domänennamen und den Namen der zuvor erstellten Active Directory-Gruppen verwenden.

AWS DevOps

Initialisieren Sie Terraform.

Um die vorgeschlagene Bereitstellung zu sehen, navigieren Sie zum Stammverzeichnis des Repositorys. Verwenden Sie die Terraform-Befehlszeilenschnittstelle (CLI) zum Ausführen terraform init und dann zum Ausführen. terraform plan

AWS DevOps

Ressourcen bereitstellen.

Um den SQL-Cluster und die zugehörigen Ressourcen bereitzustellen, verwenden Sie zum Ausführen die Terraform-CLI. terraform apply

AWS DevOps, AWS-Administrator

Validieren Sie die Bereitstellung.

Gehen Sie wie folgt vor, um die Bereitstellung zu validieren:

  1. Stellen Sie mithilfe von Remote Desktop eine Connect zu einer der bereitgestellten Windows EC2 Amazon-Instances her.

  2. Weitere Informationen finden Sie in der AWS Dokumentation unter Herstellen einer Connect zu Ihrer Windows-Instanz mithilfe von RDP.

  3. Öffnen Sie den Windows Failover Cluster Manager. Überprüfen Sie, ob der Cluster erstellt wurde und ob die SQL Server-Rolle erstellt wurde und ausgeführt wird.

  4. Um die Konnektivität und Authentifizierung mit SQL Server zu testen, verwenden Sie ein Datenbanktool wie SQL Server Management Studio, um eine Verbindung zum SQL Server-Endpunkt herzustellen. (Der Endpunktwert wird in Secrets Manager gespeichert.) Weitere Informationen finden Sie EC2 in der AWS Dokumentation unter Connect to Microsoft SQL Server on Amazon.

DBA, AWS-Systemadministrator

Fehlerbehebung

ProblemLösung

Die Terraform-Bereitstellung wurde abgeschlossen, aber Windows Failover Cluster Manager zeigt nicht an, dass ein Cluster erstellt wurde oder der Cluster nicht betriebsbereit ist.

Die gesamte Installation der Ressourcen und die Konfiguration der Cluster können 45 bis 60 Minuten dauern. Nach Abschluss von Terraform muss das Benutzerdatenskript vollständig ausgeführt werden, was mehrere Neustarts erfordert. Um den Fortschritt zu überwachen, können Sie das Checkpoints Verzeichnis im C:\ Laufwerk verwenden und die SQL Server-Installation meldet sich an. C:\Program Data\Microsoft SQL Server\150\Log Wenn der Vorgang abgeschlossen ist, ist die Meldung Installation abgeschlossen in der C:\ProgramData\Amazon\EC2-Windows\Launch\Log\UserdataExecution.log Datei verfügbar.

Nach der Bereitstellung eines funktionierenden Clusters ist die Verwendung von Terraform zum Löschen und Neuerstellen des Clusters nicht erfolgreich. Terraform wird abgeschlossen, aber der Cluster ist nicht richtig eingerichtet.

Ein Teil des Bereitstellungsprozesses umfasst die Registrierung von Maschinen und virtuellen Objekten in Active Directory und Active Directory-DNS. Wenn Computernamen für die EC2 Amazon-Cluster-Knoten und den Cluster-Knoten existieren, kann FCI nicht korrekt initialisiert werden und die Bereitstellung schlägt fehl.

Gehen Sie wie folgt vor, um dieses Problem zu beheben:

  1. Löschen Sie die EC2 Amazon-Knoten, den virtuellen Cluster-Computer und die Cluster-ID in Active Directory-Benutzern und -Computern.

  2. Löschen Sie den DNS-Eintrag für den virtuellen Cluster-Computer in Active Directory-DNS.

  3. Führen Sie den folgenden Befehl aus, um die Terraform-Ressource mit zufälliger Zeichenfolge für die Cluster-ID zu löschen. terragrunt destroy -target=random_string.cluster_id Diese Aktion löscht die vorhandenen EC2 Amazon-Instances.

  4. Führen Sie terraform apply das Programm aus und erwarten Sie die folgenden drei neuen Ressourcen: Zwei EC2 FCI-Amazon-Instances und eine Cluster-ID mit zufälliger Zeichenfolge.

Zugehörige Ressourcen

AWS Dokumentation

Zusätzliche Informationen

Informationen zum Terraform-Modul

Dieses Modul verwendet eine Mischung aus AMI-Konfiguration und Benutzerdatenkonfiguration, um eine gute Mischung aus Bereitstellungszeit und Stabilität zu erzielen. Während der Bereitstellung erfordert Windows mehrere Neustarts und Wartezeiten. Zum Schutz vor Endlosschleifen bei Neustarts der persistenten Benutzerdaten wurde eine Checkpoint-Methode implementiert. Benutzerdaten sind so konfiguriert, dass sie persistent sind. Daher müssen die Skripts zur Konfiguration von Benutzerdaten so weiterentwickelt werden, dass sie idempotent sind, und müssen dies auch weiterhin tun. Idempotenz optimiert den Aktualisierungsprozess, sodass Instanzen während eines Aktualisierungszyklus ausgetauscht werden können, ohne dass eine manuelle Konfiguration erforderlich ist, um FCI-Clustern erneut beizutreten oder sie neu zu erstellen.

SQL Server-Verbindungszeichenfolgen und Failover-Clustering

Das Modul veröffentlicht einen geheimen Schlüssel, der die Endpunktadresse enthält, die in Verbindungszeichenfolgen für diese Datenbank verwendet werden soll. Der geheime Name folgt dem Format{environment_name}/sqlserver/{cluster_name}/endpoint. Bei Installationen, in denen nur ein Knoten verwendet wird, können Sie davon ausgehen, dass dies die IP-Adresse der SQL Server-Schnittstelle der EC2 Amazon-Instance ist. Bei Installationen mit hoher Verfügbarkeit (zwei Instanzen) können Sie davon ausgehen, dass dies der DNS-Name des internen Network Load Balancer ist.

Virtuelles Failover-Clustering wird in diesem Modul IPs nicht unterstützt. Eine virtuelle IP muss im selben Subnetz verbleiben, um zu funktionieren. In kann AWS sich ein einzelnes Subnetz nicht über mehrere Availability Zones erstrecken. Daher IPs würde die Verwendung von Virtual dazu führen, dass dieses Modul nicht mehr als hochverfügbar angesehen werden kann.

Jede EC2 Amazon-Instance erhält drei private IP-Adressen. Ihre Verwendung ist wie folgt:

  • Primäre IP für Netzwerkverkehr — Die Quell-IP für ausgehenden Verkehr.

  • FCI-Kommunikation — Wird verwendet, um den Status und die Synchronisierung des Failover-Clusters aufrechtzuerhalten.

  • SQL Server (TCP-Port 1433) — Listener und überwacht auch den Heartbeat-Verkehr, um festzustellen, welche Instanz primär ist.

VPC-Konfiguration

In den Voraussetzungen ist ein DHCP-Optionssatz aufgeführt, der für die Verwendung von Active Directory für die DNS-Auflösung konfiguriert ist. Diese Voraussetzung ist jedoch keine zwingende Anforderung. Die grundlegende Anforderung besteht darin, dass die EC2 Instanzen in der Lage sein müssen, Ihren Active Directory-Domänennamen aufzulösen. Die Erfüllung dieser Anforderung kann auch auf andere Weise erreicht werden, z. B. durch die Verwendung von Amazon Route 53 Resolver Endpunkten. Weitere Informationen finden Sie unter Integrieren der DNS-Auflösung Ihres Verzeichnisdienstes mit Amazon Route 53-Resolvern (AWS Blogbeitrag).

AMI-Konfiguration

Das in diesem Muster verwendete AMI muss die folgenden Softwarevoraussetzungen und Konfigurationen enthalten:

  1. Laden Sie die SQL Server 2019-Installationsdateien herunter und erweitern Sie sie inC:\SQL_Install_media.

  2. Installieren Sie die folgenden Windows-Funktionen:

    • Install-WindowsFeature Failover-Clustering

    • Install-WindowsFeature RSAT-AD-PowerShell

    • Install-WindowsFeature RSAT-AD-Tools

    • Install-WindowsFeature RSAT-Clustering-Mgmt

    • Install-WindowsFeature RSAT-Clustering-PowerShell

    • Install-WindowsFeature RSAT-Clustering-CmdInterface

  3. Deaktivieren Sie die Windows-Firewall wie folgt:

    • Get-NetFirewallProfile | Set-NetFirewallProfile -Enabled False

  4. Aktivieren Sie die CredSSP-Authentifizierungsmethode (<domain>ersetzen Sie sie durch den Windows-Domänennamen Ihrer Organisation) wie folgt:

    • Enable-WSManCredSSP -Role "Server" -Force

    • Enable-WSManCredSSP -Role "Client" -DelegateComputer *.<domain>.com -Force

  5. Legen Sie die folgenden Registrierungsschlüssel fest:

    • NTLM-Authentifizierungsdaten zulassen:

      • HKLM:\Software\Policies\Microsoft\Windows\CredentialsDelegation

        • Name: AllowFreshCredentialsWhenNTLMOnly

        • Wert: 1

        • Typ: REG_DWORD

    • Erlauben Sie lokalen Domänencomputern, NTLM zu verwenden von: PowerShell

      • Pfad: HKLM:\Software\Policies\Microsoft\Windows\CredentialsDelegation\AllowFreshCredentialsWhenNTLMOnly

        • Name: 1

        • Wert: wsman/*.<domain>.com

        • Typ: REG_SZ

  6. Richten Sie die PowerShell Galerie wie folgt ein:

    • [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

    • Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force

    • Set-PSRepository -Name PSGallery -InstallationPolicy Trusted

  7. Installieren Sie die folgenden PowerShell Windows-Module*:

    • Install-Module -Name ComputerManagementDsc

    • Install-Module -Name FailOverClusterDsc

    • Install-Module -Name PSDscResources

    • Install-Module -Name xSmbShare

    • Install-Module -Name xActiveDirectory

    • Install-Module -Name SqlServer

Um Image Builder zum Erstellen des AMI zu verwenden, folgen Sie den Anweisungen unter Erstellen einer Image-Pipeline mithilfe des EC2 Image Builder-Konsolenassistenten in der Image Builder Builder-Dokumentation. Gehen Sie wie folgt vor, um die Rezeptkomponente mit den vorherigen Voraussetzungen zu erstellen:

  1. Laden Sie die Datei component.yaml aus dem ami Ordner des Repositorys herunter. GitHub

  2. Kopieren Sie den Inhalt in eine neue Image Builder Builder-Komponente.

  3. Aktualisieren Sie die folgenden Platzhalter mit Ihren Informationen:

    • <domain>— Ihr Active Directory-Domainname

    • <bucket_name>— Name des Amazon S3 S3-Buckets, der das SQL Server-Image enthält