Crear y destruir droplets de DigitalOcean a partir de snapshots


Esta solución es muy útil cuando tienes una plataforma horizontal de servidores y quieres que se dimensione en base a necesidades de carga de forma automática.

Por ejemplo, el propio HAproxy podría ser el encargado de decidir si crea o destruye máquinas según ve la carga de la plataforma a medida que aumenten el tiempo de respuesta por el aumento de visitas. Otro ejemplo puede ser una granja de máquinas dedicadas a colas, o compilación de proyectos.

Este ejemplo es muy sencillo, solo cubre el uso de la API de DigitalOcean y no qué hacer luego con esas máquinas, como obtener la IP, nombre, decidir la región donde se crea, etc.

Primero configuramos lo básico:

Necesitaremos el TOKEN, los SSH_KEY_IDS en caso de querer usarlo, y el SNAPSHOT.

El script para crear un droplet es el siguiente:

Y el de destruirlo el siguiente:

Este último hay que pasarle el ID del droplet creado previamente.

Como digo, se puede automatizar mucho más pero esto cubre lo básico, de hecho se puede llamar desde un script en Python o similar en vez de Bash. Para eso lo suyo es usar el SDK del lenguje en cuestión, como este en Python.