6

Estamos usando S3, SimpleDB y SQS en un proyecto bastante complicado.¿Cómo puedo crear una secuencia de comandos para una alerta cuando el uso de Amazon Web Service supera una cierta cantidad?

Me gustaría poder rastrear automáticamente su uso, para asegurarnos de que no gastemos grandes cantidades de dinero cuando no teníamos la intención de hacerlo (quizás debido a un error).

¿Hay alguna manera de leer las cifras de uso de todos los servicios web de Amazon y/o el costo actual en dólares en tiempo real de una cuenta desde un script?

¿O algún servicio o script que proporcione alertas basadas en eso?

+0

Buena pregunta: me encanta EC2, pero siempre me ha resultado molesto calcular los costos de uso minuto a minuto. –

+1

Puede que tenga más suerte al preguntar esto en el foro de soporte de EC2; por favor publique la respuesta aquí si obtiene uno. –

+0

Gracias Gareth: He publicado la pregunta aquí http://developer.amazonwebservices.com/connect/thread.jspa?threadID=45165 – frabcus

Respuesta

1

Me encontré con el mismo problema con las instancias EC2, pero me dirigí a él de una manera diferente: en lugar de monitorear las instancias, hice que se mataran automáticamente después de un período de tiempo determinado. Según su descripción, parece que esto puede no ser práctico en su entorno, pero pensé que lo compartiría por si acaso me ayuda. Mi IAM se basó en Fedora, así que creado la siguiente escritura del golpe, registrada como un servicio, y tenía que ejecutar en el inicio:

#!/bin/bash 
# chkconfig: 2345 68 20 
# description: 50 Minute Kill 
# Source Functions 
. /etc/rc.d/init.d/functions 

start() 
{ 
    # Shut down 50 minutes after starting up 
    at now + 50 minutes < /root/atshutdown 
} 

stop() 
{ 
    # Remove all jobs from the at queue because I'm not using at for anything else 
    for job in $(atq | awk '{print $1}') 
    do 
     atrm $job 
    done 
} 

case "$1" in 
    start) 
     start && success || failure 
     echo 
     ;; 
    stop) 
     stop && success || failure 
     echo 
     ;; 
    restart) 
     stop && start && success || failure 
     echo 
     ;; 
    status) 
     echo $"`atq`" 
     ;; 
    *) 
     echo $"Usage: $0 {start | stop | restart}" 
     RETVAL=1 
esac  

exit $RETVAL 

usted podría considerar hacer algo similar para que se adapte a sus necesidades. Si hace esto, tenga especial cuidado de detener el servicio antes de modificar su imagen para que la instancia no se cierre antes de tener la oportunidad de volver a agrupar.

Si quisiera, podría tener el cierre de los casos en un tiempo fijo (después de todo el mundo deja el trabajo?), O usted podría pasar en un tiempo de longitud/apagado de mantenimiento de conexión a través de los parámetros -d o -f a ec2-run-instances y analizar en el guión.

+0

Gracias, y estamos planeando que todas nuestras instancias mueran después de un tiempo. Sin embargo, eso todavía no detiene un error que hace 10,000 instancias y que se carguen durante una hora. Y no detiene otros errores en el uso de SQS o S3 que causan cargas masivas. – frabcus

2

Acabamos de lanzar un servicio Lab Management que agrega políticas para el uso de AWS: límites de tiempo, cantidad máxima de instancias, tamaños máximos de máquinas, etc. Puede intentarlo y ver si ayuda: http://LabSlice.com. Como se trata de una puesta en marcha, realmente valoraríamos los comentarios acerca de cómo resolver problemas como el suyo (es decir, envíeme un correo electrónico si cree que la aplicación podría modificarse mejor para cumplir con sus requisitos).

No creo que haya ninguna forma directa de controlar los costos de AWS con respecto al dólar. Dudo que Amazon proporcione una API para obtener métricas detalladas sobre el uso, ya que obviamente no va a ser de su interés ayudarlo a reducir los costos. De hecho, encontré dos casos en los que surgieron costos sorpresivos en una empresa (banco) debido a scripts mal configurados, así que sé que puede ser un problema.

3

Amazon acaba de anunciar que ahora puede "establecer alarmas para cualquier métrica que monitoree Amazon CloudWatch" (uso de CPU, lecturas y escrituras de disco y tráfico de red, etc.). Además, ahora todas las instancias vienen con monitoreo básico gratis.

Cuestiones relacionadas