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

Подходит ли мне Amazon EC2?

Я работаю над веб-сайтом для хостинга изображений, адаптированным к определенной нише. Сайт сделан на Django. В настоящее время я планирую запустить его на Линоде.

Все идет нормально. Проблема в том, что мне нужно будет выполнять очень ресурсоемкие задачи с изображениями с высоким разрешением. Мы говорим о вычислениях научного уровня, которые могут занять до 15 минут на процессорах Linode 4 Xeon.

Я не уверен, работает ли EC2 таким образом, но может ли следующий сценарий звонить в колокол?

  1. Пользователь загружает изображение на сайт, размещенный на Linode.
  2. Приложение (каким-то образом?) Запрашивает, чтобы EC2 выполнял задачу с интенсивным использованием ЦП.
  3. EC2 загружает новый экземпляр и запускает программное обеспечение с предоставленными данными.
  4. Данные каким-то образом возвращаются в веб-приложение

Очевидно, у меня есть много пробелов в том, как эта штука будет работать. Может кто-нибудь помочь мне их заполнить?

РЕДАКТИРОВАТЬ: Забыл упомянуть, что я использую сельдерей для задач, используя RabbitMQ в качестве диспетчера сообщений. Интересно, можно ли запускать задачи создания сельдерея на моем веб-сервере, а затем запускать их на экземплярах EC2, созданных по запросу. В идеале, это также должно было позаботиться о протоколах связи между участвующими сторонами (как я бы травил сторону веб-сервера).

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

Если вы выполняете обработку изображений, вы можете посмотреть, можно ли превратить внутреннюю обработку, которую вы выполняете, в Уменьшение карты проблема. Это дешевле в час, чем полный инстанс EC2 (0,015 доллара в час против 0,085 доллара в час), поскольку он не дает вам полноценную виртуальную машину. Он управляет Hadoop Framework.

В Интернете есть множество руководств, в которых объясняется, как использовать Hadoop, вот один из Yahoo (крупнейший в мире пользователь Hadoop по данным Википедии), который также рассказывает об основах работы Hadoop.

Конечно, все это зависит от того, что вы можете перенести код обработки с Celery на Hadoop.