Мой сайт в настоящее время размещен на EC2 с объемом EBS. Но очень часто я запускаю Java-программу в том же экземпляре (которая выводит данные в EBS) для генерации / обновления файлов для веб-сайта. Процессор и память достигают 100% во время выполнения, что делает мой сайт либо очень медленным, либо вообще не открывается, пока процесс не завершится. Более того, я плачу за большой экземпляр за целый месяц, просто чтобы запускать эту Java-программу несколько раз в месяц.

Почему бы не запустить Java-программу в локальной системе и обновить выходные файлы на EBS? Скорость интернета в моем районе просто смешная.

Почему не вывод на S3? Мои файлы имеют небольшой размер и большой объем. Недопустимая скорость передачи между EC2 к S3. Я даже пробовал s4cmd, но скорость передачи все равно недопустима.

Почему бы не смонтировать один и тот же том EBS на 2 экземпляра EC2? Я думаю, что это взломать.

Поэтому я хочу переключиться на EFS и подключить два экземпляра EC2. Один предназначен для запуска веб-сайта. И еще один экземпляр по требованию для запуска процесса Java только при необходимости.

Мои вопросы об EFS: 1) Может ли моя java-программа выводить большие файлы в EFS с той же скоростью, что и в EBS? 2) Amazon не взимает дополнительную плату за исходящую пропускную способность EFS. Это ограничено?

1 ответ1

1

Важное примечание. По состоянию на 2018-07-12 EFS позволяет приобретать выделенную пропускную способность.Ответ ниже отражает поведение службы до того, как эта функция была доступна. Раньше небольшие файловые системы EFS легко перегружались трафиком, потому что производительность линейно увеличивалась с размером хранимых данных ... поэтому при сохранении всего нескольких ГБ эффективный предел был слишком мал для некоторых сценариев использования, в которых это не учитывалось в учетную запись.


Почему бы не смонтировать один и тот же том EBS на 2 экземпляра EC2? Я думаю, что это взломать.

Вы не можете подключить один и тот же том EBS к нескольким экземплярам. Однако вы можете создать экспорт NFS с компьютера с томом EBS и подключить его по сети. NFS - это устоявшаяся технология, а не взлом. Фактически, это было бы почти идентично использованию EFS с вашей точки зрения, поскольку EFS фактически использует тот же протокол - NFS.

Amazon не взимает дополнительную плату за исходящую пропускную способность EFS. Это ограничено?

"Исходящая полоса пропускания" не совсем подходит для EFS, потому что трафик строго между EFS и экземпляром, который обращается к нему. При правильном подключении с использованием конечной точки, специфичной для зоны доступности, трафик между EFS и экземплярами EC2 никогда не покидает зону доступности.

Если веб-браузер загружает файл, который находится в вашей файловой системе EFS, он обязательно должен загружать его через один из ваших экземпляров. Таким образом, исходящая пропускная способность фактически является исходящей для EC2, а не для исходящей EFS.

Доступная пропускная способность ("пропускная способность") между EFS и EC2 увеличивается в зависимости от общего размера файлов, хранящихся в файловой системе EFS.

Amazon EFS использует кредитную систему, чтобы определить, когда файловые системы могут взорваться. Каждая файловая система зарабатывает кредиты с течением времени с базовой скоростью, которая определяется размером файловой системы, и использует кредиты всякий раз, когда она читает или записывает данные. Базовая скорость составляет 50 МБ / с на ТиБ памяти (эквивалентно 50 КБ / с на ГиБ памяти).

Накопленные пакетные кредиты дают файловой системе разрешение на пропускную способность выше базовой скорости. Файловая система может непрерывно увеличивать пропускную способность на своей базовой скорости, и когда она неактивна или пропускная способность ниже базовой скорости, файловая система накапливает пакетные кредиты.

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

Но существует возможность пакетной передачи 100 МБ / с, какой бы маленькой ни была файловая система. Для файловой системы 10 ГБ вы можете увеличить скорость до 100 МБ / с за 7,2 минуты в день или до 25 МБ / с за 28,8 минут в день и т.д.

То, что вы не заметите, сделав вывод, что этого недостаточно, - это кеш ОС. На вашем веб-сервере файлы, считанные из EFS, могут оставаться в кэше ОС на этом компьютере, что означает, что после того, как файл был передан в браузер, веб-серверу может не потребоваться чтение файла из EFS при следующей загрузке, но вместо этого можно только проверить, что оно не изменилось, а затем подать его браузеру из памяти. Это поведение должно быть автоматическим, если вы не отключите его.

Странно, что Amazon связывает объем данных с трафиком. Я мог бы хранить только небольшие данные, но это не значит, что мой исходящий трафик тоже будет очень низким.

Не очень странно, так как размер хранимых данных - это единственное измерение, которое влияет на цены. Тома EBS в целом схожи: чем больше том, тем больше пропускная способность в МиБ / с и / или IOPS доступна с этого тома.

Здесь, опять же, не путайте исходящий трафик вашего приложения с пропускной способностью резервного хранилища. Эти два значения не тесно связаны.

Для небольших экземпляров характеристики экземпляра на самом деле с большей вероятностью являются ограничивающим фактором. Например, экземпляр t2.small имеет только доступную пропускную способность 31,25 МБ / с (250 Мбит / с, 0,25 Гбит / с), поэтому верхний предел производительности не будет соответствовать файловой системе.

Попробуйте ваше приложение с EFS и наблюдайте метрики CloudWatch для файловой системы. Каждая рабочая нагрузка различна, и это действительно единственный способ узнать, будет ли она работать так, как ожидалось.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .