recursos - porta azure
Cómo activar/desactivar las instancias de la nube durante el horario de oficina (8)
Entendí cómo crear instancias en la nube en AWS, Azure y Rackspace. Sin embargo, tengo que desactivar mis instancias al final del día y en la mañana, ya que esto equivaldrá a la mitad de mi costo de hosting (están destinados al desarrollo).
Miré algunos servicios de administración pero me volaron los sesos. ¿Hay una manera simple de hacer esto?
Enfoque
Siempre podría implementar su propia solución, en la medida en que la mayoría de los proveedores de la nube ofrezcan una API respectiva para iniciar / detener instancias bajo demanda (o incluso según el cronograma), que es lo que esos servicios de administración realmente están usando, por supuesto; la interfaz Java de AmazonEC2 ofrece todo métodos relevantes, por ejemplo (entre muchos otros), específicamente:
A través de secuencias de comandos (EC2)
El enfoque más simple para esto con respecto a Amazon EC2 sería crear algunos scripts de Python mediante el excelente boto (una interfaz integrada a los servicios de infraestructura actuales y futuros ofrecidos por Amazon Web Services) , que expone todos los métodos de EC2 mencionados anteriormente; podría iniciar esos scripts a pedido o a través del programador del sistema operativo.
A través de la integración / automatización continua (EC2)
Otra opción sería facilitar un servidor de integración continua como un motor de automatización (un aspecto a veces pasado por alto de estos sistemas), en caso de que ejecute uno de todos modos; le permitiría iniciar / detener instancias bajo demanda o programar de manera similar a cron.
Hacemos esto por medio del Complemento de Bamboo AWS (es de Código Abierto y el código está disponible en Bitbucket ), vea mi respuesta a Cómo iniciar y detener una instancia de Amazon EC2 programáticamente en Java para obtener más detalles sobre este enfoque. Si bien Atlassian Bamboo es una oferta comercial, debería haber algo similar disponible para las soluciones de CI de código abierto populares, como por ejemplo, Jenkins .
Consulte este artículo , hay algunas opciones para activar / desactivar sus instancias dentro de AWS.
- AWS Datapipeline
- Eventos programados de AWS Lambda
- Cron programado en instancia de EC2
- Escalado programado del grupo de escalamiento automático
Entonces, en tu caso, recomendaría los siguientes:
Para AWS :
A través del comando Shell como los comandos de AWS CLI : consulte Activar / desactivar instancias de Cloud utilizando AWS Pipeline . este método iniciará una instancia de EC2 separada que se iniciará y terminará para cada llamada de API AWS que los tiempos de ejecución afecten a su Factura.
A través de lenguajes de programación como Node.js / Python : consulte Activar / desactivar instancias de Cloud utilizando AWS Lambda . La tarea que se ejecuta dos veces al día durante, por lo general, menos de 3 segundos con un consumo de memoria de hasta 128 MB generalmente cuesta menos de $ 0,0004 USD / mes.
Para Azure y Rackspace (u otras plataformas que pueda tener):
Utilice las herramientas anteriores para proporcionar una API respectiva para iniciar / detener instancias bajo demanda.
También puede considerar establecer scripts-per-boot que se ejecuta cada vez que se inicia su instancia.
El mejor artículo sobre automatización + encendido / apagado de máquinas virtuales que he encontrado hasta ahora. [05 de febrero de 2015]. http://clemmblog.azurewebsites.net/using-azure-automation-start-und-stop-virtual-machines-schedule/
Sí, Runbook de automatización está allí por el cual podemos programar el trabajo. Creé el script para detener (desasignado) la máquina virtual Azure.
https://gallery.technet.microsoft.com/Deallocate-all-VM-under-79049c69
Lea acerca de cómo usar runbook http://azure.microsoft.com/blog/2014/06/19/azure-automation-runbook-management/
La ubicación y la detención son diferentes, ya que stop vm también tendrá un costo.
Solución recomendada para AWS:
AWS Data Pipeline es especialmente adecuado para esta tarea. Data Pipeline utiliza tecnologías AWS y se puede configurar para ejecutar comandos AWS CLI en una programación establecida sin dependencias externas. Data Pipeline puede escribir registros en S3 y se ejecuta en el contexto de un rol de IAM, lo que elimina los requisitos de administración de claves. Data Pipeline también es rentable; por ejemplo, el nivel libre de Data Pipeline se puede usar para detener e iniciar instancias una vez por día.
https://aws.amazon.com/premiumsupport/knowledge-center/stop-start-ec2-instances/
Viejo hilo lo sé, pero Microsoft introdujo ''Runbooks'' para Azure en 2014 que puede usar para la automatización, incluidas las puestas en marcha programadas y los cierres. Como se mencionó anteriormente, asegúrese de estar en estado detenido (desasignado), en lugar de simplemente detenido, para evitar cargos.
Más información:
Azur
DESCANSO:
Puede hacer esto en las implementaciones de Azure utilizando la API REST de administración de servicios de Windows Azure . Como es REST, puede usar la mayoría de los lenguajes de programación para acceder a él.
Puede tener una aplicación ejecutándose en su máquina local que programe las llamadas a estos servicios para que se delete en un momento determinado al final del horario de oficina y luego vuelva a create su servicio por la mañana.
Potencia Shell:
O puede administrar sus implementaciones de la misma manera, pero en lugar de utilizar REST, puede usar los cmdlets de Azure PowerShell . Lo hice de esta manera y funciona muy bien.
Para ayudarlo a comenzar, hay un buen tutorial sobre cómo usar PowerShell para implementar aplicaciones Azure .
Además, si aún no lo sabía, también debería mencionar que hay una versión de prueba gratuita de 3 meses con Azure si solo busca los costos de corte durante el desarrollo.
NOTA: En cuanto a junio de 2013, las instancias IaaS pueden colocarse en un estado "detenido (desasignado)". En este estado, solo se le facturará por el almacenamiento de cualquier disco asociado con la máquina virtual. La respuesta original a continuación describe una instancia de máquina virtual que se encuentra en un estado "detenido" pero no desasignado. El estado desasignado es actualmente el predeterminado para las acciones de detención de VM tomadas a través del portal de administración de Azure.
La única forma de lograr esto en Widows Azure hoy es eliminar la implementación.
Si detiene el servicio, aún se le factura (como el alquiler de espacio de oficina, lo paga incluso si no está en él) y no puede establecer el recuento de instancias en cero. Una opción que se puede utilizar es simplemente reducir el recuento de instancias al mínimo absoluto (1) y luego escalarlo de nuevo durante las horas necesarias. Pero los beneficios de costo de esto dependerán del tamaño de sus instancias.