Amazon SOA-C02: Veritabanları ve Önbelleğe Alma — Çalışma kılavuzu
Şunun bir parçası: AWS SysOps Administrator Associate SOA-C02 — Çalışma kılavuzu. Doğrulanmış cevaplarla şurada pratik yapın: Amazon sınav merkezi, veya şurada süreli deneme sınavları çözün: ExamRoll.io.
Veritabanları ve önbelleğe alma, bir SysOps yöneticisinin temel operasyonel sorumluluklarıdır: uygulamalar için kalıcı depolama, erişilebilirlik ve düşük gecikmeli okumalar sağlarlar. Bu alan, yönetilen ilişkisel veritabanlarını (RDS ve Aurora) çalıştırmayı, okuma/yazma kapasitesini ölçeklendirmeyi, replikasyon ve yük devretme davranışını ve veritabanı yükünü azaltmak için ElastiCache kullanmayı kapsar. Yedeklemelerin, parametre gruplarının, izlemenin ve önbellek geçersizleştirme desenlerinin doğru yapılandırılması, veri kaybını önler ve operasyonel olayları azaltır.
RDS ve Aurora operasyonları, yedeklemeler ve Multi-AZ
RDS (MySQL, PostgreSQL, MariaDB, Oracle, SQL Server) ve Amazon Aurora (MySQL ve PostgreSQL uyumlu), farklı operasyonel semantiklere sahip yönetilen ilişkisel motorlardır. RDS için Multi-AZ, başka bir AZ’de senkron bir yedek (standby) oluşturur — AWS tarafından yönetilir, dakikalar içinde otomatik yük devretme sağlar, manuel yükseltme yoktur ve yedek sunucu okuma işlemleri için erişilebilir değildir. Aurora, yazıcı (writer) ve okuyucu (reader) uç noktalarını ayırır: yazıcı, bir birincil (primary) tarafından desteklenen bir küme (cluster) uç noktasıdır ve Aurora, AZ’ler arasında otomatik olarak çoğaltılan ve depolama paylaşıldığı için genellikle RDS’den daha hızlı yük devredebilen dağıtık depolama kullanır.
Yedeklemeleri ve saklama süresini yapılandırmak için şunları kullanın:
- Otomatik yedeklemeler: bir saklama süresiyle etkinleştirin (örneğin, modify-db-instance –backup-retention-period 7). Bunlar, desteklenen motorlar için saklama penceresi içindeki herhangi bir saniyeye anlık kurtarma (PITR) sağlar.
- Manuel anlık görüntüler (snapshot): kalıcı bir anlık görüntü yakalamak için create-db-snapshot (veya Aurora için create-db-cluster-snapshot) kullanın; anlık görüntüler siz silene kadar kalır.
- PITR geri yükleme: RDS için aws rds restore-db-instance-to-point-in-time veya Aurora için restore-db-cluster-from-snapshot ve ardından instance’lar oluşturma.
Karar kriterleri:
- Yazma erişilebilirliği kritik olduğunda ve yedek sunucuda okuma gerekmediğinde yüksek erişilebilirlik ve otomatik yük devretme için Multi-AZ kullanın.
- Yüksek IOPS, hızlı yük devretme ve depolama otomatik ölçeklendirmesine ihtiyacınız olduğunda Aurora (kümelenmiş depolama) kullanın.
- Okuma ölçeklendirmesi ve bölgeler arası felaket kurtarma için okuma kopyaları (read replica) kullanın (bunlar asenkrondur ve yükseltilebilirler).
Operasyonel CLI örnekleri:
- Multi-AZ’yi etkinleştirme: aws rds modify-db-instance –db-instance-identifier mydb –multi-az –apply-immediately
- Otomatik anlık görüntü oluşturma: aws rds create-db-snapshot –db-snapshot-identifier snap1 –db-instance-identifier mydb
- PITR geri yükleme: aws rds restore-db-instance-to-point-in-time –source-db-instance-identifier mydb –target-db-instance-identifier mydb-restore –restore-time “YYYY-MM-DDTHH:MM:SSZ”
Okuma kopyaları, yük devretme ve replikasyon stratejileri
Okuma kopyaları (read replica), öncelikli olarak okuma trafiğini ölçeklendirmek ve raporlama yükünü hafifletmek için kullanılan asenkron kopyalardır (RDS veya Aurora okuyucuları). Replikasyon gecikmesine (ReplicaLag metriğini izleyin) maruz kalırlar ve güçlü tutarlılık (strong consistency) için uygun değildirler. Okuma kopyaları, felaket kurtarmayı desteklemek için bağımsız veritabanı sunucularına yükseltilebilir.
Replikasyon stratejileri ve seçenekleri:
- Senkron (RDS Multi-AZ yedeği) — sıfır veri sapması garantisi, yedek sunucuda okuma kapasitesi yok.
- Asenkron okuma kopyaları — okumaları ölçeklendirir, bölgeler arası kopyaları etkinleştirir, replikasyon gecikmesi ve yük devretme sırasında potansiyel veri kaybı riski taşır.
- Aurora okuyucuları — kümelenmiş okuma uç noktaları, uç nokta yeniden yönlendirmesi yoluyla düşük gecikmeli yük devretme ve otomatik okuyucu uç nokta dengelemesi sağlar.
Operasyonel desenler:
- Okuma kopyası oluşturma: aws rds create-db-instance-read-replica –db-instance-identifier read1 –source-db-instance-identifier primary
- Kopyayı yükseltme: aws rds promote-read-replica –db-instance-identifier read1
- İzleme: Ne zaman kopya eklenip çıkarılacağına karar vermek için CloudWatch DatabaseConnections, ReplicaLag, ReadIOPS, WriteIOPS ve Performance Insights’ı izleyin.
Karar kriterleri:
- Yazma işlemleri için yüksek erişilebilirliğe (HA) ihtiyacınız varsa Multi-AZ’yi seçin. Okuma verimi (throughput) ve analitik yükünü hafifletmeye ihtiyacınız varsa okuma kopyalarını veya Aurora okuyucularını seçin.
- Bölgeler arası felaket kurtarma (DR) için hedef bölgede okuma kopyaları oluşturun ve geçiş için otomatik anlık görüntü kopyalamayı veya DMS’yi değerlendirin.
ElastiCache ile önbelleğe alma ve önbellek geçersizleştirme
ElastiCache, veritabanı yükünü ve gecikmeyi azaltmak için Redis ve Memcached sunar. Kalıcılık, replikasyon, veri yapıları ve Multi-AZ ile yüksek erişilebilirlik ve otomatik yük devretmeye ihtiyacınız olduğunda Redis’i seçin. Parçalama (sharding) ve çok iş parçacıklı (multithreaded) performansın öncelikli olduğu basit yatay önbelleğe alma için Memcached’i seçin.
Temel yapılandırma ve desenler:
- Kopyalar ve Multi-AZ ile Redis kümesi oluşturma: aws elasticache create-replication-group –replication-group-id rg1 –replication-group-description “rg” –engine redis –num-cache-clusters 3 –automatic-failover-enabled
- Parçaları (shard) ölçeklendirmek için Redis’te küme modunu (cluster mode) etkinleştirin; Memcached, parçalama için istemci tarafında hashing gerektirir.
- Boşaltma (eviction) politikaları: volatile-lru, allkeys-lru, noeviction — bellek dolduğunda yalnızca süresi dolmuş anahtarları mı yoksa herhangi bir anahtarı mı boşaltmayı tercih ettiğinize göre ayarlayın.
- Önbellek isabet oranını (cache hit ratio) hesaplamak için CacheHits ve CacheMisses’i izleyin: isabet_oranı = CacheHits / (CacheHits + CacheMisses). Veritabanı okumalarını azaltmak için yüksek bir isabet oranı hedefleyin.
Önbellek geçersizleştirme stratejileri:
- Cache-aside: uygulama önce önbelleği kontrol eder, bulamazsa (miss) veritabanını okur ve önbelleği doldurur; yazma işlemlerinde önbelleği açıkça sona erdirir veya siler.
- Write-through/write-behind: önbelleğe yazılanlar veritabanına yayılır; write-behind, veritabanı yazma işlemlerini toplu halde yapar (karmaşıklık ekler).
- Yaşam süresi (Time-to-live - TTL): bayatlayabilecek veriler için ihtiyatlı TTL’ler ayarlayın; şema değişiklikleri veya toplu geçersizleştirme için önbellek sürümleme veya geçersizleştirme anahtarlarıyla birleştirin.
- Gerektiğinde dağıtık geçersizleştirme için uygulama örneklerini bilgilendirmek üzere Redis pub/sub veya Lambda olaylarını kullanın.
Veritabanı parametre grupları, ölçeklendirme ve izleme
Parametre grupları, motora özgü ayarları (ör. max_connections, innodb_buffer_pool_size) kontrol eder. RDS, instance’lar için DB parametre gruplarını, Aurora için ise DB kümesi parametre gruplarını kullanır. Bazı parametrelerdeki değişiklikler yeniden başlatma gerektirir (apply pending-reboot), diğerleri ise hemen uygulanır.
Yönetim kalıpları:
- Parametre grubu oluşturma ve değiştirme: aws rds create-db-parameter-group –db-parameter-group-name pg1 –db-parameter-group-family mysql8.0 –description “custom”; ardından aws rds modify-db-parameter-group –db-parameter-group-name pg1 –parameters “ParameterName=max_connections,ParameterValue=500,ApplyMethod=immediate”
- Instance sınıfını ölçeklendirme: aws rds modify-db-instance –db-instance-identifier mydb –db-instance-class db.r5.large –apply-immediately (veya yeniden başlatmayı önlemek için bakım penceresi sırasında).
- Depolama alanı otomatik ölçeklendirme: desteklenen motor türleri için etkinleştirin; Aurora depolama alanını otomatik olarak ölçeklendirir.
İzleme ve ölçeklendirme sinyalleri:
- Yavaş SQL sorguları ve en çok bekleyenler için CloudWatch (FreeableMemory, CPUUtilization, DatabaseConnections, WriteLatency, ReadLatency, DiskQueueDepth) ve Performance Insights’ı kullanın.
- Enhanced Monitoring’i etkinleştirin ve ayrıntı düzeyini ayarlayın (ör. sorun giderme için 1s).
- Sunucusuz veya yüksek eş zamanlı uygulamalar için bağlantı havuzunu yönetmek ve bağlantı fırtınalarını azaltmak için RDS Proxy’yi kullanın.
Yedekleme/geri yükleme prosedürleri ve geçişle ilgili dikkat edilmesi gerekenler
Yedeklemeler ve geri yüklemeler açıkça yapılmalı ve test edilmelidir. Otomatik yedeklemeler, saklama süresi içinde PITR sağlar; manuel anlık görüntüler silinene kadar saklanır ve bölgeler arasında ve farklı KMS anahtarlarına kopyalanabilir. Geri yükleme yaparken bölgeyi ve zaman damgasını açıkça belirtin.
Yaygın geri yükleme komutları:
- Belirli bir zamana geri yükleme (RDS): aws rds restore-db-instance-to-point-in-time –source-db-instance-identifier mydb –target-db-instance-identifier mydb-restore –use-latest-restorable-time / veya –restore-time belirtin
- Anlık görüntüden geri yükleme (bölgeler arası): önce copy-db-snapshot ile hedef bölgeye kopyalayın, ardından geri yükleyin.
Geçişle ilgili dikkat edilmesi gerekenler:
- Minimum kesinti süresiyle geçişler (heterojen/homojen) için AWS DMS. DMS, sürekli replikasyonu destekler; doğru kaynak motoru ayarlarını (MySQL için binlog’un etkinleştirilmesi gibi) sağlayın.
- Basit dışa aktarımlar için mantıksal geçiş (mysqldump, pg_dump); büyük veri setleri için fiziksel anlık görüntüden geri yükleme.
- Karakter setlerini, parametre grubu farklılıklarını ve şifrelenmiş anlık görüntüler için KMS anahtarlarını doğrulayın.
Yaygın Hatalar ve Karar Kriterleri
- Yedekleri yanlış bölgeye veya yanlış zamana geri yükleme: geri yüklemeden önce daima –region ve –restore-time parametrelerini doğrulayın; hedef bölgeye kopyalanmış anlık görüntüyü kullanın ve geri yüklemeleri hazırlık (staging) ortamında test edin.
- Okuma replikalarının yüksek erişilebilirlik sağladığını varsayma: replikaların asenkron olduğunu unutmayın; yazma HA’sı ve senkron replikasyon için Multi-AZ veya Aurora kullanın.
- Önbellek geçersiz kılmayı göz ardı etme: TTL’ler, sürümlenmiş anahtarlar veya olay güdümlü geçersiz kılma tasarlayın; doğruluk için yalnızca kısa TTL’lere güvenmekten kaçının.
- Otomatik yedeklemeleri veya saklama süresini düzgün şekilde etkinleştirmeme: backup-retention-period >0 olarak ayarlayın ve test geri yüklemeleriyle PITR’yi doğrulayın; anlık görüntü kopyası için KMS anahtarlarının hedef bölgede mevcut olduğundan emin olun.
- Parametre gruplarını yeniden başlatmadan değiştirme: ApplyMethod’u kontrol edin; beklenmedik kesintileri önlemek için yeniden başlatma gerektiren parametreler için bakım pencerelerinde yeniden başlatmaları planlayın.
- Bağlantı yönetimi olmadan ölçeklendirme: RDS Proxy veya bağlantı havuzu kullanmadan instance sınıfını artırmak bağlantı fırtınalarını çözmeyebilir; çok sayıda kısa ömürlü bağlantıyı yönetmek için havuzlama uygulayın.
Pratik Problem: Kullanım Senaryosu
Acme Retail, yoğun okuma trafiği ve ara sıra yaşanan analitik ani artışları olan bir MySQL RDS birincil (primary) veritabanı çalıştırıyor; gecelik ETL sırasında replika gecikmesiyle karşılaşıyor ve yüksek bağlantı dalgalanmasının CPU ani artışlarına neden olduğunu görüyorlar.
- Analitik için, uygulama okuyucularından izole edilmiş ek bir okuma replikası grubu etkinleştirin ve DR için farklı bir AZ’ye veya bölgeye yerleştirin.
- Replika izlemeyi (ReplicaLag metriği) yapılandırın ve gecikme veya ReadLatency eşikleri aştığında okuyucu eklemek için otomatik ölçeklendirme mantığı ekleyin.
- Bağlantıları çoklamak ve bağlantı dalgalanmasını azaltmak için uygulamanın önüne RDS Proxy dağıtın; parametre grubundaki max_connections’ı uygun şekilde ayarlayın.
- Analitik işlerini analitik replikasını kullanacak şekilde taşıyın ve tekrarlanan sorguları azaltmak için uygun TTL’lerle ElastiCache Redis aracılığıyla cache-aside önbellekleme yöntemini benimseyin.
- Yük devretme ve geri yükleme prosedürlerini test edin: bir hazırlık (staging) instance’ında bir PITR geri yüklemesi yapın ve replika yükseltme adımlarını doğrulayın.
Bu yaklaşım, okuma iş yüklerini ayırır, birincil veritabanındaki bağlantı baskısını azaltır ve veritabanı okuma hacmini düşürmek için önbellekleme kullanır. Okuma ölçeklendirmesi, bağlantı havuzlama ve test edilmiş yedekleme/geri yükleme süreçlerini birleştirerek erişilebilirliği ve operasyonel dayanıklılığı sürdürmek için AWS en iyi uygulamalarını takip eder.
← Bilişim ve Otomatik Ölçeklendirme · Tüm alanlar · Sunucusuz ve Uygulama Entegrasyonu →
Bu soruları çözün → · ExamRoll.io’da süreli pratik →
Pass the whole exam — not just this question
You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.
Sınavınızı geçin →