Amazon S3 ile nesne depolama: kurulum, güvenlik ve yaşam döngüsü
Beceri rehberi

Amazon S3 ile nesne depolama: kurulum, güvenlik ve yaşam döngüsü

Hazırlayan: Mindset Institute EditörlüğüGüncellendi: 5 dk okuma

Amazon S3'te bucket kurulumu, sürümleme, yaşam döngüsü kuralları, erişim güvenliği ve sık hatalar: nesne depolamayı doğru tasarlamanın rehberi.

Nesne depolama nedir ve dosya sisteminden farkı ne?

Nesne depolama, veriyi klasör hiyerarşisi yerine düz bir ad alanında "nesne" olarak saklayan modeldir. Her nesne şu parçalardan oluşur: verinin kendisi, bir anahtar (nesnenin benzersiz adı) ve metaveri. Amazon S3'te nesneler "bucket" adı verilen kaplarda tutulur. Konsolda klasör gibi görünen yapı aslında anahtardaki eğik çizgilerden üretilen bir görünümdür.

Bu fark pratikte önemlidir. Nesne depolama bir sunucuya disk gibi bağlanıp üzerinde veritabanı çalıştırılmak için tasarlanmamıştır; yedekler, günlükler, medya dosyaları, veri gölü ve statik web içeriği için uygundur. Bir nesnenin ortasındaki baytı değiştirmezsiniz, nesneyi baştan yazarsınız. Bu sınırı bilmek, S3'ü yanlış iş yüküne yüklemenin önüne geçer.

Adım adım: ilk bucket nasıl kurulur ve kullanılır?

Başlangıç akışı genellikle şöyledir.

İlk olarak bucket'ın bölgesini ve adlandırma düzenini seçin. Bucket adları genel bir ad alanında benzersizdir, bu yüzden kurum, ortam ve amaç içeren tutarlı bir adlandırma standardı belirlemek sonradan karmaşayı önler. Veri konumu mevzuat gerektiriyorsa bölge seçimi teknik değil hukuki bir karardır.

İkinci olarak erişim güvenliğini baştan kapalı kurun. Block Public Access ayarını açık bırakın, erişimi IAM rolleri ve bucket politikaları ile verin. Üçüncü olarak şifrelemeyi varsayılan olarak etkinleştirin. Dördüncü olarak sürümlemeyi (versioning) açın; yanlışlıkla silinen ya da üzerine yazılan nesneyi geri almanın en kolay yolu budur.

Sonra yükleme yapın: küçük dosyalar için konsol ya da komut satırı aracı yeterlidir; büyük dosyalar için çok parçalı yükleme (multipart upload) kullanılır, böylece kesilen yükleme baştan başlamaz. Geçici erişim gerektiğinde nesneyi herkese açmak yerine süreli imzalı bağlantı (presigned URL) üretilir.

Depolama sınıfları ve yaşam döngüsü kuralları

Her veri aynı sıklıkta okunmaz. S3 farklı erişim desenleri için farklı depolama sınıfları sunar: sık erişilen veriler için standart sınıf, seyrek erişilenler için daha ucuz ama erişimde ek koşulları olan sınıflar, arşiv için Glacier ailesi, erişim deseni belirsiz veriler için ise nesneyi otomatik katmanlayan akıllı sınıf. Sınıf adlarını ve güncel koşullarını resmî dokümantasyondan kontrol edin; hizmet zamanla yeni sınıf ekler.

Yaşam döngüsü kuralları geçişi otomatikleştirir. Örneğin uygulama günlükleri ilk dönemde standart sınıfta tutulur, bir süre sonra daha ucuz sınıfa taşınır, saklama süresi dolunca silinir. Kuralları yazarken en sık yapılan hata, arşiv sınıflarının geri getirme gecikmesini ve minimum saklama koşullarını hesaba katmamaktır; ucuz görünen sınıf, sık erişilen veri için pahalıya dönebilir.

Erişim kontrolü ve güvenlik tasarımı

S3 olaylarında en çok yaşanan sorun, yanlışlıkla herkese açılan bucket'tır. Savunma katmanlıdır. Hesap ve bucket düzeyinde Block Public Access açık tutulur. Erişim için kimlik tabanlı politikalar (IAM) ve kaynak tabanlı politikalar (bucket politikası) birlikte düşünülür; en az yetki ilkesiyle yalnızca gereken eylemler gereken kimliklere verilir. Başka bir hesaptan ya da hizmetten erişim gerekiyorsa rol üstlenme (assume role) tercih edilir, kalıcı anahtar paylaşmak değil.

Şifrelemede yönetilen anahtar ile müşteri tarafından yönetilen anahtar arasındaki seçim, denetim ve uyum ihtiyacına bağlıdır. Değiştirilemez saklama gerektiren kayıtlar için Object Lock gibi mekanizmalar vardır. Erişimleri izlemek için sunucu erişim günlükleri veya hizmetin denetim kayıtları etkinleştirilir; bir veri sızıntısını sonradan anlamak ancak kayıt varsa mümkündür.

Örnek senaryo: kurumsal yedek ve rapor arşivi

Örneğin bir finans ekibi aylık raporlarını ve sistem yedeklerini S3'te saklıyor. Tasarım şöyle kurgulanabilir: üretim hesabından ayrı bir arşiv hesabında bucket açılır; yazma yetkisi yalnızca yedekleme rolüne, okuma yetkisi denetim ekibine verilir. Sürümleme açıktır ve silinmiş nesne işaretleri izlenir. Yaşam döngüsü kuralı, son dönemin yedeklerini hızlı erişimli sınıfta tutar, eski yedekleri arşiv sınıfına geçirir, saklama politikası bitince siler.

Felaket durumuna karşı veriler başka bir bölgeye çoğaltılır (replication). Bu sırada çoğaltmanın da ek depolama ve veri aktarımı maliyeti doğurduğu unutulmamalıdır. Tasarımın sonunda ekip, hangi nesnenin kaç kez, kim tarafından, hangi sürede geri getirilebildiğini bir tatbikatla doğrular; test edilmemiş yedek, yedek sayılmaz.

Sık yapılan hatalar

  • Bucket'ı hızlıca çalıştırmak için erişimi genişçe açıp sonra kapatmayı unutmak.
  • Yaşam döngüsü kuralı koymadan günlük ve yedek biriktirmek; depolama faturası kimse fark etmeden büyür.
  • Çok sayıda küçük nesneyi sürekli listelemek ya da tek bir anahtar öneki altında yoğun trafik üretmek; performans ve istek maliyeti etkilenir.
  • Sürümleme açıkken eski sürümler için temizlik kuralı yazmamak; silinen nesnelerin eski sürümleri depolama yer kaplamaya devam eder.
  • Uygulama kodunda kalıcı erişim anahtarı gömmek; rol tabanlı erişim çok daha güvenlidir.
  • Nesne depolamayı dosya sunucusu gibi kullanmaya çalışmak; bu iş için farklı hizmet seçilmelidir.

Nasıl öğrenilir ve ileri adımlar

Önce bir deneme hesabında küçük bir bucket açıp yükleme, sürümleme, yaşam döngüsü ve bucket politikası denemeleri yapın. Ardından IAM rollerini ve bucket politikalarının birlikte nasıl değerlendirildiğini çalışın; bu konu sınav ve gerçek hayatta en çok hata çıkan kısımdır. İleri aşamada büyük ölçekli kullanım, performans ayarı, çoğaltma ve maliyet analizine geçilir.

Mindset kataloğundaki Amazon S3 ile Kurumsal Nesne Depolama Tasarımı programının modülleri nesne depolama temelleri ve veri modeli, depolama sınıfları ve yaşam döngüsü, erişim güvenliği ve politika tasarımı, şifreleme, dayanıklılık ve uyum, performans ve büyük ölçekli kullanım, maliyet optimizasyonu ve tasarım atölyesi başlıklarını içeriyor.

İlgili Mindset programı

Amazon S3 ile Kurumsal Nesne Depolama Tasarımı

Sık sorulanlar

Sık sorulan sorular

S3 bir dosya sunucusu yerine kullanılabilir mi?

Genel amaçlı dosya paylaşımı için uygun değildir. S3 nesne tabanlıdır; dosyayı kısmen güncellemek, klasör yetkisi vermek ya da bir sürücü olarak bağlamak onun güçlü yanları değildir. Yedek, arşiv, medya, veri gölü ve statik içerik gibi iş yükleri için uygundur; dosya paylaşımı için ayrı bir hizmet seçmek daha doğru olur.

Bucket'ı herkese açık yapmadan dosya paylaşmanın yolu var mı?

Evet. Süreli imzalı bağlantı (presigned URL) üretilir; bağlantı yalnızca belirlenen süre ve işlem için geçerlidir. Başka bir hesap ya da hizmet erişecekse rol üstlenme kullanılır. Bu yöntemlerle Block Public Access açık kalır ve veri kazara internete çıkmaz.

Sürümleme (versioning) ne işe yarar?

Sürümleme açıkken bir nesne üzerine yazıldığında ya da silindiğinde eski sürüm saklanır; silme yalnızca bir işaret ekler. Böylece yanlışlıkla yapılan değişiklik geri alınabilir. Bedeli, eski sürümlerin de yer kaplamasıdır; bu yüzden eski sürümleri belli süre sonra temizleyen bir yaşam döngüsü kuralı gerekir.

Depolama sınıfını nasıl seçerim?

Verinin ne sıklıkla okunduğuna ve geri getirme hızının ne kadar önemli olduğuna bakın. Sık erişilen veri standart sınıfta kalır, seyrek erişilen daha ucuz sınıfa, arşiv veri Glacier ailesine gider. Erişim deseni bilinmiyorsa akıllı katmanlama değerlendirilir. Güncel koşullar için resmî dokümantasyon esas alınmalıdır.

S3 öğrenmek için önce hangi bilgilere ihtiyaç var?

Temel bulut kavramları, kimlik ve erişim yönetimi (IAM) ve ağ hakkında genel bilgi yeterli bir başlangıçtır. Programlama zorunlu değildir; konsol ve komut satırıyla büyük kısmı öğrenilir. Ardından politika dili ve otomasyon araçlarıyla ilerlemek işin ciddi kısmını oluşturur.

Amazon S3 Nasıl Kurulur ve Yönetilir? Adım Adım