Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Otomatiskan replikasi instans Amazon RDS di seluruh Akun AWS
Parag Nagwekar dan Arun Chandapillai, Amazon Web Services
Ringkasan
Pola ini menunjukkan kepada Anda cara mengotomatiskan proses mereplikasi, melacak, dan memutar kembali instans DB Amazon Relational Database Service (Amazon RDS) Anda di berbagai tempat dengan menggunakan dan. Akun AWS AWS Step Functions AWS Lambda Anda dapat menggunakan otomatisasi ini untuk melakukan replikasi skala besar instans RDS DB tanpa dampak kinerja atau overhead operasional—terlepas dari ukuran organisasi Anda. Anda juga dapat menggunakan pola ini untuk membantu organisasi Anda mematuhi strategi tata kelola data wajib atau persyaratan kepatuhan yang meminta agar data Anda direplikasi dan berlebihan di berbagai bidang. Akun AWS Wilayah AWS Replikasi lintas akun data Amazon RDS dalam skala besar adalah proses manual yang tidak efisien dan rawan kesalahan yang dapat memakan biaya dan memakan waktu, tetapi otomatisasi dalam pola ini dapat membantu Anda mencapai replikasi lintas akun dengan aman, efektif, dan efisien.
Prasyarat dan batasan
Prasyarat
Dua Akun AWS
Instans RDS DB, aktif dan berjalan di sumber Akun AWS
Grup subnet untuk instans RDS DB di tujuan Akun AWS
Kunci AWS Key Management Service (AWS KMS) yang dibuat di sumber Akun AWS dan dibagikan dengan akun tujuan (Untuk informasi selengkapnya tentang detail kebijakan, lihat bagian Informasi tambahan dari pola ini.)
Sebuah AWS KMS key di tujuan Akun AWS untuk mengenkripsi database di akun tujuan
Batasan
Beberapa Layanan AWS tidak tersedia di semua Wilayah AWS. Untuk ketersediaan Wilayah, lihat Layanan AWS berdasarkan Wilayah
. Untuk titik akhir tertentu, lihat halaman titik akhir dan kuota Layanan, dan pilih tautan untuk layanan.
Versi produk
Python 3.9 (menggunakan) AWS Lambda
PostgreSQL 11.3, 13.x, dan 14.x
Arsitektur
Tumpukan teknologi
Amazon Relational Database Service (Amazon RDS)
Amazon Simple Notification Service (Amazon SNS)
AWS Key Management Service (AWS KMS)
AWS Lambda
AWS Secrets Manager
AWS Step Functions
Arsitektur target
Diagram berikut menunjukkan arsitektur untuk menggunakan Step Functions untuk mengatur replikasi instans RDS DB yang dijadwalkan dan sesuai permintaan dari akun sumber (akun A) ke akun tujuan (akun B).

Di akun sumber (akun A dalam diagram), mesin status Step Functions melakukan hal berikut:
Membuat snapshot dari instans RDS DB di akun A.
Menyalin dan mengenkripsi snapshot dengan akun AWS KMS key A. Untuk memastikan enkripsi dalam perjalanan, snapshot dienkripsi apakah instans DB dienkripsi atau tidak.
Berbagi snapshot DB dengan akun B dengan memberikan akses akun B ke snapshot.
Mendorong pemberitahuan ke topik SNS, dan kemudian topik SNS memanggil fungsi Lambda di akun B.
Di akun tujuan (akun B dalam diagram), fungsi Lambda menjalankan mesin status Step Functions untuk mengatur hal-hal berikut:
Menyalin snapshot bersama dari akun A ke akun B, saat menggunakan AWS KMS key dari akun A untuk mendekripsi data terlebih dahulu dan kemudian mengenkripsi data dengan menggunakan akun dalam B. AWS KMS key
Membaca rahasia dari Secrets Manager untuk menangkap nama instans DB saat ini.
Mengembalikan instans DB dari snapshot dengan nama baru dan default untuk AWS KMS key Amazon RDS.
Membaca endpoint dari database baru dan memperbarui rahasia di Secrets Manager dengan endpoint database baru, dan kemudian tag instance DB sebelumnya sehingga dapat dihapus nanti.
Menyimpan instance N terbaru dari database dan menghapus semua instance lainnya.
Alat
Layanan AWS
Amazon Relational Database Service (Amazon RDS) membantu Anda menyiapkan, mengoperasikan, dan menskalakan database relasional di. AWS Cloud
Amazon Simple Notification Service (Amazon SNS) membantu Anda mengoordinasikan dan mengelola pertukaran pesan antara penayang dan klien, termasuk server web dan alamat email.
AWS CloudFormationmembantu Anda menyiapkan AWS sumber daya, menyediakannya dengan cepat dan konsisten, dan mengelolanya sepanjang siklus hidupnya di seluruh Akun AWS dan. Wilayah AWS
AWS Key Management Service (AWS KMS) membantu Anda membuat dan mengontrol kunci kriptografi untuk membantu melindungi data Anda.
AWS Lambdaadalah layanan komputasi yang membantu Anda menjalankan kode tanpa perlu menyediakan atau mengelola server. Ini menjalankan kode Anda hanya bila diperlukan dan skala secara otomatis, jadi Anda hanya membayar untuk waktu komputasi yang Anda gunakan.
AWS SDK untuk Python (Boto3)
adalah kit pengembangan perangkat lunak yang membantu Anda mengintegrasikan aplikasi, perpustakaan, atau skrip Python Anda. Layanan AWS AWS Secrets Managermembantu Anda mengganti kredensi hardcode dalam kode Anda, termasuk kata sandi, dengan panggilan API ke Secrets Manager untuk mengambil rahasia secara terprogram.
AWS Step Functionsadalah layanan orkestrasi tanpa server yang membantu Anda menggabungkan fungsi Lambda dan lainnya untuk membangun aplikasi bisnis yang penting. Layanan AWS
Repositori kode
Kode untuk pola ini tersedia di repositori GitHub Crossaccount RDS Replication
Epik
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Menyebarkan CloudFormation tumpukan di akun sumber. |
| Administrator cloud, arsitek Cloud |
Menyebarkan CloudFormation tumpukan di akun tujuan. |
| Arsitek cloud, DevOps insinyur, administrator Cloud |
Verifikasi pembuatan instans RDS DB di akun tujuan. |
| Administrator cloud, arsitek Cloud, DevOps insinyur |
Berlangganan fungsi Lambda ke topik SNS. | Anda harus menjalankan perintah AWS Command Line Interface (AWS CLI) berikut untuk berlangganan fungsi Lambda di akun tujuan (akun B) ke topik SNS di akun sumber (akun A). Di akun A, jalankan perintah berikut:
Di akun B, jalankan perintah berikut:
Di akun B, jalankan perintah berikut:
| Administrator cloud, arsitek Cloud, DBA |
Sinkronkan instans RDS DB dari akun sumber dengan akun tujuan. | Memulai replikasi database on-demand dengan memulai mesin status Step Functions di akun sumber.
catatanPenjadwal tersedia untuk membantu Anda menjalankan replikasi secara otomatis sesuai jadwal, tetapi penjadwal dimatikan secara default. Anda dapat menemukan nama CloudWatch aturan Amazon untuk penjadwal di tab Sumber daya CloudFormation tumpukan di akun tujuan. Untuk petunjuk tentang cara mengubah aturan CloudWatch Peristiwa, lihat Menghapus atau Menonaktifkan Aturan CloudWatch Peristiwa dalam dokumentasi. CloudWatch | Arsitek cloud, DevOps insinyur, administrator Cloud |
Kembalikan database Anda ke salinan sebelumnya bila diperlukan. |
| Administrator cloud, DBA, DevOps insinyur |
Sumber daya terkait
Replika baca Lintas Wilayah (dokumentasi Amazon RDS)
Penerapan Biru/Hijau (dokumentasi Amazon RDS)
Informasi tambahan
Anda dapat menggunakan contoh kebijakan berikut untuk membagikan informasi AWS KMS key Anda Akun AWS.
{ "Version": "2012-10-17", "Id": "cross-account-rds-kms-key", "Statement": [ { "Sid": "Enable user permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::<SourceAccount>:root" }, "Action": "kms:*", "Resource": "*" }, { "Sid": "Allow administration of the key", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::<DestinationAccount>:root" }, "Action": [ "kms:Create*", "kms:Describe*", "kms:Enable*", "kms:List*", "kms:Put*", "kms:Update*", "kms:Revoke*", "kms:Disable*", "kms:Get*", "kms:Delete*", "kms:ScheduleKeyDeletion", "kms:CancelKeyDeletion" ], "Resource": "*" }, { "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::<DestinationAccount>:root", "arn:aws:iam::<SourceAccount>:root" ] }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey", "kms:CreateGrant" ], "Resource": "*" } ] }