Amazon EC2'de EFS ile birleşmiş statik bir web sitesine ev sahipliği yapabilir miyim?


0

Web sitem şu anda EC2'de EBS hacminde barındırılıyor. Ancak çoğu zaman web sitesinde dosya üretmek / güncellemek için aynı örnekte (EBS'ye çıkan) bir java programı çalıştırıyorum. CPU ve bellek çalışma zamanında% 100'e yükseliyor, bu da web sitemi ya çok yavaş yapıyor ya da işlem bitinceye kadar açmıyor. Dahası, sadece bu java programını ayda birkaç kez çalıştırmak için bütün ay boyunca büyük bir örnek için para ödüyorum.

Java programını neden yerel olarak çalıştırıp çıktı dosyalarını EBS'ye güncellemiyorsunuz? Bölgemdeki İnternet hızları çok saçma.

S3'e çıkış neden olmasın? Dosyalarımın boyutu küçük ve büyük. EC2 ile S3 arasında kabul edilemez aktarım hızı. Ben bile s4cmd denedim, ama yine de aktarım hızı kabul edilemez.

Niçin aynı EBS hacmini 2 EC2 örneğine monte etmiyorsunuz? Bence bu bir hack.

Bu yüzden EFS'ye geçmek ve iki EC2 örneğini bağlamak istiyorum. Bir web sitesi çalıştırmak için adanmış. Ve java işlemini yalnızca gerektiğinde çalıştırmak için isteğe bağlı bir örnek.

EFS hakkındaki sorularım: 1) Java programım büyük dosyaları EFS'ye EBS ile aynı hızda çıkarabilir mi? 2) Amazon, EFS giden bant genişliği için ekstra ücret talep etmiyor. Sınırlı mı?


EFS'den elde edilen verim, ne kadar veri kaydettiğinize bağlı olarak, bir kredi tabanlı taban çizgisi + veri bloğu algoritması kullanarak değişir. Size anlamlı bir cevap vermek için, lütfen GiB'de yaklaşık olarak ne kadar veri depolanacağını belirtin.
Michael - sqlbot

Sadece 2GB - 5GB depolamak istiyorum. Ancak
Avinash

Teşekkürler, ben sadece kontrol ettim ve doğru anladıysam, 10GB veri altında depolarsam EFS sadece 0.5 MBps sağlayabilir. Yalnızca 2 gb-5 gb veri depolamak istiyorum, ancak çok yüksek giden verim gerekiyor. EFS'nin benim ihtiyacım için uygun olmadığını düşünüyorum. Garip amazon, veri boyutunu trafiğe bağlıyor. Yalnızca çok az veri depolayabilirim, ancak bu giden trafiğimin de çok düşük olacağı anlamına gelmez.
Avinash

Yorumun biraz eksik. Bunu bir cevap ile kısaca açıklamaya çalışacağım.
Michael - sqlbot

Bize kullanım durumunuz hakkında daha fazla bilgi verir misiniz? Sizin durumunuzda, örnek boyutunu küçülteceğim ve toplu işleme için başka bir şey kullanacağım - spot bir örnek, AWS Toplu (yeni), Lambda, vb. Bir okuma başladığında EFS'nin çok fazla gecikme olduğunu okudum, bu nedenle küçük dosyalar için bir fikir değil - büyük dosyalar için daha iyi.
Tim

Yanıtlar:


1

Önemli not: 2018-07-12'den itibaren, EFS, provizyon verimi satın almanıza izin verir . Aşağıdaki cevap, bu özellik mevcut olmadan önce hizmetin davranışını yansıtmaktadır. Önceden, küçük EFS dosya sistemlerinin trafiğe kapılması kolaydı, çünkü performans, depolanan verilerin boyutuyla doğrusal olarak ölçeklendiriyordu ... bu nedenle yalnızca birkaç GB saklandığında, efektif sınır bunu almayan bazı kullanım durumları için çok küçüktü hesaba katmak.


Niçin aynı EBS hacmini 2 EC2 örneğine monte etmiyorsunuz? Bence bu bir hack.

Aynı EBS birimini birden çok örneğe bağlayamazsınız. Ancak, makineden EBS birimiyle bir NFS dışa aktarımı oluşturabilir ve ağa bağlayabilirsiniz. NFS kurulmuş bir teknolojidir, bir kesmek değildir. Aslında, bu, EFS'nin aslında aynı protokolü (NFS) kullanması nedeniyle sizin bakış açınıza göre EFS kullanımı ile aynı olacaktır.

Amazon, EFS giden bant genişliği için ekstra ücret talep etmiyor. Sınırlı mı?

"Giden bant genişliği", EFS ile tam olarak geçerli bir kavram değildir, çünkü trafik kesinlikle EFS ile buna erişen örnek arasındadır . Uygun bölgeye özgü son nokta kullanarak doğru şekilde monte ederseniz, EFS ile EC2 örnekleri arasındaki trafik hiçbir zaman kullanılabilirlik bölgesinden ayrılmaz.

Bir web tarayıcısı EFS dosya sisteminizde bulunan bir dosyayı indirirse , örneklerinden biri aracılığıyla indirmesi gerekir . Dolayısıyla, giden bant genişliği aslında EC2 giden, EFS giden değil.

EFS ve EC2 arasındaki kullanılabilir çıkış ("bant genişliği"), bir EFS dosya sisteminde depolanan dosyaların toplam boyutuyla ölçeklenir.

Amazon EFS, dosya sistemlerinin ne zaman patlayabileceğini belirlemek için bir kredi sistemi kullanır. Her dosya sistemi, zaman içinde dosya sisteminin boyutuna göre belirlenen bir temel oranda kredi kazanır ve verileri okuduğunda veya yazdığında kredi kullanır. Bazal oran, TiB depolama başına 50 MiB / s (eşdeğerde, depolama için GiB başına 50 KiB / s).

Birikmiş veri toplama kredileri, dosya sistemine verimi başlangıç ​​hızının üstünde tutma izni verir. Bir dosya sistemi, verimi sürekli olarak başlangıç ​​hızında sürdürebilir ve etkin olmadığında veya verimi temel hızının altına düşürdüğünde, dosya sistemi patlama kredisi biriktirir.

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

Ancak 100MiB / s veri bloğu özelliği var, ancak dosya sistemi küçük olabilir. Bir 10GiB dosya sistemi için, günde 7.2 dakika boyunca 100MiB / s'ye veya günde 28.8 dakika boyunca 25MiB / s'ye vb.

Bunun yetersiz olduğu sonucuna vardığınız şey, OS önbelleğidir. Web sunucunuzda, EFS'den okunan dosyalar bu makinedeki işletim sistemi önbelleğinde kalabilir; bu, bir dosya bir tarayıcıya sunulduktan sonra, web sunucusunun bir sonraki indirme işleminde dosyayı EFS'den okuması gerekmeyebilir, ancak bunun yerine sadece değişip değişmediğini kontrol edebilir ve ardından bellekten tarayıcıya gönderebilirsiniz. Devre dışı bırakmadıkça bu davranış otomatik olmalıdır.

Garip amazon, veri boyutunu trafiğe bağlıyor. Yalnızca çok az veri depolayabilirim, ancak bu giden trafiğimin de çok düşük olacağı anlamına gelmez.

Gerçekten garip değil, çünkü saklanan verilerin boyutu fiyatlandırmayı etkileyen tek boyuttur. EBS hacimleri genellikle benzerdir - hacim arttıkça, MiB / s ve / veya IOPS’de verim o hacimden daha fazla elde edilebilir.

Burada, yine uygulamanızın giden trafiğini, arkadaki mağazanın verimi ile karıştırmayın. İki değer sıkı bir şekilde ilişkili değildir.

Daha küçük örnekler için, örneğin özelliklerinin sınırlayıcı faktör olma olasılığı daha yüksektir. Örneğin, bir t2.small örneği yalnızca 31,25 MiB / s (250 mbps, 0,25 gigabit / sn) bant genişliğine sahiptir, bu nedenle üst performans sınırı dosya sistemi olmaz.

Uygulamanızı EFS ile deneyin ve dosya sistemi için CloudWatch ölçümlerini izleyin. Her iş yükü farklıdır ve beklendiği gibi çalışıp çalışmayacağını bilmek için tek yol budur.


Teşekkür ederim. Şimdi tamamen mantıklı. Şimdi, EFS'de bir dosya için 1000 eşzamanlı istek olsa bile, örnek EFS sunucusuna yalnızca tek bir istek yapar. Dahası, işlem çıktılarının aws sayfasındaki bu cümle dosya boyutundan ziyade ortalama G / Ç boyutuna bağlı olduğunu da anladım: "Genel işlem hacmi, genellikle genel G / Ç boyutu arttıkça artar, çünkü genel gider daha büyük miktarda veri üzerinden itfa edilir". Ancak aynı uygunluk bölgesinde (veya hatta bölgede) montaj yapmak benim için mümkün değil çünkü trafiğimin neredeyse tamamı Asya pasifik bölgesinden, EFS burada mevcut değil.
Avinash

Resmi olarak, EFS yalnızca EFS dosya sistemi ve onu bağlayan örnekler aynı bölgede olduğunda desteklenir. Bunun için mükemmel bir çözüm olan geçici bir çözüm geliştirdim , ancak ışığın hızındaki sınırlamalar, gecikmelerdeki artış ve bölgeler arasında trafik gönderirken söz konusu olan veri aktarım ücretlerinden dolayı birçok uygulama için uygun değil.
Michael - sqlbot
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.