Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Otomatiskan failover dan failback lintas wilayah dengan menggunakan DR Orchestrator Framework
Jitendra Kumar, Pavithra Balasubramanian, dan Oliver Francis, Amazon Web Services
Ringkasan
Pola ini menjelaskan cara menggunakan DR Orchestrator Framework untuk mengatur dan mengotomatiskan langkah-langkah manual yang rawan kesalahan untuk melakukan pemulihan bencana di seluruh Wilayah Amazon Web Services ().AWS Pola ini mencakup database berikut:
Amazon Relational Database Service (Amazon RDS) untuk MySQL, Amazon RDS untuk PostgreSQL, atau Amazon RDS for MariaDB
Amazon Aurora Edisi yang kompatibel dengan MySQL atau Edisi yang kompatibel dengan Amazon Aurora PostgreSQL (menggunakan file terpusat)
Amazon ElastiCache (Redis OSS)
Untuk mendemonstrasikan fungsionalitas DR Orchestrator Framework, Anda membuat dua instance atau cluster DB. Yang utama ada di Wilayah AWS us-east-1, dan yang sekunder ada dius-west-2. Untuk membuat sumber daya ini, Anda menggunakan AWS CloudFormation template di App-Stack folder repositori aws-cross-region-dr-databases
Prasyarat dan batasan
Prasyarat umum
DR Orchestrator Framework digunakan di primer dan sekunder Wilayah AWS
Virtual Private Cloud (VPC)
dengan dua subnet dan grup keamanan AWS
Prasyarat khusus mesin
Amazon Aurora — Setidaknya satu database global Aurora harus tersedia dalam dua. Wilayah AWS Anda dapat menggunakan
us-east-1sebagai Wilayah utama, dan digunakanus-west-2sebagai Wilayah sekunder.Amazon ElastiCache (Redis OSS) — Datastore ElastiCache global harus tersedia dalam dua. Wilayah AWS Anda dapat
use us-east-1sebagai Wilayah utama, dan digunakanus-west-2sebagai Wilayah sekunder.
Keterbatasan Amazon RDS
DR Orchestrator Framework tidak memeriksa kelambatan replikasi sebelum melakukan failover atau failback. Kelambatan replikasi harus diperiksa secara manual.
Solusi ini telah diuji menggunakan instance database utama dengan satu replika baca. Jika Anda ingin menggunakan lebih dari satu replika baca, uji solusinya secara menyeluruh sebelum menerapkannya di lingkungan produksi.
Keterbatasan Aurora
Ketersediaan dan dukungan fitur bervariasi di seluruh versi tertentu dari setiap mesin database dan di seluruh Wilayah AWS. Untuk informasi selengkapnya tentang fitur dan ketersediaan Wilayah untuk replikasi Lintas wilayah, lihat replika baca Lintas Wilayah.
Database global Aurora memiliki persyaratan konfigurasi khusus untuk kelas instans Aurora DB yang didukung dan jumlah maksimum. Wilayah AWS Untuk informasi selengkapnya, lihat Persyaratan konfigurasi database global Amazon Aurora.
Solusi ini telah diuji menggunakan instance database utama dengan satu replika baca. Jika Anda ingin menggunakan lebih dari satu replika baca, uji solusinya secara menyeluruh sebelum menerapkannya di lingkungan produksi.
ElastiCache keterbatasan
Untuk informasi tentang ketersediaan Wilayah untuk Datastore Global dan persyaratan ElastiCache konfigurasi, lihat Prasyarat dan batasan dalam dokumentasi. ElastiCache
Amazon RDS p versi roduct
Amazon RDS mendukung versi mesin berikut:
MySQL — Amazon RDS mendukung instans DB yang menjalankan versi MySQL berikut: MySQL 8.0 dan MySQL 5.7
MariaDB - Amazon RDS mendukung instans DB yang menjalankan versi MariaDB berikut:
MariaDB 10.11
MariaDB 10.6
MariaDB 10.5
Versi produk Aurora
Peralihan basis data global Amazon Aurora memerlukan Aurora MySQL yang kompatibel dengan kompatibilitas MySQL 5.7, versi 2.09.1 dan lebih tinggi
Untuk informasi selengkapnya, lihat Batasan database global Amazon Aurora.
ElastiCache (Redis OSS) versi produk
Amazon ElastiCache (Redis OSS) mendukung versi Redis berikut:
Redis 7.1 (ditingkatkan)
Redis 7.0 (ditingkatkan)
Redis 6.2 (ditingkatkan)
Redis 6.0 (ditingkatkan)
Redis 5.0.6 (ditingkatkan)
Untuk informasi selengkapnya, lihat Versi yang didukung ElastiCache (Redis OSS).
Arsitektur
Arsitektur Amazon RDS
Arsitektur Amazon RDS mencakup sumber daya berikut:
Instans Amazon RDS DB utama yang dibuat di Region (
us-east-1) utama dengan read/write akses untuk klienReplika baca Amazon RDS yang dibuat di Region sekunder (
us-west-2) dengan akses hanya-baca untuk klienDR Orchestrator Framework dikerahkan di Wilayah primer dan sekunder

Diagram menunjukkan yang berikut:
Replikasi asinkron antara instance primer dan instance sekunder
Akses baca/tulis untuk klien di Wilayah utama
Akses hanya-baca untuk klien di Wilayah sekunder
Arsitektur Aurora
Arsitektur Amazon Aurora mencakup sumber daya berikut:
Cluster Aurora DB utama yang dibuat di Region (
us-east-1) primer dengan titik akhir penulis aktifCluster Aurora DB yang dibuat di Region sekunder (
us-west-2) dengan titik akhir penulis yang tidak aktifDR Orchestrator Framework dikerahkan di Wilayah primer dan sekunder

Diagram menunjukkan yang berikut:
Replikasi asinkron antara cluster primer dan cluster sekunder
Cluster DB utama dengan titik akhir penulis aktif
Cluster DB sekunder dengan titik akhir penulis yang tidak aktif
ElastiCache Arsitektur (Redis OSS)
Arsitektur Amazon ElastiCache (Redis OSS) mencakup sumber daya berikut:
Datastore global ElastiCache (Redis OSS) yang dibuat dengan dua cluster:
Cluster utama di Region primer (
us-east-1)Cluster sekunder di Region sekunder (
us-west-2)
Tautan Amazon Cross-region dengan enkripsi TLS 1.2 antara kedua cluster
DR Orchestrator Framework dikerahkan di Wilayah primer dan sekunder

Otomatisasi dan skala
DR Orchestrator Framework dapat diskalakan dan mendukung failover atau failback lebih dari satu database secara paralel. AWS
Anda dapat menggunakan kode payload berikut untuk gagal melalui beberapa AWS database di akun Anda. Dalam contoh ini, tiga AWS database (dua database global seperti Aurora MySQL kompatibel atau Aurora PostgreSQL kompatibel, dan satu Amazon RDS untuk MySQL instance) gagal ke Wilayah DR:
{ "StatePayload": [ { "layer": 1, "resources": [ { "resourceType": "PlannedFailoverAurora", "resourceName": "Switchover (planned failover) of Amazon Aurora global databases (MySQL)", "parameters": { "GlobalClusterIdentifier": "!Import dr-globaldb-cluster-mysql-global-identifier", "DBClusterIdentifier": "!Import dr-globaldb-cluster-mysql-cluster-identifier" } }, { "resourceType": "PlannedFailoverAurora", "resourceName": "Switchover (planned failover) of Amazon Aurora global databases (PostgreSQL)", "parameters": { "GlobalClusterIdentifier": "!Import dr-globaldb-cluster-postgres-global-identifier", "DBClusterIdentifier": "!Import dr-globaldb-cluster-postgres-cluster-identifier" } }, { "resourceType": "PromoteRDSReadReplica", "resourceName": "Promote RDS for MySQL Read Replica", "parameters": { "RDSInstanceIdentifier": "!Import rds-mysql-instance-identifier", "TargetClusterIdentifier": "!Import rds-mysql-instance-global-arn" } } ] } ] }
Alat
AWS layanan
Amazon Aurora adalah mesin database relasional yang dikelola sepenuhnya yang dibangun untuk cloud dan kompatibel dengan MySQL dan PostgreSQL.
Amazon ElastiCache membantu Anda mengatur, mengelola, dan menskalakan lingkungan cache dalam memori terdistribusi di. AWS Cloud Pola ini menggunakan Amazon ElastiCache (Redis OSS).
AWS Lambda
adalah 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. Dalam pola ini, fungsi Lambda digunakan oleh AWS Step Functions untuk melakukan langkah-langkah. Amazon Relational Database Service (Amazon RDS) membantu Anda menyiapkan, mengoperasikan, dan menskalakan database relasional di. AWS Cloud Pola ini mendukung Amazon RDS for MySQL, Amazon RDS for PostgreSQL, dan Amazon RDS for MariaDB.
AWS SDK untuk Python (Boto3)
membantu Anda mengintegrasikan aplikasi, perpustakaan, atau skrip Python Anda. Layanan AWS Dalam pola ini, Boto3 APIs digunakan untuk berkomunikasi dengan instance database atau database global. AWS Step Functions
adalah layanan orkestrasi tanpa server yang membantu Anda menggabungkan AWS Lambda fungsi dan lainnya Layanan AWS untuk membangun aplikasi bisnis yang penting. Dalam pola ini, mesin status Step Functions digunakan untuk mengatur dan menjalankan failover Cross-region dan failback dari instance database atau database global.
Repositori kode
Kode untuk pola ini tersedia di repositori aws-cross-region-dr-databases
Epik
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Kloning GitHub repositori. | Untuk mengkloning repositori, jalankan perintah berikut:
| AWS DevOps, administrator AWS |
Package Lambda berfungsi kode dalam arsip file.zip. | Buat file arsip untuk fungsi Lambda untuk menyertakan dependensi DR Orchestrator Framework:
| Administrator AWS |
Buat ember S3. | Bucket S3 diperlukan untuk menyimpan DR Orchestrator Framework bersama dengan konfigurasi terbaru Anda. Buat dua bucket S3, satu di Region utama (
Ganti | Administrator AWS |
Buat subnet dan grup keamanan. | Di Region (
| Administrator AWS |
Perbarui file parameter DR Orchestrator. | Di
Gunakan nilai parameter berikut, ganti
| Administrator AWS |
Unggah kode DR Orchestrator Framework ke bucket S3. | Kode akan lebih aman di ember S3 daripada di direktori lokal. Unggah Untuk mengunggah kode, lakukan hal berikut:
| Administrator AWS |
Menyebarkan Kerangka Orkestrator DR di Wilayah utama. | Untuk menerapkan DR Orchestrator Framework di Region (
| Administrator AWS |
Menyebarkan Kerangka Orkestrator DR di Wilayah sekunder. | Di Region sekunder (
| Administrator AWS |
Verifikasi penyebaran. | Jika CloudFormation perintah berjalan berhasil, ia mengembalikan output berikut:
Atau, Anda dapat menavigasi ke CloudFormation konsol dan memverifikasi status | Administrator AWS |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Buat subnet database dan grup keamanan. | Di VPC Anda, buat dua subnet dan satu grup keamanan untuk instans DB atau database global di Wilayah primer (
| Administrator AWS |
Perbarui file parameter untuk instans atau cluster DB primer. | Di Amazon RDS Dalam
Amazon Aurora Dalam
Amazon ElastiCache (Redis OSS) Dalam
| Administrator AWS |
Terapkan instans atau cluster DB Anda di Wilayah utama. | Untuk menerapkan instance atau cluster Anda di Region ( Amazon RDS
Amazon Aurora
Amazon ElastiCache (Redis OSS)
Verifikasi bahwa CloudFormation sumber daya berhasil digunakan. | Administrator AWS |
Perbarui file parameter untuk instance atau cluster DB sekunder. | Di Amazon RDS Dalam
Amazon Aurora Dalam
Amazon ElastiCache (Redis OSS) Dalam
| Administrator AWS |
Terapkan instans atau cluster DB Anda di Wilayah sekunder. | Jalankan perintah berikut, berdasarkan mesin database Anda. Amazon RDS
Amazon Aurora
Amazon ElastiCache (Redis OSS)
Verifikasi bahwa CloudFormation sumber daya berhasil digunakan. | Administrator AWS |
Sumber daya terkait
Strategi pemulihan bencana untuk database pada AWS (Strategi Panduan AWS Preskriptif)
Otomatiskan solusi DR Anda untuk database relasional di AWS(panduan panduan AWS preskriptif)
Replikasi di seluruh Wilayah AWS menggunakan datastores global
Otomatiskan solusi DR Anda untuk database relasional di AWS(panduan panduan AWS preskriptif)