2009-02-27 21 views
6

¿Qué herramientas o estrategias está utilizando para la automatización de las actividades de EC2?EC2 herramientas de automatización/estrategias?

Necesito poder abrir una cantidad de instancias de EC2, proporcionarle varios programas (principalmente paquetes de Python), interactuar con S3 (principalmente descargar datos) y ejecutar varios trabajos. Haré esto tanto a pedido como de forma programada.

Estoy tratando de decidir si debería:

  • Crear un IAM con todo el software cargado en él o
  • lanzamiento de una llanura de vainilla Linux instancia AMI y SCP mi software a ella

Para el aprovisionamiento y la automatización Boto se ve bastante bien. O podría escribir algo con Paramiko. Recomendar cualquiera o cualquier otra cosa que debería buscarlo?

Básicamente estoy buscando consejos/historias de éxito, hágamelo saber lo que funciona para usted.

Respuesta

3

Para responder a sus viñetas sobre la selección de AMI, diría que depende de la cantidad de software que está instalando.

He tenido éxito con un enfoque híbrido, donde construyo un AMI y cargo mi software pesado y más estable. Esto es lo que necesita ejecutar un instalador, o lleva mucho tiempo instalarlo (recuerde que si reinstala un paquete cada vez como parte de su proceso de inicio, usted está pagando por la instalación cada vez). Luego, cargo el software pequeño y volátil en el momento del aprovisionamiento/inicio. En este segmento va la mayor parte del código de la aplicación, datos, etc. De esa manera, puedo cambiar mi aplicación y no tener que tocar la AMI.

Los beneficios de este enfoque:

  • no tiene que pagar por correr el mismo software de instalación de miles de veces.
  • AMI puede mantenerse bastante estable con el tiempo.
  • Puede usar software que requiera intervención o interacción con la GUI para su instalación.

inconvenientes importantes:

  • Su versión del sistema operativo de AMI se convertirá rancio con el tiempo.
  • Su AMI puede no ser flexible en cuanto al tipo de instancia/arquitectura en la que se ejecutará. Por ejemplo, puede crearlo en un sistema operativo de 32 bits y así evitar que se ejecute en los tipos de instancias de CPU alta, o viceversa. Entonces puede encerrarse en un esquema de precios.

No uso Python, por lo que no puedo comentar sobre ninguna de las API a las que hizo referencia.

0

Hace ya tiempo que se planteó esta pregunta, pero creo que mi respuesta podría ser útil para otros usuarios. Creo que las mejores herramientas de automatización disponibles en el mercado son proporcionadas por las plataformas Cloud Management. Por ejemplo, ofrecen autoescalamiento, integración de software de configuración (Chef/Puppet), replicaciones de bases de datos, administración de dns ...

Los softwares de gestión de la nube más populares son Scalr (descargo de responsabilidad: yo trabajo allí), RightScale y enStratus. Scalr es de código abierto y publicado bajo la licencia Apache 2.

En relación con su pregunta específica sobre AMI, las plataformas de administración de la nube generalmente proporcionan AMI preconfiguradas (en Scalr, las llamamos funciones). Si desea crear su propio AMI basado en una instancia existente, podrá crear snpashots y usarlos como plantilla para instancias futuras.