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.
SQL Server-Setup
Führen Sie diese Schritte in Ihrer SQL Server-Umgebung aus, um die AWS Transform-Modernisierung zu aktivieren.
Einrichtung und Konfiguration der Datenbank
Schritt 1: Erstellen Sie einen Datenbankbenutzer mit den erforderlichen Berechtigungen
Erstellen Sie einen dedizierten Datenbankbenutzer für AWS Transform mit den erforderlichen Berechtigungen. Wenn Sie bereits einen Benutzer für DMS Schema Conversion haben, können Sie ihn wiederverwenden.
Connect zu Ihrer SQL Server-Instanz her und führen Sie die folgenden Befehle aus:
-- Create the login in master database USE master; CREATE LOGIN [atx_user] WITH PASSWORD = 'YourStrongPassword123!'; -- Switch to your application database USE [YourDatabaseName]; CREATE USER [atx_user] FOR LOGIN [atx_user]; -- Grant required permissions GRANT VIEW DEFINITION TO [atx_user]; GRANT VIEW DATABASE STATE TO [atx_user]; ALTER ROLE [db_datareader] ADD MEMBER [atx_user]; -- Grant master database permissions USE master; GRANT VIEW SERVER STATE TO [atx_user]; GRANT VIEW ANY DEFINITION TO [atx_user];
Anmerkung
Wiederholen Sie die datenbankspezifischen Befehle (USE, CREATE USER, GRANT) für jede Datenbank, die Sie modernisieren möchten.
Die Rolle db_datareader ist nur für die Datenmigration erforderlich, nicht nur für die Schemakonvertierung.
Die Rolle db_datareader gewährt Lesezugriff auf alle Tabellen in der Datenbank
Diese Rolle ist NUR bei der Durchführung einer Datenmigration erforderlich.
Nur für die Schemakonvertierung (ohne Datenmigration) ist die Rolle db_datareader NICHT erforderlich
Die anderen Berechtigungen (VIEW DEFINITION, VIEW DATABASE STATE usw.) reichen für die Schemakonvertierung aus
Schritt 2: Speichern Sie die Anmeldeinformationen in AWS Secrets Manager
Speichern Sie Ihre Datenbankanmeldedaten sicher in AWS Secrets Manager. Überspringen Sie diesen Schritt, wenn Sie bereits ein Geheimnis für DMS erstellt haben.
Navigieren Sie in der Konsole zu AWS Secrets Manager
Wählen Sie Neues Geheimnis speichern
Konfigurieren Sie das Geheimnis:
Geheimtyp: Anmeldeinformationen für eine andere Datenbank
Datenbank: Microsoft SQL Server
Benutzername: atx_user (oder der von Ihnen gewählte Benutzername)
Passwort: Das Passwort, das Sie erstellt haben
Servername: Ihr SQL Server-Endpunkt
Datenbankname: Ihr Datenbankname
Port: 1433 (oder Ihr benutzerdefinierter Port)
Wählen Sie Weiter
Geben Sie den geheimen Namen ein: atx-db-modernization-sqlserver
Fügen Sie die erforderlichen Tags hinzu (diese Tags sind verpflichtend):
Schlüssel: Projekt, Wert: atx-db-modernization
Schlüssel: Besitzer, Wert: database-connector
Wählen Sie in den verbleibenden Bildschirmen Weiter
Wähle Store
Notieren Sie sich den geheimen ARN zur Verwendung im nächsten Schritt
Wichtig
Datenbankkennwörter dürfen nur druckbare ASCII-Zeichen enthalten, ausgenommen '/', '@', '"' und Leerzeichen. Geheimnisse, die gelöscht werden sollen, können zu Transformationsfehlern führen.
Schritt 3: Erstellen Sie die erforderlichen DMS-Rollen
AWS Transform erfordert spezielle IAM-Rollen für DMS-Operationen. Stellen Sie diese Rollen mithilfe der folgenden CloudFormation Vorlage bereit.
Anmerkung
Wenn in Ihrem AWS Konto bereits DMS-related Rollen vorhanden sind, ändern Sie diese Vorlage, um diese Ressourcen wiederzuverwenden, anstatt Duplikate zu erstellen.
Erstellen Sie eine Datei mit dem Namen dms-roles.yaml mit dem folgenden Inhalt:
AWSTemplateFormatVersion: '2010-09-09' Description: 'DMS Service Roles for AWS Transform SQL Server Modernization' Resources: DMSCloudWatchLogsRole: Type: AWS::IAM::Role Properties: RoleName: dms-cloudwatch-logs-role AssumeRolePolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Principal: Service: - dms.amazonaws.com - schema-conversion.dms.amazonaws.com Action: sts:AssumeRole ManagedPolicyArns: - arn:aws:iam::aws:policy/service-role/AmazonDMSCloudWatchLogsRole DMSS3AccessRole: Type: AWS::IAM::Role Properties: RoleName: dms-s3-access-role AssumeRolePolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Principal: Service: - dms.amazonaws.com - schema-conversion.dms.amazonaws.com Action: sts:AssumeRole Policies: - PolicyName: S3TaggedAccess PolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Action: - s3:GetBucketLocation - s3:GetBucketVersioning - s3:PutObject - s3:PutBucketVersioning - s3:GetObject - s3:GetObjectVersion - s3:ListBucket - s3:DeleteObject Resource: arn:aws:s3:::atx-db-modernization-* Condition: StringEquals: aws:ResourceAccount: !Ref AWS::AccountId DMSSecretsManagerRole: Type: AWS::IAM::Role Properties: RoleName: dms-secrets-manager-role AssumeRolePolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Principal: Service: - dms.amazonaws.com - schema-conversion.dms.amazonaws.com Action: sts:AssumeRole Policies: - PolicyName: SecretsManagerTaggedAccess PolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Action: - secretsmanager:GetSecretValue - secretsmanager:DescribeSecret Resource: '*' Condition: StringEquals: secretsmanager:ResourceTag/Project: atx-db-modernization secretsmanager:ResourceTag/Owner: database-connector DMSVPCRole: Type: AWS::IAM::Role Properties: RoleName: dms-vpc-role AssumeRolePolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Principal: Service: - dms.amazonaws.com - schema-conversion.dms.amazonaws.com Action: sts:AssumeRole ManagedPolicyArns: - arn:aws:iam::aws:policy/service-role/AmazonDMSVPCManagementRole DMSServerlessRole: Type: AWS::IAM::ServiceLinkedRole Properties: AWSServiceName: dms.amazonaws.com Description: 'Service Linked Role for AWS DMS Serverless' Outputs: DMSCloudWatchLogsRoleArn: Description: ARN of the DMS CloudWatch Logs Role Value: !GetAtt DMSCloudWatchLogsRole.Arn DMSS3AccessRoleArn: Description: ARN of the DMS S3 Access Role Value: !GetAtt DMSS3AccessRole.Arn DMSSecretsManagerRoleArn: Description: ARN of the DMS Secrets Manager Role Value: !GetAtt DMSSecretsManagerRole.Arn DMSVPCRoleArn: Description: ARN of the DMS VPC Role Value: !GetAtt DMSVPCRole.Arn Export: Name: !Sub ${AWS::StackName}-VPCRole DMSServerlessRoleArn: Description: ARN of the DMS Serverless Role Value: !Sub 'arn:aws:iam::${AWS::AccountId}:role/aws-service-role/dms.amazonaws.com/AWSServiceRoleForDMSServerless' Export: Name: !Sub ${AWS::StackName}-ServerlessRole
Stellen Sie den CloudFormation Stack mit AWS CLI bereit:
aws cloudformation create-stack \ --stack-name dms-roles \ --template-body file://dms-roles.yaml \ --capabilities CAPABILITY_NAMED_IAM \ --region us-east-1
Oder mit der AWS Konsole bereitstellen:
Navigieren Sie CloudFormation in der AWS Konsole zu
Wählen Sie „Stapel erstellen“
Wählen Sie Eine Vorlagendatei hochladen
Laden Sie die Datei dms-roles.yaml hoch
Geben Sie den Stacknamen ein: dms-roles
Bestätigen Sie die IAM-Fähigkeiten
Wählen Sie Stack erstellen
Schritt 4: Netzwerksicherheit konfigurieren
Stellen Sie die richtige Netzwerkkonnektivität zwischen AWS Transform, Ihrer SQL Server-Datenbank und anderen AWS Diensten sicher.
Konfiguration der Sicherheitsgruppe (empfohlener Ansatz)
Empfohlener Ansatz: Verwenden Sie eine auf Sicherheitsgruppen basierende Zugriffskontrolle anstelle von IP-based Regeln. Dies bietet eine bessere Sicherheit, eine einfachere Verwaltung und funktioniert nahtlos mit der Architektur von AWS Transform.
Warum Group-Based Sicherheitszugriffskontrolle?
DMS-Schemakonvertierung erstellt Elastic Network Interfaces (ENIs) in Ihrer VPC
Ihre Datenbanken müssen nicht öffentlich zugänglich sein
AWS Transform legt keine privaten IP-Adressen offen, was die IP-based Regeln komplex macht
Sicherheitsgruppenreferenzen bieten dynamische, automatische Updates, wenn die Ressourcen skalieren
Konfigurieren Sie Ihre SQL Server-Sicherheitsgruppe
Wenn Sie das Instanzprofil für die DMS-Schemakonvertierung in AWS Transform konfigurieren, geben Sie eine Sicherheitsgruppe für die DMS SC-Instanz an. Ihre Datenbanksicherheitsgruppe sollte eingehenden Datenverkehr von dieser DMS SC-Sicherheitsgruppe zulassen.
Step-by-step Konfiguration:
Identifizieren Sie die Sicherheitsgruppe für die DMS-Schemakonvertierung:
Dies wird bei der Erstellung des Instanzprofils in AWS Transform angegeben
Notieren Sie sich die Sicherheitsgruppen-ID (z. B. sg-0123456789abcdef0)
Aktualisieren Sie Ihre eingehenden SQL Server-Sicherheitsgruppenregeln:
Typ: Benutzerdefiniertes TCP
Port: 1433 (oder Ihr benutzerdefinierter SQL Server-Port)
Quelle: Die Sicherheitsgruppen-ID für die DMS-Schemakonvertierung
Beschreibung: „Zugriff auf die DMS-Schemakonvertierung zulassen“
Für das Aurora PostgreSQL-Ziel (nach der Erstellung):
Typ: PostgreSQL
Port: 5432 (oder Ihr benutzerdefinierter PostgreSQL-Port)
Quelle: Die Sicherheitsgruppen-ID für die DMS-Schemakonvertierung
Beschreibung: „Zugriff auf die DMS-Schemakonvertierung zulassen“
Wichtig
Wichtig für Sicherheitsmodelle mit den wenigsten Rechten: Wenn Ihre Organisation ein Sicherheitsmodell mit den geringsten Rechten verwendet, das standardmäßig den gesamten Datenverkehr blockiert, müssen Sie eingehenden Datenverkehr von der Sicherheitsgruppe für die DMS-Schemakonvertierung zu Ihrem Datenbankport ausdrücklich zulassen. Öffnen Sie Port 1433 nicht für alle Quellen oder IP-Bereiche.
Erforderlich AWS Service-Konnektivität
Stellen Sie sicher, dass Ihre VPC kommunizieren kann mit:
AWS Transformieren Sie Service-Endpunkte
AWS DMS Endpunkte
Aurora PostgreSQL-Endpunkte
S3-Endpunkte für die Speicherung von Artefakten
AWS Secrets Manager Endpunkte
AWS CodeConnections Endpunkte
VPC-Endpunkte: Konfigurieren Sie für private Netzwerke VPC-Endpunkte für erforderliche AWS Dienste, um Internet-Gateway-Abhängigkeiten zu vermeiden.
Anforderungen für extern gehostete Datenbanken
Wenn Ihre SQL Server-Datenbank außerhalb von gehostet wird, stellen Sie sicher AWS, dass die folgenden Voraussetzungen erfüllt sind, und schließen Sie dann die Einrichtungsschritte ab, bevor Sie mit der Modernisierung beginnen.
Voraussetzungen
-
Ein AWS Konto bei einer VPC
-
Netzwerkkonnektivität zwischen der VPC und der externen Datenbank. Informationen zur Konfiguration der Netzwerkkonnektivität finden Sie unter Konfiguration der Netzwerkkonnektivität im AWS DMS Benutzerhandbuch.
Schritte zur Einrichtung
-
Erstellen Sie ein geheimes AWS Secrets Manager Konto mit den Verbindungsdetails für die externe Datenbank. Weitere Informationen finden Sie unter Schritt 2: Speichern Sie die Anmeldeinformationen in AWS Secrets Manager.
-
Wenn Sie dazu aufgefordert werden, geben Sie die VPC-ID und die Sicherheitsgruppen-ID für die Verbindung mit der externen Datenbank ein. AWS Transform fordert Sie zur Eingabe dieser Informationen auf, da der Datenbank-Hostname im Secret nicht innerhalb des Kontos aufgelöst werden kann. AWS