O Amazon EC2 é para mim?

3

Estou trabalhando em um site de hospedagem de imagens adaptado a um determinado nicho. O site é feito com o Django. Atualmente estou planejando executá-lo no Linode.

Até aí tudo bem. O problema é: eu precisarei executar tarefas muito intensivas de CPU em imagens de alta resolução. Estamos falando de computação de nível científico que pode levar até 15 minutos nos 4 processadores Xeon da Linode.

Não tenho certeza se o EC2 funciona assim, mas o cenário a seguir é algo que toca bem?

  1. O usuário envia uma imagem no site, que está hospedado no Linode
  2. O aplicativo (de alguma forma?) solicita que o EC2 execute a tarefa intensiva da CPU.
  3. O EC2 inicializa uma nova instância e executa o software com os dados fornecidos
  4. Os dados são de alguma forma retornados para o aplicativo da web

Obviamente, eu tenho muitas lacunas na maneira como isso funcionaria. Alguém pode me ajudar a preenchê-los?

EDIT : Eu esqueci de mencionar que eu uso aipo para as tarefas, usando o RabbitMQ como um despachador de mensagens. Gostaria de saber se é possível executar tarefas de criação de aipo no meu servidor da Web, mas, na verdade, executá-las em instâncias do EC2 criadas sob demanda. Idealmente, isso também cuidaria dos protocolos de comunicação entre as partes envolvidas (como eu estaria fazendo pickling no lado do servidor).

    
por Salvatore Iovene 16.07.2011 / 10:21

2 respostas

3

Sim, o EC2 parece ser uma boa opção para o que você está tentando fazer. Quanto a como fazê-lo exatamente, eu não estou familiarizado com aipo e RabbitMQ, mas eu suponho que é apenas uma questão de escrever algum código que processa os trabalhos no aipo como necessário - isso pode envolver a recuperação dos dados do seu servidor web para faça o trabalho (fora do banco de dados usando uma API de serviços da web) e envie os resultados de volta (novamente, por meio de uma API de serviços da web definida por você).

    
por 16.07.2011 / 10:43
0

Se você estiver fazendo processamento de imagens, talvez queira verificar se o processamento de back-end que está fazendo pode ser transformado em um Problema MapReduce . É mais barato por hora do que uma instância completa do EC2 (US $ 0,015 / hora versus US $ 0,085 / hora), pois não oferece uma VM completa. Ele executa a Estrutura do Hadoop .

Existem muitos tutoriais on-line que explicam como usar o Hadoop, aqui é um do Yahoo (o maior Hadoop do mundo usuário de acordo com a Wikipedia), que vai além do básico de como o Hadoop funciona também.

É claro que tudo isso é contingente para que você possa transferir seu código de processamento do Celery para o Hadoop.

    
por 16.07.2011 / 17:51