Aktif-Aktif Multi-Situs dengan Global Tables dan Route 53
Jalankan kapasitas produksi penuh di dua Region atau lebih secara bersamaan menggunakan DynamoDB Global Tables, Aurora Global Database, dan perutean latensi Route 53.
Aktif-Aktif Multi-Situs dengan Global Tables dan Route 53 adalah pelajaran Cloud & IT Cert Prep gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Cloud & IT Cert Prep, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Cloud & IT Cert Prep mencakup 4 pelajaran total.
Definisi Multi-Site Active-Active
Multi-Site Active-Active adalah tingkat tertinggi pemulihan bencana, dengan aplikasi Anda berjalan pada kapasitas produksi penuh di dua atau lebih region AWS secara bersamaan. Berbeda dengan active-passive, saat standby menunggu untuk mengambil alih, pada active-active kedua region selalu melayani traffic pengguna secara langsung. Saat salah satu region gagal, region lainnya segera menyerap 100% traffic tanpa jeda failover. Pola ini juga mengurangi latensi bagi pengguna yang tersebar di seluruh dunia dengan melayani mereka dari region terdekat.
# Active-Active traffic split (normal operation):
# us-east-1: serving ~50% of users (North America)
# eu-west-1: serving ~50% of users (Europe)
# Active-Active traffic split (us-east-1 failure):
# us-east-1: 0% (health check failed)
# eu-west-1: 100% (ASG scales up automatically)
# RTO: near-zero (DNS TTL propagation only)
# RPO: near-zero (with DynamoDB Global Tables)Arsitektur DynamoDB Global Tables
DynamoDB Global Tables adalah tulang punggung data untuk arsitektur active-active. Global Tables memungkinkan replikasi multi-master dan multi-region—aplikasi di region mana pun dapat membaca dan menulis ke tabel DynamoDB lokal, dan perubahan direplikasi ke semua region lain dalam waktu sekitar 1 detik. Anda mengaktifkan Global Tables dengan menentukan region tempat tabel tersebut harus tersedia. AWS menangani seluruh replikasi, resolusi konflik (penulis terakhir menang), dan failover secara otomatis.
# Create DynamoDB table and add global regions
aws dynamodb create-table \
--table-name UserSessions \
--attribute-definitions AttributeName=userId,AttributeType=S \
--key-schema AttributeName=userId,KeyType=HASH \
--billing-mode PAY_PER_REQUEST \
--region us-east-1
# Add replica regions for Global Table
aws dynamodb update-table \
--table-name UserSessions \
--replica-updates '[{"Create":{"RegionName":"eu-west-1"}},{"Create":{"RegionName":"ap-southeast-1"}}]' \
--region us-east-1Aurora Global Database untuk Penulisan Aktif dan Pembacaan
Aurora Global Database menyediakan pembacaan active-active, tetapi penulisan active-passive. Semua region sekunder melayani pembacaan dengan jeda replikasi kurang dari 1 detik, sedangkan hanya region primary yang menerima penulisan. Ini ideal untuk aplikasi yang banyak melakukan pembacaan dan menginginkan pembacaan berlatensi rendah secara global, dengan primary penulisan yang jelas. Saat terjadi kegagalan regional pada primary, Anda dapat mempromosikan region sekunder menjadi primary dalam waktu kurang dari 1 menit sehingga mencapai RTO rendah untuk tingkat penulisan. Bandingkan dengan DynamoDB Global Tables yang mendukung penulisan active-active di semua region.
# Aurora Global Database read configuration
# Primary region (us-east-1): reads + writes
# Secondary region (eu-west-1): reads only
# ~100ms replication lag, serves EU users low-latency reads
# Application reads from local Aurora endpoint
# Application writes to primary region Aurora endpoint
# Java connection string with region routing:
# readEndpoint=eu-west-1.cluster-ro-xxx.aurora.amazonaws.com
# writeEndpoint=us-east-1.cluster-xxx.aurora.amazonaws.comPerutean Route 53 untuk Active-Active
Route 53 adalah pengarah traffic untuk arsitektur multi-site active-active. Gunakan perutean berbasis latensi untuk mengarahkan setiap pengguna ke region dengan latensi jaringan terendah dari lokasi mereka. Lampirkan pemeriksaan kesehatan ke setiap catatan regional—ketika suatu region gagal dalam pemeriksaan kesehatannya, Route 53 secara otomatis menghapusnya dari respons DNS dan mengarahkan seluruh traffic ke region sehat yang tersisa. Atur TTL DNS menjadi 60 detik atau kurang untuk meminimalkan waktu yang dibutuhkan pengguna untuk beralih ke region yang sehat.
# Route 53 latency routing with health checks
aws route53 change-resource-record-sets \
--hosted-zone-id ZXXX \
--change-batch '{
"Changes": [
{
"Action": "UPSERT",
"ResourceRecordSet": {
"Name": "api.example.com",
"Type": "A",
"Region": "us-east-1",
"SetIdentifier": "us-east-1",
"HealthCheckId": "hc-us-east-1",
"AliasTarget": {"DNSName": "alb-us-east-1.amazonaws.com", "EvaluateTargetHealth": false}
}
}
]
}'Auto Scaling untuk Menyerap Traffic
Saat salah satu region gagal dalam konfigurasi active-active, region yang bertahan harus menangani traffic normal sebesar 2 kali lipat (atau lebih). Auto Scaling Group Anda harus memiliki kapasitas maksimum yang memadai serta kebijakan scale-out yang bereaksi dengan cepat. Konfigurasikan target tracking scaling berdasarkan jumlah permintaan ALB per target agar ASG menambahkan instance secara otomatis saat traffic berlipat ganda. Pertimbangkan juga pemanasan awal: selama latihan failover, amati seberapa cepat ASG melakukan scale-out dan pastikan ASG dapat mencapai kapasitas yang diperlukan dalam target RTO Anda.
# ASG target tracking for request count
aws autoscaling put-scaling-policy \
--auto-scaling-group-name app-asg-eu-west-1 \
--policy-name scale-on-requests \
--policy-type TargetTrackingScaling \
--target-tracking-configuration '{
"TargetValue": 1000,
"PredefinedMetricSpecification": {
"PredefinedMetricType": "ALBRequestCountPerTarget",
"ResourceLabel": "app/my-alb/xxx/targetgroup/my-tg/yyy"
},
"ScaleInCooldown": 60,
"ScaleOutCooldown": 30
}'Manajemen Sesi dalam Active-Active
Dalam arsitektur satu region, sesi pengguna dapat disimpan secara lokal di server aplikasi. Dalam active-active multi-region, pengguna mungkin berpindah-pindah antarregion pada permintaan berikutnya sehingga sesi sisi server terganggu. Solusinya: 1) Sesi tanpa status—simpan data sesi dalam JWT bertanda tangan atau cookie yang dapat divalidasi oleh server mana pun di region mana pun. 2) DynamoDB Global Tables untuk sesi—simpan sesi secara terpusat dengan akses dalam hitungan milidetik dari region mana pun. 3) ElastiCache dengan Global Datastore—gunakan replikasi Redis antarregion untuk penyimpanan sesi.
# DynamoDB Global Table for session storage
# Session item structure:
{
'sessionId': 'sess-abc123',
'userId': 'usr-456',
'data': {'cart': [...], 'preferences': {}},
'expiresAt': 1750000000,
'lastUpdatedRegion': 'us-east-1'
}
# Application reads from local region DynamoDB
# Writes replicate to all regions within ~1 second
# No sticky sessions needed on the ALBKonflik Penulisan dan Resolusinya
Tantangan terbesar dalam active-active dengan penulisan multi-master adalah konflik penulisan. Jika dua pengguna di region berbeda memperbarui catatan yang sama secara bersamaan, pembaruan mana yang menang? DynamoDB Global Tables menggunakan aturan penulis terakhir menang berdasarkan stempel waktu penulisan. Cara ini berfungsi baik untuk sebagian besar kasus penggunaan, tetapi dapat menyebabkan kehilangan data untuk pembaruan yang saling bersaing (misalnya, dua pengguna menaikkan nilai penghitung secara bersamaan). Rancang model data Anda untuk menghindari penulisan bersamaan ke item yang sama oleh region berbeda menggunakan penulisan bersyarat atau dengan membagi kepemilikan data berdasarkan region.
# Avoid conflicts with conditional writes
aws dynamodb update-item \
--table-name UserProfiles \
--key '{"userId":{"S":"usr-123"}}' \
--update-expression 'SET profileVersion = profileVersion + :inc, username = :name' \
--condition-expression 'profileVersion = :expectedVersion' \
--expression-attribute-values '{
":inc":{"N":"1"},
":name":{"S":"newname"},
":expectedVersion":{"N":"5"}
}'
# If another region already updated version, this fails gracefullyReplikasi S3 dalam Active-Active
Untuk penyimpanan objek dalam active-active, gunakan S3 Cross-Region Replication dengan replikasi dua arah (tersedia pada bucket yang mengaktifkan versioning). Berbeda dengan CRR satu arah, replikasi dua arah menjaga bucket di kedua region tetap sinkron—objek yang ditulis di salah satu region secara otomatis direplikasi ke region lainnya. Hal ini penting bagi aplikasi yang menulis file yang diunggah pengguna ke bucket S3 di region lokalnya, tetapi memerlukan file tersebut agar dapat diakses secara global. Aktifkan Replication Time Control (RTC) S3 untuk menjamin 99,99% objek direplikasi dalam 15 menit.
# Bidirectional S3 replication
# Bucket A (us-east-1) replicates to Bucket B (eu-west-1)
# Bucket B (eu-west-1) replicates to Bucket A (us-east-1)
# Enable S3 RTC for guaranteed replication time
aws s3api put-bucket-replication \
--bucket us-east-1-uploads \
--replication-configuration '{
"Rules": [{
"Status": "Enabled",
"ReplicationTime": {"Status": "Enabled", "Time": {"Minutes": 15}},
"Metrics": {"Status": "Enabled", "EventThreshold": {"Minutes": 15}},
"Destination": {"Bucket": "arn:aws:s3:::eu-west-1-uploads"}
}]
}'CloudFront dengan Origin Multi-Region
Gunakan CloudFront dengan kelompok origin untuk membuat CDN active-active dengan failover otomatis. Konfigurasikan origin primary (ALB di us-east-1) dan origin sekunder (ALB di eu-west-1). CloudFront secara otomatis melakukan failover ke origin sekunder saat origin primary mengembalikan error 5xx. Untuk aset statis yang dilayani dari S3, konfigurasikan kelompok origin yang mengarah ke bucket S3 di beberapa region dengan replikasi dua arah. Hal ini menambahkan lapisan ketahanan tingkat CDN di atas perutean active-active Route 53 Anda.
# CloudFront origin group for multi-region failover
aws cloudfront create-distribution \
--distribution-config '{
"Origins": {
"Quantity": 2,
"Items": [
{"Id": "us-east-1", "DomainName": "alb-us-east-1.amazonaws.com"},
{"Id": "eu-west-1", "DomainName": "alb-eu-west-1.amazonaws.com"}
]
},
"OriginGroups": {
"Items": [{
"Id": "multi-region-group",
"FailoverCriteria": {"StatusCodes": {"Items": [500,502,503,504]}},
"Members": {"Items": [{"OriginId": "us-east-1"},{"OriginId": "eu-west-1"}]}
}]
}
}'Pemantauan Kesehatan Active-Active
Arsitektur active-active memerlukan pemantauan yang kuat untuk memastikan kedua region sehat dan traffic terbagi sesuai harapan. Metrik utama meliputi: Route 53 HealthCheckPercentageHealthy per region, DynamoDB ReplicationLatency untuk mengukur jeda Global Tables, ALB RequestCount per region untuk memverifikasi distribusi traffic, serta dashboard CloudWatch lintas akun/lintas region untuk tampilan terpadu. Atur alarm saat jeda replikasi melampaui ambang RPO Anda atau saat distribusi traffic menjadi sangat tidak seimbang.
# CloudWatch alarm for DynamoDB Global Table replication lag
aws cloudwatch put-metric-alarm \
--alarm-name 'GlobalTable-ReplicationLag-eu-west-1' \
--metric-name ReplicationLatency \
--namespace AWS/DynamoDB \
--dimensions Name=TableName,Value=UserSessions Name=ReceivingRegion,Value=eu-west-1 \
--period 60 \
--evaluation-periods 3 \
--threshold 5000 \
--comparison-operator GreaterThanThreshold \
--alarm-actions arn:aws:sns:us-east-1:123:ops-alertsKapan Active-Active Menjadi Pilihan yang Tepat
Active-active sesuai digunakan ketika: pengguna tersebar secara global dan latensi ke satu region tidak dapat diterima. RTO harus mendekati nol—bisnis tidak dapat menoleransi downtime bahkan selama beberapa menit. Throughput penulisan yang tinggi memerlukan penyebaran penulisan ke berbagai region. Persyaratan regulasi mewajibkan pemrosesan data di dalam negara. Biayanya jauh lebih tinggi dibandingkan tingkat DR lainnya, jadi pilih active-active hanya jika kebutuhan bisnis dan pertimbangan ekonominya benar-benar membenarkannya. Untuk banyak beban kerja, Warm Standby sudah memadai dan jauh lebih murah.
# Active-Active justification checklist:
# [ ] Users in 2+ continents with latency SLAs
# [ ] RTO requirement < 5 minutes
# [ ] Revenue impact of downtime justifies 2x+ cost
# [ ] Data must remain within specific regions (regulations)
# [ ] Write throughput exceeds single-region capacity
# If fewer than 2-3 boxes checked:
# Consider Warm Standby instead (lower cost, adequate RTO)Pemeriksaan Singkat
Uji pemahaman Anda tentang konsep AWS Solutions Architect (SAA-C03) dari pelajaran ini.
Ringkasan Pelajaran
Dalam pelajaran ini Anda mempelajari bahwa: DynamoDB Global Tables memungkinkan penulisan multi-master antarregion untuk active-active yang sesungguhnya, perutean berbasis latensi Route 53 dengan pemeriksaan kesehatan mengarahkan pengguna ke region sehat terdekat, dan manajemen sesi harus tanpa status atau menggunakan penyimpanan yang direplikasi secara global dalam active-active. Active-active menyediakan RTO dan RPO yang mendekati nol, tetapi dengan biaya yang jauh lebih tinggi. Selanjutnya kita akan membahas pilar Operational Excellence dan Security dalam Well-Architected Framework.
Belajar Cloud & IT Cert Prep dengan tutor AI — gratis
Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.
- Kursus
- 150
- Pelajaran
- 600
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Aktif-Aktif Multi-Situs dengan Global Tables dan Route 53” gratis?
Ya — teks lengkap “Aktif-Aktif Multi-Situs dengan Global Tables dan Route 53” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Cloud & IT Cert Prep, upgrade ke CoddyKit PRO. Kursus Cloud & IT Cert Prep mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Aktif-Aktif Multi-Situs dengan Global Tables dan Route 53”?
Jalankan kapasitas produksi penuh di dua Region atau lebih secara bersamaan menggunakan DynamoDB Global Tables, Aurora Global Database, dan perutean latensi Route 53. Kamu berlatih Cloud & IT Cert Prep dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Cloud & IT Cert Prep?
Tidak diperlukan pengalaman sebelumnya. Cloud & IT Cert Prep di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.
Berapa lama pelajaran “Aktif-Aktif Multi-Situs dengan Global Tables dan Route 53” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Cloud & IT Cert Prep ini?
Ya. Setiap pelajaran Cloud & IT Cert Prep menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Tingkat RTO, RPO, dan DR
- Pencadangan dan Pemulihan
- Pilot Light dan Cadangan Hangat
- Aktif-Aktif Multi-Situs dengan Global Tables dan Route 53