Painéis

Exemplo: gastos por serviço

Ative as métricas de faturamento e depois adicione as predefinições de gastos do CloudPeek ou crie um painel do CloudWatch com seus maiores custos deste mês. O painel pode ser criado no console da AWS ou em uma única implantação com o CloudFormation ou o Terraform.

Atualizado em 19 de outubro de 2026

Prefere não configurar nada? Use as predefinições de gastos

Se você só quer sua fatura da AWS na Tela de Início, não precisa de um painel. Ative as métricas de faturamento (etapa 1) e depois adicione as predefinições de gastos do CloudPeek com Criar Widget › Predefinição. Juntas, elas mostram tudo o que o painel abaixo mostra:

Widget de painelPredefiniçãoDiferença
Top 5 services by spendGastos por serviçoTodos os serviços, do maior para o menor, com os que não cabem somados em Outros. O total é a soma dos serviços, e não a fatura inteira.
Gastos do mêsGastos do mêsIgual.
Last 7 days' spendGastos diários por contaIgual, com as contas empilhadas na coluna de cada dia em uma conta de gerenciamento do AWS Organizations, e também pode mostrar 2 semanas, 30 dias ou o mês até agora.
Top 5 services' share of spendDivisão dos gastosTodos os serviços, não só cinco.

As predefinições também incluem Previsão de fim de mês, Gastos e previsão, Gastos diários por serviço, Tabela de gastos diários e Tendência de gastos: consulte Predefinições. Crie o painel se você quiser um top 5 fixo, a fatura inteira como total, os mesmos widgets no console do CloudWatch ou um painel mantido no CloudFormation ou no Terraform.

O que você vai criar

Você vai criar um painel do CloudWatch chamado CloudPeek-Spend com quatro widgets. O primeiro é um gráfico de barras dos cinco serviços com que você mais gastou até agora neste mês, encontrados automaticamente, com o total da sua conta. O segundo é esse total do mês até agora, com um minigráfico da última semana. O terceiro mostra quanto você gastou em cada um dos últimos 7 dias, uma coluna por dia, e o quarto é um gráfico de pizza de como seus cinco principais serviços dividem os gastos. No CloudPeek, eles ficam assim:

No gráfico de barras, os serviços que não cabem são somados em Outros.

Leva cerca de 15 minutos no console da AWS, ou uma implantação com o CloudFormation ou o Terraform. Escolha sua ferramenta nas abas de cada etapa.

Antes de começar

  • Uma conta da AWS e um login que possa alterar as preferências de faturamento e criar painéis do CloudWatch e usuários e políticas do IAM, como um administrador. Se suas contas estiverem no AWS Organizations, use a conta de gerenciamento para ver os gastos de toda a organização.
  • O CloudPeek no seu iPhone, iPad ou celular Android.

Quanto custa. As métricas de faturamento são gratuitas. O nível gratuito do CloudWatch inclui três painéis; além disso, cada painel custa US$ 3 por mês. As atualizações do CloudPeek chamam GetMetricData, que a AWS cobra a US$ 0,01 a cada 1.000 métricas. A AWS atualiza as métricas de faturamento só algumas vezes por dia, então esses widgets são atualizados no máximo a cada 3 horas: com os quatro fixados, são cerca de 15 métricas por atualização, cerca de US$ 0,04 por mês. Em Ajustes (Configurações, no Android), você vê essa estimativa para os seus widgets, em Atualizar. Consulte Preços do CloudWatch.

1. Ative as métricas de faturamento

A AWS só envia suas cobranças estimadas ao CloudWatch depois que você ativa essa opção. Isso é feito uma vez por conta, no console: o CloudFormation, o Terraform e a AWS CLI não conseguem alterar essa configuração.

  1. Faça login no console da AWS e abra Billing and Cost Management › Preferências de faturamento.
  2. Em Preferências de alerta, escolha Editar.
  3. Selecione Receber alertas de faturamento do CloudWatch e salve a alteração.

As cobranças estimadas são publicadas na região Leste dos EUA (Norte da Virgínia), us-east-1, várias vezes por dia. Elas são contadas desde o início do mês, então voltam a zero todo mês. Os primeiros dados podem levar algumas horas para aparecer. Se você não fez login como usuário raiz, a conta também precisa permitir o acesso do IAM às informações de faturamento (em Conta › Acesso de usuários e perfis do IAM às informações de faturamento).

Até os primeiros dados chegarem, o painel que você vai criar em seguida mostra Nenhum dado disponível, e os widgets de gastos do CloudPeek mostram “Ative os alertas de faturamento do CloudWatch no console do Billing. Os gastos aparecem em até um dia.” (“Ative os alertas de faturamento do CloudWatch.” em um widget pequeno). Para verificar se as métricas de faturamento já começaram a chegar, abra o CloudWatch em us-east-1 e escolha Métricas › Todas as métricas: um namespace Billing aparece quando elas chegam. O Metrics Explorer não lista métricas de faturamento, então procure em Todas as métricas.

No AWS Organizations, as métricas de faturamento ficam só na conta de gerenciamento, que tem as cobranças de todas as contas, separadas por conta (Gastos por conta). As outras contas não têm nenhuma, então ative os alertas de faturamento na conta de gerenciamento e adicione-a ao CloudPeek para ter widgets de gastos. Em uma conta em que você fez login com o IAM Identity Center e que não é a conta de gerenciamento, os widgets de gastos do CloudPeek mostram “Os gastos desta conta ficam na conta de gerenciamento da sua organização.” (“Os gastos ficam na sua conta de gerenciamento.” em um widget pequeno). O CloudPeek reconhece a conta de gerenciamento por ela conseguir listar as contas da organização (organizations:ListAccounts, na política do CloudPeek), então dê essa permissão ao login da conta de gerenciamento.

2. Crie o painel

  1. Abra o console do CloudWatch em us-east-1 e escolha Criar painel.
  2. Dê a ele o nome CloudPeek-Spend e escolha Criar painel. Se a janela Adicionar widget abrir, feche-a.
  3. Escolha Ações › Visualizar/editar origem, substitua a origem pelo JSON do painel e escolha Atualizar.
  4. Escolha Salvar.

Baixe spend-by-service.json (ele está completo mais abaixo) e execute:

Shell
aws cloudwatch put-dashboard \
  --region us-east-1 \
  --dashboard-name CloudPeek-Spend \
  --dashboard-body file://spend-by-service.json

Um único modelo cria o painel e também a política do CloudPeek e o usuário do IAM da etapa 3. Este é o recurso do painel:

cloudpeek-setup.yaml (painel)Baixar
  Dashboard:
    Type: AWS::CloudWatch::Dashboard
    Properties:
      DashboardName: !Ref DashboardName
      DashboardBody: !Sub |
          {
            "start": "-P7D",
            "widgets": [
              {
                "type": "metric",
                "x": 0,
                "y": 0,
                "width": 12,
                "height": 8,
                "properties": {
                  "title": "Top ${TopServices} services by spend",
                  "view": "bar",
                  "region": "us-east-1",
                  "start": "-P1D",
                  "stat": "Maximum",
                  "period": 21600,
                  "metrics": [
                    [ "AWS/Billing", "EstimatedCharges", "Currency", "${Currency}", { "label": "Total" } ],
                    [ { "expression": "SORT(SEARCH('{AWS/Billing,Currency,ServiceName} MetricName=\"EstimatedCharges\" Currency=\"${Currency}\"', 'Maximum', 21600), MAX, DESC, ${TopServices})", "label": "${!PROP('Dim.ServiceName')}", "id": "top" } ]
                  ]
                }
              },
              {
                "type": "metric",
                "x": 12,
                "y": 0,
                "width": 6,
                "height": 8,
                "properties": {
                  "title": "Month-to-date spend",
                  "view": "singleValue",
                  "region": "us-east-1",
                  "stat": "Maximum",
                  "period": 21600,
                  "sparkline": true,
                  "metrics": [
                    [ "AWS/Billing", "EstimatedCharges", "Currency", "${Currency}", { "label": "Total" } ]
                  ]
                }
              },
              {
                "type": "metric",
                "x": 18,
                "y": 0,
                "width": 6,
                "height": 8,
                "properties": {
                  "title": "Last 7 days' spend",
                  "view": "timeSeries",
                  "region": "us-east-1",
                  "start": "-P7D",
                  "stat": "Maximum",
                  "period": 86400,
                  "yAxis": { "left": { "min": 0 } },
                  "metrics": [
                    [ { "expression": "IF(DIFF(m1) < 0, m1, DIFF(m1))", "label": "Spend", "id": "daily" } ],
                    [ "AWS/Billing", "EstimatedCharges", "Currency", "${Currency}", { "id": "m1", "visible": false } ]
                  ]
                }
              },
              {
                "type": "metric",
                "x": 0,
                "y": 8,
                "width": 12,
                "height": 8,
                "properties": {
                  "title": "Top ${TopServices} services' share of spend",
                  "view": "pie",
                  "region": "us-east-1",
                  "start": "-P1D",
                  "stat": "Maximum",
                  "period": 21600,
                  "metrics": [
                    [ { "expression": "SORT(SEARCH('{AWS/Billing,Currency,ServiceName} MetricName=\"EstimatedCharges\" Currency=\"${Currency}\"', 'Maximum', 21600), MAX, DESC, ${TopServices})", "label": "${!PROP('Dim.ServiceName')}", "id": "share" } ]
                  ]
                }
              }
            ]
          }

O corpo é o JSON do painel mais abaixo, com ${TopServices} e ${Currency} preenchidos a partir dos parâmetros da pilha. ${!PROP(…)} impede que o CloudFormation trate o rótulo dinâmico como uma de suas próprias variáveis.

Shell
aws cloudformation deploy \
  --region us-east-1 \
  --stack-name CloudPeek \
  --template-file cloudpeek-setup.yaml \
  --capabilities CAPABILITY_NAMED_IAM

Ou, no console do CloudFormation em us-east-1, escolha Fazer upload de um arquivo de modelo, dê à pilha o nome CloudPeek, confira os parâmetros e selecione Eu reconheço que o AWS CloudFormation pode criar recursos do IAM com nomes personalizados antes de enviar. Quando a pilha chegar a CREATE_COMPLETE, a aba Saídas dela terá um link para o painel.

ParâmetroPadrãoPara que serve
DashboardNameCloudPeek-SpendO nome do painel.
TopServices5Quantos dos seus maiores serviços mostrar no gráfico, de 1 a 20.
CurrencyUSDA moeda da sua fatura.
PolicyNameCloudPeekO nome da política.
CreateUsertrueDefina como false se você for fazer login com o IAM Identity Center.
UserNamecloudpeekO nome do usuário do IAM.

Para alterá-los, adicione --parameter-overrides, por exemplo, --parameter-overrides TopServices=10 CreateUser=false.

Uma única configuração cria o painel e também a política do CloudPeek e o usuário do IAM da etapa 3. Este é o recurso do painel:

cloudpeek-setup.tf (painel)Baixar
resource "aws_cloudwatch_dashboard" "spend" {
  dashboard_name = var.dashboard_name
  dashboard_body = jsonencode({
    start = "-P7D"
    widgets = [
      {
        type   = "metric"
        x      = 0
        y      = 0
        width  = 12
        height = 8
        properties = {
          title  = "Top ${var.top_services} services by spend"
          view   = "bar"
          region = "us-east-1"
          start  = "-P1D"
          stat   = "Maximum"
          period = 21600
          metrics = [
            ["AWS/Billing", "EstimatedCharges", "Currency", var.currency, { label = "Total" }],
            [{
              expression = "SORT(SEARCH('{AWS/Billing,Currency,ServiceName} MetricName=\"EstimatedCharges\" Currency=\"${var.currency}\"', 'Maximum', 21600), MAX, DESC, ${var.top_services})"
              label      = "$${PROP('Dim.ServiceName')}"
              id         = "top"
            }],
          ]
        }
      },
      {
        type   = "metric"
        x      = 12
        y      = 0
        width  = 6
        height = 8
        properties = {
          title     = "Month-to-date spend"
          view      = "singleValue"
          region    = "us-east-1"
          stat      = "Maximum"
          period    = 21600
          sparkline = true
          metrics = [
            ["AWS/Billing", "EstimatedCharges", "Currency", var.currency, { label = "Total" }],
          ]
        }
      },
      {
        type   = "metric"
        x      = 18
        y      = 0
        width  = 6
        height = 8
        properties = {
          title  = "Last 7 days' spend"
          view   = "timeSeries"
          region = "us-east-1"
          start  = "-P7D"
          stat   = "Maximum"
          period = 86400
          yAxis  = { left = { min = 0 } }
          metrics = [
            [{ expression = "IF(DIFF(m1) < 0, m1, DIFF(m1))", label = "Spend", id = "daily" }],
            ["AWS/Billing", "EstimatedCharges", "Currency", var.currency, { id = "m1", visible = false }],
          ]
        }
      },
      {
        type   = "metric"
        x      = 0
        y      = 8
        width  = 12
        height = 8
        properties = {
          title  = "Top ${var.top_services} services' share of spend"
          view   = "pie"
          region = "us-east-1"
          start  = "-P1D"
          stat   = "Maximum"
          period = 21600
          metrics = [
            [{
              expression = "SORT(SEARCH('{AWS/Billing,Currency,ServiceName} MetricName=\"EstimatedCharges\" Currency=\"${var.currency}\"', 'Maximum', 21600), MAX, DESC, ${var.top_services})"
              label      = "$${PROP('Dim.ServiceName')}"
              id         = "share"
            }],
          ]
        }
      },
    ]
  })
}

Ela gera exatamente o JSON do painel mais abaixo com jsonencode. $${PROP(…)} impede que o Terraform trate o rótulo dinâmico como uma interpolação. Salve o arquivo em um diretório vazio e execute:

Shell
terraform init
terraform apply
VariávelPadrãoPara que serve
dashboard_nameCloudPeek-SpendO nome do painel.
top_services5Quantos dos seus maiores serviços mostrar no gráfico, de 1 a 20.
currencyUSDA moeda da sua fatura.
policy_nameCloudPeekO nome da política.
create_usertrueDefina como false se você for fazer login com o IAM Identity Center.
user_namecloudpeekO nome do usuário do IAM.

Para alterá-las, passe -var, por exemplo, terraform apply -var top_services=10 -var create_user=false. Para adicionar o painel a uma configuração existente, copie os recursos e deixe de fora os blocos terraform e provider.

3. Crie um login para o CloudPeek

Siga Crie um login para o CloudPeek em Primeiros passos. Essa seção cria a política CloudPeek e um usuário do IAM com uma chave de acesso ou um conjunto de permissões do IAM Identity Center.

Siga Crie um login para o CloudPeek em Primeiros passos, que tem os comandos da AWS CLI para um usuário do IAM ou um conjunto de permissões do IAM Identity Center.

A pilha da etapa 2 já criou a política CloudPeek e, a menos que você tenha definido CreateUser como false, o usuário cloudpeek. Crie a chave de acesso do usuário. A chave secreta é mostrada só uma vez:

Shell
aws iam create-access-key --user-name cloudpeek

Para o IAM Identity Center, anexe CloudPeek a um conjunto de permissões como política gerenciada pelo cliente (consulte a Opção B).

A configuração da etapa 2 já criou a política CloudPeek e, a menos que você tenha definido create_user como false, o usuário cloudpeek. Crie a chave de acesso do usuário fora do Terraform, para que a chave secreta fique fora do seu estado. Ela é mostrada só uma vez:

Shell
aws iam create-access-key --user-name cloudpeek

Para o IAM Identity Center, anexe CloudPeek a um conjunto de permissões como política gerenciada pelo cliente (consulte a Opção B).

4. Adicione a conta e fixe os widgets

  1. No CloudPeek, adicione a conta na aba Contas com a chave de acesso ou o IAM Identity Center (consulte Primeiros passos, etapa 2). Qualquer região padrão serve: os widgets de gastos sempre leem us-east-1.
  2. Na aba Contas, abra a conta, depois o painel CloudPeek-Spend, e toque em Fixar nos widgets que você quiser: Top 5 services by spend, Month-to-date spend, Last 7 days' spend e Top 5 services' share of spend.
  3. Adicione o CloudPeek à Tela de Início uma vez para cada widget e escolha qual cada um mostra (consulte Escolher qual widget ele mostra). O tamanho médio é ideal para os gráficos de barras e de pizza; o pequeno, para o total do mês até agora e os últimos 7 dias.

Resultado: quando as métricas de faturamento chegarem, o gráfico de barras vai listar seus maiores serviços neste mês, com o total acima deles. Até lá, os widgets mostram Sem dados para este intervalo de tempo.

No iPhone e no iPad, o total também fica bem na Tela Bloqueada, onde os widgets mostram o valor mais recente.

Como o painel funciona

Seja qual for a ferramenta que você usou, este é o painel que você obtém:

spend-by-service.jsonBaixar
{
  "start": "-P7D",
  "widgets": [
    {
      "type": "metric",
      "x": 0,
      "y": 0,
      "width": 12,
      "height": 8,
      "properties": {
        "title": "Top 5 services by spend",
        "view": "bar",
        "region": "us-east-1",
        "start": "-P1D",
        "stat": "Maximum",
        "period": 21600,
        "metrics": [
          [ "AWS/Billing", "EstimatedCharges", "Currency", "USD", { "label": "Total" } ],
          [ { "expression": "SORT(SEARCH('{AWS/Billing,Currency,ServiceName} MetricName=\"EstimatedCharges\" Currency=\"USD\"', 'Maximum', 21600), MAX, DESC, 5)", "label": "${PROP('Dim.ServiceName')}", "id": "top" } ]
        ]
      }
    },
    {
      "type": "metric",
      "x": 12,
      "y": 0,
      "width": 6,
      "height": 8,
      "properties": {
        "title": "Month-to-date spend",
        "view": "singleValue",
        "region": "us-east-1",
        "stat": "Maximum",
        "period": 21600,
        "sparkline": true,
        "metrics": [
          [ "AWS/Billing", "EstimatedCharges", "Currency", "USD", { "label": "Total" } ]
        ]
      }
    },
    {
      "type": "metric",
      "x": 18,
      "y": 0,
      "width": 6,
      "height": 8,
      "properties": {
        "title": "Last 7 days' spend",
        "view": "timeSeries",
        "region": "us-east-1",
        "start": "-P7D",
        "stat": "Maximum",
        "period": 86400,
        "yAxis": { "left": { "min": 0 } },
        "metrics": [
          [ { "expression": "IF(DIFF(m1) < 0, m1, DIFF(m1))", "label": "Spend", "id": "daily" } ],
          [ "AWS/Billing", "EstimatedCharges", "Currency", "USD", { "id": "m1", "visible": false } ]
        ]
      }
    },
    {
      "type": "metric",
      "x": 0,
      "y": 8,
      "width": 12,
      "height": 8,
      "properties": {
        "title": "Top 5 services' share of spend",
        "view": "pie",
        "region": "us-east-1",
        "start": "-P1D",
        "stat": "Maximum",
        "period": 21600,
        "metrics": [
          [ { "expression": "SORT(SEARCH('{AWS/Billing,Currency,ServiceName} MetricName=\"EstimatedCharges\" Currency=\"USD\"', 'Maximum', 21600), MAX, DESC, 5)", "label": "${PROP('Dim.ServiceName')}", "id": "share" } ]
        ]
      }
    }
  ]
}
  • A linha de expressão encontra seus principais serviços para você. SEARCH encontra as cobranças estimadas de cada serviço, e SORT(…, MAX, DESC, 5) mantém as cinco maiores. Os serviços que você começar a usar aparecem sozinhos. Para mostrar mais ou menos, altere o 5 no fim das expressões dos gráficos de barras e de pizza (ou o parâmetro TopServices, ou a variável top_services).
  • O rótulo ${PROP('Dim.ServiceName')} dá a cada barra o nome do serviço, como AmazonEC2 ou AWSLambda. O CloudPeek mostra o nome curto (EC2, Lambda), lista os serviços do maior para o menor e soma os que não cabem em Outros.
  • A linha que tem só a dimensão Currency são as cobranças da conta inteira até agora neste mês. O CloudPeek mostra essa linha como o Total do widget, e não como uma barra, então os serviços fora do top 5 continuam contando. No console do CloudWatch, ela aparece como mais uma barra.
  • As cobranças são contadas desde o início do mês, então os gráficos de barras e de pizza olham só o último dia ("start": "-P1D"). Assim, a classificação segue as cobranças deste mês, e não as do mês passado. O total do mês até agora usa a semana do painel no minigráfico.
  • Os últimos 7 dias vêm da mesma cobrança do mês até agora, lida uma vez por dia ("period": 86400) da linha oculta m1. DIFF(m1) é quanto ela subiu a cada dia e, no dia em que ela volta a zero no início de um mês, IF(… < 0, m1, …) usa a cobrança do novo mês.
  • O CloudPeek desenha cada um desses dias como uma coluna, a partir da meia-noite no seu fuso horário, com o valor de hoje até agora à direita. O console do CloudWatch não tem um gráfico assim, então desenha os mesmos dias como uma linha.
  • Se a sua fatura não estiver em dólares americanos, troque cada USD nas linhas e expressões pelo código da sua moeda.
  • O gráfico de pizza usa a mesma expressão do gráfico de barras, sem a linha Total, então as fatias são a parte de cada um dos cinco principais serviços no que eles custam juntos. O CloudPeek coloca essa soma no meio.
  • Para incluir todo o resto na pizza como uma fatia Outros, com as cobranças da conta inteira no meio, copie para ela a linha Total do gráfico de barras. O console do CloudWatch passa então a desenhar o Total como mais uma fatia.

Para ver as cobranças de todos os serviços, abra o CloudWatch em us-east-1 e escolha Todas as métricas › Billing › Por serviço.

Para ver os gastos de cada serviço por dia, empilhados em uma coluna por dia, adicione a predefinição Gastos diários por serviço (consulte Predefinições de gastos) ou descreva o que você quer em um widget de IA, por exemplo, “Gastos diários por serviço nos últimos 7 dias, empilhados”. A cobrança de cada serviço também é contada desde o início do mês, então esses widgets calculam quanto cada uma subiu a cada dia, como DIFF(m1) faz para o total.

Para listar os gastos dos últimos 7 dias em uma tabela, uma linha por dia, do mais recente para o mais antigo, adicione a predefinição Tabela de gastos diários ou descreva o que você quer em um widget de IA, por exemplo, “Uma tabela dos gastos dos últimos 7 dias, uma linha por dia”. Em um painel, são as linhas DIFF(m1) acima em um widget com "view": "table" e "table": {"layout": "vertical"}.

Gastos por conta

Se suas contas estiverem no AWS Organizations, as métricas de faturamento da conta de gerenciamento também separam as cobranças por conta, com a dimensão LinkedAccount. Para mostrar no gráfico as cinco contas com mais gastos neste mês, em vez dos serviços com mais gastos, use esta linha de expressão no gráfico de barras ou de pizza no lugar da linha dos serviços:

Linha de expressão
[ { "expression": "SORT(SEARCH('{AWS/Billing,Currency,LinkedAccount} MetricName=\"EstimatedCharges\" Currency=\"USD\"', 'Maximum', 21600), MAX, DESC, 5)", "id": "accounts" } ]

Ou descreva o que você quer em um widget de IA, por exemplo, “Gastos por conta neste mês” ou, para um só serviço, “Gráfico de barras empilhadas dos gastos com SQS de cada conta nos últimos 7 dias”. A predefinição Gastos diários por conta já empilha os gastos de cada conta em uma coluna por dia: consulte Predefinições de gastos.

O CloudWatch só conhece cada conta pelo ID de 12 dígitos. O CloudPeek mostra o nome da conta, obtido da primeira destas fontes que o informe:

  • AWS Organizations, que informa o nome de todas as contas da organização. Ele precisa de organizations:ListAccounts, que está na política do CloudPeek, e só responde à conta de gerenciamento (ou a uma conta de administrador delegado). O CloudPeek o consulta uma vez por dia.
  • IAM Identity Center, se você fez login com ele: os nomes das contas em que ele permite que você faça login.
  • Sua aba Contas: o nome que você deu a uma conta que adicionou.

Uma conta que nenhuma delas nomeia continua aparecendo pelo ID. Se o AWS Organizations recusar, o CloudPeek pergunta de novo depois de seis horas, ou assim que você atualizar o widget.

Remover o que você criou

No console do CloudWatch em us-east-1, abra Painéis, selecione CloudPeek-Spend e escolha Excluir. Para remover também o acesso do CloudPeek, exclua o usuário cloudpeek e a política CloudPeek no console do IAM.

Shell
aws cloudwatch delete-dashboards --region us-east-1 --dashboard-names CloudPeek-Spend

O CloudFormation não consegue excluir um usuário que ainda tem uma chave de acesso, nem uma política que algo fora da pilha ainda usa. Primeiro exclua a chave de acesso do usuário e desanexe a política de todos os conjuntos de permissões; depois, exclua a pilha:

Shell
aws iam list-access-keys --user-name cloudpeek
aws iam delete-access-key --user-name cloudpeek --access-key-id <access-key-id>
aws cloudformation delete-stack --region us-east-1 --stack-name CloudPeek

O IAM não exclui um usuário que ainda tem uma chave de acesso, nem uma política que ainda está anexada em outro lugar. Primeiro exclua a chave de acesso do usuário e desanexe a política de todos os conjuntos de permissões; depois, execute o destroy:

Shell
aws iam list-access-keys --user-name cloudpeek
aws iam delete-access-key --user-name cloudpeek --access-key-id <access-key-id>
terraform destroy

Solução de problemas

Os widgets estão vazios, ou o painel mostra “Nenhum dado disponível”

As métricas de faturamento ainda não estão chegando ao CloudWatch, e os widgets do CloudPeek mostram “Ative os alertas de faturamento do CloudWatch no console do Billing. Os gastos aparecem em até um dia.” Verifique se elas estão ativadas (etapa 1) e aguarde algumas horas. Depois, procure o namespace Billing em Todas as métricas em us-east-1 (o Metrics Explorer não lista métricas de faturamento). No AWS Organizations, configure isso na conta de gerenciamento, que vê as cobranças de toda a organização: nas outras contas da organização, os widgets mostram “Os gastos desta conta ficam na conta de gerenciamento da sua organização.”

As contas aparecem como números

O CloudPeek não encontrou os nomes delas. Na conta de gerenciamento, adicione organizations:ListAccounts ao login do CloudPeek, ou implante o modelo atualizado de Primeiros passos, e depois atualize o widget. Consulte Gastos por conta.

Falta um serviço

Ele não está entre os seus cinco maiores neste mês. Para mostrar mais serviços no gráfico, aumente o número no fim da expressão SORT (veja como funciona). As cobranças dele já estão incluídas no Total.

O Total é maior que a soma das barras

Isso é esperado. O Total é a sua fatura inteira até agora neste mês, incluindo os serviços fora do seu top 5.

Outro problema

Consulte Solução de problemas ou envie um e-mail para support@cloudpeek.app. Nunca nos envie sua chave de acesso secreta.