Às oito da noite a equipa fecha os portáteis. As máquinas de desenvolvimento e de staging, não: continuam ligadas toda a noite e todo o fim de semana, a faturar cada hora sem que ninguém as use. É uma das fugas mais fáceis de fechar, porque não exige mudar nenhuma arquitetura, apenas desligar e ligar à hora certa. Neste artigo mostramos como fazê-lo com o AAA Sentinel: onde encontrar as candidatas, como calcular a poupança sem a inflacionar e como deixar o desligar agendado.
O problema: máquinas que trabalham 60 horas e faturam 168
Uma semana tem 168 horas. Uma equipa que trabalha de segunda a sexta, das 08:00 às 20:00, usa os seus ambientes durante 60 delas. As outras 108, 64 % da semana, são noites e fins de semana em que essas máquinas só geram fatura:
- Na AWS, uma instância EC2 parada não paga computação. No Azure, uma VM desalocada também não. No Google Cloud, uma instância parada deixa de pagar CPU e memória.
- O que continua a ser cobrado são os discos e alguns endereços IP, como verá mais abaixo. Por isso a poupança real é inferior a 64 % da fatura total do ambiente.
- Ninguém desliga máquinas à mão todos os dias. Funciona durante uma semana e depois esquece-se: o desligar tem de estar agendado.
Desligar só nas noites de semana já poupa; desligar também ao fim de semana quase duplica o valor. No caso prático verá a diferença em números.
O que ganha com isto
Agendar o desligar dos ambientes que não são de produção traz vantagens para além do valor em si:
- Uma poupança recorrente que não depende de alguém se lembrar.
- Nenhuma alteração ao código nem à arquitetura: as máquinas são as mesmas, só mudam as horas em que estão ligadas.
- Uma lista clara do que é desenvolvimento e do que é produção, porque para agendar é preciso decidi-lo.
- Um registo de cada desligar e de cada ligar, com o resultado, para saber que o plano se cumpre.
Antes de começar: o que se paga mesmo com a máquina desligada
Para não prometer mais do que verá na fatura, tenha em conta estes pontos:
- Os volumes EBS (e os discos geridos no Azure ou no Google Cloud) continuam a ser cobrados com a instância parada.
- A AWS cobra à hora cada endereço IPv4 público, incluindo um Elastic IP associado a uma instância parada.
- Se a instância estiver coberta por uma Reserved Instance ou um Savings Plan, desligá-la não poupa: o compromisso paga-se na mesma.
- Ao parar uma instância perde-se o que estiver no armazenamento de instância (instance store), e o IP público muda no arranque seguinte se não for um Elastic IP.
- Se a instância fizer parte de um grupo de Auto Scaling, o grupo pode considerá-la não saudável e substituí-la. Estas instâncias não são boas candidatas.
Como o AAA Sentinel resolve: três peças
O fluxo completo usa três ecrãs, cada um no seu plano:
- Descobertas ativas, em todos os planos: o scan deteta as instâncias com CPU muito baixa e as que já estão paradas com discos que continuam a faturar. É a sua lista de candidatas.
- Simulador de economia, no plano Pro: antes de mexer em alguma coisa, calcula quanto pouparia desligar dev e staging à noite.
- Agente IA → Automatizações, no plano Business: cria o horário de desligar e ligar, e a plataforma executa-o todos os dias e regista-o no histórico.
O teste de 30 dias dá o plano Pro completo, por isso inclui as descobertas e o simulador, mas não o Agente IA. As automatizações exigem o plano Business.
Caso prático: os ambientes da ACME
A ACME é uma empresa fictícia com uma equipa de desenvolvimento em Madrid. Tem seis máquinas de desenvolvimento e duas de staging na AWS, em us-east-1, ligadas dia e noite. Os preços são aproximados, de tabela, a pedido e com Linux:
ACME · ambientes de desenvolvimento e staging
- 6 × t3.large (desenvolvimento)
- cerca de 0,083 US$/hora → 364 US$/mês ligadas 24/7
- 2 × m5.xlarge (staging)
- cerca de 0,192 US$/hora → 280 US$/mês ligadas 24/7
- Computação total
- 645 US$/mês
- 8 volumes gp3 de 100 GB
- cerca de 0,08 US$/GB-mês → 64 US$/mês, ligadas ou não
- Horário de utilização real
- de segunda a sexta, das 08:00 às 20:00 (hora de Madrid)
Passo 1: encontrar candidatas em Descobertas ativas
Depois do primeiro scan da conta, abra Descobertas ativas. Três regras ajudam a localizar ambientes que sobram à noite:
- «CPU subutilizada»: CPU média inferior a 5 % nos últimos 7 dias. Uma máquina de desenvolvimento que só trabalha algumas horas por dia costuma aparecer aqui.
- «Instâncias paradas com volumes»: alguém já a desligou à mão, mas os discos continuam a faturar. Decida se a vai voltar a usar (então agende-a) ou se sobra (então termine-a, depois de um snapshot se quiser guardar os dados).
- «Recursos sem tags»: o recurso tem menos de duas destas etiquetas: Environment, Project, Owner, CostCenter ou Team. Etiquetar Environment=dev ou Environment=staging é o que depois permite separar o que se pode desligar do que não se pode.
Ordene por «Poupança/mês» e abra o detalhe de cada descoberta: a «Recomendação» explica o que fazer e porquê. O que não vai tratar, marque-o como «Descartado» para deixar de contar nos KPIs.
Passo 2: calcular a poupança no Simulador
Em Resumo de economia → Simulador de economia, escolha a conta e ative o cenário «Desligar Dev/Staging à noite». Tem dois campos:
- «Custo EC2 Dev (USD/mês)»: vem preenchido com 40 % do custo total da conta, que é apenas um ponto de partida. Substitua-o pelo custo real das suas máquinas de desenvolvimento e staging; a ACME introduz 645.
- «Horas desligadas/dia»: as horas que estariam desligadas em cada dia útil. Das 20:00 às 08:00 são 12.
Carregue em «Simular economia». O simulador conta 12 horas vezes 5 dias úteis vezes 4,33 semanas sobre 730 horas por mês: 35,6 % do custo, cerca de 229,55 US$/mês para a ACME. Não inclui o fim de semana, por isso tome-o como um mínimo. Também limita o resultado a 85 % do custo.
As contas completas, com o fim de semana
Com um horário que desliga às 20:00 e liga às 08:00 de segunda a sexta, as máquinas desligam-se na sexta à noite e só voltam a arrancar na segunda de manhã. Estas são as contas da ACME:
ACME · antes e depois do horário
- Horas ligadas por semana
- 5 × 12 h = 60 h de 168 (36 %)
- Horas desligadas por semana
- 108 h (64 %): cinco noites e o fim de semana inteiro
- Computação depois
- 645 × 60 / 168 ≈ 230 US$/mês
- Poupança em computação
- 645 × 108 / 168 ≈ 414 US$/mês, cerca de 4.970 US$/ano
- Fatura destes ambientes
- de 709 para 294 US$/mês com os 64 US$ de discos: menos 58 %
- A poupança vem da computação; os discos custam o mesmo. Por isso 64 % de horas desligadas ficam em 58 % da fatura do ambiente.
- Se alguma dessas máquinas estivesse coberta por uma Reserved Instance ou um Savings Plan, teria de sair do cálculo.
Passo 3: preparar a conta para que o agente possa agir
A função com que ligou a conta é só de leitura e não pode desligar nada. As automatizações precisam de mais duas coisas:
- Na AWS, o papel de agente. Instala-se no último passo do assistente de ligação, «Ativar agente autónomo (opcional)», com o botão «Instalar papel de agente na AWS»: uma segunda stack de CloudFormation que cria a função FinOpsSentinelAgent. Se o saltou, pode instalá-lo mais tarde em Minhas contas cloud.
- Na AWS, a etiqueta FinOpsSentinelManaged=true em cada instância que quiser agendar. O papel de agente só pode arrancar e parar instâncias com essa etiqueta e não a pode pôr a si próprio: é o utilizador que a põe.
- No Azure e no Google Cloud, as permissões de escrita do mesmo passo do assistente. No Azure a VM é desalocada, não apenas parada, para deixar de pagar computação; no Google Cloud a instância é parada.
A etiqueta é a sua autorização explícita, máquina a máquina. Se uma instância agendada não a tiver, a execução falha com uma mensagem que o diz, em vez de um erro de permissões sem explicação.
Passo 4: criar a automatização
Em Agente IA → Automatizações, carregue em «Novo agendamento». É assim que a ACME o preenche:
AAA Sentinel · Novo agendamento
- Conta
- acme-dev (aws)
- Nome
- Desligar dev e staging à noite
- Descrição (opcional)
- Fora do horário de trabalho e aos fins de semana
- Desligar às
- 20:00
- Ligar às
- 08:00
- Fuso horário
- Europe/Madrid
- Dias da semana
- de segunda a sexta
- Provedor
- AWS
- Região da AWS
- us-east-1 (uma automatização por região)
- IDs de instâncias (um por linha)
- os oito IDs i-…
- Economia estimada ($/mês)
- 414
- Os dias valem para o desligar e para o ligar. De segunda a sexta, o desligar de sexta não tem ligar até segunda: o fim de semana fica coberto sem fazer mais nada.
- «Economia estimada ($/mês)» é o valor que declara, o do cálculo anterior. A plataforma mostra-o no cartão e soma-o ao total das automatizações ativas; não é uma medição.
- Criar, pausar ou apagar uma automatização exige permissão de escrita sobre o agente, que têm os papéis de proprietário e administrador.
Passo 5: confirmar que se cumpre
Depois de criada, a automatização aparece como «Ativo», com o horário, o fuso horário, o número de instâncias e a poupança declarada. A partir daí:
- O cartão indica quando foi a última execução e quantas leva.
- Cada desligar e cada ligar fica em Agente IA → Histórico, como concluído ou falhado, com o erro se houver (por exemplo, uma instância sem a etiqueta).
- O interruptor «Pausar» suspende a automatização sem a apagar. Atenção: pausar não liga as máquinas; se alguém precisar do ambiente nessa noite, arranque-o à mão.
- Apagar a automatização elimina as suas duas regras agendadas. As máquinas ficam no estado em que estiverem.
O que ainda não faz
Para saber o que esperar:
- Só arranca e para instâncias: EC2 na AWS, máquinas virtuais no Azure e instâncias do Compute Engine no Google Cloud. Não agenda bases de dados RDS, grupos de Auto Scaling nem nós de Kubernetes.
- Não há calendário de feriados: o horário define-se por dias da semana.
- Cada automatização aceita até 50 instâncias e uma organização pode ter até 200.
- O formulário oferece cinco fusos horários: Europe/Madrid, três fusos dos Estados Unidos e UTC.
- A poupança do cartão é a que declara, não uma medida na fatura.
- Se a subscrição expirar, as automatizações deixam de ser executadas.
Checklist para começar
Com isto em ordem, os seus ambientes de desenvolvimento deixam de pagar as noites e os fins de semana sem que ninguém tenha de se lembrar:
- Conta ligada e analisada; candidatas revistas em Descobertas ativas.
- Ambientes etiquetados com Environment=dev ou Environment=staging.
- Poupança calculada no Simulador de economia e completada à mão com o fim de semana.
- Confirmado que nenhuma candidata está coberta por uma reserva nem dentro de um grupo de Auto Scaling.
- Plano Business, papel de agente instalado e FinOpsSentinelManaged=true em cada instância.
- Automatização criada e primeira execução verificada no Histórico.