Я работаю над веб-сайтом для хостинга изображений, адаптированным к определенной нише. Сайт сделан на Django. В настоящее время я планирую запустить его на Линоде.
Все идет нормально. Проблема в том, что мне нужно будет выполнять очень ресурсоемкие задачи с изображениями с высоким разрешением. Мы говорим о вычислениях научного уровня, которые могут занять до 15 минут на процессорах Linode 4 Xeon.
Я не уверен, работает ли EC2 таким образом, но может ли следующий сценарий звонить в колокол?
Очевидно, у меня есть много пробелов в том, как эта штука будет работать. Может кто-нибудь помочь мне их заполнить?
РЕДАКТИРОВАТЬ: Забыл упомянуть, что я использую сельдерей для задач, используя RabbitMQ в качестве диспетчера сообщений. Интересно, можно ли запускать задачи создания сельдерея на моем веб-сервере, а затем запускать их на экземплярах EC2, созданных по запросу. В идеале, это также должно было позаботиться о протоколах связи между участвующими сторонами (как я бы травил сторону веб-сервера).
Да, EC2 кажется подходящим вариантом для того, что вы пытаетесь сделать. Что касается того, как это сделать точно, я не знаком с сельдереем и RabbitMQ, но я предполагаю, что это просто вопрос написания некоторого кода, который обрабатывает задания в сельдерее по мере необходимости - это может включать получение данных с вашего веб-сервера в выполнить задание (из базы данных с помощью API веб-сервисов) и отправить результаты обратно (опять же, через определенный вами API веб-сервисов).
Если вы выполняете обработку изображений, вы можете посмотреть, можно ли превратить внутреннюю обработку, которую вы выполняете, в Уменьшение карты проблема. Это дешевле в час, чем полный инстанс EC2 (0,015 доллара в час против 0,085 доллара в час), поскольку он не дает вам полноценную виртуальную машину. Он управляет Hadoop Framework.
В Интернете есть множество руководств, в которых объясняется, как использовать Hadoop, вот один из Yahoo (крупнейший в мире пользователь Hadoop по данным Википедии), который также рассказывает об основах работы Hadoop.
Конечно, все это зависит от того, что вы можете перенести код обработки с Celery на Hadoop.