Hız Sınırlayıcı Redis Çökmesi
Hız sınırlayıcımız durumu Redis'te saklıyordu. Redis çöktü. Hız sınırlaması durdu. DDoS saldırısı geldi.
Zaman çizelgesi:
- 14:00 - Redis master bakıma alındı
- 14:01 - Hız sınırlayıcı durumu okuyamadı/yazamadı
- 14:01 - Hata durumunda açık: tüm isteklere izin verildi
- 14:02 - API'ye saniyede 500 bin istek geldi
- 14:03 - API sunucuları aşırı yüklendi
- 14:05 - Tam kesinti
Tasarım hatası:
Hız sınırlayıcı depolaması başarısız olduğunda, "hata durumunda kapalı" (her şeyi engelle) yerine "hata durumunda açık" (her şeye izin ver) seçeneğini seçtik.
Bu seçimi neden yaptık:
"Redis sorunlarının meşru kullanıcıları engellemesini istemiyoruz."
Ne yapmalıydık:
- Bellek içi yedek hız sınırlayıcı
- Depolama kullanılamadığında muhafazakar sınırlar
- Otomatik yük devretme için Redis Sentinel
- Birden çok katmanda hız sınırlaması (CDN, API Gateway, Uygulama)
Ders: Güvenlik kontrolleri açık değil, kapalı olarak hata vermelidir. Şüpheye düştüğünüzde reddedin.