O blog da AWS

AWS e Kubecost colaboram para fornecer monitoramento de custos para clientes da EKS

Por Mike Stefaniak e Vipin Mohan, traduzido por Jean Philip de Rogatis Arquiteto de Soluções da AWS.

 

Introdução

Hoje, temos o prazer de anunciar o monitoramento de custos do Amazon Elastic Kubernetes Service (Amazon EKS) em colaboração com a  Kubecost. À medida que os clientes modernizam seus aplicativos e implantam cargas de trabalho usando o Amazon EKS, eles ganham eficiência consolidando os recursos computacionais necessários para executar seus aplicativos. No entanto, essa eficiência de utilização tem como contrapartida a maior dificuldade em medir os custos dos aplicativos. Nossos clientes nos dizem que querem uma visibilidade mais refinada da distribuição de custos de aplicativos executados no Amazon EKS que compartilham recursos da AWS, como instâncias do  Amazon EC2. Também vemos a necessidade de um monitoramento mais profundo dos custos do Kubernetes por meio de pesquisas conduzidas pela  CNCF e FinOps Foundation, onde quase um quarto (24%) dos entrevistados não monitoram os gastos com o Kubernetes e quase metade (44%) usa apenas estimativas mensais.

Embora os clientes possam monitorar o plano de controle do Kubernetes e os custos do EC2 usando os relatórios de custo e uso da AWS, eles precisam de insights mais profundos para rastrear com precisão os custos em nível de recursos do Kubernetes por namespace, cluster, pod ou conceitos organizacionais (por exemplo, por equipe ou aplicativo). Por exemplo, para determinar os recursos usados por um grupo específico de pods, os clientes precisavam agregar manualmente o uso de recursos de computação em um determinado período para calcular o custo. Os contêineres também costumam ter vida curta e podem ser dimensionados em vários níveis, de modo que o uso de recursos flutua com o tempo, aumentando ainda mais a complexidade dessa equação. O Amazon EKS é comumente usado em ambientes dinâmicos e/ou multilocatários, que exigem recursos específicos para um monitoramento preciso dos custos.

Esse é exatamente o desafio que a Kubecost se dedica a enfrentar. Fundada em 2019, a Kubecost foi lançada para oferecer aos clientes visibilidade sobre gastos e eficiência de recursos em ambientes Kubernetes, e hoje ajuda milhares de equipes a enfrentar esse desafio. O Kubecost é baseado no OpenCost, que foi recentemente aceito como um projeto Sandbox da Cloud Native Computing Foundation (CNCF), e é ativamente apoiado pela AWS.

Com esse anúncio, os clientes do Amazon EKS podem implantar um pacote de Kubecost otimizado para EKS para visibilidade dos custos do cluster. Isso está disponível gratuitamente e inclui suporte para solução de problemas do Kubecost. O Kubecost permite que os usuários visualizem os custos detalhados pelos recursos do Kubernetes, incluindo pods, nós, namespaces, rótulos e muito mais. Administradores da plataforma Kubernetes e líderes financeiros podem usar o Kubecost para visualizar um detalhamento de suas cobranças do Amazon EKS, alocar custos e unidades organizacionais de estorno (por exemplo, equipes de aplicativos). Os clientes podem fornecer às suas equipes internas e unidades de negócios dados de custos transparentes e precisos com base na fatura real da AWS e obter recomendações personalizadas para otimização de custos com base em seu ambiente de infraestrutura e padrões de uso em um único cluster.

Implantação do Kubecost no Amazon EKS

Para começar, você pode seguir estas etapas para implantar o Kubecost em seu cluster Amazon EKS em alguns minutos usando o Helm.

Pré-requisitos:

  1. Instale as seguintes ferramentas: Helm 3.9+, kubectl e, opcionalmente, eksctl e awscli.
  2. Você tem acesso a um Amazon EKS cluster. Para implantar um, consulte Começando a usar o Amazon EKS.
  3. Se o seu cluster estiver executando o Kubernetes versão 1.23 ou posterior, você deverá ter o driver Amazon EBS CSI instalado em seu cluster.

Etapa 1: Instale o Kubecost em seu cluster Amazon EKS.

Em seu ambiente, execute o seguinte comando em seu terminal para instalar o Kubecost em seu cluster Amazon EKS existente.

helm upgrade -i kubecost \
oci://public.ecr.aws/kubecost/cost-analyzer --version 1.99.0 \
--namespace kubecost --create-namespace \
-f https://raw.githubusercontent.com/kubecost/cost-analyzer-helm-chart/develop/cost-analyzer/values-eks-cost-monitoring.yaml

Nota: Você pode encontrar todas as versões disponíveis do pacote Kubecost otimizado para EKS aqui. Recomendamos encontrar e instalar a versão mais recente do gráfico do analisador de custos Kubecost disponível.

Por padrão, a instalação inclui determinados softwares de pré-requisitos, incluindo Prometheus e kube-state-metrics. Para personalizar sua implantação (por exemplo, ignorar esses pré-requisitos se você já os tiver em execução no cluster), você pode encontrar uma lista das opções de configuração disponíveis no arquivo de configuração do Helm.

Etapa 2: Gere o endpoint do painel Kubecost.

Depois de instalar o Kubecost usando o comando Helm na etapa 2, ele deve levar menos de dois minutos para ser concluído. Você pode executar o seguinte comando para ativar o encaminhamento de porta para expor o painel do Kubecost:

kubectl port-forward --namespace kubecost deployment/kubecost-cost-analyzer 9090

Etapa 3: Acesse o painel de monitoramento de custos.

Em seu navegador da web, navegue até http://localhost:9090 para acessar o painel.

Agora você pode começar a monitorar o custo e a eficiência do seu cluster Amazon EKS. Dependendo dos requisitos e da configuração da sua organização, há várias opções para expor o Kubecost para acesso interno contínuo. Há alguns exemplos que você pode usar para suas referências:

Veja a seguir exemplos das métricas disponíveis no painel do Kubecost.

Visão geral do cluster

Use Kubecost to quickly see an overview of Amazon EKS spend, including cumulative cluster costs, associated Kubernetes asset costs, and monthly aggregated spend.Use o Kubecost para ver rapidamente uma visão geral dos gastos com o Amazon EKS, incluindo custos cumulativos de cluster, custos associados de ativos do Kubernetes e gastos mensais agregados.

Alocação de custos por namespace

View monthly Amazon EKS costs as well as cumulative costs per namespace and other dimensions up to the last 15 days. This enables you to better understand which parts of your application are contributing to Amazon EKS spend.Veja os custos mensais do Amazon EKS, bem como os custos cumulativos por namespace e outras dimensões até os últimos 15 dias. Isso permite que você entenda melhor quais partes do seu aplicativo estão contribuindo para os gastos com o Amazon EKS.

Gastos e uso de outros serviços da AWS associados aos clusters do Amazon EKS

View the costs of AWS infrastructure assets that are associated with their EKS resources.Veja os custos dos ativos de infraestrutura da AWS associados aos seus recursos de EKS.

Métricas de custo de exportação

Em um alto nível, o monitoramento de custos do Amazon EKS é implantado com o Kubecost, que inclui o Prometheus, um sistema de monitoramento de código aberto e banco de dados de séries temporais. O Kubecost lê as métricas do Prometheus e, em seguida, realiza cálculos de alocação de custos e grava as métricas de volta no Prometheus. Finalmente, o front-end do Kubecost lê as métricas do Prometheus e as mostra na interface de usuário (UI) do Kubecost. A arquitetura é ilustrada pelo diagrama a seguir:

Diagram showing Kubecost reading Prometheus metrics

Métricas de leitura do Kubecost

Com o Prometheus pré-instalado, você também pode escrever consultas para ingerir dados do Kubecost em seu sistema de inteligência de negócios atual para análise posterior. Você também pode usá-lo como uma fonte de dados para seu painel atual do Grafana para exibir o custo do cluster do Amazon EKS com o qual suas equipes internas estão familiarizadas. Para saber mais sobre como escrever consultas do Prometheus, revise a documentação do Kubecost ou use exemplos de modelos JSON do Grafana no repositório Kubecost Github como referência.

Integração do Relatório de Custo e Uso da AWS (AWS CUR)

Para realizar cálculos de alocação de custos para seu cluster Amazon EKS, o Kubecost recupera as informações públicas de preços dos serviços e recursos da AWS da API da Lista de Preços da AWS. Você também pode integrar o Kubecost com o AWS CUR para melhorar a precisão das informações de preços específicas da sua conta da AWS (por exemplo, programas de descontos corporativos, uso de instâncias reservadas, planos de economia e uso spot). Você pode saber mais sobre como a integração com o AWS CUR funciona na AWS Cloud Integration.

Limpeza

Você pode desinstalar o Kubecost do seu cluster com o seguinte comando.

helm uninstall kubecost --namespace kubecost 

Conclusão

Estamos entusiasmados em lançar esses novos recursos de monitoramento de custos em colaboração com a Kubecost, que permitem que os clientes monitorem e rastreiem os custos com o Amazon EKS. Destacaremos recursos adicionais nos próximos meses à medida que forem disponibilizados na versão do Kubecost com suporte da AWS, como suporte a vários clusters e integração simplificada com o Amazon Managed Service for Prometheus e os relatórios de custo e uso da AWS. Como sempre, você pode fornecer feedback sobre o roadmap público do AWS Containers. Se precisar de suporte, você pode enviar uma solicitação de suporte por meio do seu contrato de suporte existente da AWS. Se você quiser saber mais com a equipe da Kubecost, entre em contato com eles aqui.

 

Este artigo foi traduzido do Blog da AWS em Inglês.


Sobre os autores

Linh Lam

 

 

 

 

Mike Stefaniak é gerente de produto principal da Amazon Web Services, focando em tudo relacionado ao Kubernetes e fornecendo recursos que ajudam os clientes a acelerar sua jornada de modernização na AWS. 

 

 

 

Vipin Mohan é gerente de produto principal da equipe Kubernetes na Amazon Web Services. Ele gosta de criar produtos e oferecer experiências agradáveis aos clientes. Fora do trabalho, ele adora ler sobre investimentos financeiros e empreendedorismo e explorar o mundo pelos olhos de seus dois filhos.

 

 

 

 

Jean Philip de Rogatis é Arquiteto de soluções sênior na AWS, Trabalhando na indústria de Entusiasta de novas tecnologias, construiu mais de 10 sistemas, de soluções de big data a portais de vendas, entregando um crescimento YoY de três dígitos e liderando uma equipe de 50+ pessoas. Ajuda empresas a transformar seus negócios, adotando tecnologias baseadas em nuvem para encantar seus clientes, parceiros e funcionários.

Me siga no LinkedIn: https://www.linkedin.com/in/jrogatis/