Global Tables ve Route 53 ile Çok Bölgeli Etkin-Etkin
DynamoDB Global Tables, Aurora Global Database ve Route 53 gecikme yönlendirmesini kullanarak tam üretim kapasitesini iki veya daha fazla Bölgede aynı anda çalıştırın.
Global Tables ve Route 53 ile Çok Bölgeli Etkin-Etkin, CoddyKit'te ücretsiz bir Cloud & IT Cert Prep dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Cloud & IT Cert Prep öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Cloud & IT Cert Prep kursu toplamda 4 dersten oluşur.
Çok Siteli Active-Active Tanımı
Multi-Site Active-Active, uygulamanızın aynı anda iki veya daha fazla AWS bölgesinde tam üretim kapasitesiyle çalıştığı en üst düzey felaket kurtarma katmanıdır. Devralmayı bekleyen bir pasif yapıdan farklı olarak Active-Active modelinde her iki bölge de her zaman canlı kullanıcı trafiğine hizmet verir. Bir bölge başarısız olduğunda diğeri, herhangi bir yük devretme gecikmesi olmadan trafiğin %100'ünü hemen karşılar. Bu model, küresel olarak dağıtılmış kullanıcılara en yakın bölgeden hizmet vererek gecikmeyi de azaltır.
# 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)DynamoDB Global Tables Mimarisi
DynamoDB Global Tables, Active-Active mimarilerinin veri omurgasıdır. Global Tables, çok yöneticili, çok bölgeli çoğaltmayı etkinleştirir — herhangi bir bölgedeki uygulamalar yerel bir DynamoDB tablosuna okuma ve yazma yapabilir; değişiklikler yaklaşık 1 saniye içinde diğer tüm bölgelere çoğaltılır. Global Tables'ı, tablonun bulunması gereken bölgeleri belirterek etkinleştirirsiniz. AWS, tüm çoğaltma işlemlerini, çakışma çözümünü (son yazan kazanır) ve yük devretmeyi otomatik olarak yönetir.
# 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-1Yazma Etkin Okumalar için Aurora Global Database
Aurora Global Database, Active-Active okumalar ancak Active-Passive yazmalar sağlar. Tüm Secondary bölgeler, 1 saniyenin altında çoğaltma gecikmesiyle okuma hizmeti verir; yazmaları ise yalnızca Primary bölge kabul eder. Bu yapı, yazma işlemleri için belirgin bir Primary bölgeyle birlikte küresel ölçekte düşük gecikmeli okumalar isteyen, okuma ağırlıklı uygulamalar için idealdir. Primary bölgenin bölgesel olarak başarısız olması durumunda bir Secondary bölgeyi 1 dakikadan kısa sürede Primary konumuna yükselterek yazma katmanı için düşük RTO elde edebilirsiniz. Bunu, tüm bölgelerde Active-Active yazmaları destekleyen DynamoDB Global Tables ile karşılaştırın.
# 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.comActive-Active için Route 53 Yönlendirmesi
Route 53, çok siteli Active-Active mimarilerinin trafik yöneticisidir. Her kullanıcıyı bulunduğu konumdan en düşük ağ gecikmesine sahip bölgeye göndermek için gecikme tabanlı yönlendirme kullanın. Her bölgesel kayda sağlık denetimleri ekleyin — bir bölge sağlık denetimini geçemediğinde Route 53 bu bölgeyi DNS yanıtlarından otomatik olarak çıkarır ve tüm trafiği sağlıklı kalan bölgelere gönderir. Kullanıcıların sağlıklı bölgeye geçmesinin alacağı süreyi en aza indirmek için DNS TTL değerini 60 saniye veya daha kısa olarak ayarlayın.
# 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}
}
}
]
}'Trafiği Karşılamak için Auto Scaling
Active-Active kurulumunda bir bölge başarısız olduğunda, ayakta kalan bölge normal trafiğinin 2 katını (veya daha fazlasını) karşılamalıdır. Auto Scaling Group yeterli maksimum kapasiteye ve hızlı tepki veren ölçek artırma politikalarına sahip olmalıdır. ASG'nin trafik iki katına çıktığında örnekleri otomatik olarak eklemesi için ALB hedef başına istek sayısını temel alan hedef izlemeli ölçeklendirme yapılandırın. Ayrıca önceden ısıtmayı değerlendirin: yük devretme tatbikatları sırasında ASG'nizin ne kadar hızlı ölçeklendiğini gözlemleyin ve RTO hedefiniz içinde gerekli kapasiteye ulaşabildiğinden emin olun.
# 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
}'Active-Active'de Oturum Yönetimi
Tek bölgeli bir mimaride kullanıcı oturumları yerel olarak uygulama sunucularında saklanabilir. Active-Active çok bölgeli yapıda kullanıcılar sonraki isteklerde bölgeler arasında geçiş yapabilir ve bu durum sunucu tarafı oturumlarını bozabilir. Çözümler: 1) Durum bilgisiz oturumlar — oturum verilerini, herhangi bir bölgedeki herhangi bir sunucunun doğrulayabileceği imzalı bir JWT veya çerezde saklayın. 2) Oturumlar için DynamoDB Global Tables — oturumları merkezi olarak saklayın ve herhangi bir bölgeden milisaniyeler içinde erişin. 3) Global Datastore ile ElastiCache — oturum depolama için bölgeler arasında Redis çoğaltması kullanın.
# 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 ALBYazma Çakışmaları ve Çözümleme
Çok yöneticili yazmalar içeren Active-Active yapısındaki en büyük zorluk yazma çakışmalarıdır. Farklı bölgelerdeki iki kullanıcı aynı kaydı aynı anda güncellerse hangi güncelleme kazanır? DynamoDB Global Tables, yazma zaman damgasını temel alan son yazan kazanır yaklaşımını kullanır. Bu yaklaşım çoğu kullanım durumu için iyi çalışır; ancak birbiriyle yarışan güncellemelerde veri kaybına yol açabilir (örneğin, iki kullanıcının aynı anda bir sayacı artırması). koşullu yazmalar kullanarak veya veri sahipliğini bölgeye göre bölümleyerek farklı bölgelerin aynı öğeye eş zamanlı yazmasını önleyecek şekilde veri modelinizi tasarlayın.
# 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 gracefullyActive-Active'de S3 Çoğaltması
Active-Active yapısında nesne depolama için çift yönlü çoğaltma ile S3 Cross-Region Replication kullanın (sürüm oluşturma etkinleştirilmiş Bucket'larda kullanılabilir). Tek yönlü CRR'dan farklı olarak çift yönlü çoğaltma, her iki bölgedeki Bucket'ların eşitlenmesini sağlar — herhangi bir bölgeye yazılan nesneler otomatik olarak diğer bölgeye çoğaltılır. Bu, kullanıcıların yüklediği dosyaları yerel bölgelerinin S3 Bucket'ına yazan ancak bu dosyalara küresel olarak erişilmesini gerektiren uygulamalar için kritik öneme sahiptir. Nesnelerin %99,99'unun 15 dakika içinde çoğaltılmasını garanti etmek için S3 Replication Time Control (RTC) özelliğini etkinleştirin.
# 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"}
}]
}'Çok Bölgeli Origin'lerle CloudFront
Otomatik yük devretmeli bir Active-Active CDN oluşturmak için OriginGroups içeren CloudFront kullanın. Bir Primary Origin'i (us-east-1'deki ALB) ve bir Secondary Origin'i (eu-west-1'deki ALB) yapılandırın. Primary Origin 5xx hataları döndürdüğünde CloudFront otomatik olarak Secondary Origin'e geçer. S3'ten sunulan statik varlıklar için OriginGroups'u, çift yönlü çoğaltma kullanan birden fazla bölgedeki S3 Bucket'larına işaret edecek şekilde yapılandırın. Bu, Route 53 Active-Active yönlendirmenizin üzerine CDN düzeyinde bir dayanıklılık katmanı ekler.
# 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"}]}
}]
}
}'Active-Active Sağlığını İzleme
Active-Active mimarileri, her iki bölgenin de sağlıklı olmasını ve trafiğin beklendiği gibi dengelenmesini sağlamak için güçlü bir izleme gerektirir. Temel ölçümler şunlardır: bölge başına Route 53 HealthCheckPercentageHealthy, Global Tables gecikmesi için DynamoDB ReplicationLatency, trafik dağılımını doğrulamak için bölge başına ALB RequestCount ve birleşik bir görünüm için CloudWatch hesaplar arası/bölgeler arası panolar. Çoğaltma gecikmesi RPO eşiğinizi aştığında veya trafik dağılımı ciddi ölçüde dengesizleştiğinde alarmlar ayarlayın.
# 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-alertsActive-Active Ne Zaman Doğru Seçimdir
Active-Active şu durumlarda uygundur: kullanıcılar küresel olarak dağıtılmışsa ve tek bir bölgeye olan gecikme kabul edilemez düzeydeyse. RTO sıfıra yakın olmalıdır — işletme birkaç dakikalık kesintiyi bile tolere edemiyorsa. Yüksek yazma hacmi yazmaların bölgeler arasında dağıtılmasını gerektiriyorsa. Mevzuat gereksinimleri verilerin ülke içinde işlenmesini zorunlu kılıyorsa. Maliyeti diğer DR katmanlarından önemli ölçüde yüksek olduğundan Active-Active'i yalnızca iş gereksinimleri ve ekonomik koşullar bunu açıkça haklı çıkarıyorsa seçin. Birçok iş yükü için Warm Standby yeterlidir ve çok daha ucuzdur.
# 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)Hızlı Kontrol
Bu dersteki AWS Solutions Architect (SAA-C03) kavramlarını anlayıp anlamadığınızı test edin.
Ders Özeti
Bu derste şunları öğrendiniz: DynamoDB Global Tables, gerçek bir Active-Active yapısı için bölgeler arasında çok yöneticili yazmaları etkinleştirir, Route 53 gecikme yönlendirmesi ve sağlık denetimleri kullanıcıları en yakın sağlıklı bölgeye yönlendirir ve Active-Active yapısında oturum yönetimi durum bilgisiz olmalı veya küresel olarak çoğaltılan depolama kullanılmalıdır. Active-Active, neredeyse sıfır RTO ve RPO sağlar; ancak maliyeti önemli ölçüde daha yüksektir. Sırada Well-Architected Framework'ün Operational Excellence ve Security sütunlarını inceleyeceğiz.
Sıkça Sorulan Sorular
“Global Tables ve Route 53 ile Çok Bölgeli Etkin-Etkin” dersi ücretsiz mi?
Evet — “Global Tables ve Route 53 ile Çok Bölgeli Etkin-Etkin” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Cloud & IT Cert Prep kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Cloud & IT Cert Prep kursu toplamda 4 dersten oluşur.
“Global Tables ve Route 53 ile Çok Bölgeli Etkin-Etkin” dersinde ne öğreneceğim?
DynamoDB Global Tables, Aurora Global Database ve Route 53 gecikme yönlendirmesini kullanarak tam üretim kapasitesini iki veya daha fazla Bölgede aynı anda çalıştırın. Cloud & IT Cert Prep ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Cloud & IT Cert Prep öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Cloud & IT Cert Prep, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.
“Global Tables ve Route 53 ile Çok Bölgeli Etkin-Etkin” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Cloud & IT Cert Prep dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Cloud & IT Cert Prep dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- RTO, RPO ve DR Katmanları
- Yedekleme ve Geri Yükleme
- Pilot Işık ve Sıcak Bekleme
- Global Tables ve Route 53 ile Çok Bölgeli Etkin-Etkin