Bir AWS Göçümü Daha (US-EAST-1)
Geçtiğimiz hafta AWS'te yaşanan ve internete bağlı buzdolaplarını bile (!) etkileyen kesintiyle ilgili biraz lafladım.
AWS’te yaşanan büyük kesintiyi duymayan, hissetmeyen kalmamıştır. Neticede pek çok ürün saatlerce hizmet dışı kaldı. WhatsApp, Fortnite, SnapChat, Reddit, Perplexity, CoinBase... Liste uzun. Gelin olayın detaylarına birlikte bakalım.
AWS Mimarisi
AWS altyapısı tüm dünyada bölgelere ayrılmış durumda. 30’u aşkın bölgeye dağıtılmış. Mesela “eu-west-1” bölgesi İrlanda’da, “us-east-1” ise ABD’nin doğu kıyısında Virginia eyaletinde yer alıyor. Kesinti ise alıştığımız şekilde, “us-east-1” bölgesinde gerçekleşti. AWS’in pilot olarak kullandığı bir bölge bu. Yeni ve deneysel işleri önce orada yapıyor. Hareket eden parça sayısı arttıkça problemler de beraberinde geliyor. Son 10 büyük kesintinin 6’sı burada olmuş.
Yine DNS
Kesintinin sebebi de tanıdık: DNS. Otomasyondaki hatadan kaynaklı, DynamoDB servisinin bölgesel adresine ait DNS kayıtları (dynamodb.us-east-1.amazonaws.com) siliniyor. DynamoDB AWS’in en kritik servislerinden biri, bir NoSQL veritabanı. Veritabanı olduğu için de, onu kullanan pek çok başka AWS servisi var. Bunlardan biri de EC2.
EC2 Giderse Her Şey Gider
EC2 çok temel bir servis; sunucu kiralama servisi olarak düşünebiliriz. Saniye bazında kiralama yapılabiliyor ve kullandığımız çoğu uygulama bu sunucularda çalışıyor. EC2 da etkileniyor durumdan. Yeni sunucular ayağa kalkamıyor, çünkü EC2 servisi sunucuları yönetmek için DynamoDB’ye ihtiyaç duyuyor.
EC2’da yaşanan problemler bu kez NLB (load balancer) servisini etkiliyor. NLB servisini basitçe, EC2 üzerinde kiralanan sunuculara yük dağıtan bir sistem olarak düşünebilirsiniz. NLB’deki health checkler (sistemin sağlıklı işleyişini kontrol eden bir otomasyon) patlıyor çünkü bu kontrolleri yapmak için yeni EC2 sunucuları ayağa kaldırmaya çalışıyor. Ama olmuyor… NLB ve ona bağlı servisler de göçüyor.
Bu olaylar olurken, DynamoDB, EC2 ve NLB’ye bağımlılığı olan diğer tüm servisler de patlıyor haliyle. Koca bir AWS bölgesi kullanılamaz hale geliyor. Bu bölgeyi kullanan pek çok ürün hizmet dışı kalıyor. WhatsApp, Fortnite, SnapChat, Reddit, Perplexity, CoinBase... Liste uzun. Kesintiyle ilgili detayları okumak isterseniz, AWS tarafından yayınlanan resmî yazıya bakabilirsiniz.
Kim bilir bu şekilde - sistemlere gömülü ve kimsenin farkında olmadığı - patlamaya hazır daha ne bombalar var. Bir diğer dikkat çekici nokta da, bir serviste ortaya çıkan problem nasıl da domino etkisi yapıp bambaşka amaçlara hizmet eden farklı servisleri ve uygulamaları da beraberinde götürüyor.
Kıssadan hisseler
Hatalar her zaman olacaktır. Hataları halının altına süpürmeyip kök nedenine inip, kökünden çözmeliyiz.
En zayıf halka kadar güçlüsünüz. Sistemlerin bağımlılıkları ve zaafları çok iyi bilinmeli ki, başımıza neler gelebileceğini kestirebilelim ve ona göre tedbirler alalım.
Maceracı bir kişiliğiniz yoksa, kritik iş yükleriniz için us-east-1’dan uzak durun :)
Bonus: Cloud platformları ve servislerinin hizmet sağlığını gösterdiği ve çoğunlukla yalan yanlış işe yaramayan veriler sunduğu status sayfaları olur (mesela servisler tamamen kullanılamaz durumdadır ama status sayfasına sorsan her şey güllük gülistanlık). DataDog bu boşluğu doldurabilecek güzel bir sayfa hazırlamış: updog.ai



