AWS, пропускна здатність та доставка вмісту


31

Моє запитання стосується віртуальних машин та доставки їх вмісту через з'єднання серверів до Інтернету.

У мене є екземпляр Windows Ec2, і його мережеве з'єднання здається 100 Мбіт / с

Якщо я мав би доставляти вміст із цього екземпляра EC2, чи це моє потенційне вузьке місце?

Як відрізняється s3, я гадаю, що їх немає реального потенційного вузького вузького місця із s3?

Примітка: Я знаю, що s3 та їх CDN краще для статичного вмісту, проте мені зараз потрібно вивчити цю ситуацію. Нашим HTML-сторінкам потрібно отримати доступ до бічної сторінки сервера через AJAX, і тому, що для цього немає жодної захищеної від роботи бойовика, наш вміст і наш сервер повинні знаходитися на точно одному домені, тому він виключає використання S3.

Необхідна пропускна здатність: я не впевнений, що у нас у будь-який час може завантажуватися до 100 користувачів, можливо, не більше. Відео може бути до 5 Мб, але вони переглядають до 20.


"нам потрібен наш HTML, щоб отримати доступ до проксі через JS" ... Що це означає?
Ерік Хаммонд

Яку пропускну здатність, як ви очікуєте, потрібно буде використовувати на піку?
Ерік Хаммонд

@EricHammond Я оновив своє запитання ще трохи інформації
Keeno

Мені це не звучить так, як у вас є якісь конкретні причини бути гіперцентризованими на будь-яких конкретних можливих вузьких місцях. Створіть свою послугу, використовуючи загальні найкращі практики щодо масштабування, а потім досліджуйте та вирішуйте проблеми з ефективністю у міру їх виникнення. Подавайте відео через CDN.
Ерік Хаммонд

1
Кіно: Я знайомий з тією ж політикою щодо джерела в JS, але все ще не розумію, чому це не дозволить вам подавати відеовміст з іншим доменом (CDN). Це звичайна практика.
Ерік Хаммонд

Відповіді:


60

Я не можу говорити про екземпляри Windows, але припускаю, що їх основні характеристики досить схожі на екземпляри Linux.

Ваша оцінка використання пропускної здатності становить 100 одночасних завантажень відео (я не впевнений, якщо ви маєте на увазі завантаження файлу чи потокове відео - я припускаю останнє). Якщо ми візьмемо швидкість потоку 512 кбіт / с, вам потрібно близько 51 Мбіт / с або 6,5 МБ / с.

Примірники EC2 відрізняються своєю продуктивністю вводу / виводу (що включає пропускну здатність). Є 3 рівні продуктивності вводу / виводу: низький, помірний та високий. Майте на увазі, що введення / виведення диска (тобто від обсягів EBS) також залежить від пропускної здатності. Ви можете по-справжньому враховувати пропускну здатність в мережі EC2 (оскільки вона буде повністю мінлива в Інтернеті).

Деякі типові числа для кількісної оцінки "низький", "середній" та "високий" (різні джерела цитують різні числа для теоретичних значень, тому вони можуть бути не зовсім точними).

Високий: теоретичний: 1Gbps = 125MB / s; Реалістичний ( джерело ): 750Mbps = 95MB / s

Помірний: Теоретичний: 250 Мбіт / с; Реалістичний ( джерело, p57 ): 80Mbps = 10MB / s

Низький: теоретичний: 100 Мбіт / с; Реалістичний (з моїх власних тестів): 10-15Mbps = 1-2MB / s

(Насправді існує також "дуже високий" рівень (теоретичний 10 Гбіт / с), але це стосується лише випадків обчислення кластерів).

Наступний момент згадки - ступінь варіації. У менших випадках більша мінливість продуктивності, оскільки фізичні компоненти поділяються між більш віртуальними машинами. Незалежно від того, ви можете очікувати приблизно +/- 20% різниці у вашій ефективності (джерела: 1 , 2 , 3 ). У вашому випадку (відповідно до припущень / розрахунків у верхній частині), вам може знадобитися пікова пропускна здатність 13 Мб / с (подвійний 6,5 Мбіт / с, оскільки введення / виведення диска також обмежене мережею). Якщо ви передаєте вміст із меншою пропускною здатністю, ви повинні мати можливість використовувати екземпляр із "помірною" продуктивністю вводу / виводу (див. Сторінку типів примірників), якщо ваші обчислення призводять до більш високої пропускної здатності, вам знадобиться екземпляр з "високою" продуктивністю вводу / виводу. Просте потокове передавання даних не повинно бути пов'язане з процесором або пам'яттю, але підтримка 100 одночасних з'єднань, ймовірно, потребуватиме принаймні середній розмір екземпляра - і якщо пропускна здатність викликає занепокоєння, виходячи з вищезазначеного, великий екземпляр був би більш безпечним.

Я рекомендую порівняльний аналіз серверів, які ви запускаєте, щоб побачити, чи відповідають вони вашим (розрахованим) потребам. Запустіть два екземпляри (одного типу) і запустіть iperfкожен із них, використовуючи приватні IP-адреси екземплярів - вам потрібно буде відкрити порт 5001 у групі безпеки, якщо ви запускаєте його з налаштуваннями за замовчуванням). Крім того, більшість тестів за межами мережі EC2 показують результати між 80-130 Мбіт / с (великі екземпляри) - хоча такі цифри не обов'язково мають значення.

CDN краще підходить вашим потребам, якщо це дозволяє установка. Здається, S3 має обмеження близько 50 Мб / с для пропускної здатності (принаймні від одного примірника) відповідно до цієї статті , але це вище, ніж потрібно (S3 не підтримує потокове передавання). Cloudfront краще підходить для вашого завдання (оскільки він розроблений як CDN) і підтримує 1000Mbps = 125MB / s за замовчуванням ( джерело ) з більшою пропускною здатністю, доступною за запитом, а також може передавати вміст)


Звідки ви берете свої "теоретичні" значення Мбіт / с? Я не можу знайти жодного офіційного чи неофіційного джерела документації на ці номери.
dtheodor

4
Ці цифри, мабуть, зовсім інші (на даний момент я не можу знайти їх джерела). Багато що змінилося за 4 роки. Відомо, що EC2 має 10Gbps взаємозв'язків у межах кластерних груп. AWS (у 2007 р.) Цитував цифру в 250 Мбіт / с, виділену локальну пропускну здатність. В даний час пропускна здатність мережі поділяється між примірниками, при цьому пріоритет розподіляється на основі типу екземпляра (і, можливо, факторів, таких як оптимізація EBS). Принаймні частково, розмір примірника визначає кількість інших примірників, з якими ви ділитесь ресурсами. Якщо мережа не використовується, ваш примірник отримує більшу частку.
cyberx86

Вибачте, це поза темою, але я не знаю, як інакше зв’язатися з @ cyberx86, але просто повідомляю, що ssl cert для вашого веб-сайту закінчився трохи більше тижня тому. Вибачте за коментарі, але не можете знайти адресу електронної пошти для вас.
Кевін Ліда

1
@KevinLyda Дякую Хоча я знав, що термін дії сертифікату закінчився, цей сайт не оновлювався деякий час - тому це була хороша можливість перейти до автоматичного оновлення за допомогою LetsEncrypt.
cyberx86

Так, я використовував це сам. Дуже простий у сценаріях (особливо з неофіційними клієнтами) та працювати у фоновому режимі.
Кевін Ліда

0

Цифри, здається, змінюються з часом і по мірі збільшення кількості різних типів екземплярів. Але ряд людей розміщують орієнтири. Мені пощастило, гуглившись [instance category] ec2 network benchmark.

Наприклад, я хотів знати пропускну здатність m4.xlargeпримірника, тому шукав ec2 m4 network benchmark. Цей тест я знайшов у інженерному блозі Washington Post:

Type       Cost    Bandwidth Bandwidth Cost (1Gb/s) Bandwidth Cost EBS optimized
...
m4.xlarge  $0.252  791Mb/s   $0.320                 $0.320
...
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.