Tempo de leitura: 6 minutos
Em meu último artigo falei sobre os modelos de definição de preços na AWS e a importância de conhecer esses conceitos dado que eles têm influência direta na fatura mensal de sua conta.
Mas, muito mais importante do que conhecer os conceitos, é necessário ter um controle pró-ativo desses custos.
Por isso, hoje iremos aprender a como monitorar, de forma simples e direta, os custos de sua conta na AWS.
Nesse artigo você descobrirá:
- Quais serviços podem nos auxiliar no monitoramento de custos na AWS
- Como criar um alarme para o controle de custos no escopo geral de sua conta
Pré-requisitos:
- Sua conta na AWS já deve ter sido configurada, caso ainda não tenha feito isso, você pode seguir a documentação oficial que eu indico nessa nota aqui.
- O usuário precisa ter permissão para acessar os serviços Amazon CloudWatch e Amazon SNS, além de acesso ao console de “Billing & Cost Management”.
Nesse artigo criaremos um “Billing Alert”, ou seja, um alerta que te indicará, de forma automática, quando sua fatura atingir um orçamento pré-definido.
O Amazon CloudWatch nos auxiliará na criação do alarme e o Amazon SNS (Simple Notification Service) será o responsável por notificar o usuário quando o limite for atingido.
Mas antes de passarmos para a prática, iremos conhecer um pouco mais sobre os dois serviços que iremos utilizar. Mas, se você quiser, já pode ir direto para o tutorial prático.
Amazon CloudWatch
O Amazon CloudWatch é um serviço de monitoramento e observabilidade que nos fornece dados e “insights” interessantes para monitorar nossas aplicações.
Ele coleta dados operacionais e de monitoramento na forma de logs, métricas e eventos.
Por meio dele conseguimos ter uma visão unificada da integridade operacional e visibilidade completa dos recursos, aplicações e serviços em execução na AWS.
Por meio do CloudWatch é possível detectar comportamentos anormais nos ambientes, definir alarmes, visualizar logs e métricas lado a lado, além de executar ações de forma automatizada a fim de solucionar problemas.
Em nosso contexto, iremos utilizar métricas de faturamento, disponibilizadas pelo serviço de “Billing”, a fim de monitorar nossa fatura mensal.
SNS (Simple Notification Service)
Não adianta nada monitorarmos nossas métricas se ninguém for avisado quando ocorre algum problema, certo?
É nesse contexto que entra o Amazon SNS.
O Amazon Simple Notification Service é um serviço de mensagens totalmente gerenciado pela AWS. Nele, podemos estabelecer a comunicação entre aplicações (A2A) e de aplicação para pessoa (A2P).
Por meio dele, iremos notificar, por e-mail, os usuários interessados em saber quando o orçamento for ultrapassado.
A imagem abaixo nos dá uma visão geral de como será a solução:
Agora sim vamos para a prática, seguiremos os passos abaixo:
- Habilitar os alertas de cobrança via console da AWS
- Criar um alarme no CloudWatch via console da AWS
- Configurar as condições e limites que servirão como gatilhos para o alarme
- Definir um tópico no SNS para notificação do usuário
Habilitar os alertas de cobrança via console da AWS
Na AWS, por padrão, as funcionalidades vem desligadas.
Então, o primeiro passo é garantir que as métricas de faturamento estejam habilitadas.
Para fazer isso, precisamos acessar o console de “Billing and Cost Management” e depois clicar na opção à direita chamada Preferências | Preferências de faturamento, conforme imagem abaixo:
A tela de preferências será apresentada. Habilite o “checkbox” Receber alertas de faturamento.
Observação importante: depois de habilitar essas métricas demora, mais ou menos, de 15 a 20 minutos para que elas estejam disponíveis. Após esse período será possível configurar alarmes de faturamento.
Criar um alarme no CloudWatch via console da AWS
Depois de habilitarmos as métricas, chegou a hora de visitarmos o console do CloudWatch para criarmos um alarme.
Observação importante: confirme se você está na região correta no console, caso contrário, as métricas não irão aparecer no momento da configuração do alarme.
No console, no menu à esquerda, selecione a opção Todos os alarmes e depois clique no botão à direita Criar alarme, conforme imagem abaixo:
Após isso, precisaremos selecionar a métrica que desejamos monitorar. Para isso, clique na opção Selecionar métrica.
Na próxima tela, na lista de métricas disponíveis, selecione Faturamento e depois Carga Total Estimada. O passo final é escolha da métrica “EstimatedCharges”.
“EstimatedCharges” é uma métrica de faturamento que nos indica o valor cobrado pela utilização dos serviços da AWS.
Configurar as condições e limites que servirão como gatilhos para o alarme
Escolhida a métrica, na próxima tela, na sessão Condições, iremos definir as condições que ativarão o alarme.
Como nossa solução será baseada em um limite de orçamento, em dólares, precisaremos configurar as condições conforme a imagem abaixo:
Essa configuração nos indica que, no momento em que o faturamento ultrapassar o limite de 10 dólares, o alarme será ativado.
Clique em Próximo.
Definir um tópico no SNS para notificação do usuário
Lembre-se que desejamos fazer um monitoramento pró-ativo de nosso orçamento.
Então, o próximo passo será a configuração de um tópico SNS para que o usuário seja notificado assim que o alarme for ativado.
Vejam que, na tela seguinte, podemos ter o alarme em três estados: Em Alarme, OK e Dados Insuficientes.
Selecionaremos o estado Em alarme, que nos indica que o limite do orçamento foi ultrapassado.
Você pode usar um tópico existente ou criar um novo. No exemplo acima, estou criando um novo tópico para notificar a lista de usuários especificada no campo Endpoints de e-mail que receberão a notificação.
Ao clicar no botão Criar tópico, teremos a seguinte tela:
Agora é só rolar um pouco para baixo e clicar em Próximo.
Finalizando seu alarme
O passo seguinte é dar um nome e descrição para o alarme:
A próxima tela será um apanhado geral das configurações cadastradas. Você pode revisar essas configurações e, se necessário, editá-las clicando no botão Editar.
Depois de confirmar que as configurações estão corretas, clique no botão Criar alarme.
Para receber as notificações do SNS, os e-mails cadastrados devem confirmar a assinatura ao tópico. Para isso, basta acessar o e-mail e clicar no link Confirm Subscription.
Quando nosso limite de orçamento for atingido, o estado do alarme ficará Em alarme e os usuários receberão um e-mail notificando da mudança de estado:
Então é isso pessoal. Espero que tenham gostado e que nunca mais passem aperto com uma fatura surpresa da AWS.
Abraços!

Referências
Creating a billing alarm to monitor your estimated AWS charges – Amazon CloudWatch
Amazon CloudWatch – Monitoramento de aplicações e infraestrutura