EFS: Linux için Paylaşılan Dosya Depolama
Bir EFS dosya sistemini birden fazla EC2 bulut sunucusu ve Lambda işlevi arasında bağlayın, performans ve aktarım hızı kiplerini yapılandırın ve erişimi güvenlik gruplarıyla denetleyin.
EFS: Linux için Paylaşılan Dosya Depolama, CoddyKit'te ücretsiz bir Cloud & IT Cert Prep dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Cloud & IT Cert Prep öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Cloud & IT Cert Prep kursu toplamda 4 dersten oluşur.
Amazon EFS Nedir
Amazon Elastic File System (EFS), binlerce EC2 bulut sunucusu, Lambda işlevi ve ECS/EKS kapsayıcısı tarafından aynı anda bağlanabilen, tamamen yönetilen, esnek ve paylaşılan bir POSIX dosya sistemidir. Tek bir bulut sunucusuna bağlanan EBS'nin aksine EFS, bağlı tüm istemcilerin aynı dosyaları gerçek zamanlı olarak gördüğü paylaşılan bir dosya sistemi sağlar. Kapasite otomatik olarak artar ve azalır — önceden hiçbir depolama alanı ayırmanız gerekmez. EFS; içerik yönetimi, paylaşılan kod depoları, ev dizinleri ve veri analizi için idealdir.
EFS Depolama Sınıfları
EFS iki depolama sınıfı sunar: EFS Standard (çoklu AZ, en yüksek kullanılabilirlik, milisaniyenin altında gecikme) ve EFS One Zone (tek AZ, %47 daha düşük maliyet, biraz daha düşük dayanıklılık). Her katmanda ayrıca düzenli olarak erişilmeyen dosyaları Standard'a göre %92 daha düşük maliyetle depolayan bir Infrequent Access (IA) çeşidi bulunur. S3'ten farkı şudur: EFS, uygulamalarınızın bağlayabildiği tam özellikli bir POSIX dosya sistemidir — nesne depolama hizmeti değildir.
# Create an EFS file system in Standard storage class
aws efs create-file-system \
--performance-mode generalPurpose \
--throughput-mode elastic \
--encrypted \
--tags Key=Name,Value=SharedFileSystem
# One Zone (cheaper, single-AZ):
aws efs create-file-system \
--performance-mode generalPurpose \
--throughput-mode elastic \
--encrypted \
--availability-zone-name us-east-1a \
--tags Key=Name,Value=SharedFileSystemOneZoneEFS Performans Modları
EFS iki performans moduna sahiptir: General Purpose (varsayılan; çoğu iş yükü için önerilir — en düşük gecikme, web sunumu, içerik yönetimi ve ana dizinler için idealdir) ve Max I/O (birkaç bin eşzamanlı bağlantıya sahip, biraz daha yüksek gecikmenin kabul edildiği yoğun paralel iş yükleri için tasarlanmıştır; büyük veri ve medya işleme için idealdir). Performans modu oluşturma sırasında belirlenir ve dosya sistemi oluşturulduktan sonra değiştirilemez. SAA-C03 sınavında, Max I/O seçeneğini yalnızca binlerce paralel bağlantıya açıkça ihtiyaç duyduğunuzda seçin.
# Create EFS with Max I/O for highly parallel workloads
aws efs create-file-system \
--performance-mode maxIO \
--throughput-mode provisioned \
--provisioned-throughput-in-mibps 1024 \
--encrypted
# Note: Max I/O mode is NOT compatible with Elastic throughput mode
# It must use Provisioned or Bursting throughputEFS Aktarım Hızı Modları
EFS üç aktarım hızı modunu destekler: Elastic (iş yüküne göre aktarım hızını otomatik olarak artırır ve azaltır — çoğu kullanım durumu için önerilir, aktarılan GB başına ücretlendirilir), Bursting (aktarım hızı depolama boyutuyla birlikte ölçeklenir, EC2 T serilerinde olduğu gibi burst kredileri kazanır ve tüketir — temel hız ücretsizdir) ve Provisioned (depolama boyutundan bağımsız olarak sabit bir aktarım hızı belirtirsiniz — Bursting'in sağladığından daha tutarlı bir aktarım hızına ihtiyaç duyduğunuzda kullanışlıdır). Elastic modu modern varsayılandır ve aktarım kapasitesini önceden planlama gereğini ortadan kaldırır.
# Migrate an existing EFS from Bursting to Elastic throughput
aws efs update-file-system \
--file-system-id fs-0abc1234def567890 \
--throughput-mode elastic
# Check current throughput mode and performance mode
aws efs describe-file-systems \
--file-system-id fs-0abc1234def567890 \
--query 'FileSystems[].{ThroughputMode:ThroughputMode,PerfMode:PerformanceMode,SizeBytes:SizeInBytes.Value}'Mount Hedefleri ve Güvenlik Grupları
Bir EC2 bulut sunucusundan EFS dosya sistemine erişmek için bulut sunucularınızın çalıştığı her alt ağda (AZ) bir mount hedefi oluşturursunuz. EFS Standard için VPC'nizdeki her AZ'de bir mount hedefi oluşturmalısınız — EC2 bulut sunucuları en düşük gecikme için kendi AZ'lerindeki mount hedefine bağlanır. Mount hedeflerinde, bulut sunucusunun güvenlik grubundan gelen NFS trafiğine (2049 TCP bağlantı noktası) izin vermesi gereken güvenlik grupları bulunur. Bu gelen trafik kuralı olmadan mount işlemleri zaman aşımına uğrar.
# Create a mount target in each AZ
aws efs create-mount-target \
--file-system-id fs-0abc1234def567890 \
--subnet-id subnet-aaa111 \
--security-groups sg-efsnfs
aws efs create-mount-target \
--file-system-id fs-0abc1234def567890 \
--subnet-id subnet-bbb222 \
--security-groups sg-efsnfs
# The EFS security group needs: Inbound TCP 2049 from instance SGLinux Üzerinde EFS Mount Etme
EFS'yi EC2 üzerinde mount etmenin önerilen yolu, aktarım sırasında TLS şifrelemesini ve otomatik yeniden bağlanmayı destekleyen Amazon EFS Mount Helper'ı (amazon-efs-utils paketi) kullanmaktır. En yakın AZ mount hedefinin DNS tarafından otomatik olarak çözümlenmesi için IP adresi yerine dosya sistemi kimliğini kullanarak mount edersiniz. Yeniden başlatmalardan sonra da devam eden kalıcı mount işlemleri için mount girdisini, mount işleminden önce ağın kullanılabilir olmasını sağlayan _netdev seçeneğiyle birlikte /etc/fstab dosyasına ekleyin.
# Install the EFS mount helper
sudo yum install -y amazon-efs-utils
# Mount with TLS encryption in transit
sudo mkdir /mnt/efs
sudo mount -t efs -o tls fs-0abc1234def567890:/ /mnt/efs
# Persistent mount in /etc/fstab
# fs-0abc1234def567890:/ /mnt/efs efs defaults,_netdev,tls 0 0
# Verify mount
df -h /mnt/efsEFS Access Points
EFS Access Points, bu access point'i kullanan tüm bağlantılar için belirli bir POSIX kullanıcısını, grubunu ve kök dizinini zorunlu kılan, uygulamaya özgü EFS dosya sistemi giriş noktalarıdır. Bu sayede aynı dosya sistemindeki birden çok uygulama birbirinden yalıtılabilir — A Uygulaması Access Point A üzerinden mount edilir ve yalnızca /data/app-a/ yolunu görürken, Access Point B'yi kullanan B Uygulaması yalnızca /data/app-b/ yolunu görür. Access Points, Lambda işlevlerine, ECS görevlerine ve EKS pod'larına paylaşılan EFS dosya sistemlerine yalıtılmış erişim vermek için önerilen yöntemdir.
# Create an EFS Access Point for an application
aws efs create-access-point \
--file-system-id fs-0abc1234def567890 \
--posix-user Uid=1001,Gid=1001 \
--root-directory Path=/data/app-a,CreationInfo={OwnerUid=1001,OwnerGid=1001,Permissions=755} \
--tags Key=App,Value=app-a
# Mount using the access point
sudo mount -t efs \
-o tls,accesspoint=fsap-0abc1234def567890 \
fs-0abc1234def567890:/ /mnt/app-aEFS Intelligent-Tiering ve Yaşam Döngüsü
EFS Intelligent-Tiering, erişim düzenlerine göre dosyaları Standard ve Standard-IA (Seyrek Erişim) depolama sınıfları arasında otomatik olarak taşır. Örneğin, dosyaları 30 gün boyunca erişilmedikten sonra IA'ya taşıyan bir yaşam döngüsü ilkesi yapılandırabilirsiniz. IA'daki bir dosyaya yeniden erişildiğinde dosya otomatik olarak Standard'a taşınır. IA'dan alma işlemi GB başına bir alma ücreti gerektirir, ancak depolama maliyeti önemli ölçüde daha düşüktür. Bu, S3 Intelligent-Tiering'e benzer ve dosya yerleşimini elle yönetme gereğini ortadan kaldırır.
# Enable lifecycle management (move to IA after 14 days)
aws efs put-lifecycle-configuration \
--file-system-id fs-0abc1234def567890 \
--lifecycle-policies '[
{"TransitionToIA": "AFTER_14_DAYS"},
{"TransitionToPrimaryStorageClass": "AFTER_1_ACCESS"}
]'
# Check current lifecycle configuration
aws efs describe-lifecycle-configuration \
--file-system-id fs-0abc1234def567890Lambda ve Container'larla EFS
Lambda işlevleri, çağrılar arasında büyük model dosyalarını, kalıcı verileri veya yapılandırmayı paylaşmak için EFS dosya sistemlerini mount edebilir — böylece 512 MB-10 GB'lık /tmp sınırının aşılmasını sağlar. ECS ve EKS görevleri, EFS CSI sürücüsünü kullanarak kalıcı birim talepleri üzerinden EFS'yi mount eder. Lambda işlevi veya container, bir mount hedefine sahip VPC içinde bulunmalı ve EFS güvenlik grubu, Lambda'nın veya container'ın VPC güvenlik grubundan gelen NFS trafiğine izin vermelidir. EFS + Lambda, eğitilmiş makine öğrenimi modellerini işlev örnekleri arasında paylaşmak için yaygın bir kullanım şeklidir.
# Lambda function with EFS mount (CloudFormation excerpt)
# Resources:
# MyFunction:
# Type: AWS::Lambda::Function
# Properties:
# VpcConfig:
# SubnetIds: [subnet-aaa]
# SecurityGroupIds: [sg-lambda]
# FileSystemConfigs:
# - Arn: arn:aws:elasticfilesystem:us-east-1:111122223333:access-point/fsap-0abc
# LocalMountPath: /mnt/models
# In function code:
# import os
# model_path = '/mnt/models/my-model.pkl'
# with open(model_path, 'rb') as f:
# model = pickle.load(f)EFS ve EBS: Sınavdaki Temel Farklar
SAA-C03 sınavında sık sık EFS ile EBS arasında seçim yapmanız istenir. EFS: POSIX paylaşımlı dosya sistemi, aynı anda birden çok EC2 bulut sunucusuna mount edilebilir, kapasitesi esnektir, Lambda ve container'lar tarafından erişilebilir, GB başına maliyeti daha yüksektir ve yalnızca Linux'u destekler (NFS). EBS: blok aygıtıdır, tek bir EC2 bulut sunucusuna bağlanır (io1/io2 Multi-Attach hariç), sabit bir sağlanan boyuta sahiptir, hem Linux hem de Windows'u destekler, Lambda tarafından yerel olarak erişilemez ve GB başına maliyeti daha düşüktür. Senaryoda “birden çok bulut sunucusu aynı dosyaları paylaşmalı” deniyorsa yanıt EFS'tir.
EFS Şifrelemesi
EFS, bekleme sırasında şifrelemeyi (dosya sistemi oluşturulurken bir KMS anahtarı kullanılarak etkinleştirilir — oluşturulduktan sonra değiştirilemez) ve aktarım sırasında şifrelemeyi (EFS mount helper'ı tls seçeneğiyle kullanıldığında TLS şifrelemesi) destekler. AWS her ikisinin de etkinleştirilmesini önerir. elasticfilesystem:ClientRootAccess ve elasticfilesystem:ClientWrite koşullarını zorunlu kılan ve TLS olmadan mount işlemlerini reddeden, EFS'ye ait kaynak tabanlı bir ilke kullanarak aktarım sırasında şifrelemeyi zorunlu tutabilirsiniz.
# Create an EFS file system with encryption at rest
aws efs create-file-system \
--encrypted \
--kms-key-id arn:aws:kms:us-east-1:111122223333:key/KEY_ID
# Mount with TLS to encrypt in transit
sudo mount -t efs -o tls fs-0abc1234def567890:/ /mnt/efs
# Deny unencrypted mounts via EFS resource policy (condition)
# Condition: elasticfilesystem:AccessedViaMountTarget = true
# and aws:SecureTransport = trueHızlı Kontrol
Bu dersteki AWS Solutions Architect (SAA-C03) kavramlarını anlayıp anlamadığınızı test edin.
Ders Özeti
Bu derste şunları öğrendiniz: EFS, paylaşılan bir POSIX dosya sistemidir; esnek kapasiteyle aynı anda binlerce bulut sunucusuna ve Lambda işlevine mount edilebilir. Access Points, zorunlu POSIX kullanıcısı ve kök diziniyle uygulama başına yalıtım sağlar. Intelligent-Tiering ise seyrek erişilen dosyaları otomatik olarak daha düşük maliyetli IA depolama sınıfına taşır. Sırada, özel iş yükleri için FSx for Windows File Server ve Lustre'ı inceleyeceğiz.
Sıkça Sorulan Sorular
“EFS: Linux için Paylaşılan Dosya Depolama” dersi ücretsiz mi?
Evet — “EFS: Linux için Paylaşılan Dosya Depolama” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Cloud & IT Cert Prep kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Cloud & IT Cert Prep kursu toplamda 4 dersten oluşur.
“EFS: Linux için Paylaşılan Dosya Depolama” dersinde ne öğreneceğim?
Bir EFS dosya sistemini birden fazla EC2 bulut sunucusu ve Lambda işlevi arasında bağlayın, performans ve aktarım hızı kiplerini yapılandırın ve erişimi güvenlik gruplarıyla denetleyin. Cloud & IT Cert Prep ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Cloud & IT Cert Prep öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Cloud & IT Cert Prep, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“EFS: Linux için Paylaşılan Dosya Depolama” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Cloud & IT Cert Prep dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Cloud & IT Cert Prep dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- EBS Birim Türleri: gp3, io2, st1, sc1
- EBS Anlık Görüntüleri, Şifreleme ve RAID
- EFS: Linux için Paylaşılan Dosya Depolama
- FSx: Windows Dosya Sunucusu ve Lustre