Amazon S3 Arkada Nasıl Çalışır? Mimarinin Temelleri

Amazon S3 (Simple Storage Service), dünyadaki en büyük ve en sofistike dağıtık depolama sistemlerinden biridir. Saniyede milyonlarca isteği işler, 350 trilyondan fazla nesne saklar ve 11 dokuz (99.999999999%) dayanıklılık sunar.
S3’ü bu kadar güçlü kılan sadece ölçeği değil; küresel ölçekte ölçeklenebilirlik, güvenilirlik ve veri güvenliğini sağlayan mimarisidir. S3, farklı sorumluluklara sahip mikro servis tabanlı bir mimari üzerine kuruludur. Aşağıda adım adım nasıl çalıştığını özetliyoruz.
1 — Ön Uç İstek Karşılama Servisleri
Bir dosya yükleme/indirme ya da bir bucket’taki nesneleri listeleme gibi her etkileşim bir istemci isteği ile başlar. Bu istekler şu istemcilerden gelebilir:
- Web tarayıcıları (S3 Konsolu)
- AWS CLI
- Python, JavaScript, Java, Go vb. SDK’lar
Ön uç katmanının üç temel görevi vardır:
- DNS yönlendirme: İsteği doğru S3 uç noktasına iletir.
- Kimlik doğrulama: AWS IAM veya geçici kimlik bilgileriyle yetki kontrolü yapar.
- Yük dengeleme: Trafiği eşit dağıtarak performansı ve sürekliliği korur.
Bu katman veri saklamaz; istekleri doğrular, yetkilendirir ve doğru arka uç servislere rotalar.
2 — İndeksleme ve Meta Veri Servisleri
İstek arka uca ulaştığında sıradaki adım meta veri sorgusudur.
Her S3 nesnesi için şu bilgiler tutulur:
- Bucket adı + nesne anahtarına (key) dayalı benzersiz tanımlayıcı
- Oluşturulma tarihi, boyut, sahip, erişim politikaları (ACL), versiyon bilgileri gibi meta veriler
Meta veri servisleri devasa, dağıtık bir indeks gibi davranır:
- Tüm nesneleri takip eden küresel meta veri deposu
- Tıkanıklığı önlemek için meta veriyi yatayda dağıtan bölümleme (partitioning) motoru
Bu sayede S3, trilyonlarca nesne içinde bile konum bilgisini milisaniyeler içinde bulabilir.
3 — Depolama ve Veri Yerleşimi Servisleri
Meta veri bulununca istek, nesnenin gerçek verisinin bulunduğu depolama katmanına yönlendirilir:
- Veri birden çok S3 düğümünde (depolama sunucularında) saklanır.
- S3, erasure coding ile veriyi parçalara ayırır, yedeklilikle kodlar ve çoklu konuma dağıtır. Böylece tüm nesneyi kopyalamadan hata toleransı sağlar.
- Veriler, bir bölge içindeki birden fazla Erişilebilirlik Alanı (AZ) arasında çoğaltılır. Bir veri merkezi tamamen devre dışı kalsa bile veriniz erişilebilir ve güvende kalır.
Çoklu AZ çoğaltma, S3’ün yüksek dayanıklılığının başlıca nedenidir.
4 — Dayanıklılık ve Kurtarma Servisleri
Veriyi saklamak işin yarısıdır; zaman içinde sağlam kalmasını sağlamak da aynı derece önemlidir. S3’te bu katman şunları yapar:
- Checksum: Yükleme sırasında hesaplanır ve saklanır. Arka plan görevleri periyodik olarak checksum’ları doğrular; bit çürümesi veya bozulma tespit edilirse işaretlenir.
- Denetim ve tarama: Arka plandaki işler depolama düğümlerini sürekli tarar, anormallikleri tespit eder ve proaktif onarım yapar.
- Felaket kurtarma: Erasure coding sayesinde kaybolan parçalar yeniden inşa edilir. Disk veya düğüm arızalansa bile sistem, erişilebilirliği etkilemeden eksik parçaları otomatik üretir.
Bu görünmez süreçler sayesinde S3’te veri kaybı pratikte son derece nadirdir.
5 — Güvenlik ve Uyum Servisleri
S3, yetkisiz erişime karşı güçlü bir güvenlik katmanı ve işletme gereksinimleri için uyum özellikleri sunar:
- IAM ve bucket politikaları: Kullanıcı ve kaynak seviyesinde erişim kontrolü
- DDoS önleme: Kötü niyetli büyük hacimli trafiğe karşı koruma
- Object Lock ve versiyonlama: Kasıtlı/yanlış silmelere karşı koruma
- Sunucu tarafı şifreleme: Dinlenimde veri koruması
S3; PCI-DSS, HIPAA, FedRAMP gibi başlıca standartlarla uyumludur ve kurumsal hassas iş yükleri için uygundur.
Bu Mimari Neden Önemli?
Sorumlulukların uzman servislere modüler biçimde dağıtılmasıyla S3:
- Ön uçta büyük istek yüklerini verimli karşılar,
- Meta veri katmanıyla milyarlarca nesneyi anında takip eder,
- Depolama katmanında yedeklilik ve dayanıklılık sağlar,
- Dayanıklılık ve güvenlik katmanlarıyla veriyi uzun vadede korur.
Bu yaklaşım, AWS’nin her bileşeni bağımsızca güncellemesine ve ölçeklemesine izin verir. Böylece S3, 2006’dan bu yana sürekli büyüyüp gelişebildi.
Siz S3’ü Kullandınız mı?
Projelerinizde S3 kullandınız mı?