📚 AWS Depolama Çözümleri: EBS, EFS ve AMI Kapsamlı Çalışma Materyali
Kaynak Bilgisi: Bu çalışma materyali, Stephane Maarek'in "Amazon EC2 – Instance Storage" başlıklı PDF sunumundan ve ilgili ders kaydı transkriptinden derlenmiştir.
🚀 Giriş: AWS Depolama Çözümlerine Genel Bakış
Amazon Web Services (AWS), bulut tabanlı uygulamaların veri kalıcılığı, performansı ve güvenilirliği için çeşitli depolama hizmetleri sunar. Bu materyal, AWS'nin temel depolama çözümlerinden Amazon Elastic Block Store (EBS), Amazon Elastic File System (EFS) ve Amazon Machine Image (AMI) kavramlarını detaylı bir şekilde incelemektedir. Her bir hizmetin temel tanımları, özellikleri, kullanım senaryoları ve karşılaştırmaları akademik bir yaklaşımla ele alınacaktır.
1️⃣ Amazon Elastic Block Store (EBS) ve İlişkili Kavramlar
Amazon Elastic Block Store (EBS), Amazon EC2 örneklerine ağ üzerinden bağlanabilen, kalıcı blok depolama birimleridir.
-
Tanım ve Temel Özellikler:
- 📚 Kalıcılık: Bir EC2 örneği sonlandırılsa bile verilerinizi korur.
- ✅ Ağ Sürücüsü: Fiziksel bir sürücü değil, ağ tabanlı bir depolama birimidir. Bu, bir miktar gecikmeye neden olabilir.
- ✅ Tekil Bağlantı: Aynı anda yalnızca tek bir EC2 örneğine bağlanabilir (io1/io2 Block Express Multi-Attach özelliği hariç).
- ✅ Erişilebilirlik Bölgesi (AZ) Kilitli: Belirli bir erişilebilirlik bölgesine bağlıdır. Örneğin,
us-east-1abölgesindeki bir EBS birimius-east-1bbölgesindeki bir örneğe doğrudan bağlanamaz. - ✅ Esneklik: Bir EC2 örneğinden ayrılıp başka bir örneğe hızla bağlanabilir.
- ✅ Sağlanan Kapasite: GB cinsinden boyut ve IOPS (Saniye Başına G/Ç İşlemleri) olarak kapasite sağlanır. Sağlanan kapasiteye göre faturalandırılır ve zamanla artırılabilir.
- 💡 Analoji: Bir "ağ USB belleği" gibi düşünebilirsiniz.
-
Sonlandırmada Sil (Delete on Termination) Özniteliği:
- ⚠️ Bu öznitelik, bir EC2 örneği sonlandırıldığında EBS biriminin davranışını kontrol eder.
- ✅ Varsayılan Davranış:
- Kök (root) EBS birimi varsayılan olarak silinir (öznitelik etkin).
- Diğer bağlı EBS birimleri varsayılan olarak silinmez (öznitelik devre dışı).
- ✅ Kontrol: Bu ayar AWS konsolu veya AWS CLI aracılığıyla değiştirilebilir.
- Kullanım Senaryosu: Örnek sonlandırıldığında kök birimdeki verileri korumak için bu öznitelik devre dışı bırakılabilir.
-
EBS Anlık Görüntüleri (Snapshots):
- ✅ Bir EBS biriminin belirli bir zamandaki yedeğini oluşturur.
- 💡 Anlık görüntü almak için birimi ayırmak zorunlu olmasa da, veri bütünlüğü için önerilir.
- ✅ Anlık görüntüler, erişilebilirlik bölgeleri veya bölgeler arasında kopyalanabilir.
- Erişilebilirlik Bölgeleri Arası Taşıma: Bir EBS birimini farklı bir AZ'ye taşımak için, önce anlık görüntüsünü alıp ardından hedef AZ'de bu anlık görüntüden yeni bir EBS birimi oluşturmanız gerekir.
-
EBS Anlık Görüntü Özellikleri:
- ✅ EBS Anlık Görüntü Arşivi: Anlık görüntüleri %75 daha ucuz bir "arşiv katmanına" taşır. Geri yükleme süresi 24 ila 72 saat sürebilir.
- ✅ EBS Anlık Görüntü Geri Dönüşüm Kutusu: Yanlışlıkla silinen anlık görüntülerin belirli bir süre (1 gün ile 1 yıl arası) kurtarılmasını sağlayan kurallar belirlemenize olanak tanır.
- ✅ Hızlı Anlık Görüntü Geri Yükleme (FSR): İlk kullanımda gecikmeyi önlemek için anlık görüntünün tam başlatılmasını zorlar (ek maliyetli).
-
EBS Şifrelemesi:
- ✅ Veri Güvenliği: Veriler hem depoda (at rest) hem de örnek ile birim arasındaki aktarım sırasında (in flight) şifrelenir.
- ✅ Şifreli Anlık Görüntüler: Tüm anlık görüntüler ve bu anlık görüntülerden oluşturulan birimler de şifrelenir.
- ✅ Şeffaf İşlem: Şifreleme ve şifre çözme işlemleri şeffaf bir şekilde gerçekleşir ve gecikme üzerinde minimal bir etkiye sahiptir.
- ✅ KMS Entegrasyonu: Şifreleme için AWS Key Management Service (KMS) anahtarları (AES-256) kullanılır.
- Şifrelenmemiş Birimi Şifreleme Adımları:
- Şifrelenmemiş birimin anlık görüntüsünü alın.
- Bu anlık görüntüyü kopyalayarak şifreleyin.
- Şifreli anlık görüntüden yeni bir şifreli EBS birimi oluşturun.
- Bu şifreli birimi orijinal örneğe bağlayın.
-
EBS Birim Türleri:
- EBS birimleri, farklı iş yükleri için optimize edilmiş altı ana türde gelir:
- Genel Amaçlı SSD (gp2 / gp3):
- Kullanım Alanları: Sistem önyükleme birimleri, sanal masaüstleri, geliştirme/test ortamları.
- Özellikler: Maliyet etkin, düşük gecikmeli depolama.
- gp3: IOPS (16.000'e kadar) ve aktarım hızını (1000 MiB/s'ye kadar) bağımsız olarak artırma esnekliği sunar. Temel olarak 3.000 IOPS ve 125 MiB/s aktarım hızı sağlar.
- gp2: Küçük gp2 birimleri 3.000 IOPS'ye kadar ani artış yapabilir. IOPS, birim boyutuna bağlıdır (GB başına 3 IOPS), maksimum 16.000 IOPS.
- Sağlanan IOPS (PIOPS) SSD (io1 / io2 Block Express):
- Kullanım Alanları: Sürekli yüksek IOPS performansı gerektiren kritik iş uygulamaları, veritabanı iş yükleri (depolama performansı ve tutarlılığa duyarlı).
- Özellikler: En yüksek performanslı SSD birimleri, sub-milisaniye gecikme süresi.
- io1: Nitro EC2 örnekleri için 64.000, diğerleri için 32.000'e kadar maksimum PIOPS. IOPS, depolama boyutundan bağımsız olarak artırılabilir.
- io2 Block Express: 256.000'e kadar maksimum PIOPS, 1.000:1 IOPS:GiB oranı. EBS Multi-Attach'i destekler.
- Sabit Disk Sürücüleri (HDD) (st1 / sc1):
- ⚠️ Önyükleme Birimi Olamazlar.
- st1 (Aktarım Hızı Optimize Edilmiş HDD):
- Kullanım Alanları: Büyük veri, veri ambarları, günlük işleme gibi sık erişilen, aktarım hızı yoğun iş yükleri.
- Özellikler: Maksimum 500 MiB/s aktarım hızı, 500 IOPS.
- sc1 (Soğuk HDD):
- Kullanım Alanları: Seyrek erişilen veriler, en düşük maliyetin önemli olduğu senaryolar.
- Özellikler: Maksimum 250 MiB/s aktarım hızı, 250 IOPS.
- Genel Amaçlı SSD (gp2 / gp3):
- EBS birimleri, farklı iş yükleri için optimize edilmiş altı ana türde gelir:
-
EBS Multi-Attach (io1/io2 Ailesi):
- ✅ Aynı EBS birimini aynı erişilebilirlik bölgesindeki birden çok EC2 örneğine bağlamayı sağlar.
- ✅ Her örnek, yüksek performanslı birime tam okuma ve yazma izinlerine sahiptir.
- Kullanım Senaryosu: Kümelenmiş Linux uygulamalarında (örn. Teradata) yüksek uygulama kullanılabilirliği sağlamak.
- ⚠️ Uygulamaların eşzamanlı yazma işlemlerini yönetmesi ve küme farkındalığına sahip bir dosya sistemi kullanması gerekir (XFS, EXT4 gibi standart dosya sistemleri uygun değildir).
- ✅ Aynı anda 16 adede kadar EC2 örneğine bağlanabilir.
2️⃣ EC2 Instance Store
EC2 Instance Store, yüksek performanslı donanım disklerine ihtiyaç duyan senaryolar için tasarlanmış geçici depolama birimleridir.
- ✅ Yüksek Performans: Daha iyi G/Ç performansı sunar.
- ⚠️ Geçici Depolama: EC2 örneği durdurulduğunda veya sonlandırıldığında verilerini kaybeder (ephemeral). Donanım arızası durumunda da veri kaybı riski vardır.
- Kullanım Alanları: Tampon, önbellek, geçici veriler veya geçici içerik için idealdir.
- ✅ Sorumluluk: Yedekleme ve çoğaltma sorumluluğu tamamen kullanıcıya aittir.
3️⃣ Amazon Elastic File System (EFS)
Amazon Elastic File System (EFS), birden çok EC2 örneğine aynı anda bağlanabilen, yönetilen bir ağ dosya sistemidir (NFS).
-
Tanım ve Temel Özellikler:
- ✅ Yönetilen NFS: Tamamen yönetilen bir ağ dosya sistemidir.
- ✅ Çoklu AZ Desteği: Birden çok erişilebilirlik bölgesindeki EC2 örnekleriyle çalışabilir.
- ✅ Yüksek Erişilebilirlik ve Ölçeklenebilirlik: Otomatik olarak ölçeklenir, petabaytlarca veriye kadar büyüyebilir.
- ✅ Kullandıkça Öde: Kapasite planlaması gerektirmez, yalnızca kullandığınız kadar ödeme yaparsınız.
- ⚠️ Maliyet: EBS'ye göre genellikle daha pahalıdır (yaklaşık 3 kat gp2 maliyeti).
- Kullanım Alanları: İçerik yönetimi, web sunumu, veri paylaşımı, WordPress siteleri gibi senaryolar için idealdir.
- ✅ Protokol: NFSv4.1 protokolünü kullanır.
- ✅ Erişim Kontrolü: Erişimi güvenlik grupları aracılığıyla kontrol eder.
- ✅ Uyumluluk: Yalnızca Linux tabanlı AMI'lerle uyumludur (Windows ile uyumlu değildir).
- ✅ Şifreleme: KMS kullanarak depodaki verileri şifreler.
- ✅ POSIX Uyumlu: Standart bir dosya API'sine sahip POSIX uyumlu bir dosya sistemidir.
-
EFS Performans ve Depolama Sınıfları:
- EFS Ölçeği: Binlerce eşzamanlı NFS istemcisini destekleyebilir, 10 GB/s'nin üzerinde aktarım hızı sunar.
- Performans Modları (EFS oluşturma sırasında ayarlanır):
- ✅ Genel Amaçlı (Default): Gecikmeye duyarlı kullanım durumları için (web sunucuları, CMS).
- ✅ Maksimum G/Ç: Daha yüksek gecikme, aktarım hızı ve yüksek paralellik gerektiren iş yükleri için (büyük veri, medya işleme).
- Aktarım Hızı Modları:
- ✅ Bursting (Ani Artış): Depolama boyutuna bağlı olarak temel aktarım hızı sağlar (örn. 1 TB = 50 MiB/s + 100 MiB/s'ye kadar ani artış).
- ✅ Provisioned (Sağlanan): Depolama boyutundan bağımsız olarak belirli bir aktarım hızı ayarlamanıza olanak tanır (örn. 1 TB depolama için 1 GiB/s).
- ✅ Elastic (Esnek): İş yüklerinize göre aktarım hızını otomatik olarak ölçeklendirir (okumalar için 3 GiB/s'ye, yazmalar için 1 GiB/s'ye kadar). Tahmin edilemeyen iş yükleri için kullanılır.
- Depolama Katmanları (Yaşam Döngüsü Yönetimi Özelliği):
- ✅ Standard: Sık erişilen dosyalar için.
- ✅ Infrequent Access (EFS-IA): Seyrek erişilen dosyalar için daha düşük depolama maliyeti sunar, ancak dosya alma maliyeti vardır.
- ✅ Archive: Çok nadiren erişilen veriler için (%50 daha ucuz).
- 💡 Yaşam Döngüsü Politikaları: Dosyaları belirli bir süre (örn. N gün) erişilmediğinde otomatik olarak daha ucuz katmanlara taşımak için politikalar uygulanabilir.
- Erişilebilirlik ve Dayanıklılık:
- ✅ Standard: Çoklu AZ'de yüksek erişilebilirlik ve dayanıklılık sunar, üretim ortamları için idealdir.
- ✅ One Zone: Tek bir AZ'de bulunur, geliştirme ortamları veya yedeklemeler için uygundur. Varsayılan olarak yedekleme etkindir ve EFS One Zone-IA ile uyumludur. %90'ın üzerinde maliyet tasarrufu sağlayabilir.
📊 EBS ve EFS Karşılaştırması: Detaylı İnceleme
EBS ve EFS, AWS'nin sunduğu temel depolama çözümleri olsa da, farklı mimarilere ve kullanım senaryolarına sahiptir. Doğru seçimi yapmak, uygulamanızın gereksinimlerine bağlıdır.
| Özellik / Hizmet | Amazon Elastic Block Store (EBS) | Amazon Elastic File System (EFS) | | :---------------- | :------------------------------- | :------------------------------- | | 📚 Depolama Türü | Blok Depolama (Disk gibi) | Dosya Depolama (Ağ Paylaşımı gibi) | | 🔗 Bağlantı Şekli | Tek bir EC2 örneğine bağlanır (io1/io2 Multi-Attach hariç) | Birden çok EC2 örneğine aynı anda bağlanabilir | | 🌍 Erişim Kapsamı | Erişilebilirlik Bölgesi (AZ) düzeyinde kilitlidir | Birden çok Erişilebilirlik Bölgesinde (Multi-AZ) çalışır | | ⚙️ Performans Ölçeklendirme | Disk boyutuyla (gp2) veya bağımsız olarak (gp3, io1/io2) IOPS/aktarım hızı artırılabilir | Otomatik olarak ölçeklenir, performans modları (Genel Amaçlı, Maksimum G/Ç) ve aktarım hızı modları (Bursting, Provisioned, Elastic) ile ayarlanır | | 🔄 AZ'ler Arası Taşıma | Anlık görüntü alıp hedef AZ'de geri yükleyerek yapılır | Doğrudan Multi-AZ desteği sayesinde AZ'ler arası erişim sağlar | | 🗑️ Örnek Sonlandırma Davranışı | Kök birimi varsayılan olarak silinir (yapılandırılabilir), diğerleri silinmez | Örnek sonlandırmadan etkilenmez, veriler kalıcıdır | | 💰 Maliyet | Genellikle EFS'ye göre daha düşüktür | Genellikle EBS'ye göre daha yüksektir, ancak depolama katmanları ile optimize edilebilir | | 💻 Uyumluluk | Tüm işletim sistemleri (Linux, Windows) | Yalnızca Linux tabanlı AMI'ler (POSIX uyumlu) | | 💡 Kullanım Senaryoları | Veritabanları, tek sunucu uygulamaları, önyükleme birimleri, yüksek performanslı tekil disk gereksinimleri | İçerik yönetim sistemleri, web sunucuları, geliştirme ortamları, büyük veri analizi, paylaşımlı dosya erişimi gerektiren uygulamalar |
🎯 Sonuç
AWS'nin sunduğu EBS, EFS ve EC2 Instance Store gibi depolama çözümleri, farklı iş yükleri ve gereksinimler için tasarlanmıştır.
- EBS: Tek bir örneğe yüksek performanslı, kalıcı blok depolama sağlar. Veritabanları ve tek sunucu uygulamaları için idealdir.
- EFS: Birden çok örneğin aynı anda erişebileceği, ölçeklenebilir, paylaşımlı dosya depolama sunar. Web sunucuları ve içerik yönetim sistemleri gibi paylaşımlı erişim gerektiren uygulamalar için uygundur.
- EC2 Instance Store: Geçici, yüksek G/Ç performanslı yerel depolama gerektiren durumlar (önbellek, tampon) için kullanılır, ancak veri kalıcılığı sağlamaz.
Doğru depolama çözümünü seçmek, uygulamanızın performans beklentileri, maliyet kısıtlamaları, veri kalıcılığı ve erişilebilirlik gereksinimleri gibi faktörlere bağlıdır. Bu hizmetlerin her birini anlamak, AWS bulut ortamında sağlam ve verimli mimariler oluşturmanın anahtarıdır.








