Amazon DVA-C02: Veritabanları ve Önbellekleme (RDS, Aurora, ElastiCache, Timestream, Proxy) — Çalışma kılavuzu

Şunun bir parçası: AWS Developer Associate DVA-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.

RDS ve Aurora: tasarım, ölçeklendirme ve şifreleme

RDS veya Aurora üzerinde ilişkisel veritabanları tasarlamak, tek düğümlü (single-node) provisioned RDS ile Aurora’nın dağıtık depolaması arasındaki iş yükü ödünleşimlerini (tradeoff) değerlendirmekle başlar. Yüksek okuma ölçeklenebilirliği ve hızlı failover’a (yük devretme) ihtiyacınız olduğunda Aurora’yı seçin: Aurora replikaları cluster volume’ü paylaştığı için yükseltme (promotion) hızlıdır, oysa RDS MySQL/Postgres okuma replikaları asenkron binlog tabanlı replikasyon kullanır ve geride kalabilir. Okuma işlemlerini ölçeklendirmek için okuma replikaları (read replica) ekleyin ve uygulama okuma trafiğini bunlara yönlendirin; replikalar arasında otomatik olarak denge kurmak için Aurora’daki reader endpoint’lerini kullanın. Yazma işlemleri için dikey ölçeklendirme (instance sınıfı) ve dikkatli şema/indeks tasarımı önemlidir. Her zaman oluşturma anında bir KMS CMK ile bekleme durumunda şifrelemeyi (encryption at rest) etkinleştirin — şifrelemeyi sonradan etkinleştirmek, bir snapshot alıp yeni, şifreli bir instance’a geri yüklemeyi gerektirir; bu sık düşülen bir tuzaktır. Aktarım sırasında koruma (in-transit protection) için TLS/SSL bağlantılarını zorunlu kılın (RDS, CA paketleri sağlar). Kimlik bilgileri (credentials) için, yerleşik RDS rotasyon Lambda şablonunu kullanarak otomatik rotasyon özelliğine sahip AWS Secrets Manager’ı tercih edin; SDK’larda

undefined

ile secret’ları programatik olarak alın. Statik parolaları ortadan kaldırmak için IAM DB kimlik doğrulamasını değerlendirin: SDK’da

undefined

veya

undefined

aracılığıyla bir token oluşturun, ardından bu kısa ömürlü token ile bağlanın. Performance Insights, Enhanced Monitoring ve CloudWatch kullanarak sistemi izleyin (instrument); darboğazlar (hotspot’lar) için yavaş sorgu log’larını ve

undefined

komutunu kullanın.

Bağlantı havuzlama (Connection pooling), RDS Proxy ve sunucusuz (serverless) desenler

Sunucusuz fonksiyonlar ve yoğun bağlantı kullanan uygulamalar genellikle veritabanı bağlantı limitlerini tüketir. Node.js’de en basit desen, Lambda global scope’una bir

undefined

havuzu yerleştirmek ve bunu çağrımlar (invocation’lar) arasında yeniden kullanmaktır, ancak bu durum çok büyük eş zamanlı ölçeklenmeyi çözmez. RDS Proxy bu soruna yönelik yönetilen (managed) çözümdür:

undefined

ile proxy’yi oluşturun, onu Secrets Manager’daki secret’lar ve hedef RDS/Aurora instance’ları ile ilişkilendirin ve uygulamanızdan proxy endpoint’ini kullanın. RDS Proxy bağlantı çoklamayı (multiplexing), IAM kimlik doğrulama entegrasyonunu ve failover’ı yönetir. Sunucusuz Aurora Serverless için veya HTTP tarzı çağrıları tercih ettiğinizde, RDS Data API’yi kullanın:

undefined

, Lambda’ların kalıcı TCP bağlantıları olmadan SQL çalıştırmasına olanak tanır. Sık karşılaşılan bir pürüz, Data API’yi provisioned cluster’larla karıştırmaktır — Data API, sunucusuz cluster’lar için tasarlanmıştır ve farklı gecikme/transaction semantiklerine sahiptir. Ayrıca RDS Proxy’nin bir bağlantı havuzu zaman aşımı ve

undefined

getirdiğini unutmayın; Lambda’nın anlık yoğunlukları (burst) için boştaki istemci zaman aşımını (idle client timeout) ve bağlantı ödünç almayı (connection borrowing) ayarlayın. Kimlik bilgileri için

undefined

kullanın ve

undefined

ile rotasyon yapın veya konsol/SDK üzerinden otomatik rotasyonu etkinleştirin.

Önbellekleme (Caching) stratejileri: ElastiCache, DAX ve önbellek tasarımı

Önbellekleme seçimleri, veri deposuna ve erişim desenlerine (access patterns) bağlıdır. DynamoDB için DAX,

undefined

‘ı sarmalayan

undefined

aracılığıyla mikrosaniye seviyesinde okuma gecikmesi ve şeffaf SDK entegrasyonu sağlar; okuma ağırlıklı, nihai tutarlı (eventually-consistent) iş yükleri için idealdir. İlişkisel veya gelişigüzel anahtar-değer (key-value) önbelleklemesi için, gelişmiş veri yapıları, kalıcılık (AOF/RDB anlık görüntüleri), replikasyon ve cluster modunda sharding için ElastiCache Redis’i; basit, yatay olarak ölçeklenebilir önbellekleme için ise Memcached’i kullanın. Okumalar için cache-aside desenini; tutarlılık ve karmaşıklık açısından kabul edilebilir olduğunda ise write-through/write-behind desenlerini uygulayın. Anahtar (key) tasarımı kritiktir: anahtarları uygulama ve sürüm bazında öneklerle (prefix) belirleyin, makul TTL’ler kullanın ve sınırsız kardinaliteden kaçının. Cache stampede (önbellek izdihamı) durumlarını, kilitle ve yenile (lock-and-refresh) desenleri (

undefined

veya Redlock) veya olasılıksal erken TTL yenileme ile yönetin. Redis’i multi-AZ ve otomatik failover ile yapılandırın;

undefined

aracılığıyla otomatik failover ve anlık görüntülere (snapshot) sahip replikasyon grupları oluşturun. Sık düşülen tuzaklar arasında yazma işlemlerinden sonra bayatlayan önbellekler, şema değişikliklerinde önbelleği geçersiz kılmamak ve mutlak tutarlılık beklemek yer alır. CloudWatch’ta önbellek isabet oranını (cache hit ratio) ve çıkarma (eviction) metriklerini izleyin ve bellek veya CPU bir darboğaz haline geldiğinde düğüm tiplerini veya küme shard’larını ölçeklendirin.

Timestream ile zaman serisi ve okuma replikası (read-replica) desenleri

Amazon Timestream, zaman serisi verileri için özel olarak oluşturulmuştur: SDK’dan toplu WriteRecords çağrıları ile WriteRecords API’sini kullanarak veri alın ve TimestreamQuery.query(sql) ile sorgulama yapın. Yazma amplifikasyonunu (write amplification) azaltmak için kayıt şemanızı düşük kardinaliteye sahip boyutlarla (dimension) tasarlayın ve çoklu ölçüm (multi-measure) kayıtları kullanın. Yeni verileri “hot” (hızlı erişilebilir) tutmak ve eski verileri ucuza depolamak için tablo başına bellek (memory) ve manyetik (magnetic) saklama kuralları yapılandırın; saklama süresini ayarlamak kritik öneme sahiptir çünkü bellek katmanının saklama boyutu maliyeti ve sorgu performansını etkiler. Analitik için, taranan veri miktarını en aza indirmek amacıyla zaman serisine özgü sorguları (time_bin veya bin) kullanın ve filtreleri boyutlara (dimension) doğru itin (push down). Zaman serisi verilerini ilişkisel depolarla entegre ederken, geçmişe dönük değişmez (immutable) verileri Timestream’e aktarın ve “hot” meta verileri RDS/Aurora’dan ElastiCache ile sunun. İlişkisel okuma ölçeklendirmesi için okuma replikaları (read replica) ekleyin ve salt okunur (read-only) trafiği yönlendirin; Aurora için okuyucu uç noktalarını (reader endpoint) kullanın ve kritik okumaları yönlendirmeden önce replika gecikmesini (CloudWatch ReplicaLag) inceleyin. Geliştiricilerin sık düştüğü bir tuzak, Timestream’de yüksek kardinalite kullanmak veya istek başına önbellekleme anahtarları (caching key) üretmektir; bu durum depolamayı şişirir ve performansı düşürür. Yoğun anları yumuşatmak ve kısıtlamayı (throttling) önlemek için yazma işlemlerinde toplu işlem (batching) ve asenkron veri alım hatları (Kinesis, Firehose) kullanın.

Pratik Problem: Kullanım Senaryosu

Senaryo: NovaShop, AWS üzerinde çok bölgeli (multi-region) bir e-ticaret platformu işletmektedir. Siparişler için us-east-1 bölgesinde Aurora MySQL, Lambda tabanlı API’ler ve DynamoDB’de küresel bir müşteri kataloğu kullanmaktadır. Geliştiriciler tek bir AWS hesabında CI/CD kullanmakta ve veritabanı kimlik bilgilerini Secrets Manager’da saklamaktadır.

Zorluk: Satışların zirve yaptığı dönemlerde, Lambda fonksiyonları veritabanı bağlantılarını tüketmekte ve katalog mikrosaniye düzeyinde okuma hızına ihtiyaç duymaktadır. Geliştiriciler, döndürülen (rotated) kimlik bilgileriyle güvenliği sağlamalı ve ürün okumaları için minimum gecikmeyi korumalıdır.

Önerilen Yaklaşım:

  1. CreateDBProxy kullanarak Aurora kümesi için bir RDS Proxy oluşturun, Secrets Manager gizli anahtarının ARN’sini bağlayın ve IAM kimlik doğrulamasını yapılandırın; Lambda’yı proxy uç noktasını (endpoint) kullanacak ve kimlik bilgileri için SecretsManager.getSecretValue() çağrısı yapacak şekilde güncelleyin.
  2. Katalog için bir Amazon DAX kümesi dağıtın ve mikrosaniye düzeyinde okumalar için DynamoDB DocumentClient‘ı sarmalayan (wrap) AmazonDaxClient({endpoints}) istemcisine geçiş yapın.
  3. RDS rotasyon Lambda şablonunu (rotate-secret veya konsol üzerinden yapılandırma) kullanarak Aurora gizli anahtarı için Secrets Manager otomatik rotasyonunu etkinleştirin ve Lambda IAM rolünün secretsmanager:GetSecretValue çağrısı yapabildiğinden emin olun.
  4. Oturum önbelleklemesi (session caching) için bir ElastiCache Redis kümesi (küme modu - cluster mode) ekleyin ve yığılmaları (stampede) önlemek amacıyla TTL’ler ve bir SETNX yenileme kilidi ile cache-aside desenini uygulayın.

Gerekçe: RDS Proxy kullanmak, Lambda ölçeklenmesinden kaynaklanan bağlantı fırtınalarını önlerken, IAM/Secrets Manager otomatik rotasyon ile kimlik bilgilerini korur. DAX, mikrosaniye düzeyinde DynamoDB okumaları sağlar ve ElastiCache geçici oturum/okuma önbelleklemesini yönetir. Bu yaklaşım, sunucusuz (serverless) ölçeklenme ve güvenlik en iyi uygulamalarıyla uyumludur.


Depolama · Tüm alanlar · Mesajlaşma

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 →

Amazon'a göz atın →

Related guides

Hepsi bir arada erişim

Tek abonelik. Her sınav.

Her plan, sınırsız cevap aramayı, pratik testlerini, AI açıklamalarını ve tam kaynak kütüphanesini — 20'den fazla dilde — açar.

Aylık
24.87
Just €0.83/day
Her şey dahil:
  • Sınırsız cevap arama
  • Sınırsız pratik testi
  • AI destekli açıklamalar
  • Tam kaynak kütüphanesi
  • 20+ dil
  • Haftalık içerik güncellemeleri
  • Ödüller ve yönlendirmeler
  • Öncelikli destek
Ücretsiz denemeyi başlat

Kredi kartı gerekmez*

En iyi değer
12 ay
179.87
Just €0.49/daySave 40%
Her şey dahil:
  • Sınırsız cevap arama
  • Sınırsız pratik testi
  • AI destekli açıklamalar
  • Tam kaynak kütüphanesi
  • 20+ dil
  • Haftalık içerik güncellemeleri
  • Ödüller ve yönlendirmeler
  • Öncelikli destek
Ücretsiz denemeyi başlat

Kredi kartı gerekmez*

✓ Ücretsiz plan dahil · ✓ İstediğiniz zaman iptal edin · ✓ Tüm planlar tam ürünü açar