Pertanyaan saya adalah tentang Mesin Virtual dan mengirimkan konten mereka melalui koneksi server ke internet.
Saya memiliki instance windows Ec2, dan koneksi jaringannya tampaknya 100mbps
Jika saya akan mengirimkan konten dari instance EC2 itu, apakah ITU potensi kemacetan saya?
Bagaimana s3 berbeda, saya kira mereka bukan hambatan potensial keluar nyata dengan s3?
Catatan: Saya tahu s3 dan CDN mereka akan lebih baik untuk konten statis, namun saya perlu menjelajahi situasi ini untuk saat ini. Halaman HTML kami perlu mengakses halaman sisi server melalui AJAX, dan karena tidak ada solusi anti-bom untuk saat ini, konten kami dan server kami harus berada pada domain yang persis sama, sehingga aturannya menggunakan S3.
Bandwidth diperlukan: Saya tidak yakin, kami dapat memiliki hingga 100 pengguna mengunduh video kapan saja, mungkin tidak lebih. Video bisa masing-masing hingga 5mb, tetapi mereka akan melihat hingga 20.
sumber
Jawaban:
Saya tidak dapat berbicara untuk instance Windows, tetapi saya akan menganggap bahwa karakteristik dasar mereka cukup mirip dengan instance Linux.
Perkiraan Anda untuk penggunaan bandwidth adalah 100 unduhan video secara bersamaan (Saya tidak yakin apakah maksud Anda mengunduh file atau streaming video - saya akan menganggap yang terakhir). Jika kami mengambil kecepatan aliran 512kbps, Anda membutuhkan sekitar 51Mbit / s atau 6,5MB / s.
Mesin virtual EC2 berbeda dalam kinerja I / O mereka (yang termasuk bandwidth). Ada 3 level kinerja I / O: rendah, sedang, dan tinggi. Perlu diingat, bahwa disk I / O (yaitu dari volume EBS) juga tergantung bandwidth. Anda hanya dapat benar-benar mempertimbangkan bandwidth dalam jaringan EC2 (karena akan sepenuhnya bervariasi melalui Internet).
Beberapa angka tipikal untuk menghitung 'rendah', 'sedang', dan 'tinggi' (sumber yang berbeda mengutip angka yang berbeda untuk nilai-nilai teoretis, sehingga mereka mungkin tidak sepenuhnya akurat).
Tinggi: Teoretis: 1Gbps = 125MB / s; Realistis ( sumber ): 750Mbps = 95MB / s
Sedang: Teoritis: 250Mbps; Realistis ( sumber, p57 ): 80Mbps = 10MB / s
Rendah: Teoretis: 100Mbps; Realistis (dari tes saya sendiri): 10-15Mbps = 1-2MB / s
(Sebenarnya ada level yang 'sangat tinggi' juga (10Gbps teoretis) tetapi itu hanya berlaku untuk cluster compute instances only).
Poin selanjutnya adalah tingkat variasi. Pada contoh yang lebih kecil, ada lebih banyak variabilitas dalam kinerja karena komponen fisik dibagi di antara lebih banyak mesin virtual. Apapun, Anda dapat mengharapkan sekitar +/- 20% variasi dalam kinerja Anda (sumber: 1 , 2 , 3 ). Dalam kasus Anda (sesuai dengan asumsi / perhitungan di atas), Anda mungkin memerlukan bandwidth puncak 13MB / s (double 6.5MBps, karena disk I / O juga terbatas jaringan). Jika Anda mentransfer konten bandwidth yang lebih rendah, Anda harus dapat menggunakan instance dengan kinerja I / O 'moderat' (lihat halaman jenis instance), jika perhitungan Anda menghasilkan kebutuhan bandwidth yang lebih tinggi, Anda akan memerlukan instance dengan kinerja I / O 'tinggi'. Cukup streaming data tidak boleh terikat CPU atau memori, tetapi mempertahankan 100 koneksi simultan mungkin akan memerlukan setidaknya contoh berukuran sedang - dan jika bandwidth menjadi perhatian, berdasarkan hal di atas, contoh besar akan menjadi taruhan yang lebih aman).
Saya akan merekomendasikan pembandingan server yang Anda luncurkan untuk melihat apakah mereka memenuhi kebutuhan Anda (dihitung). Luncurkan dua instance (dari jenis yang sama) dan jalankan
iperf
di setiap menggunakan alamat IP pribadi instances - Anda perlu membuka port 5001 di grup keamanan Anda jika Anda menjalankannya dengan pengaturan default). Selain itu, sebagian besar tes di luar jaringan EC2 menunjukkan hasil antara 80-130Mbps (contoh besar) - meskipun angka tersebut tidak selalu berarti.CDN akan lebih sesuai dengan kebutuhan Anda, jika pengaturan Anda mengizinkannya. S3 tampaknya memiliki batas sekitar 50MB / s untuk bandwidth (setidaknya dari satu instance) sesuai artikel ini , tetapi itu lebih tinggi dari yang seharusnya Anda butuhkan (S3 tidak mendukung streaming). Cloudfront akan lebih cocok untuk tugas Anda (karena dirancang sebagai CDN) dan mendukung 1000Mbps = 125MB / s secara default ( sumber ) dengan bandwidth yang lebih tinggi tersedia berdasarkan permintaan dan dapat mengalirkan konten juga)
sumber
Angka-angka tampaknya berubah dari waktu ke waktu dan karena jumlah jenis instance yang berbeda berkembang biak. Tetapi sejumlah orang memposting tolok ukur. Saya sudah beruntung dengan googling
[instance category] ec2 network benchmark
.Sebagai contoh, saya ingin mengetahui bandwidth dari sebuah
m4.xlarge
instance, jadi saya mencariec2 m4 network benchmark
. Saya menemukan hasil tes ini dari blog rekayasa Washington Post:sumber