Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
AWS Integrasi zero-ETL untuk sumber database yang dikelola sendiri
AWS Integrasi zero-ETL adalah solusi yang dikelola sepenuhnya yang membuat data transaksional dan operasional tersedia di Amazon Redshift, Amazon S3, dan Amazon S3 Tables dari berbagai sumber database operasional dan transaksional. Menggunakan Zero-ETL, Anda dapat mereplikasi data dari database sumber yang dikelola sendiri seperti MySQL, PostgreSQL, SQL Server, dan Oracle ke Amazon Redshift melalui titik akhir sumber () yang ada AWS Database Migration Service .AWS DMS Sinkronisasi otomatis menghindari proses ekstrak, transformasi, dan muat (ETL) tradisional. Ini juga memungkinkan analitik real-time dan beban kerja AI. Untuk informasi selengkapnya, lihat Integrasi Zero-ETL di Panduan Manajemen Amazon Redshift.
Zero-ETL integrasi memberikan manfaat sebagai berikut:
-
Real-time replikasi data — Sinkronisasi data berkelanjutan dari database Oracle ke Amazon Redshift dengan latensi minimal.
-
Penghapusan pipeline ETL yang kompleks - Tidak perlu membangun dan memelihara solusi integrasi data khusus.
-
Mengurangi overhead operasional — Pengaturan dan manajemen otomatis melalui AWS API.
-
Arsitektur integrasi data yang disederhanakan — Integrasi mulus antara database yang dikelola sendiri dan layanan AWS analitik.
-
Keamanan yang ditingkatkan - Built-in enkripsi dan kontrol akses IAM.
Cara kerja integrasi Zero-ETL untuk sumber database yang dikelola sendiri
Anda dapat menggunakan AWS DMS titik akhir yang ada yang sebelumnya dibuat untuk database yang dikelola sendiri atau membuat yang baru.
-
Gunakan AWS Glue konsol atau CLI untuk membuat integrasi Zero-ETL dengan Amazon Redshift sebagai target dalam katalog. AWS Glue Anda dapat menentukan skema dan filter tabel saat membuat integrasi Zero-ETL.
-
Sumber daya read-only tambahan yang terkait dengan integrasi secara otomatis dibuat dalam layanan. AWS DMS Sumber daya ini termasuk mesin Zero-ETL digunakan untuk memulai beban penuh dan proses perubahan data berkelanjutan, untuk menyinkronkan data dengan database target Amazon Redshift.
-
Anda mengontrol enkripsi data saat membuat sumber integrasi, saat membuat integrasi Zero-ETL, dan saat membuat gudang data Amazon Redshift.
-
Integrasi memantau kondisi pipeline data dan memulihkan dari masalah jika memungkinkan.
-
Anda dapat membuat integrasi dari sumber jenis yang sama ke dalam gudang data Amazon Redshift tunggal untuk mendapatkan wawasan holistik di beberapa aplikasi.
Setelah data direplikasi, Anda dapat menggunakan kemampuan analitik Amazon Redshift. Misalnya, pembelajaran mesin bawaan (ML), tampilan terwujud, berbagi data, dan akses langsung ke beberapa penyimpanan data dan danau data. Untuk insinyur data, integrasi Zero-ETL menyediakan akses ke data sensitif waktu yang sebaliknya dapat tertunda oleh kesalahan intermiten dalam pipeline data yang kompleks. Anda dapat menjalankan kueri analitis dan model ML pada data transaksional untuk mendapatkan wawasan tepat waktu untuk peristiwa yang sensitif terhadap waktu dan keputusan bisnis.
Anda dapat membuat langganan notifikasi acara Amazon Redshift agar diberi tahu secara otomatis saat terjadi masalah untuk integrasi Zero-ETL apa pun. Untuk melihat daftar notifikasi peristiwa terkait integrasi, lihat pemberitahuan acara Zero-ETL integrasi dengan Amazon. EventBridge Cara paling sederhana untuk membuat langganan adalah dengan konsol Amazon Simple Notification Service. Untuk informasi tentang membuat topik Amazon SNS dan berlangganan, lihat Memulai Amazon SNS di Panduan Pengembang Layanan Pemberitahuan S ederhana Amazon.
Konfigurasi database sumber sebelum membuat integrasi
Sebelum mengkonfigurasi integrasi Zero-ETL, Anda harus mengkonfigurasi database sumber dengan benar sesuai dengan persyaratan untuk mesin database Anda. Setiap mesin memiliki persyaratan dan batasan konfigurasi tertentu.
SQL Server
-
Untuk persyaratan konfigurasi, lihat Menggunakan database Microsoft SQL Server sebagai sumber untuk AWS DMS.
-
Untuk persyaratan pengambilan data perubahan (CDC), lihat Men angkap perubahan data untuk replikasi berkelanjutan dari SQL Server.
catatan
RDS SQL Server dan Azure SQL Server tidak dapat digunakan sebagai sumber untuk integrasi Zero-ETL yang dikelola sendiri.
Oracle
-
Untuk persyaratan konfigurasi dan batasan, lihat Menggunakan database Oracle sebagai sumber untuk AWS DMS.
MySQL
-
Untuk persyaratan konfigurasi dan batasan, lihat Menggunakan MySQL-compatible database sebagai sumber untuk AWS DMS.
PostgreSQL
-
Untuk persyaratan konfigurasi dan batasan, lihat Menggunakan database PostgreSQL sebagai AWS DMS sumber.
Menyiapkan izin dan enkripsi IAM untuk integrasi Zero-ETL
Untuk membuat dan mengelola integrasi Zero-ETL, Anda perlu mengonfigurasi izin IAM yang sesuai, kunci enkripsi AWS Key Management Service (AWS KMS), dan kebijakan sumber daya. Bagian ini memberikan panduan untuk menyiapkan komponen keamanan yang diperlukan.
Prasyarat
Sebelum membuat integrasi Zero-ETL, pastikan Anda memiliki yang berikut:
-
Pengguna atau peran IAM dengan izin yang sesuai untuk membuat dan mengelola integrasi
-
Konfigurasikan titik akhir AWS DMS sumber untuk database yang dikelola sendiri. Untuk informasi selengkapnya, lihat Konfigurasi database sumber sebelum membuat integrasi.
-
Cluster yang disediakan Amazon Redshift sebagai target
catatan
Amazon Redshift Serverless tidak dapat digunakan sebagai target untuk integrasi Zero-ETL dari sumber yang dikelola sendiri.
-
Konfigurasi jaringan termasuk subnet VPC dan grup keamanan
Membuat kunci KMS
Pertama, buat AWS KMS kunci yang dikelola pelanggan untuk mengenkripsi data dalam integrasi Zero-ETL Anda. Contoh berikut membuat kunci enkripsi simetris:
aws kms create-key \ --description "On-prem Zero-ETL Integration Encryption Key" \ --key-usage ENCRYPT_DECRYPT \ --key-spec SYMMETRIC_DEFAULT \ --regionregion
Perhatikan KeyId dan Arn dari tanggapan, karena Anda akan membutuhkannya saat mengonfigurasi kebijakan kunci dan membuat integrasi.
Contoh output:
{ "KeyMetadata": { "AWSAccountId": "account-id", "KeyId": "4e2c14f8-7abe-4aec-851a-379f6ed973a8", "Arn": "arn:aws:kms:region:account-id:key/4e2c14f8-7abe-4aec-851a-379f6ed973a8", "CreationDate": 1763155061.148, "Enabled": true, "Description": "Zero-ETL Integration Encryption Key", "KeyUsage": "ENCRYPT_DECRYPT", "KeyState": "Enabled", "Origin": "AWS_KMS", "KeyManager": "CUSTOMER", "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", "KeySpec": "SYMMETRIC_DEFAULT", "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ], "MultiRegion": false } }
Mengkonfigurasi kebijakan kunci KMS
Setelah membuat kunci KMS, konfigurasikan kebijakan kunci agar Amazon Redshift dan AWS Glue layanan dapat menggunakan kunci untuk operasi enkripsi dan dekripsi. Kebijakan kunci harus memberikan izin yang diperlukan kepada prinsipal layanan dan menyertakan konteks enkripsi yang akan digunakan selama pembuatan integrasi.
Contoh berikut menunjukkan kebijakan utama untuk integrasi Zero-ETL:
{ "Version": "2012-10-17", "Id": "key-default-1", "Statement": [ { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": "kms:*", "Resource": "*" }, { "Sid": "Allows the Redshift and glue service principal to add a grant to a KMS key", "Effect": "Allow", "Principal": { "Service": [ "redshift.amazonaws.com", "glue.amazonaws.com" ] }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:context-key": "context-value" }, "ForAllValues:StringEquals": { "kms:GrantOperations": [ "Decrypt", "GenerateDataKey", "CreateGrant", "GenerateDataKeyWithoutPlaintext", "ReEncryptTo" ] } } } ] }
kms:EncryptionContextKondisi harus sesuai dengan konteks enkripsi tambahan yang Anda tentukan saat membuat integrasi. Anda dapat memperbarui kebijakan kunci menggunakan AWS KMS konsol atau perintah CLI berikut:
aws kms put-key-policy \ --key-idkey-id\ --policy-name default \ --policy file://kms-key-policy.json
Membuat pengguna IAM dan mengonfigurasi AWS CLI
Buat pengguna IAM yang akan digunakan untuk mengelola integrasi Zero-ETL dan mengonfigurasi AWS CLI dengan kredenSIAL yang sesuai.
-
Buat pengguna IAM:
aws iam create-user --user-namecli-user -
Buat kunci akses untuk pengguna:
aws iam create-access-key --user-namecli-userSimpan
AccessKeyIddanSecretAccessKeydari output, karena Anda akan membutuhkannya untuk mengkonfigurasi AWS CLI.
Membuat dan melampirkan kebijakan IAM
Buat kebijakan IAM yang memberikan izin untuk operasi integrasi Zero-ETL. Kebijakan harus mencakup izin untuk AWS Glue, AWS DMS, Amazon Redshift, AWS KMS, dan.
Simpan kebijakan berikut ke file (misalnya,/tmp/zetl-policy.json):
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ZetlGlueIntegrationAccess", "Effect": "Allow", "Action": [ "glue:CreateIntegration", "glue:ModifyIntegration", "glue:DeleteIntegration", "glue:DescribeIntegrations", "glue:DescribeInboundIntegrations" ], "Resource": "*" }, { "Sid": "DMSIntegrationAccess", "Effect": "Allow", "Action": [ "dms:CreateOutboundIntegration", "dms:ModifyOutboundIntegration", "dms:CreateEndpoint", "dms:DescribeEndpoints", "dms:ModifyEndpoint", "dms:DeleteEndpoint", "dms:TestConnection" ], "Resource": "*" }, { "Sid": "ZetlRedshiftFullAccess", "Effect": "Allow", "Action": [ "redshift:*", "ec2:DescribeAccountAttributes", "ec2:DescribeAddresses", "ec2:DescribeAvailabilityZones", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DescribeInternetGateways", "sns:CreateTopic", "sns:Get*", "sns:List*", "cloudwatch:Describe*", "cloudwatch:Get*", "cloudwatch:List*", "cloudwatch:PutMetricAlarm", "cloudwatch:EnableAlarmActions", "cloudwatch:DisableAlarmActions", "tag:GetResources", "tag:UntagResources", "tag:GetTagValues", "tag:GetTagKeys", "tag:TagResources" ], "Resource": "*" }, { "Sid": "ZetlRedshiftDataAPI", "Effect": "Allow", "Action": [ "redshift-data:ExecuteStatement", "redshift-data:CancelStatement", "redshift-data:ListStatements", "redshift-data:GetStatementResult", "redshift-data:DescribeStatement", "redshift-data:ListDatabases", "redshift-data:ListSchemas", "redshift-data:ListTables", "redshift-data:DescribeTable" ], "Resource": "*" }, { "Sid": "ZetlKMSAccess", "Effect": "Allow", "Action": [ "kms:CreateKey", "kms:DescribeKey", "kms:Encrypt", "kms:Decrypt", "kms:GenerateDataKey", "kms:ListKeys", "kms:CreateAlias", "kms:ListAliases", "kms:CreateGrant" ], "Resource": "*" }, { "Sid": "ZetlSecretsManagerAccess", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue", "secretsmanager:CreateSecret", "secretsmanager:UpdateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:ListSecrets", "secretsmanager:GetResourcePolicy", "secretsmanager:PutResourcePolicy", "secretsmanager:ValidateResourcePolicy" ], "Resource": "*" } ] }
Buat kebijakan dan lampirkan ke pengguna IAM:
aws iam create-policy \ --policy-name ZetlCustomPolicy \ --policy-document file:///tmp/zetl-policy.json aws iam attach-user-policy \ --policy-arn arn:aws:iam::account-id:policy/ZetlCustomPolicy \ --user-namecli-user
Mengonfigurasi AWS Profil CLI
Konfigurasikan profil AWS CLI dengan kredenSIAL pengguna yang dibuat pada langkah sebelumnya:
aws configure set aws_access_key_idACCESS_KEY_ID--profilecli-useraws configure set aws_secret_access_keySECRET_ACCESS_KEY--profilecli-useraws configure set regionregion--profilecli-useraws configure set output json --profilecli-user
Uji konfigurasi profil:
aws sts get-caller-identity --profilecli-user
Output harus menampilkan ID akun pengguna, ID pengguna, dan ARN, mengonfirmasi bahwa profil dikonfigurasi dengan benar.
Membuat kebijakan sumber daya Redshift
Buat kebijakan sumber daya Amazon Redshift untuk mengotorisasi titik akhir AWS DMS sumber untuk membuat integrasi masuk dengan namespace Amazon Redshift Anda. Kebijakan ini dilampirkan ke namespace Amazon Redshift dan mengontrol sumber mana yang dapat mereplikasi data ke dalamnya.
Contoh berikut menunjukkan cara membuat kebijakan sumber daya untuk namespace Amazon Redshift:
aws redshift put-resource-policy \ --policy '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": ["redshift.amazonaws.com"] }, "Action": ["redshift:AuthorizeInboundIntegration"], "Resource": "arn:aws:redshift:region:account-id:namespace:namespace-id", "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:dms:region:account-id:endpoint:endpoint-id" } } }, { "Effect": "Allow", "Principal": { "AWS": "account-id" }, "Action": [ "redshift:CreateInboundIntegration", "redshift:ModifyInboundIntegration" ], "Resource": "arn:aws:redshift:region:account-id:namespace:namespace-id" } ] }' \ --resource-arn arn:aws:redshift:region:account-id:namespace:namespace-id\ --regionregion
Ganti placeholder berikut:
-
region— Wil AWS ayah tempat sumber daya Anda berada -
account-id— ID AWS akun Anda -
endpoint-id— ID titik akhir AWS DMS sumber Anda -
namespace-id— ID namespace Amazon Redshift Anda
Contoh: Membuat integrasi Zero-ETL dengan enkripsi
Setelah menyiapkan izin dan kunci enkripsi yang diperlukan, Anda dapat membuat integrasi Zero-ETL menggunakan AWS Glue API. Contoh berikut menunjukkan pembuatan integrasi dari sumber MySQL ke target Amazon Redshift dengan enkripsi KMS:
aws glue create-integration \ --integration-namemysql-onprem-integration\ --source-arn arn:aws:dms:region:account-id:endpoint:source-endpoint-id\ --target-arn arn:aws:redshift:region:account-id:namespace:namespace-id\ --description "MySQL to Redshift integration" \ --integration-config '{"SourceProperties":{"SubnetIds":"subnet-id1,subnet-id2,subnet-id3","VpcSecurityGroupIds":"sg-id"}}' \ --data-filter "include:mysql.*" \ --kms-key-id arn:aws:kms:region:account-id:key/key-id\ --additional-encryption-context '{"context-key": "context-value"}' \ --profilecli-user\ --regionregion
Perintah ini mencakup parameter kunci berikut:
-
--integration-name— Nama unik untuk integrasi Anda -
--source-arn— ARN titik akhir AWS DMS sumber Anda -
--target-arn— ARN dari namespace Amazon Redshift Anda -
--integration-config— Konfigurasi jaringan termasuk ID subnet dan grup keamanan -
--data-filter- Menentukan skema dan tabel mana yang akan direplikasi -
--kms-key-id— ARN AWS KMS kunci untuk enkripsi -
--additional-encryption-context— Pasangan kunci-nilai konteks enkripsi yang harus sesuai dengan kebijakan kunci KMS (mis.,){"context-key": "context-value"} -
--profile— Profil AWS CLI untuk digunakan (profil cli-user yang dibuat sebelumnya)
Setelah pembuatan berhasil, perintah mengembalikan detail integrasi termasuk ARN integrasi, status, dan parameter konfigurasi. Contoh output:
{ "SourceArn": "arn:aws:dms:region:account-id:endpoint:endpoint-id", "TargetArn": "arn:aws:redshift:region:account-id:namespace:namespace-id", "IntegrationName": "mysql-onprem-integration", "IntegrationArn": "arn:aws:glue:region:account-id:integration:integration-id", "KmsKeyId": "arn:aws:kms:region:account-id:key/key-id", "AdditionalEncryptionContext": { "context-key": "context-value" }, "Status": "CREATED", "CreateTime": 1763234086.001, "DataFilter": "include: mysql.*", "IntegrationConfig": { "SourceProperties": { "SubnetIds": "subnet-id1,subnet-id2,subnet-id3", "VpcSecurityGroupIds": "sg-id" } } }
Praktik terbaik keamanan
Ikuti praktik terbaik keamanan ini saat menyiapkan integrasi Zero-ETL:
-
Gunakan akses hak istimewa paling sedikit — Berikan hanya izin minimum yang diperlukan untuk membuat dan mengelola integrasi. Pertimbangkan untuk menggunakan izin tingkat sumber daya jika memungkinkan.
-
Aktifkan enkripsi — Selalu gunakan AWS KMS kunci yang dikelola pelanggan untuk mengenkripsi data integrasi. Tentukan konteks enkripsi untuk keamanan tambahan.
-
Putar kredenSIAL secara teratur — Jika menggunakan kunci akses pengguna IAM, putar secara teratur. Pertimbangkan untuk menggunakan peran IAM dengan kredenSIAL sementara sebagai gantinya.
-
Memantau akses — Digunakan AWS CloudTrail untuk memantau panggilan API yang terkait dengan pembuatan dan pengelolaan integrasi.
-
Batasi akses jaringan — Konfigurasikan grup keamanan VPC untuk membatasi akses jaringan hanya ke sumber daya yang diperlukan.
-
Gunakan kebijakan sumber daya — Terapkan kebijakan sumber daya Amazon Redshift untuk mengontrol sumber mana yang dapat membuat integrasi dengan gudang data Anda.
-
Sumber daya tag — Terapkan tag ke integrasi dan sumber daya terkait untuk organisasi dan pelacakan biaya yang lebih baik.