Мой вопрос касается виртуальных машин и доставки их контента через серверы, подключенные к интернету.
У меня есть экземпляр Windows Ec2, и его сетевое подключение кажется 100 Мбит / с
Если бы я должен был доставлять контент из этого экземпляра EC2, это мое потенциальное узкое место?
Чем отличается s3, я думаю, что у них нет реального потенциального узкого места с s3?
Примечание: я знаю, что s3 и их CDN будут лучше для статического контента, однако мне нужно изучить эту ситуацию сейчас. Наши HTML-страницы должны получать доступ к странице на стороне сервера через AJAX, и потому что в настоящее время нет никакой защиты от бомб для этого, наш контент и наш сервер должны находиться в одном и том же домене, поэтому он исключает использование S3.
Необходимая пропускная способность: я не уверен, что у нас может быть до 100 пользователей, загружающих видео в любое время, вероятно, не больше. Видео может быть до 5 МБ каждый, но они будут просматривать до 20.
источник
Ответы:
Я не могу говорить об экземплярах Windows, но предположу, что их базовые характеристики довольно похожи на экземпляры Linux.
Ваша оценка использования полосы пропускания составляет 100 одновременных загрузок видео (я не уверен, что вы имеете в виду загрузку файла или потоковую передачу видео - я приму последнее). Если мы берем скорость потока 512 кбит / с, вам потребуется около 51 Мбит / с или 6,5 Мбит / с.
Экземпляры EC2 отличаются по производительности ввода / вывода (включая пропускную способность). Существует три уровня производительности ввода / вывода: низкий, средний и высокий. Имейте в виду, однако, что дисковый ввод / вывод (то есть из томов EBS) также зависит от пропускной способности. Вы можете реально учитывать пропускную способность только в сети EC2 (так как она будет полностью изменяться через Интернет).
Некоторые типичные числа для количественного определения «низкого», «среднего» и «высокого» (разные источники указывают разные цифры для теоретических значений, поэтому они могут быть не совсем точными).
Высокий: теоретический: 1 Гбит / с = 125 МБ / с; Реалистичная ( источник ): 750 Мбит / с = 95 МБ / с
Умеренный: Теоретический: 250 Мбит / с; Реалистичный ( источник, p57 ): 80 Мбит / с = 10 МБ / с
Низкий: теоретический: 100 Мбит / с; Реалистичные (из моих собственных тестов): 10-15 Мбит / с = 1-2 МБ / с
(На самом деле существует также «очень высокий» уровень (теоретический 10 Гбит / с), но он применяется только к экземплярам кластерных вычислений).
Еще одним упоминанием является степень вариации. В более мелких случаях производительность становится более изменчивой, поскольку физические компоненты распределяются между большим количеством виртуальных машин. Независимо от этого, вы можете ожидать около +/- 20% изменений в вашей производительности (источники: 1 , 2 , 3 ). В вашем случае (согласно предположениям / расчетам в верхней части) вам может потребоваться максимальная пропускная способность 13 МБ / с (двойная 6,5 МБ / с, поскольку дисковый ввод-вывод также ограничен сетью). Если вы передаете контент с меньшей пропускной способностью, вы должны иметь возможность использовать экземпляр с «умеренной» производительностью ввода-вывода (см. Страницу типов экземпляров).), если ваши вычисления приведут к более высокой пропускной способности, вам потребуется экземпляр с «высокой» производительностью ввода-вывода. Простая потоковая передача данных не должна быть связана с процессором или памятью, но для поддержки 100 одновременных подключений, вероятно, потребуется по крайней мере экземпляр среднего размера - и если пропускная способность является проблемой, исходя из вышеизложенного, большой экземпляр будет более безопасной ставкой).
Я бы порекомендовал сравнить запущенные вами серверы, чтобы увидеть, соответствуют ли они вашим (расчетным) потребностям. Запустите два экземпляра (одного и того же типа) и запустите
iperf
на каждом, используя частные IP-адреса экземпляров - вам потребуется открыть порт 5001 в вашей группе безопасности, если вы запустите его с настройками по умолчанию). Кроме того, большинство тестов за пределами сети EC2 показывают результаты между 80-130 Мбит / с (большие случаи) - хотя такие цифры не обязательно значимы.CDN будет лучше соответствовать вашим потребностям, если ваша установка позволяет это. S3, по-видимому, имеет ограничение около 50 МБ / с для пропускной способности (по крайней мере, из одного экземпляра) в соответствии с этой статьей , но это больше, чем вам нужно (S3 не поддерживает потоковую передачу). Cloudfront будет лучше подходить для вашей задачи (так как он спроектирован как CDN) и поддерживает 1000 Мбит / с = 125 МБ / с по умолчанию ( источник ) с более высокой пропускной способностью, доступной по запросу, и может также выполнять потоковую передачу контента)
источник
Кажется, что числа меняются со временем и по мере увеличения количества различных типов экземпляров. Но ряд людей публикует тесты. Мне повезло, погуглив
[instance category] ec2 network benchmark
.Например, я хотел знать пропускную способность
m4.xlarge
экземпляра, поэтому я искалec2 m4 network benchmark
. Я нашел этот результат теста в инженерном блоге Washington Post:источник