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 ermöglichen.
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 DMS-Schemakonvertierungsbenutzer haben, können Sie ihn wiederverwenden.
Stellen Sie eine Verbindung 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 Anmeldeinformationen in AWS Secrets Manager
Speichern Sie Ihre Datenbankanmeldeinformationen sicher in AWS Secrets Manager. Überspringen Sie diesen Schritt, wenn Sie bereits ein Geheimnis für DMS erstellt haben.
Navigieren Sie in der AWS Konsole zum Secrets Manager
Wähle Neues Geheimnis speichern
Konfiguriere das Geheimnis:
Geheimer Typ: Anmeldeinformationen für eine andere Datenbank
Datenbank: Microsoft SQL Server
Nutzername: atx_user (oder dein gewählter Nutzername)
Passwort: Das Passwort, das du erstellt hast
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 obligatorisch):
Schlüssel: Projekt, Wert: atx-db-modernization
Schlüssel: Besitzer, Wert: database-connector
Wählen Sie in den verbleibenden Bildschirmen Weiter
Wählen Sie Store
Notieren Sie sich den geheimen ARN zur Verwendung im nächsten Schritt
Wichtig
Datenbankkennwörter dürfen nur druckbare ASCII-Zeichen verwenden, 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 Ihr AWS Konto bereits über DMS-related Rollen verfügt, ä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 Stack mithilfe der CLI bereit: CloudFormation AWS
aws cloudformation create-stack \ --stack-name dms-roles \ --template-body file://dms-roles.yaml \ --capabilities CAPABILITY_NAMED_IAM \ --region us-east-1
Oder stellen Sie es mithilfe der AWS Konsole bereit:
Navigiere 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-Funktionen
Wählen Sie Stapel erstellen
Schritt 4: Netzwerksicherheit konfigurieren
Stellen Sie eine ordnungsgemäße 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 statt IP-based Regeln. Dies bietet eine bessere Sicherheit, eine einfachere Verwaltung und passt sich nahtlos der Architektur von AWS Transform an.
Warum Security Group-Based Access Control?
Die DMS-Schemakonvertierung erstellt Elastic Network Interfaces (ENIs) in Ihrer VPC
Ihre Datenbanken müssen nicht öffentlich zugänglich sein
AWS Transform gibt keine privaten IP-Adressen preis, was die IP-based Regeln komplex macht
Verweise auf Sicherheitsgruppen bieten dynamische, automatische Updates, wenn die Ressourcen wachsen
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 Datenbank-Sicherheitsgruppe 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 Regeln für eingehenden Datenverkehr in der SQL Server-Sicherheitsgruppe:
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 geringsten Rechten: Wenn Ihre Organisation ein Sicherheitsmodell mit den geringsten Rechten verwendet, das standardmäßig den gesamten Datenverkehr blockiert, müssen Sie den eingehenden Datenverkehr von der Sicherheitsgruppe für die DMS-Schemakonvertierung zu Ihrem Datenbankport explizit 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 die erforderlichen 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 führen Sie dann die Einrichtungsschritte durch, 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 Geheimnis AWS Secrets Manager mit den Verbindungsdetails für die externe Datenbank. Weitere Informationen finden Sie unter Schritt 2: Speichern Sie 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 innerhalb des Kontos nicht aufgelöst werden kann. AWS