AWS, Bant Genişliği ve içerik sunumu


31

Sorum Sanal Makineler ve içeriklerini internet bağlantısı olan sunucular üzerinden sunmakla ilgili.

Bir Ec2 windows örneğim var ve ağ bağlantısı 100mbps gibi görünüyor

Bu EC2 örneğinden içerik sunacak olsaydım, bu benim potansiyel darboğazım mı?

S3 ne kadar farklı, sanırım onların s3 ile gerçek bir potansiyel tıkanıklık olmadığına inanıyorum?

Not: s3 ve CDN'lerinin statik içerik için daha iyi olacağını biliyorum, ancak şimdilik bu durumu araştırmam gerekiyor. HTML sayfalarımızın AJAX üzerinden bir sunucu tarafı sayfasına erişmesi gerekir ve içeriğimiz ve sunucumuzun tam olarak aynı etki alanında olması gereken şu anda bunun için bombaya dayanıklı bir çalışma olmadığı için S3'ü kullanmaya gerek kalmaz.

Bant genişliği gerekli: Emin değilim, herhangi bir zamanda 100'den fazla kullanıcı indirebilir, muhtemelen artık. Videolar her biri 5 MB'ye kadar olabilir, ancak 20'ye kadar görüntüler.


"JS aracılığıyla bir proxy’ye erişmek için HTML’mize ihtiyacımız var" ... Bu ne anlama geliyor?
Eric Hammond

Zirvede ne kadar bant genişliği kullanmanız gerekiyor?
Eric Hammond

@EricHammond Sorumumu biraz daha fazla bilgi ile güncelledim
Keeno

Bu noktada, belirli bir potansiyel darboğaza aşırı odaklanmak için özel bir nedeniniz varmış gibi gelmiyor. Hizmetinizi ölçeklenebilirlik için en iyi uygulamaları kullanarak oluşturun ve ardından ortaya çıkan performans sorunlarını araştırın ve çözün. Bir CDN aracılığıyla videolar servis yapın.
Eric Hammond

1
Keeno: JS'de aynı köken politikasına aşinayım, ancak neden video içeriğini farklı bir etki alanında (CDN) sunmanızı engellediğini hala anlamıyorum. Bu yaygın bir uygulamadır.
Eric Hammond

Yanıtlar:


60

Windows örnekleri için konuşamam, ancak temel özelliklerinin Linux örnekleriyle oldukça benzer olduğunu farzedeceğim.

Bant genişliği kullanımına ilişkin tahmininiz 100 eşzamanlı video indirme (Dosyayı indirmek mi yoksa video akışı mı demek istediğinizden emin değilim - ikincisini varsayacağım). 512kbps akış hızı alıyorsak, yaklaşık 51Mbit / s veya 6.5MB / s gerekir.

EC2 örnekleri G / Ç performanslarında farklıdır (bant genişliği de dahil). 3 seviye G / Ç performansı vardır: düşük, orta ve yüksek. Yine de, disk G / Ç'nin (yani, EBS birimlerinden) de bant genişliğine bağlı olduğunu unutmayın. EC2 ağındaki bant genişliğini yalnızca gerçekten düşünebilirsiniz (İnternet üzerinden tamamen değişken olacağı için).

'Düşük', 'orta' ve 'yüksek' miktarlarını ölçmek için bazı tipik rakamlar (farklı kaynaklar teorik değerler için farklı rakamlar koyar, bu nedenle tam olarak doğru olmayabilirler).

Yüksek: Teorik: 1 Gbps = 125MB / s; Gerçekçi ( kaynak ): 750 Mbps = 95 MB / sn

Orta: Teorik: 250 Mbps; Gerçekçi ( kaynak, p57 ): 80 Mbps = 10 MB / sn

Düşük: Teorik: 100 Mbps; Gerçekçi (kendi testlerimden): 10-15Mbps = 1-2MB / s

(Aslında 'çok yüksek' bir seviye de var (teorik olarak 10 Gbps) ancak bu yalnızca küme hesaplama örnekleri için geçerlidir).

Bir başka söz konusu da varyasyon derecesidir. Daha küçük durumlarda, fiziksel bileşenler daha fazla sanal makine arasında paylaşıldığından performansta daha fazla değişkenlik vardır. Ne olursa olsun, performansınızda yaklaşık% +/- 20 değişiklik olabilir (kaynaklar: 1 , 2 , 3 ). Sizin durumunuzda (üstteki varsayımlara / hesaplamalara göre), 13MB / sn'lik bir maksimum bant genişliğine ihtiyacınız olabilir (disk G / Ç da ağ sınırlı olduğu için çift 6.5MBps). Düşük bant genişliği içeriğini aktarıyorsanız, 'orta' I / O performansına sahip bir örneği kullanabilmelisiniz ( örnek türleri sayfasına bakın)), hesaplamalarınız daha yüksek bir bant genişliği gereksinimi ile sonuçlanırsa, 'yüksek' G / Ç performansı olan bir örneğe ihtiyacınız olacaktır. Basitçe veri akışı CPU veya hafızaya bağlı olmamalıdır, fakat aynı anda 100 bağlantıyı sürdürmek muhtemelen en azından orta büyüklükte bir örnek gerektirecektir - ve eğer bant genişliği yukarıdakilere bağlı olarak bir endişe ise, büyük bir örnek daha güvenli bir bahis olacaktır).

(Hesaplanan) gereksinimlerinizi karşılayıp karşılamadıklarını görmek için başlattığınız sunucuları karşılaştırmanızı öneririm. İki örneği başlatın (aynı türde) ve iperförneklerin özel IP adreslerini kullanarak her birini çalıştırın - varsayılan ayarlarla çalıştırıyorsanız, güvenlik grubunuzda 5001 numaralı bağlantı noktasını açmanız gerekir). Ek olarak, EC2 ağı dışındaki çoğu test 80-130Mbps (büyük örnekler) arasında sonuç göstermektedir - bu rakamlar mutlaka anlamlı olmayabilir.

Kurulumunuz izin veriyorsa, bir CDN ihtiyaçlarınız için daha uygun olacaktır. S3 , bu makaleye göre bant genişliği (en azından tek bir örnekte) için 50 MB / s civarında bir limite sahip gibi görünüyor , ancak bu gereksinim duyduğunuzdan daha yüksektir (S3, akışı desteklemiyor). Cloudfront (CDN olarak tasarlandığı için) görevinize daha uygun olacaktır ve varsayılan olarak 1000Mbps = 125MB / s'yi destekler ( kaynak ) istek üzerine daha yüksek bant genişliğine sahip ve ayrıca içerik akışı yapabilir)


"Teorik" Mbps değerlerinizi nereden alıyorsunuz? Bu numaralar için resmi veya gayri resmi bir belge kaynağı bulamıyorum.
dtheodor

4
Bu rakamlar şu ana kadar muhtemelen oldukça farklı (ve şu anda onlar için kaynakları takip edemiyorum). 4 yılda çok şey değişti. EC2'nin küme grupları içinde 10 Gb / sn ara bağlantıya sahip olduğu bilinmektedir. AWS eskiden (2007'de) 250Mbps atanmış yerel bant genişliği için bir rakam veriyor. Şu anda, ağ bant genişliği, örnekler tipine (ve muhtemelen EBS optimizasyonu gibi faktörlere bağlı olarak) atanan öncelik ile örnekler arasında paylaşılıyor. En azından kısmen, örnek boyutu kaynakları paylaştığınız diğer örneklerle belirler. Ağ kullanılmazsa, örneğiniz daha büyük bir pay alır.
cyberx86

Üzgünüz, bu konuyla ilgili değil, ama @ cyberx86 ile nasıl iletişime geçeceğimi bilmiyorum ama sadece web sitenizin ssl sertifikasyonunun bir hafta önce biraz önce dolacağını size bildirmek istiyorum. Burada yorum yaptığın için özür dilerim ama senin için bir e-posta adresi bulamıyorum.
Kevin Lyda,

1
@KevinLyda Teşekkürler. Sertifikanın süresinin dolduğunu bilmeme rağmen, bu site bir süredir güncellenmedi - bu LetsEncrypt ile otomatik yenilemelere geçmek için iyi bir fırsattı.
cyberx86

Evet, kendim kullanıyordum. Kod yazması (özellikle resmi olmayan müşterilerle) ve arka planda çalışmaya başlaması çok kolaydır.
Kevin Lyda

0

Sayılar zaman içinde değişiyor gibi görünmekte ve farklı örnek türlerinin sayısı çoğalmaktadır. Ancak çok sayıda insan ölçüt gönderir. Google tarafından bazı şanslar oldu [instance category] ec2 network benchmark.

Örneğin, bir m4.xlargeörneğin bant genişliğini bilmek istedim , o yüzden aradım ec2 m4 network benchmark. Bu test sonucunu Washington Post mühendislik blogunda buldum:

Type       Cost    Bandwidth Bandwidth Cost (1Gb/s) Bandwidth Cost EBS optimized
...
m4.xlarge  $0.252  791Mb/s   $0.320                 $0.320
...
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.