Consultar os custos da AWS pelo CloudShell é uma forma alternativa, simples e rápida de identificar quais serviços estão gerando cobranças em uma conta AWS. Com um único comando, você pode gerar uma tabela em formato ASCII com os custos acumulados no mês, agrupados por serviço.
Eu utilizo esse tipo de consulta quando quero visualizar, de maneira direta e minimalista, todos os serviços que estão gerando custos. Neste artigo, vou explicar as diferenças entre o AWS Cost Explorer e o AWS CloudShell, além de mostrar os resultados que obtive.
Índice
Como o AWS Cost Explorer ajuda a analisar custos
O AWS Cost Explorer permite visualizar, filtrar e analisar os custos e o uso da sua conta AWS para facilitar a investigação de tendências, comparar períodos e analisar os custos com mais detalhes.
Para isso, o serviço permite que você agrupe as informações por serviço, região, conta vinculada, tipo de uso e outras dimensões.
Por que usar o AWS CloudShell para uma consulta rápida
O acesso do AWS CloudShell é por meio de um terminal que é acessado diretamente pelo Console de Gerenciamento da AWS. Outra característica é que o AWS CLI já vem instalado, e as credenciais utilizadas para acessar o console são encaminhadas automaticamente para a sessão do CloudShell.
Isso significa que você não precisa instalar o AWS CLI no seu computador nem configurar credenciais localmente. Basta abrir o CloudShell, colar o comando e aguardar o resultado.
Sobre os custos, o CloudShell está disponível sem cobrança adicional. No entanto, você continua pagando pelos recursos de outros serviços AWS utilizados ou criados por meio dele, além das tarifas padrão de transferência de dados.
No exemplo da imagem acima, o comando de consulta utiliza a API do AWS Cost Explorer, que cobra US$ 0,01 por solicitação paginada.
Se colocarmos esse custo de lado, o relatório que é entregue ao utilizar o AWS CloudShell, pessoalmente, considero satisfatório e prático.
Como consultar os custos da AWS pelo CloudShell
Antes de executar o comando, o AWS Cost Explorer precisa estar habilitado na conta, a sua identidade deve possuir a permissão de acesso, e o controle de acesso deve estar habilitado.
Depois disso, abra o Console de Gerenciamento da AWS, procure pelo serviço CloudShell e execute:
aws ce get-cost-and-usage \
--time-period Start=$(date -u +%Y-%m-01),End=$(date -u -d '+1 day' +%Y-%m-%d) \
--granularity MONTHLY \
--metrics UnblendedCost \
--group-by Type=DIMENSION,Key=SERVICE \
--query 'ResultsByTime[0].Groups[?to_number(Metrics.UnblendedCost.Amount)!=`0`].[Keys[0],Metrics.UnblendedCost.Amount,Metrics.UnblendedCost.Unit]' \
--output table \
--no-cli-pager
Este comando utiliza a operação get-cost-and-usage para consultar os dados disponíveis no Cost Explorer.
Para você entender o que cada parte faz, aqui está um resumo com os pontos principais:
Startdefine o primeiro dia do mês atual.Enddefine o dia seguinte como data final.MONTHLYreúne os valores do período em um resultado mensal.UnblendedCostretorna o custo não combinado de cada serviço.SERVICEagrupa os resultados por serviço AWS.--queryremove os resultados com valor igual a zero e seleciona o nome do serviço, o valor e a moeda.--output tableorganiza as informações em uma tabela.--no-cli-pagerapresenta o resultado diretamente no terminal.
No meu resultado de exemplo, foi possível identificar rapidamente os serviços que tiveram custos.
Cost Explorer e CloudShell se complementam
O AWS Cost Explorer e o AWS CloudShell não se substituem neste contexto. As duas formas de consulta acessam os mesmos dados do Cost Explorer, mas por caminhos diferentes. Pela interface visual ou por meio de um comando que consulta sua API.
Enquanto o AWS Cost Explorer oferece uma experiência visual para investigar tendências, comparar períodos e aplicar filtros, o AWS CloudShell permite obter uma resposta direta com apenas um comando.
Minha escolha pelo AWS CloudShell foi motivada principalmente pela rapidez, apesar de haver um custo que considero relativamente baixo para esse tipo de consulta.
Embora o AWS Cost Explorer ofereça uma interface visual, é necessário ajustar o período, a métrica, o agrupamento e os filtros da análise. Por meio do terminal, consigo obter essa mesma resposta, com uma linha de comando.
Se você nunca utilizou o AWS CloudShell, deixo o desafio para você testar esse comando em sua conta. Depois, conte nos comentários quais serviços apareceram no seu resultado e como foi a sua experiência em consultar os custos, utilizando o AWS CloudShell.