Назад | Перейти на главную страницу

Используйте один том для нескольких серверов EC2

Я установил сервер ubuntu, на котором будет размещен веб-сайт WordPress. Я использую следующие технологии:

  1. nginx + php5-fpm как веб-сервер
  2. Верниш как система кеширования
  3. сервер базы данных mysql (RDS).

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

Мой вопрос:

Есть ли способ сделать это с помощью AWS? или мне нужно создать другой сервер только для размещения файлов, которые я загружаю? и какой тип обмена файлами я должен выбрать в качестве системы обмена файлами между серверами EC2?

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

Вы не можете подключить один том к нескольким серверам одновременно. Я бы рекомендовал изучить распределенную файловую систему, такую ​​как NFS или GlusterFS, для лучшей производительности. Это позволит вам удаленно монтировать разделы на других серверах. Может быть другая файловая система; это лучшее из моего собственного опыта работы с AWS EC2.

Я бы не рекомендовал использовать S3FS через FUSE, учитывая, что каждый раз, когда файл изменяется, вся файловая система повторно загружается на S3 - это нормально для пары файлов, но становится довольно медленно, когда у вас есть большое количество файлов на файловая система. Я искал другие реализации, но пока не нашел ничего стоящего. Если вы действительно хотите использовать S3 для обслуживания файлов, возможно, у вас есть другой процесс в фоновом режиме, который загружает или синхронизирует файлы в корзину S3 через cURL или S3CMD.