Uma máquina EC2 é faturada pelo tempo em que está ligada. Um servidor de desenvolvimento, de testes ou da intranet do escritório que só se usa em horário laboral está ligado 168 horas por semana e usa-se talvez 50. Desligá-lo à noite e ao fim de semana corta a parte de computação da sua fatura em mais de metade, sem mudar nada do que faz. Este guia explica o que poupa realmente, o que não, e como o agendar para que aconteça sozinho.
No fim esclarecemos a dúvida clássica: e no Lightsail? A resposta curta é que parar uma máquina Lightsail não poupa nada, e convém saber porquê.
Antes de começar: o que significa cada coisa
- EC2
- Os servidores "à medida" da Amazon: escolhe tamanho, disco e tudo o resto, e paga pelas horas em que estão ligados. Mais flexível do que o Lightsail, com mais coisas para decidir.
- Instância
- É assim que a AWS chama a cada máquina ou servidor. Instância e máquina são o mesmo neste guia.
- Parar (stop) e terminar (terminate)
- Parar é desligar: a máquina e o disco continuam lá e pode voltar a ligá-la. Terminar é apagá-la para sempre. Este guia só para.
- Disco EBS
- O disco rígido da máquina EC2. Cobra-se à parte da máquina e continua a ser cobrado mesmo desligada, porque os seus dados continuam guardados.
- IP elástico
- Um endereço de internet fixo que reserva e atribui à sua máquina para que não mude ao desligar e ligar. Sem ele, cada arranque traz um endereço diferente.
- EventBridge Scheduler
- O "despertador" da AWS: um serviço que executa uma ação às horas que lhe disser, como desligar ou ligar uma máquina, sem que tenha de programar nada.
- Cron
- A forma clássica de escrever um horário repetitivo em informática, com números separados por espaços (minuto, hora, dia...). O guia dá-lhe as expressões já feitas.
- Lightsail
- A versão simples dos servidores da Amazon, com preço fixo por mês. No fim do guia explicamos porque aí desligar não poupa.
Passo a passo
Perceba o que deixa de pagar e o que não
Ao parar (stop) uma EC2 deixa de pagar a computação da instância, que é a fatia grande. Continua a pagar:
- O disco EBS, porque os dados continuam lá. Cobra-se por GB por mês, esteja a máquina ligada ou não.
- Os instantâneos desse disco.
- O IP elástico, se tiver um associado. A AWS cobra os endereços IPv4 públicos, e um IP elástico atribuído a uma máquina parada cobra-se na mesma.
Se a máquina tem uma licença à hora (Windows, algumas imagens do Marketplace), essa parte também para ao parar.
Confirme que a máquina aguenta o desligar
Antes de automatizar seja o que for, faça o teste à mão: pare a instância a partir da consola do EC2 e volte a arrancá-la. Confirme três coisas: que os serviços arrancam sozinhos ao ligar (web, base de dados, filas), que a máquina mantém o mesmo IP (só se tiver IP elástico; sem ele, o IP público muda em cada arranque) e que não usa armazenamento de instância (instance store), que se apaga ao parar. Se alguma destas coisas falhar, resolva-a primeiro.
Ponha uma etiqueta nas máquinas que se desligam
Na consola do EC2, selecione a instância, separador Tags, e adicione por exemplo
Horario = oficina. Não é obrigatório, mas permite-lhe ver de relance que máquinas entram no desligar e, se mais tarde usar uma ferramenta de agendamento, selecioná-las por etiqueta em vez de uma a uma.Crie o agendamento de desligar com o EventBridge Scheduler
Abra o Amazon EventBridge, menu Scheduler, e clique em Create schedule. Dê-lhe um nome (
apagar-dev-noche), escolha Recurring schedule com expressão cron, por exemplo0 20 ? * MON-FRI *para as 20:00 de segunda a sexta, e fixe o fuso horário no seu (Europe/Madrid) para que a mudança da hora não lhe baralhe tudo.No destino, escolha All APIs, procure EC2 e a ação StopInstances. Na caixa de entrada cole o identificador da máquina:
{ "InstanceIds": ["i-0123456789abcdef0"] }Deixe que o EventBridge crie a função de execução nova; dar-lhe-á exatamente a permissão para essa ação. Guarde.
Crie o agendamento de ligar
Repita o passo anterior com o nome
encender-dev-manana, cron0 7 ? * MON-FRI *e a ação StartInstances, com o mesmo identificador. Se a máquina demora a arrancar e as pessoas chegam às 8, ponha as 7:30. É melhor sobrar um quarto de hora do que receber queixas.Vigie a primeira semana
No dia seguinte veja o separador da máquina: a "última alteração de estado" deve coincidir com as suas horas. No EventBridge Scheduler cada agendamento mostra a última execução e se falhou. Ao fim de umas semanas verá o efeito no Cost Explorer filtrando por essa instância ou pela etiqueta.
Porque no Lightsail parar não poupa
O Lightsail não é faturado por horas de uso, mas por pacote mensal: tanto por mês por uma máquina de certo tamanho, incluindo o disco, o IP e uma quota de transferência. Esse pacote cobra-se enquanto a máquina existir, esteja ligada ou parada. A AWS di-lo claramente na documentação: as instâncias paradas continuam a ser cobradas.
Se quer mesmo deixar de pagar uma máquina Lightsail que não usa, o caminho é outro: fazer um instantâneo e apagar a máquina. Pagará só o armazenamento do instantâneo, muito mais barato, e quando precisar dela cria uma máquina nova a partir dele (tem o guia passo a passo nesta mesma secção). Para uma máquina que se usa diariamente em horário de escritório, o Lightsail simplesmente não é a ferramenta para poupar desligando; ou aceita o preço fixo ou passa-a para o EC2.
O que pode correr mal
O site mudou de IP ao arrancar
Não tinha IP elástico. Atribua um a partir de Elastic IPs na consola do EC2 e associe-o à instância; a partir daí mantém-no entre paragens. Lembre-se de que se cobra, mas é uma quantia pequena comparada com as horas de computação que poupa.
Os serviços não arrancam sozinhos
Em Linux, confirme que estão ativados no arranque (systemctl enable nombre). Em Windows, que o serviço está em "Automático". É um problema da máquina, não do desligar, mas o desligar traz o problema à luz.
O agendamento não é executado
Veja a função de execução do agendamento no EventBridge: precisa das permissões ec2:StopInstances e ec2:StartInstances sobre essa instância. Se copiou uma função de outro agendamento, pode faltar-lhe uma das duas ações. E reveja o fuso horário: se deixou UTC, o horário está desfasado uma ou duas horas.
Há trabalhos noturnos que já não se fazem
Cópias, relatórios, atualizações automáticas às 3 da manhã... Se a máquina está desligada a essa hora, não acontecem. Passe-os para o horário em que está ligada ou, se forem pesados, deixe-os para uma janela em que a máquina esteja viva (por exemplo, ligue às 6 e agende a cópia para as 6:15).
No Simplio
No Simplio arranca, para e reinicia as suas máquinas EC2 e Lightsail com um botão, a partir do telemóvel se for preciso, e cada pessoa da sua equipa só vê as máquinas que lhe atribuiu. No ecrã Custos vê o que cada máquina lhe está a custar por mês, para decidir quais vale a pena desligar. E se uma máquina que devia estar ligada aparecer parada, avisa-o por e-mail.
O mesmo, na AWS e no Simplio
| Na consola da AWS | No Simplio | |
|---|---|---|
| Agendar desligar e ligar | EventBridge Scheduler: 2 agendamentos, expressões cron, fuso horário, função de permissões: 6 passos, 30 minutos | Arrancar e parar com um botão hoje; horário por máquina num ecrã, no seu fuso horário, quando estiver disponível |
| Saber quanto poupa | Cost Explorer filtrando por instância, no mês seguinte | Custo mensal estimado de cada máquina no ecrã Custos |
| Saber se não arranca | Criar ainda um alarme no CloudWatch | Aviso por e-mail se uma máquina que devia estar ligada está parada |