когда использовать NFS для веб-приложений

когда использовать NFS для веб-приложений

В настоящее время я создаю простую архитектуру веб-приложения на AWS следующим образом: Elastic Load Balancer — несколько фронтендов — база данных RDS.

Я также настроил NFS-сервер для хранения всех изображений, загружаемых пользователями через веб-приложение, в основном, таких как фотографии профилей (я не могу использовать S3 для этого, я просто следую полученным спецификациям...).

Фронтенды VM создаются группой автомасштабирования. Когда создается VM, она загружает исходники веб-приложений из контейнера S3. Проблема в том, что у меня есть несколько огромных файлов в этих источниках (в основном статические файлы, такие как mp4 или изображения). Я думаю о том, чтобы хранить эти большие статические файлы также на сервере NFS, потому что загрузка с S3 занимает слишком много времени.

Итак, мой вопрос: когда имеет смысл хранить файл на NFS, а когда лучше разрешить его на каждом внешнем интерфейсе? Например, если я храню mp4 на NFS, почему бы не хранить все веб-приложение на этой NFS?

Примечание: Я не хочу создавать AMI, содержащий эти файлы, так как он недостаточно гибок при их изменении.

решение1

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

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

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

Связанный контент