AWS Elastic File System

Merhaba,

AWS’nin yeni servislerinden biri olan Amazon Elastic File System(aws efs) aws bulutunda çalıştırılan instance’lar için yeni duyurulmuş(preview aşamasında) depolama servisidir. Çok sayıda EC2 instance’ı için düşük gecikme süreleri ve NFSv4 protokolü ile bir birinden farklı iş yükleri için yüksek sayıda eş zamanlı bağlantıyı destekleyecek şekilde dizayn edilmiştir. AWS bulutunda bu servisin başlıca kullanım alanı; içerik depolama,geliştirme ortamları,web sunucular,big data uygulamaları olarak görünmektedir.

SSD tabanlı EFS servisi, AWS web tabanlı yönetim konsolundan ve/veya AWS cli’ından yönetilebilmektedir. Peta-byte seviyelerine kadar büyüyebilmektedir. Zamanla değişebilme ihtimali olmakla birlikte, aylık olarak “kullandığın kadar öde” esasına göre $0.30 per gigabyte per month şeklinde ücretlendirilmektedir.

API ile kullanım konusunda güvenlik gereksinimleri, Identity Access Management(IAM) web servisi kullanılarak sağlanabilmektedir. Güvenlik katmanındaki isterler için benzer şekilde security group’lar da kullanılabilmektedir.NFS için TCP 2049 portu kullanılmaktadır.

Hands-on demo’ya geçeyim. EFS servisini aşağıdaki şekilde yapılandırıp kullanabilirsiniz. En iyi yapılandırma pratikleri için kaynaklar kısmında paylaştığım adresi inceleyebilirsiniz.

clip_image001

Create file system ile sihirbazı başlatınız.

clip_image003

EFS mount point detaylarını yapılandıracağınız alana geliyorsunuz.

clip_image005

Target’ları konumlandırmak istediğiniz availability zone’ları , subnet’leri ve security group’ları belirleyerek “next” ile devam ediyorsunuz. Sonraki adımda sistematiğinize göre tag ekleme işini de yapabilirsiniz. Ardından “mount target” hazırlanmaya başlanacak.

clip_image007

Detayları üstte görülen file system’in özet bilgileri aşağıdaki gibidir.

clip_image009

Kısa sürede kullanılabilir hale gelmektedir. EFS servisinde oluşturduğum file system hazırlanmış oldu. Mount point’lerin dns isimleri de aşağıdaki gibidir.

clip_image011

Şimdioluşturduğumuz file system’i, NFSv4 client’ın çalıştığı EC2 instance’ına mount ederek kullanmaya başlayalım.Mevcut durum aşağıdaki gibidir.

clip_image012

NFS bileşenini yükledim.

clip_image014

Ubuntu üzerinde çalışıyorsanız apt-get komutunu kullanabilirsiniz. MKDIR komutu ile bir klasör oluşturdum.Bu klasörü efs’e mount edeceğim.

clip_image015

Şu anda Linux sunucuma ec2-user ismindeki kullanım ile logon olmuş durumdayim. Farklı bir kullanıcı oluşturup onun için de file system’i kullanıma açabilirsiniz. Mevcut kullanım ile devam edeceğim. File system’ı daha önce oluşturduğum baris-efs-eval klasörüne mount ediyorum.

clip_image017

sudo mount -t nfs4 $(curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone).fs-f908e450.efs.us-west-2.amazonaws.com:/ baris-efs-eval komutu ile file system’i, aws ec2 instance’ına mount ettim. Komuttaki parametreler, aws file system id’sine göre değişecektir. İzinlere(permission) bakıldığında durum aşağıdaki gibidir.

clip_image019

Mevcut durumda yetkili kullanıcı root kullanıcısıdır ve root grubudur. Benim kullanıcım ise ec2-user kullanıcısıdır. Bu durumda file system’i kullanırken “erişim engellendi” hataları ile karşılaşmamam için izinleri modifiye etmem gerekiyorJ

clip_image021

İzinleri chown ile değiştirdim. Yeni izinler üstteki gibidir. Artık ec2-user ile file system’i kullanabilirim.

sudo chown ec2-user:ec2-user /home/ec2-user/baris-efs-eval şeklinde ki komutu yapınıza uygun şekilde değiştirip kullanabilirsiniz(bilindik ownership’lik değişimi).

WinSCP ile klasöre bir kaç dosya kopyaladım.Dolayısıyla file system’e kopyalamış oldum.

clip_image023

Bu aşamada bırakabilirsiniz fakat sunucunuz yeniden başladıktan sonra file system otomatik olarak mount edilmeyecektir! Sunucumu yeniden başlattım, durum aşağıdaki gibi. Tabii ki reel ortamda bu durum servis kesintisi anlamına gelir.

clip_image024

Tekrar mount ettim ve aşağıda görüldüğü üzere daha önce winscp ile aktardığım dosyalara erişebilir hale geldim.

clip_image026

EC2 instance’ının yeniden başlatılması durumunda dosya sistemin otomatik olarak mount edilmesini sağlayabilirsiniz. Bunun için /etc/fstab dosyasını kullanabilirsiniz. FSTAB(file system table) dosyasını aşağıdaki gibi modifiye ettim.

clip_image028

Test için EC2 instance’ını yeniden başlattım, olması gerektiği gibi elastic file system’im sanal sunucuya otomatik olarak mount oldu. Böylelikle AWS’nin yeni depolama servisi olan Elastic File System’i incelemiş olduk. Preview aşamasında olduğu için AWS’nin bazı region’larında kullanılabilir durumdadır. Preview’a kayıt olup testlerinizi yapabilirsiniz.

Herkese sorunsuz ve neşeli günler dilerim.

Kaynaklar:

http://docs.aws.amazon.com/efs/latest/ug/whatisefs.html

http://aws.amazon.com/efs/pricing/

2 Replies to “AWS Elastic File System”

  1. Aws auto scaling yapilirken ozellikle web hizmetlerinde yapilacak degisiklikler icin iyi olacagini dusunuyorum. instance uzerinde servisleri calistirip, efs uzerinde dosyalari tutmak hos olabilir.

    1. Değerli yorumunuz için teşekkür ederim.
      AWS, bulut servisleri konusunda oldukça gelişmiş olmasına rağmen getirdiği yenilikler oldukça iyi.
      Yorumunuza katılıyorum.
      Başarılar dilerim.

Leave a Reply

Your email address will not be published. Required fields are marked *