Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Penyiapan SQL Server
Lakukan langkah-langkah ini di lingkungan SQL Server Anda untuk mengaktifkan modernisasi AWS Transform.
Pengaturan dan konfigurasi basis data
Langkah 1: Buat pengguna database dengan izin yang diperlukan
Buat pengguna database khusus untuk AWS Transform dengan izin yang diperlukan. Jika Anda sudah memiliki pengguna Konversi Skema DMS, Anda dapat menggunakannya kembali.
Connect ke instance SQL Server Anda dan jalankan perintah berikut:
-- 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];
catatan
Ulangi perintah khusus database (USE, CREATE USER, GRANT) untuk setiap database yang ingin Anda modernisasi.
Peran db_datareader hanya diperlukan untuk migrasi data, bukan untuk konversi skema saja.
Peran db_datareader memberikan akses baca ke semua tabel dalam database
Peran ini hanya diperlukan saat melakukan migrasi data.
Untuk konversi skema saja (tanpa migrasi data), peran db_datareader TIDAK diperlukan
Izin lainnya (VIEW DEFINITION, VIEW DATABASE STATE, dll.) Cukup untuk konversi skema
Langkah 2: Simpan kredensil di AWS Secrets Manager
Simpan kredensyal database Anda dengan aman di Secrets Manager AWS . Lewati langkah ini jika Anda sudah memiliki rahasia yang dibuat untuk DMS.
Arahkan ke AWS Secrets Manager di konsol
Pilih Simpan rahasia baru
Konfigurasikan rahasianya:
Tipe rahasia: Kredensyal untuk database lain
Basis Data: Microsoft SQL Server
Nama pengguna: atx_user (atau nama pengguna pilihan Anda)
Kata sandi: Kata sandi yang Anda buat
Nama server: Titik akhir SQL Server Anda
Nama database: Nama database Anda
Port: 1433 (atau port khusus Anda)
Pilih Berikutnya
Masukkan nama rahasia: atx-db-modernnization-sqlserver
Tambahkan tag yang diperlukan (tag ini wajib):
Kunci: Proyek, Nilai: atx-db-modernisasi
Kunci: Pemilik, Nilai: konektor database
Pilih Berikutnya melalui layar yang tersisa
Pilih Toko
Perhatikan Rahasia ARN untuk digunakan pada langkah berikutnya
penting
Kata sandi database harus menggunakan karakter ASCII yang dapat dicetak saja, tidak termasuk '/', '@', '"', dan spasi. Rahasia yang dijadwalkan untuk dihapus dapat menyebabkan kegagalan transformasi.
Langkah 3: Buat peran DMS yang diperlukan
AWS Transform membutuhkan peran IAM khusus untuk operasi DMS. Terapkan peran ini menggunakan CloudFormation template di bawah ini.
catatan
Jika AWS akun Anda sudah memiliki DMS-related peran yang ada, ubah templat ini untuk menggunakan kembali sumber daya tersebut daripada membuat duplikat.
Buat file bernama dms-roles.yaml dengan konten berikut:
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
Terapkan CloudFormation tumpukan menggunakan AWS CLI:
aws cloudformation create-stack \ --stack-name dms-roles \ --template-body file://dms-roles.yaml \ --capabilities CAPABILITY_NAMED_IAM \ --region us-east-1
Atau terapkan menggunakan AWS Konsol:
Arahkan ke CloudFormation di AWS Konsol
Pilih Buat tumpukan
Pilih Unggah file templat
Unggah file dms-roles.yaml
Masukkan nama tumpukan: dms-role
Akui kemampuan IAM
Pilih Buat tumpukan
Langkah 4: Konfigurasikan keamanan jaringan
Pastikan konektivitas jaringan yang tepat antara AWS Transform, database SQL Server Anda, dan AWS layanan lainnya.
Konfigurasi grup keamanan (pendekatan yang disarankan)
Pendekatan yang Disarankan: Gunakan kontrol akses berbasis grup keamanan daripada IP-based aturan. Ini memberikan keamanan yang lebih baik, manajemen yang lebih mudah, dan bekerja dengan mulus dengan arsitektur AWS Transform.
Mengapa Kontrol Group-Based Akses Keamanan?
Konversi Skema DMS menciptakan Antarmuka Jaringan Elastis (ENI) dalam VPC Anda
Database Anda tidak perlu diakses publik
AWS Transform tidak mengekspos alamat IP pribadi, membuat IP-based aturan menjadi rumit
Referensi grup keamanan menyediakan pembaruan dinamis dan otomatis sebagai skala sumber daya
Konfigurasikan grup keamanan SQL Server Anda
Saat mengonfigurasi Profil Instans Konversi Skema DMS di AWS Transform, Anda menentukan Grup Keamanan untuk instance DMS SC. Grup keamanan database Anda harus mengizinkan lalu lintas masuk dari grup keamanan DMS SC ini.
Step-by-step konfigurasi:
Identifikasi Grup Keamanan Konversi Skema DMS:
Ini ditentukan saat membuat Profil Instance di AWS Transform
Perhatikan ID Grup Keamanan (mis., sg-0123456789abcdef0)
Perbarui aturan masuk Grup Keamanan SQL Server Anda:
Jenis: TCP Kustom
Port: 1433 (atau port SQL Server kustom Anda)
Sumber: ID Grup Keamanan Konversi Skema DMS
Deskripsi: “Izinkan akses Konversi Skema DMS”
Untuk target Aurora PostgreSQL (setelah pembuatan):
Jenis: PostgreSQL
Port: 5432 (atau port PostgreSQL kustom Anda)
Sumber: ID Grup Keamanan Konversi Skema DMS
Deskripsi: “Izinkan akses Konversi Skema DMS”
penting
Penting untuk Model Keamanan dengan Keistimewaan Terkecil: Jika organisasi Anda menggunakan model keamanan “paling tidak memiliki hak istimewa” yang memblokir semua lalu lintas secara default, Anda harus secara eksplisit mengizinkan lalu lintas masuk dari Grup Keamanan Konversi Skema DMS ke port database Anda. Jangan buka port 1433 ke semua sumber atau rentang IP.
Diperlukan AWS konektivitas layanan
Pastikan VPC Anda dapat berkomunikasi dengan:
AWS Mengubah titik akhir layanan
AWS DMS titik akhir
Titik akhir Aurora PostgreSQL
Titik akhir S3 untuk penyimpanan artefak
AWS Secrets Manager titik akhir
AWS CodeConnections titik akhir
Titik Akhir VPC: Untuk jaringan pribadi, konfigurasikan titik akhir VPC untuk AWS layanan yang diperlukan guna menghindari dependensi gateway internet.
Persyaratan untuk database yang dihosting secara eksternal
Jika database SQL Server Anda di-host di luar AWS, pastikan prasyarat berikut terpenuhi dan kemudian selesaikan langkah-langkah penyiapan sebelum Anda memulai modernisasi.
Prasyarat
-
AWS Akun dengan VPC
-
Konektivitas jaringan antara VPC dan database eksternal. Untuk informasi tentang mengonfigurasi konektivitas jaringan, lihat Mengonfigurasi konektivitas jaringan di AWS DMS Panduan Pengguna.
Langkah-langkah pengaturan
-
Buat rahasia AWS Secrets Manager dengan detail koneksi untuk database eksternal. Untuk informasi selengkapnya, lihat Langkah 2: Simpan kredensil di AWS Secrets Manager.
-
Saat diminta, berikan ID VPC dan ID grup keamanan untuk menghubungkan ke database eksternal. AWS Transform meminta Anda untuk informasi ini karena nama host database dalam rahasia tidak dapat diselesaikan dalam akun. AWS