Una máquina EC2 se factura por el tiempo que está encendida. Un servidor de desarrollo, de pruebas o de la intranet de la oficina que solo se usa en horario laboral está encendido 168 horas a la semana y se usa quizá 50. Apagarlo de noche y en fin de semana recorta la parte de cómputo de su factura en más de la mitad, sin cambiar nada de lo que hace. Esta guía explica qué ahorras de verdad, qué no, y cómo programarlo para que ocurra solo.
Al final aclaramos la duda clásica: ¿y en Lightsail? La respuesta corta es que parar una máquina Lightsail no ahorra nada, y conviene saber por qué.
Antes de empezar: qué significa cada cosa
- EC2
- Los servidores "a medida" de Amazon: eliges tamaño, disco y todo lo demás, y pagas por las horas que están encendidos. Más flexible que Lightsail, con más cosas que decidir.
- Instancia
- Así llama AWS a cada máquina o servidor. Instancia y máquina son lo mismo en esta guía.
- Parar (stop) frente a terminar (terminate)
- Parar es apagar: la máquina y su disco siguen ahí y se puede encender. Terminar es borrarla para siempre. Esta guía solo para.
- Disco EBS
- El disco duro de la máquina EC2. Se cobra aparte de la máquina y se sigue cobrando aunque esté apagada, porque tus datos siguen guardados.
- IP elástica
- Una dirección de internet fija que reservas y asignas a tu máquina para que no cambie al apagar y encender. Sin ella, cada arranque trae una dirección distinta.
- EventBridge Scheduler
- El "despertador" de AWS: un servicio que ejecuta una acción a las horas que le digas, como apagar o encender una máquina, sin que tengas que programar nada.
- Cron
- La forma clásica de escribir un horario repetitivo en informática, con números separados por espacios (minuto, hora, día...). La guía te da las expresiones ya hechas.
- Lightsail
- La versión sencilla de los servidores de Amazon, con precio fijo al mes. Al final de la guía explicamos por qué ahí apagar no ahorra.
Paso a paso
Entiende qué dejas de pagar y qué no
Al parar (stop) una EC2 dejas de pagar el cómputo de la instancia, que es lo gordo. Sigues pagando:
- El disco EBS, porque los datos siguen ahí. Se cobra por GB al mes esté la máquina encendida o no.
- Las instantáneas de ese disco.
- La IP elástica si tienes una asociada. AWS cobra las direcciones IPv4 públicas, y una IP elástica asignada a una máquina parada se cobra igual.
Si la máquina lleva una licencia por hora (Windows, algunas imágenes de Marketplace), esa parte también se detiene al parar.
Comprueba que la máquina aguanta el apagado
Antes de automatizar nada, haz la prueba a mano: para la instancia desde la consola de EC2 y vuelve a arrancarla. Comprueba tres cosas: que los servicios arrancan solos al encender (web, base de datos, colas), que la máquina conserva la misma IP (solo si tiene IP elástica; sin ella, la IP pública cambia en cada arranque) y que no usa almacenamiento de instancia (instance store), que se borra al parar. Si algo de esto falla, arréglalo primero.
Pon una etiqueta a las máquinas que se apagan
En la consola de EC2, selecciona la instancia, pestaña Etiquetas, y añade por ejemplo
Horario = oficina. No es obligatorio, pero te permite ver de un vistazo qué máquinas entran en el apagado y, si más adelante usas una herramienta de programación, seleccionarlas por etiqueta en vez de una a una.Crea la programación de apagado con EventBridge Scheduler
Abre Amazon EventBridge, menú Programador (Scheduler), y pulsa Crear programación. Ponle nombre (
apagar-dev-noche), elige Programación recurrente con expresión cron, por ejemplo0 20 ? * MON-FRI *para las 20:00 de lunes a viernes, y fija la zona horaria a la tuya (Europe/Madrid) para que el cambio de hora no te descuadre.En el destino, elige Todas las API, busca EC2 y la acción StopInstances. En el cuadro de entrada pega el identificador de la máquina:
{ "InstanceIds": ["i-0123456789abcdef0"] }Deja que EventBridge cree el rol de ejecución nuevo; le dará exactamente el permiso para parar esa acción. Guarda.
Crea la programación de encendido
Repite el paso anterior con nombre
encender-dev-manana, cron0 7 ? * MON-FRI *y la acción StartInstances, con el mismo identificador. Si la máquina tarda en arrancar y la gente llega a las 8, pon las 7:30. Mejor que sobre un cuarto de hora que recibir quejas.Vigila la primera semana
Al día siguiente mira la pestaña de la máquina: el "último cambio de estado" debe coincidir con tus horas. En EventBridge Scheduler cada programación muestra la última ejecución y si ha fallado. Al cabo de unas semanas verás el efecto en Cost Explorer filtrando por esa instancia o por la etiqueta.
Por qué en Lightsail parar no ahorra
Lightsail no se factura por horas de uso, sino por paquete mensual: tanto al mes por una máquina de cierto tamaño, incluyendo su disco, su IP y una cuota de transferencia. Ese paquete se cobra mientras la máquina exista, esté encendida o parada. AWS lo dice claramente en su documentación: las instancias paradas se siguen cobrando.
Si de verdad quieres dejar de pagar una máquina Lightsail que no usas, el camino es otro: hacer una instantánea y borrar la máquina. Pagarás solo el almacenamiento de la instantánea, mucho más barato, y cuando la necesites creas una máquina nueva desde ella (tienes la guía paso a paso en esta misma sección). Para una máquina que se usa a diario en horario de oficina, Lightsail sencillamente no es la herramienta para ahorrar apagando; o aceptas el precio fijo o la mueves a EC2.
Qué puede salir mal
La web ha cambiado de IP al arrancar
No tenías IP elástica. Asigna una desde Direcciones IP elásticas en la consola de EC2 y asóciala a la instancia; a partir de ahí la conserva entre paradas. Recuerda que se cobra, pero es una cantidad pequeña comparada con las horas de cómputo que ahorras.
Los servicios no arrancan solos
En Linux, comprueba que están habilitados en el arranque (systemctl enable nombre). En Windows, que el servicio está en "Automático". Es un problema de la máquina, no del apagado, pero el apagado lo saca a la luz.
La programación no se ejecuta
Mira el rol de ejecución de la programación en EventBridge: necesita permiso ec2:StopInstances y ec2:StartInstances sobre esa instancia. Si copiaste un rol de otra programación, puede que le falte una de las dos acciones. Y revisa la zona horaria: si dejaste UTC, el horario está desplazado una o dos horas.
Hay trabajos nocturnos que ya no se hacen
Copias, informes, actualizaciones automáticas a las 3 de la mañana... Si la máquina está apagada a esa hora, no ocurren. Muévelos al horario de encendido o, si son pesados, déjalos para una ventana en la que la máquina esté viva (por ejemplo enciende a las 6 y programa la copia a las 6:15).
En Simplio
En Simplio arrancas, paras y reinicias tus máquinas EC2 y Lightsail con un botón, desde el móvil si hace falta, y cada persona de tu equipo solo ve las máquinas que le has asignado. En la pantalla Costes ves lo que te está costando cada máquina al mes, para decidir cuáles merece la pena apagar. Y si una máquina que debería estar encendida aparece parada, te avisa por correo.
Lo mismo, en AWS y en Simplio
| En la consola de AWS | En Simplio | |
|---|---|---|
| Programar apagado y encendido | EventBridge Scheduler: 2 programaciones, expresiones cron, zona horaria, rol de permisos: 6 pasos, 30 minutos | Arrancar y parar con un botón hoy; horario por máquina en una pantalla, en tu zona horaria, cuando esté disponible |
| Saber cuánto ahorras | Cost Explorer filtrando por instancia, al mes siguiente | Coste mensual estimado de cada máquina en la pantalla Costes |
| Enterarte si no arranca | Crear además una alarma en CloudWatch | Aviso por correo si una máquina que debería estar encendida está parada |