“Felaket kurtarma için” multi-region veritabanı replikasyonu kurduk.

Parasını ödediğimiz şey:

  • Primary us-east-1'de, read replica'lar eu-west-1 ve ap-southeast-1'de
  • Her şey dahil ~$8.000/ay: depolamasıyla birlikte sürekli açık iki replica instance için kabaca $5.300, cross-region replikasyon trafiği için $1.800 (yazma ağırlıklı bir iş yükü her WAL byte'ını iki bölgeye de gönderir) ve snapshot'lar ile yedek depolaması için $900

Gerçekte kullandığımız şey:

  • Okuma ve yazmaların %100'ü us-east-1'den servis edildi
  • 18 ayda 0 failover testi
  • DR runbook'u yok
  • Failover'ı nasıl tetikleyeceğini bilen kimse yok

Fark ettiğimiz şey:

Kâğıt üzerinde dakikalar mertebesinde bir RTO'muz (bir replica'yı promote et) ve saniyeler mertebesinde bir RPO'muz vardı. Pratikte iki sayı da kurguydu: hiç test edilmemiş, hiç bilinmiyor demektir. us-east-1 düşseydi gerçek RTO'muz “bir kesinti sırasında failover'ı öğrenmek ne kadar sürerse” olacaktı — sınırsız.

Yaptıklarımız:

  • Bölge içi HA için us-east-1'de tek bir read replica'ya indirdik
  • Cross-region DR soğuk yedeklerle: snapshot'lar artı us-west-2'ye replike edilen bir S3 bucket'ına sürekli WAL arşivleme
  • Gerçek runbook'lar yazdık ve üç aylık DR testlerine başladık

Ödünleşim — açıkça söyleyelim:

Bu, bölge kaybından kurtarmanın bilinçli olarak geriye çekilmesiydi, bedava öğle yemeği değil:

  • Önceki RTO: kâğıt üzerinde dakikalar, hiç doğrulanmadı — gerçek değer bilinmiyor. Sonra: us-west-2'de snapshot'ı geri yükleyip WAL'ı yeniden oynatmak için ~4 saat; son game day'de ölçülen süre 3 saat 20 dakika.
  • Önceki RPO: kâğıt üzerinde saniyeler, hiç doğrulanmadı. Sonra: ≤15 dakika, WAL arşiv aralığıyla sınırlı.
  • Maliyet: $8.000/ay → $1.200/ay.

İş tarafı onayladı; çünkü bu iş yükü için bölge çapında bir kesintinin birkaç saate mal olması kabul edilebilirdi, test edilmemiş “dakikalar” için ayda fazladan $6.800 ödemek değildi. İş yükünüz gerçekten saatleri tolere edemiyorsa sıcak replica'yı tutun — ama o zaman onu promote etmeyi test etmek zorundasınız. Bu boyutlandırma sohbeti, yürüttüğümüz bulut maliyet ve mimari incelemelerinin özüdür.

Üç aylık test:

Her çeyrek: en son snapshot'ı us-west-2'ye geri yükle, WAL'ı hedef zaman damgasına kadar yeniden oynat, bir staging stack'ini geri yüklenen veritabanına yönlendir, smoke test setini çalıştır ve duvar saatiyle geçen süreyi ölçülmüş RTO olarak kaydet. Runbook yerinde düzeltilir ve bilgi tek bir kafada yaşamasın diye her seferinde farklı bir mühendis çalıştırır. Yalnızca doğruladığınız şeye ödeme yapma disiplini bulut maliyet düşürme rehberimizin tamamında karşınıza çıkar.

Sonuç: $8.000/ay → $1.200/ay, gerçekten ölçtüğümüz DR rakamlarıyla.

Ders: Hiç test edilmemiş DR, DR değildir. Sadece pahalıdır. Daha ucuz ama test edilmiş bir kurtarma, pahalı ama varsayımsal olanı yener.


← Çıkarılan Dersler'e dön

Bu tür olaylar önlenebilir. AWS Yönetilen Hizmetler ekibimiz müşteri ortamlarını yapay zekâ destekli izleme ve nöbetteki kıdemli mühendislerle 7/24 gözetir — böylece bu tür hikâyeler arşivde kalır.