0Pricing
AWS Solutions Architect · Ders

Durum Bilgili Hizmetler için Çoklu AZ Örüntüleri

Bir Bölge içindeki tek hata noktalarını ortadan kaldırmak için RDS, ElastiCache, EFS ve ELB'ye Çoklu-AZ uygulayın.

Durum Bilgili Hizmetler için Çoklu AZ Örüntüleri, CoddyKit'te ücretsiz bir AWS Solutions Architect dersidir. Bu, 4 dersinin 2. 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, AWS Solutions Architect öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. AWS Solutions Architect kursu toplamda 4 dersten oluşur.

Durum Bilgili Hizmetler Neden Multi-AZ Gerektirir

Durum bilgili hizmetler — veritabanları, önbellekler ve dosya sistemleri — arızalardan sonra korunması gereken verileri tuttukları için yüksek kullanılabilirliğe sahip hâle getirilmesi en zor bileşenlerdir. Tek bir AZ'deki veritabanı arızalanırsa uygulamanız veri deposunun tamamını kaybeder. AWS'nin çözümü, birincil bileşen arızalandığında hızla devreye girebilen ikinci bir Kullanılabilirlik Alanında eş zamanlı veya eş zamana yakın bir çoğaltmayı hizmetin koruduğu Multi-AZ dağıtımlarıdır.

RDS Multi-AZ: Eş Zamanlı Bekleme Örneği

RDS Multi-AZ, farklı bir AZ'de eş zamanlı bir bekleme çoğaltması tutar. Birincil bileşene yapılan her yazma işlemi, başarı onaylanmadan önce eş zamanlı olarak çoğaltılır; bu, sıfır veri kaybı (RPO=0) anlamına gelir ancak yazma gecikmesini biraz artırır. Birincil bileşen arızalandığında RDS, 60-120 saniye içinde DNS uç noktasını bekleme örneğini gösterecek şekilde otomatik olarak günceller. Uygulamanızın yalnızca aynı uç noktaya yeniden bağlanması gerekir; kod değişikliği gerekmez.

# Enable Multi-AZ on existing RDS instance
aws rds modify-db-instance \
  --db-instance-identifier mydb \
  --multi-az \
  --apply-immediately

# RDS endpoint stays the same after failover
# Application reconnects to same DNS name

Aurora Multi-AZ Mimarisi

Amazon Aurora, verileri üç AZ arasında altı kopya olarak otomatik şekilde çoğaltan paylaşımlı dağıtılmış depolama katmanı sayesinde Multi-AZ yaklaşımını daha ileri taşır. Aurora örnekleri durum bilgisi tutmaz; bu paylaşımlı depolamaya okuma ve yazma işlemleri gerçekleştirir. PRIMARY Aurora Writer başarısız olduğunda, başka bir AZ'deki Read Replica 30 saniyeden kısa sürede Writer olarak yükseltilir. Bu işlem, RDS Multi-AZ Failover işleminden daha hızlıdır ve açık bir Standby Replication yapılandırmasına gerek kalmadan veriler AZ'ler arasında her zaman tutarlı kalır.

# Aurora cluster endpoint automatically handles failover
# Writer endpoint: mydb.cluster-xxx.us-east-1.rds.amazonaws.com
# Reader endpoint: mydb.cluster-ro-xxx.us-east-1.rds.amazonaws.com

# Failover time: typically under 30 seconds

ElastiCache Multi-AZ Çoğaltması

ElastiCache for Redis, Replication grupları aracılığıyla Multi-AZ desteği sunar. Bir Primary düğümü yazma işlemlerini kabul eder ve verileri diğer AZ'lerdeki Read Replicas düğümlerine Asynchronous olarak çoğaltır. Primary başarısız olduğunda ElastiCache, bir Replica'yı otomatik olarak Primary konumuna yükseltir. Redis için küme modu etkin olduğunda veriler, her birinin AZ'ler arasında kendi Primary ve Replicas düğümleri bulunan birden çok düğüm grubuna bölünür; bu yapı hem HA hem de yatay ölçeklendirme sağlar.

# Create Redis replication group with Multi-AZ
aws elasticache create-replication-group \
  --replication-group-id my-redis \
  --replication-group-description 'Multi-AZ Redis' \
  --num-cache-clusters 3 \
  --cache-node-type cache.r6g.large \
  --multi-az-enabled \
  --automatic-failover-enabled

EFS: Doğası Gereği Multi-AZ

Amazon Elastic File System (EFS) doğası gereği Multi-AZ'dir; bir bölge içinde birden çok AZ'ye verileri yedekli olarak depolayan bölgesel bir hizmettir. Her AZ'nin alt ağı içinde Mount hedefleri oluşturursunuz ve herhangi bir AZ'deki EC2 örnekleri, yerel Mount hedefleri üzerinden dosya sistemini bağlayabilir. Herhangi bir manuel Multi-AZ yapılandırması gerekmez. EFS, AZ'ler arasındaki birden çok örneğin eşzamanlı olarak erişebildiği paylaşımlı POSIX dosya depolaması sağlar.

# Mount EFS from EC2 in any AZ
# Mount target is created per AZ automatically
sudo mount -t efs -o tls fs-12345678:/ /mnt/efs

# Or use EFS mount helper
sudo mount -t efs fs-12345678 /mnt/efs

Elastic Yük Dengeleyicide Bölgeler Arası Dağıtım

Elastic yük dengeleyicileri de kendi başlarına Multi-AZ'dir; ALB ve NLB, belirttiğiniz her AZ'de yük dengeleyici düğümleri dağıtır. Bölgeler arası yük dengeleme etkin olduğunda (ALB için varsayılan ayar), her yük dengeleyici düğümü trafiği yalnızca kendi AZ'sindeki değil, tüm AZ'lerdeki kayıtlı hedefler arasında eşit şekilde dağıtır. Böylece bir AZ'deki tüm örnekler başarısız olsa bile yük dengeleyici, kalan AZ'lerdeki örnekler üzerinden trafik sunmaya devam eder.

# ALB automatically created in multiple AZs
aws elbv2 create-load-balancer \
  --name my-alb \
  --subnets subnet-AZ1 subnet-AZ2 subnet-AZ3 \
  --security-groups sg-12345

# Cross-zone load balancing is ON by default for ALB

NAT Gateway Multi-AZ Modeli

Yaygın bir hata, bir AZ'de tek bir NAT Gateway dağıtıp diğer AZ'lerdeki özel alt ağların bu ağ geçidi üzerinden yönlendirilmesidir. Bu AZ başarısız olursa tüm özel örnekler internet erişimini kaybeder. Doğru Multi-AZ modeli, her AZ için bir NAT Gateway dağıtmak ve her AZ'nin özel yönlendirme tablosunu 0.0.0.0/0 trafiğini kendi NAT Gateway'i üzerinden yönlendirecek şekilde yapılandırmaktır. Bu yaklaşım, NAT Gateway'in AZ'ler arası bir SPOF olmasını önler ve AZ'ler arası veri aktarımı maliyetlerini azaltır.

# Create NAT Gateway in each AZ
aws ec2 create-nat-gateway \
  --subnet-id subnet-public-AZ1 \
  --allocation-id eipalloc-AZ1

aws ec2 create-nat-gateway \
  --subnet-id subnet-public-AZ2 \
  --allocation-id eipalloc-AZ2

# Each AZ's private route table points to its own NAT GW

Varsayılan Olarak DynamoDB Multi-AZ

DynamoDB, bir bölge içindeki üç AZ arasında verileri otomatik olarak çoğaltan, tamamen yönetilen bir hizmettir; Multi-AZ'yi manuel olarak yapılandırmazsınız. Başarılı yanıt döndürülmeden önce her yazma işlemi üç AZ'nin tamamında kalıcı olarak depolanır. DynamoDB, AZ düzeyindeki hatalara karşı kullanıma hazır şekilde etkin bir hata toleransına sahiptir. Sınav sorusu, düşük operasyonel yükle yüksek kullanılabilirliği vurguladığında DynamoDB'nin genellikle önerilen veritabanı seçimi olmasının nedeni budur.

Daha Hızlı Bağlantı Yönetimi için RDS Proxy

Bir RDS Multi-AZ Failover işlemi sırasında kalıcı veritabanı bağlantılarını koruyan uygulamalar, Endpoint değiştiği için hatalarla karşılaşabilir. RDS Proxy, uygulamanız ile RDS arasında konumlanır ve veritabanına ait bir bağlantı havuzunu yönetir. Failover sırasında RDS Proxy, bağlantıları otomatik olarak yeni Primary'ye yönlendirir; böylece Proxy Endpoint'ini kullanan uygulamalarda Failover etkisi 60-120 saniyeden 30 saniyenin altına iner. RDS Proxy, çok sayıda kısa ömürlü bağlantı oluşturan Lambda işlevlerine de yardımcı olur.

# Application connects to RDS Proxy endpoint
# Proxy endpoint: myproxy.proxy-xxx.us-east-1.rds.amazonaws.com

# RDS Proxy handles:
# - Connection pooling
# - Failover routing
# - IAM authentication
# - Secrets Manager integration

Veri Çoğaltma Modları: Synchronous ve Asynchronous

Çoğaltma modlarını anlamak, Multi-AZ modellerini seçmek için kritik öneme sahiptir. Synchronous çoğaltma (RDS Multi-AZ, EFS), her yazma işleminin başarı onayından önce her iki AZ'de de doğrulanmasını sağlayarak RPO=0 sunar. Bunun karşılığında yazma gecikmesi biraz artar. Asynchronous çoğaltma (ElastiCache Redis Replicas, RDS Read Replicas) daha düşük yazma gecikmesi sağlar; ancak küçük bir çoğaltma gecikmesini kabul eder. Bu, çoğaltma tamamlanmadan önce Primary başarısız olursa bazı verilerin kaybolabileceği anlamına gelir.

# Synchronous replication: RPO = 0, higher write latency
# Used by: RDS Multi-AZ, Aurora storage layer

# Asynchronous replication: RPO > 0 (replication lag)
# Used by: RDS Read Replicas, ElastiCache Redis replicas
# Replication lag can be monitored:
# aws cloudwatch get-metric-statistics \
#   --namespace AWS/RDS --metric-name ReplicaLag

Multi-AZ Failover İşlemini Test Etme

RTO varsayımlarınızı doğrulamak için Multi-AZ Failover işlemini düzenli olarak test etmelisiniz. RDS için konsolun Failover ile yeniden başlat seçeneğini veya CLI'yi kullanarak bir Failover işlemi tetikleyebilirsiniz. FailedSQLServerAgentJobsCount metriği için CloudWatch'ı izleyin ve yeniden başarılı şekilde bağlandığını doğrulamak üzere uygulama günlüklerinizi kontrol edin. Gerçek Failover süresini belgeleyin; bu süre, örnek sınıfınıza ve iş yükünüze bağlı olarak AWS belgelerinde belirtilenden farklı olabilir.

# Trigger RDS Multi-AZ failover test
aws rds reboot-db-instance \
  --db-instance-identifier mydb \
  --force-failover

# Monitor failover in CloudWatch
aws cloudwatch get-metric-statistics \
  --namespace AWS/RDS \
  --metric-name DatabaseConnections \
  --dimensions Name=DBInstanceIdentifier,Value=mydb

Kısa Kontrol

Bu dersteki AWS Çözüm Mimarı (SAA-C03) kavramlarını anlayıp anlamadığınızı test edin.

Ders Özeti

Bu derste şunları öğrendiniz: RDS Multi-AZ, otomatik DNS Failover ile Synchronous çoğaltma kullanır, Aurora daha hızlı Failover için üç AZ arasında paylaşımlı bir depolama katmanı kullanır ve EFS ile DynamoDB, manuel yapılandırma olmadan doğası gereği Multi-AZ'dir. AZ'ler arası SPOF'ları önlemek için her AZ'ye bir NAT Gateway dağıtın. Sırada multi-region active-active ve active-passive modellerini inceleyeceğiz.

Sıkça Sorulan Sorular

“Durum Bilgili Hizmetler için Çoklu AZ Örüntüleri” dersi ücretsiz mi?

Evet — “Durum Bilgili Hizmetler için Çoklu AZ Örüntüleri” 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 AWS Solutions Architect kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. AWS Solutions Architect kursu toplamda 4 dersten oluşur.

“Durum Bilgili Hizmetler için Çoklu AZ Örüntüleri” dersinde ne öğreneceğim?

Bir Bölge içindeki tek hata noktalarını ortadan kaldırmak için RDS, ElastiCache, EFS ve ELB'ye Çoklu-AZ uygulayın. AWS Solutions Architect 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.

AWS Solutions Architect öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te AWS Solutions Architect, 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 2. dersidir.

“Durum Bilgili Hizmetler için Çoklu AZ Örüntüleri” 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 AWS Solutions Architect dersinde kod yazıp çalıştırabilir miyim?

Evet. Her AWS Solutions Architect 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

  1. HA ve Hata Toleransı: Tanımlar ve Ödünleşimler
  2. Durum Bilgili Hizmetler için Çoklu AZ Örüntüleri
  3. Çok Bölgeli Etkin-Etkin ve Etkin-Pasif
  4. Durum Denetimleri, Devre Kesiciler ve Yeniden Deneme Mantığı
← AWS Solutions Architect Sayfasına Dön