2010-02-19 13 views
8

Mucho se ha escrito sobre la implementación de aplicaciones de procesamiento de datos en EC2/S3, pero me gustaría saber cuál es el flujo de trabajo típico para desarrollar tales aplicaciones.Flujo de trabajo para desarrollar aplicaciones de procesamiento numérico en Amazon ec2/S3

Digamos que tengo un 1 TB de datos de serie de tiempo para empezar y he logrado almacenar esto en S3. ¿Cómo escribiría aplicaciones y haría un análisis de datos interactivo para construir modelos de aprendizaje automático y luego escribiría programas grandes para probarlos? En otras palabras, ¿cómo se hace para configurar un entorno de desarrollo en tal situación? ¿Inicié una instancia de EC2, desarrollé software en ella y guardo mis cambios, y cierro cada vez que quiero hacer algún trabajo?

Normalmente, enciendo R o Pylab, leo datos de mis discos locales y hago mi análisis. Luego creo aplicaciones basadas en ese análisis y lo dejo en esos datos.

En EC2, no estoy seguro si puedo hacer eso. ¿Las personas conservan los datos localmente para el análisis y solo usan EC2 cuando tienen grandes trabajos de simulación para ejecutar?

Tengo mucha curiosidad por saber lo que otras personas están haciendo, especialmente las nuevas empresas que tienen toda su infraestructura basada en EC2/S3.

Respuesta

2

Creamos una línea base, custom AMI con todos los programas que sabemos que siempre necesitaremos en la AMI.

El software que formular (y actualizar constantemente) se almacena en la memoria externa (se utiliza un repositorio de Maven, pero se puede usar cualquier cosa que funciona bien con su entorno.

A continuación, disparar hasta nuestra costumbre IAM con todo tenemos en él, desplegar la última versión de nuestro software de Maven, y que estamos bien para ir

lo tanto, el flujo de trabajo es:.

Configuración

Crea una alfombrilla de IAM con cosas que siempre necesitaremos

curso

desarrollar software a nivel local binarios se despliegan para almacenamiento externo (Maven repositorio en nuestro caso) fuego hasta varias instancias de encargo IAM según sea necesario Copie los archivos binarios del almacenamiento externo en cada instancia Ejecutar en cada instancia

+0

Gracias por compartir esto. Entonces, básicamente, mantendrás una copia local (fuera de Amazon) de los datos y también desarrollarás localmente (fuera de Amazon) pero ejecutarás experimentos en Amazon? – signalseeker

+0

Nuestro negocio no es experimentar, pero esencialmente eso es lo que hacemos. Parte de la aplicación incluye tablas y reglas de impuestos muy grandes. Los mantenemos en nuestra propia red y enviamos actualizaciones a Amazon cada vez que cambian las tarifas o las reglas (por lo general, la medianoche al final de cada mes). –

0

I-slash-Tenemos experiencia en el tipo de cosas que está tratando de hacer. Lo que dijo Eric J. básicamente lo resume. Pero permítanme reiterar,

  1. Configurar un repositorio de código en un servidor que siempre está activo. Usamos subversión. Este servidor no necesita ser una máquina ec2, o muy bien podría ser una ec2 también. Tu elección.

  2. Cree un AMI personalizado por; (a) Verificando su código base en una máquina EC2. (b) Instalar todas las dependencias de código en esta máquina. (c) Guardar imagen en s3.

  3. La próxima vez que arranque con AMI guardado en 1.Haz tus experimentos, cambia el código como desees, revisa los cambios en subversión para que cuando regreses lo guardes allí.

  4. Una alternativa es usar un volumen EBS. Cada vez que inicie una instancia de EC2, adjunte su volumen de EBS. ¡Este volumen puede contener su código y cualquier otra cosa que necesite persistir en la nube!

+0

Gracias. Entonces, una vez más, el punto importante es que todo el desarrollo/análisis ocurre fuera de Amazon y una vez que está listo para ejecutar experimentos, lo configura en un clúster ec2 personalizado. – signalseeker

Cuestiones relacionadas