EKS: Versões de EKS
Esta regra realiza o inventário e identificação de todos os Clusters Amazon EKS (Elastic Kubernetes Service) ativos na conta AWS. Ela lista os clusters provisionados, independentemente do status dos Worker Nodes ou da carga de trabalho, permitindo visibilidade sobre os custos fixos do Control Plane (Plano de Controle) do Kubernetes gerenciado.
Contexto da regra e impacto no negócio
O Amazon EKS cobra uma taxa fixa por hora para cada cluster criado (referente ao gerenciamento do Control Plane), além dos custos dos recursos de computação (EC2 ou Fargate) utilizados pelos nós.
Riscos e Impactos:
Custo Fixo ("Taxa de Cluster"): Cada cluster EKS gera um custo aproximado de $73,00 USD por mês (cerca de $0.10/hora), mesmo que não tenha nenhum Worker Node rodando ou que esteja ocioso.
Shadow IT: É comum que desenvolvedores criem clusters para testes e esqueçam de deletá-los. Um cluster esquecido continua gerando cobrança do Control Plane indefinidamente.
Governança de Versão: Manter visibilidade de todos os clusters ajuda a identificar versões do Kubernetes (
version) que estão próximas do fim do suporte (EOL), mitigando riscos de segurança e compatibilidade.
O objetivo desta regra é garantir que a organização pague apenas pelos Control Planes que são efetivamente necessários e produtivos.
Detalhamento técnico da regra
A regra executa uma varredura regional utilizando as APIs do serviço EKS para catalogar a infraestrutura de orquestração de containers.
Como a regra é executada:
O CCA autentica na conta AWS e itera sobre todas as regiões ativas.
Utiliza a API
eks:ListClusterspara obter os nomes de todos os clusters na região.Para cada cluster encontrado, executa
eks:DescribeClusterpara obter metadados detalhados (ARN, versão, status, endpoint, data de criação).Executa
eks:ListTagsForResourcepara capturar as tags de cada cluster.Aplica os filtros de tags (inclusão/exclusão) configurados na regra.
Retorna todos os clusters que passaram pelos filtros de tags.
Parâmetros considerados na busca:
APIs:
eks:ListClusters,eks:DescribeCluster,eks:ListTagsForResource.Campos Analisados:
cluster.name,cluster.status,cluster.version,cluster.createdAt,cluster.tags.Escopo: Regional.
Período Avaliado (Filtro Temporal):
A regra avalia o estado atual do recurso (Snapshot). O intervalo de análise corresponde ao operador do período do filtro (ex: "maior que") combinado com os dias do período do filtro definidos na configuração da regra. Nota Técnica: Embora o CCA suporte filtros temporais, esta regra específica, em sua lógica padrão, lista todos os clusters ativos para inventário e visibilidade de custo fixo, a menos que customizações de código sejam aplicadas para filtrar por data de criação (createdAt).
Intervalo de Análise:
Execução padrão: a cada 8 horas.
Cálculo de Savings
O savings é projetado com base na eliminação do custo fixo do Control Plane de clusters que forem identificados como desnecessários (ociosos, testes finalizados, duplicados).
Fórmula Conceitual:
Campo de custo utilizado:
Service:
AmazonEKSUsage Type: Geralmente
AmazonEKS-Hours:Headlessou similar (varia por região).Campo Financeiro:
Unblended Cost(ouAmortized Costconforme visão financeira).
Premissas:
Considera-se o preço público médio de $0.10 USD por hora por cluster (pode variar ligeiramente dependendo da região, mas é o padrão na maioria).
Não inclui no cálculo o custo dos Worker Nodes (EC2), pois estes variam dinamicamente. O savings real ao desligar um cluster completo seria: Custo do Control Plane + Custo dos Nodes. O cálculo aqui é conservador, focando apenas no custo fixo do EKS.
Exemplo aplicado ao Billing:
Cenário: Identificado 1 cluster de teste chamado eks-poc-analytics criado há 45 dias e sem uso atual.
Valor Atual (Custo Fixo):
$0.10/hora × 730 horas/mês = $73.00 USD/mês.
Valor Otimizado:
Exclusão do Cluster: $0.00 USD.
Resultado Final de Savings:
$73.00 USD mensais recorrentes apenas pelo Control Plane.
Se houver 2 instâncias
m5.largeassociadas (workers), o savings total seria ainda maior (aprox. +$140.00), totalizando ~$213.00.
Dicas de uso e boas práticas para o usuário
Validação de Ociosidade: Antes de deletar, verifique se há Node Groups ou Fargate Profiles associados e se há Pods rodando (conecte-se via
kubectl).Ambientes de Desenvolvimento: Para ambientes não produtivos, avalie desligar o cluster fora do horário de uso. Como o EKS não possui "Stop/Start" nativo para o Control Plane (apenas deleção), considere automações que destroem e recriam o cluster via IaC (Terraform/CDK) ou consolide múltiplos ambientes (Namespaces) em um único cluster de desenvolvimento para pagar apenas uma taxa de Control Plane.
Tags Obrigatórias: Utilize tags como
Environment,OwnereCostCenterpara facilitar a identificação de quem é o dono do cluster e se ele ainda é necessário.Versões Depreciadas: Utilize esta listagem para identificar clusters com versões antigas do Kubernetes que precisam de upgrade urgente.
Last updated