AWS dışına elastik dosya sistemi (EFS) montajı


23

AWS dışında bir sunucum var. Bir EFS birimi monte edebilmek isterdim, ancak bunun mümkün olup olmadığından emin değilim.

Belki bir VPC oluşturursanız ve VPN üzerinden bir tünel oluşturursanız?

Bunun mümkün olup olmadığını bilen var mı?


Kesinlikle mümkün ... EFS'yi bir süredir bir TLS tüneli üzerinden AWS'nin dışından kullanıyorum ... ama bunu yapmak için uygulamanız gerektiğine inandığım bir parça "hile" var. iş. Yaptığım yolun gerçekten gerekli olduğunu (kurduğumdan bu yana bir süre geçtiğini) veya bunun mümkün olup olmadığını onaylayacağım ve onaylayabildiğimde bir cevap göndereceğim.
Michael - sqlbot

EFS, birden fazla EC2 örneği için paylaşılan bir dosya sistemi anlamına gelir. Dışarıdan S3 (bir dosya sistemine benzer, gerçekten bir nesne deposu) veya belki de bir EBS örneğine sahip küçük bir EC2 örneği kullanmayı düşünmelisiniz. Her ikisinin de EFS'den daha ucuz olması muhtemeldir - SSD'deki EBS 1/3, EFS'nin fiyatı 1/3, manyetikteki EBS, EFS'nin maliyeti 1 / 6'dır ve S3, EFS'nin maliyetinin 1 / 10'u kadardır. EFS'yi en iyi seçenek kılan şey tam olarak ne yapmaya çalışıyorsunuz?
Tim

ELASTIC dosya sistemi olarak adlandırıldığından AWS'nin dışına bağlanmanın kolay olacağını düşündüm. Ayrıca - dosyaları AWS dışına yedeklemek istersem, S3'ten yapmak imkansız olmasa zor olacak. EFS'den EC2 örneğine ekleyebilir ve yedeklemeyi gerçekleştirebilirim. Ama ikisi de VPN'ye ihtiyaç duyuyorsa, sanırım çok az bir fark yaratıyor ...
Adam,

S3'e dışardan kolayca erişilebilir, tasarım, entegrasyon / yedekleme / her şey için çok daha kolay - süper esnek. EFS, EC2 örnekleri arasında paylaşılan bir dosya sistemi olarak tasarlanmıştır, bu nedenle muhtemelen bir proxy olarak bir EC2 örneği gerektiren AWS dışında kullanılması daha zor olacaktır. Hiçbiri VPN gerektirmez. Kullanım durumunuzu varsayımlarda bulunmak ve atlamak yerine kalifiye / tecrübeli biriyle görüşmeniz gerektiğini önerin.
Tim

Yanıtlar:


40

Önemli güncellemeler:

Ekim 2018’de, AWS, EFS’yi destekleyen ağ teknolojisinin yeteneklerini genişletti;

https://aws.amazon.com/about-aws/whats-new/2018/10/amazon-efs-now-supports-aws-vpn-and-inter-region-vpc-peering/

EFS, 2016 yılı sonlarında AWS Direct Connect devreleri üzerinden bağlantı için destek ekledi.

https://aws.amazon.com/blogs/aws/amazon-efs-update-on-premises-access-via-direct-connect-vpc/


Yorumlar bazı ilginç meseleler ortaya çıkardı, çünkü ilk soruları okuduğumda, EFS'ye sizinkinden daha fazla aşina olduğumu varsaymış olabilirim.

İlk önce biraz arka plan:

Elastik Dosya Sistemindeki "Elastik", birincil olarak harici erişim esnekliği değil, depolama alanı ve verimin otomatik ölçeklendirilmesi anlamına gelir.

EFS'nin saklayabileceğiniz veri miktarı üzerinde anlamlı bir sınırı yoktur. Bir EFS birimindeki tek bir dosyanın belgelenmiş maksimum boyutu 52,673,613,135,872 bayttır (52 TiB) . Diğer sınırların çoğu benzer şekilde cömerttir.

EFS, özellikle faturalandırıldığı şekilde "elastiktir". EBS birimlerindeki dosya sistemlerinden farklı olarak, alan EFS'de önceden paylaştırılmaz ve yalnızca saatlik ortalama olarak depoladığınız şey için ödeme yaparsınız. Ücretleriniz, ne kadar depoladığınıza bağlı olarak büyür ve küçülür ("esnek" olur). Dosyaları silerken, bir saat içinde işgal ettikleri yer için ödeme yapmayı bırakırsınız. 750 saat boyunca (1 ay) 1 GB saklarsanız ve daha sonra silerseniz ya da 375 GB'ı 2 saat boyunca saklarsanız ve silerseniz, aylık faturanız aynı olacaktır ... $ 0.30. Elbette bu, EBS'den oldukça farklıdır; bu 0x00, ayın kalan saatlerinde 375 GB tutarını depolamak için size 37,50 dolar fatura verecek .

S3'ün depolama fiyatlandırma modeli, bir nesneyi sildiğiniz anda depolama faturalandırması durduğundan ve maliyet ~ 1/10 olduğunda EFS'nin maliyetidir, ancak ben ve diğerlerinin çoğu zaman bahsettiği gibi, S3 bir dosya sistemi. S3fs-fuse gibi araçlar, bir “empedans köprüsü” sağlamaya çalışır ancak gerçek bir dosya sistemi olmayan bir şeyi tedavi etmeye çalışırken doğasında güçlükler vardır (en azından bunların üzerine yazmak için tutarlılık). Bu nedenle, gerçek bir "dosya sistemi" neye ihtiyacınız varsa ve erişimin paylaşılması gereken bir uygulama için veya gereken depolama alanı ihtiyacının belirlenmesi zor ya da talebe göre ölçeklendirilmesini istiyorsanız, EFS yararlı olabilir.

Ve 8.0 EiB boş alana sahip olduğunuzda harika görünüyor.

$ df -h | egrep '^Filesystem|efs'
Filesystem                                            Size  Used Avail Use% Mounted on
us-west-2a.fs-5ca1ab1e.efs.us-west-2.amazonaws.com:/  8.0E  121G  8.0E   1% /srv/efs/fs-5ca1ab1e
us-west-2a.fs-acce55ed.efs.us-west-2.amazonaws.com:/  8.0E  7.2G  8.0E   1% /srv/efs/fs-acce55ed

Ancak, elbette, uygulamalarınıza en uygun depolama servisini kullanmak önemlidir. Seçeneklerin her birinin geçerli kullanım durumları vardır. EFS muhtemelen AWS tarafından sunulan ve EBS veya S3'ten daha dar kullanım durumlarına sahip olan depolama çözümlerinde en uzman olanıdır.


Ama VPC dışından kullanabilir misin?

Resmi cevap Hayır :

Bir dosya sistemini VPN bağlantısı, VPC peering ve AWS Direct Connect gibi VPC özel bağlantı mekanizmaları üzerine monte etmek desteklenmez.

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

EFS şu anda yalnızca EC2 Linux erişimi ile sınırlıdır. Bu da VPC içinde. Yakında daha fazla özellik eklenecekti. Başlatılan yeni özellikler için AWS ilanlarına göz kulak olabilirsiniz.

- https://forums.aws.amazon.com/thread.jspa?messageID=732749

Bununla birlikte, pratik cevap Evet'tir , bu resmi olarak desteklenen bir yapılandırma olmasa da. Çalışması için bazı özel adımlar gereklidir.

Her EFS dosya sistemine, VPC'nizde, genellikle kullanılabilirlik bölgesi başına bir tane olan elastik ağ arabirimleri (ENI) kullanılarak uç nokta IP adresleri atanır ve yalnızca performans nedenleriyle değil, örneği eşleştiren kullanılabilirlik alanına da yerleştirdiğinizden emin olmak istediğinizde Ayrıca, kullanılabilirlik bölgesi sınırları boyunca veri taşırken bant genişliği ücretleri de uygulanır.

Bu ENI'ler hakkında ilginç olan şey, bağlı oldukları alt ağlar için rota tablolarını kullanıyor görünmüyor olmalarıdır. Güvenlik grubu ayarlarından bağımsız olarak yalnızca VPC'deki örneklere yanıt verebilecek gibi görünüyorlar (her EFS dosya sisteminin erişimi denetlemek için kendi güvenlik grubuna sahip).

Harici rotalara erişilemediğinden, EFS uç noktalarına doğrudan donanım VPN'imden erişemiyorum ... bu yüzden eski dost HAProxy'ime döndüm, bu gerçekten de (@Tim'in öngördüğü gibi) bu işi yapmak için gerekli. Basit bir yapılandırmadır, çünkü EFS yalnızca 2049 numaralı TCP bağlantı noktasını kullanır.

Bir t2.nano'da HAProxy kullanıyorum (HAProxy çok verimli), şöyle bir konfigürasyonla:

listen fs-8d06f00d-us-east-1
    bind :2049
    mode tcp
    option tcplog
    timeout tunnel 300000 
    server fs-8d06f00d-us-east-1b us-east-1b.fs-8d06f00d.efs.us-east-1.amazonaws.com:2049 check inter 60000 fastinter 15000 downinter 5000
    server fs-8d06f00d-us-east-1c us-east-1c.fs-8d06f00d.efs.us-east-1.amazonaws.com:2049 check inter 60000 fastinter 15000 downinter 5000 backup
    server fs-8d06f00d-us-east-1d us-east-1d.fs-8d06f00d.efs.us-east-1.amazonaws.com:2049 check inter 60000 fastinter 15000 downinter 5000 backup

Bu sunucu us-east-1b'dedir, bu yüzden usb-usb-1b uç noktasını birincil, diğer ikisi de yedek olarak kullanır, eğer 1b'deki uç nokta bir sağlık kontrolünden geçemezse.

VPC’nizde bir VPN’niz varsa, bu proxy örneğinin IP adresini hedef olarak (EFS bitiş noktasını doğrudan kullanmak yerine) kullanarak ve birimi EFS dosya sistemini VPC dışından monte ettikten sonra bağlarsınız.

Solaris¹ sunucularının yanı sıra harici Ubuntu makinelerine de başarıyla yerleştirdim (burada EFS, hizmetlerini onlardan daha kolay geçirmeyi kolaylaştırarak hizmetten çıkarmalarını azaltmak için çok kullanışlı olduğu kanıtlandı).

Belirli durumlarda, verileri bir AWS'ye taşımak veya bir taşıma sırasında belirli verilere paralel olarak eski ve bulut sistemlerini çalıştırmak gibi, EFS galibi görünüyor.

Elbette, daha yüksek gidiş-dönüş sürelerine sahip olan eski sistemler EC2 örnekleri kadar iyi performans göstermeyeceklerdir, ancak bu beklenen bir durumdur - fizik kanunlarında istisnalar yoktur. Buna rağmen, EFS ve HAProxy ağ geçidi, harici olarak çalışmasını sağlamak için kararlı bir çözüm gibi görünüyor.

Bir VPN'niz yoksa, biri AWS'de ve biri veri merkezinizde olmak üzere bir çift HAProxy makinesi, her bir EFS'nin taşınması için TLS'ye sarılmış yük ile bireysel bir TCP bağlantısı kurarak TLS üzerinden EFS'yi tünelleyebilir İnternet üzerinden bağlantı. Teknik olarak bir VPN değil, şifreli bağlantı tüneli. Bu da oldukça iyi bir performans sergiliyor.


OSolaris 10 varsayılan olarak biraz şaşırtıcıdır (varsayılan olarak) - başlangıçta kök özel ayrıcalıklara sahip değildi - kök tarafından oluşturulan EFS birimindeki dosyalar kök aittir ancak chownbaşka bir kullanıcıya alamaz . Solaris makinesi ( Operation not permitted), her şey Ubuntu istemcilerinden beklendiği gibi çalışsa da. Çözüm, bu durumda, kullanarak Solaris makinesindeki NFS Kimlik eşleme arka planını yenmektir svcadm disable svc:/network/nfs/mapid:default. Bu hizmeti durdurmak, her şeyin beklendiği gibi çalışmasını sağlar. Ek olarak, /usr/sbin/quotaher oturum açışının başlatılmasının içeride devre dışı bırakılması gerekir /etc/profile. Daha iyi veya daha doğru çözümler olabilir, ancak Solaris, bu yüzden araştırılacak kadar meraklı değilim.


2
Mükemmel bir cevap, ama yanlış soruyu sorduğuna inanıyorum. Çatalla bir ağacı kesebilirim ama iş için daha iyi araçlar var.
Tim

Bazen, bu cevaba dahil ettiğim 3 eğlenceli küçük paskalya yumurtasından herhangi birinin tespit edip etmediğini merak ediyorum.
Michael - sqlbot

4
5ca1ab1e (ölçeklenebilir) ve acce55ed (erişilebilir) ve 8d06f00d (dogfood)?
runamok

2
"Köpek maması yedik" ... ama yeterince yakın, @ runamok :)
Michael - sqlbot

3
Birisinin çatalla bir ağaç
kesmesini

0

Amazon, 20 Aralık 2016 tarihinden itibaren, kurum içi sunucularda bir EFS dosya sistemini bağlamak için kullanılabilecek AWS Direct Connect'i duyurdu. Bu nedenle, temel olarak, AWS EFS'yi VPC dışında kullanmanıza izin veren yerel bir özellik vardır.

Ön koşul olarak, AWS Direct Connect bağlantısını etkinleştirmeniz ve kurmanız ve ardından EFS'yi EC2 örnekleri içine monte ederken kullanmanız gereken nfs-utils komutunu kullanmanız gerekir.

Daha fazla bilgiyi aşağıdaki URL adresinde bulabilirsiniz . Bunu daha yeni öğrendim, çünkü bu geleceği de araştırdım, başkalarının da VPC dışındaki EFS bağlantısı için yerel bir çözüm olduğunu fark etmeleri için.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.