2 puan yazan GN⁺ 2024-03-11 | 1 yorum | WhatsApp'ta paylaş

S3 bir dosyadır ama dosya sistemi değildir

  • Amazon S3, 2006'da kullanıma sunulan özgün bir bulut teknolojisidir; "nesne depolama" olarak adlandırılsa da pratikte dosyalar içindir.
  • S3'ün bir "Amazon Cloud Filesystem" olduğu fikri, insanların S3'ü benimsemesini teşvik eden kullanışlı bir inançtır; ancak gerçekte S3 bir dosya sistemi değildir.

Dosya sistemi nedir ve modül "derinliği"

  • Unix dosya API'si beş temel işlevden oluşur ve bunlar dosya okuma ve yazma için gereken her şeyi sağlar.
  • Bu işlevler tamponlama, sayfa önbelleği, parçalanma, izinler, IO zamanlaması gibi pek çok sorunu ele alır ama bunları kullanıcıya göstermez.
  • Derin modüller, kullanıcıların karmaşıklığı düşünmeden işlevsellikten yararlanabilmesini sağlama avantajına sahiptir.

S3'ün özellikleri (bu da derindir)

  • S3, Unix dosya sistemi API'sini yeniden uygulamaz ve temel çağrı modeli farklıdır.
  • S3 API'si Unix dosya API'sinden daha basittir, ancak nesnelerin kısmen üzerine yazılamaması gibi bir kısıtı vardır.

Dosya sistemi yazılımları, özellikle veritabanları, Amazon S3'e taşınamaz

  • Veritabanlarının veriyi depolayacak bir yere ihtiyacı vardır ve bu yer genellikle dosya sistemindeki çeşitli dosyalardır.
  • Veritabanları kısmi üzerine yazma özelliğine büyük ölçüde bağımlıdır ve bu S3'te mümkün değildir.

S3'ün iyi yaptığı ve yapamadığı şeyler

  • S3'ün güçlü yanı, okuma ve yazma bant genişliğinin çok yüksek olmasıdır.
  • Ancak S3'te kısmi üzerine yazma, yeniden adlandırma veya taşıma işlemleri yoktur; dosya listesini çıkarmak da yavaştır.
  • Buna rağmen S3, az bakım gerektirir ve yedekleme kurulumu, çoğaltma, provizyonlama gibi işleri basitleştirir.

Kurumlar arası modül derinliğinin önemi

  • S3'ün ilk popüler bulut API'si haline gelmesi şaşırtıcı değildir; derin API'ler kurumlar arası karmaşıklığı yönetmede yardımcı olur.
  • SAP gibi karmaşık kurumsal yazılımları entegre etmek sancılı bir iştir; çünkü SAP derin bir modül değildir.

Diğer bilgiler

  • Bu yazı, S3'ün abartıldığını öne sürmeyi amaçlamıyor; derin modüller ile nispeten sığ modüller arasındaki kavramı açıklıyor.
  • Bazı veritabanları, depolama katmanı olarak S3 API'sini kullanacak şekilde tasarlanmıştır; bu mümkündür ama şeffaf değildir.
  • S3 üzerinde birçok dosya formatı, diske kıyasla daha düşük performans gösterir.

GN⁺ görüşü

  • S3'ün bir dosya sistemi ikamesi değil, belirli kullanım senaryoları için optimize edilmiş bir depolama çözümü olduğunu anlamak önemlidir. Örneğin büyük ölçekli değişmez dosyaları depolamak ve aktarmak için uygundur, ancak veritabanları gibi sık kısmi güncelleme gerektiren uygulamalar için uygun değildir.
  • S3'ün performansı ve ölçeklenebilirliği çok yüksektir, ancak maliyet verimliliği ve yönetim karmaşıklığı düşünüldüğünde her proje için uygun değildir. Örneğin açık kaynaklı proje MinIO, kendi altyapısında S3 uyumlu depolama kurmak isteyen kurumlar için iyi bir alternatif olabilir.
  • S3 kullanılırken veri tutarlılığı, ağ maliyetleri, erişim kontrolü gibi ek değerlendirmeler vardır ve bu unsurlar tüm sistem tasarımını etkileyebilir.
  • S3'ün kullanım alanı sınırlı olabilir, ancak veri gölü veya yedekleme çözümü gibi belirli uygulamalarda çok güçlü bir araçtır. Veriyi güvenli biçimde depolayıp gerektiğinde hızlıca geri getirebilmesi, birçok işletme için önemli değer sunar.
  • Bu yazı, S3'ün teknik ayrıntıları ve gerçek kullanım örnekleri hakkında derin bir anlayış sunarak teknik kararlar vermeye yardımcı olabilir.

1 yorum

 
GN⁺ 2024-03-11
Hacker News görüşleri
  • S3'ün dayanıklılığıyla ilgili bir sorun duyduğumu hatırlamıyorum, ancak bu iddiaların test edildiğini de görmedim. Bu iddiaları merak ediyorum.

    • S3'ün dayanıklılığı sektör lideridir ve geleneksel dosya sistemleriyle karşılaştırılamaz.
    • AWS'in erişilebilirlik bölgesi ayrımı diğer bulut sağlayıcılarından üstündür.
    • S3, veri bütünlüğü ve doğal afetlere karşı dayanıklılık konusunda son derece ciddidir.
    • S3, 'bit rot' tespit edecek kadar büyük ölçekte işletilir.
    • Önemli verileri S3 dışında başka bir yerde saklamazdım.
    • Kaynak: S3 batch sistemini yazan kişi.
  • Dosya listesini çıkarmak yavaş. S3 okuma ve yazmada çok hızlı ama dosyaları listelemek çok yavaş.

    • Yararlı olan S3'ün hızlı okuma ve yazması değil, dosya listeleme özelliğidir.
    • Sürümleme etkin olmayan bucket'larda, belirli bir öneki listelemek pratikte sabit sürede yapılabilir.
    • Verileri farklı şekillerde bölümlendirebilir ve performans kaygısı olmadan ihtiyaç duyulan tanımlayıcıları kullanabilirsiniz.
  • Dosya listelemenin yavaş olmasına yakın zamanda şaşırdım. S3'te varlıkları yönetmek için script yazarken dosya listesi önbelleğine ihtiyaç olduğunu fark ettim.

    • Yaklaşık 100.000 kök seviye dizin var ve her birinde birkaç dosya içeren birkaç dizin bulunuyor.
    • Dosyaları özyinelemeli olarak listelemek 15 dakika sürüyor.
    • Amazon'un bunu neden çözmediğini merak ediyorum.
  • Amazon S3, 2006'da piyasaya sürülen özgün bulut teknolojilerinden biridir. O dönemde "object" popülerdi ve S3 bir "object store" olarak adlandırılıyordu.

    • S3 bir dosya sistemi değil, bir object store'dur.
    • S3 dosya değildir, dosya sistemi de değildir.
    • Dosya soyutlamasında beklenen şey değiştirilebilirliktir.
    • S3, değiştirilemeyen nesnelerin değiştirilebilir bir listesini sunar.
    • S3 farklı bir sorunu çözer ve onu dosya sistemi gibi göstermeye çalışma çabası müşterilerin yanlış anlamasından kaynaklanır.
  • Apache Arrow'un object_store API'si ile Apache OpenDAL'ın sunduğu API'yi karşılaştıran bir tartışma var.

    • Apache OpenDAL, S3 dahil çeşitli bulut depolama hizmetleri için FS benzeri API sağlayan bir kütüphanedir.
    • GreptimeDB ve Databend gibi bazı veritabanı sistemleri, bulut depolamadaki verilere erişmek için OpenDAL kullanır.
    • Alluxio ve JuiceFS gibi diğer çözümler de S3 üzerinde dosya sistemi benzeri bir arayüz yönetir.
  • Dosya sistemi yazılımları, özellikle veritabanları, Amazon S3'e taşınamaz.

    • Ancak taşınabilir.
    • Her INSERT/UPDATE/DELETE işleminde tüm DB dosyasını yeniden yazmak gerekmez.
    • SQLite için S3'e replikasyon ve geri yükleme desteği sunan Litestream gibi araçlar vardır.
  • Veri kümelerini ve model checkpoint'lerini saklamak için yerel "S3" olarak Minio kullanıyorum.

    • Minio'da ihtiyaç duymadığım birçok özellik var.
    • CRUD dosya işlemleri yapabilen ve listeleme gösterebilen, S3 benzeri minimum bir "şey" için şu anda en iyi self-hosted, tek düğümlü seçenek nedir?
  • S3'ten bahsederken Backblaze B2'yi anmaya değer.

    • S3'ün üçte biri fiyatına çok memnunum.
  • S3 bir dosya sistemi gibi yanlış kullanılabilir.

    • S3 nesne ister ve burada cluster denilen 512 veya 4096 baytlık nesneler vardır.