Amazon EC2 масштабирует и загружает временную папку

У меня есть приложение на основе php в одном экземпляре Amazon для загрузки и перекодирования аудио файлов. Это приложение сначала загружает файл, а затем перекодирует его и, наконец, помещает в одну корзину s3. На данный момент приложение отображает ход загрузки и транскодирования файлов на основе многократных запросов ajax, отслеживая размер файла во временной папке.

Мне все время было интересно, если завтра пользователи обратятся к моему сервису, и мне нужно масштабировать свой сервис любым возможным способом в AWS.

A: Что будет с моей техникой загрузки и транскодирования?

B: Если я добавлю больше экземпляров, значит ли это, что у меня есть разные файлы в разных временных папках преобразования в разных физических местах?

C: Если я хочу получить размер файла по ajax от http://www.example.com/filesize до завершения процесса, нужно ли мне иметь реальный адрес каждого экземпляра ec2 (я имею в виду ip, dns) или все папок экземпляров (или папки)?

D: Когда мы масштабируем, что произойдет с временной папкой, правильно ли, что все экземпляры, кроме их стека ламп, расположены в одной корневой папке основного экземпляра?

У меня есть некоторая базовая информация о масштабировании в других методах хостинга, но в Amazon эти вопросы у меня на уме.

Спасибо за совет.

2 ответа

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

  1. Ваша способность масштабироваться полностью зависит от вашей архитектуры и, конечно, иметь достаточно глубокий кошелек для оплаты.

  2. Да. Если вы генерируете временные файлы на отдельных машинах, они не будут храниться в общем месте, как вы сейчас это описываете.

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

  4. Не совсем уверен, что вопрос здесь.

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

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

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

Другие вопросы по тегам