Análise, otimização e redução de custos do CloudWatch
Esta seção descreve como os recursos do Amazon CloudWatch geram custos e fornece métodos que podem ajudar você a analisar, otimizar e reduzir os custos do CloudWatch. Ao longo desta seção, às vezes usamos preços ao descrever os recursos do CloudWatch. Para obter informações sobre preços, consulte Preço do Amazon CloudWatch
Tópicos
- Analisar os dados de custo e uso do CloudWatch com o Explorador de Custos
- Analisar os dados de custo e uso do CloudWatch com o AWS Cost and Usage Report e o Athena
- Otimização e redução dos custos das métricas do CloudWatch
- Otimização e redução dos custos dos alarmes do CloudWatch
- Otimização e redução dos custos do CloudWatch Logs
Analisar os dados de custo e uso do CloudWatch com o Explorador de Custos
Com o AWS Cost Explorer, você pode visualizar e analisar dados de custo e uso de Serviços da AWS ao longo do tempo, incluindo o CloudWatch. Para obter mais informações, consulte Conceitos básicos do AWS Cost Explorer
O procedimento a seguir descreve como usar o Explorador de Custos para visualizar e analisar dados de custo e uso do CloudWatch.
Para visualizar e analisar dados de uso e custo do CloudWatch
-
Faça login no console do Explorador de Custos em https://console.aws.amazon.com/cost-management/home#/custom
. -
Em FILTERS (FILTROS), selecione CloudWatch para Service (Serviço).
-
Em Group by (Agrupar por), escolha Usage Type (Tipo de uso). Você também pode agrupar os resultados por outras categorias, como:
-
API Operation (Operação de API): veja quais operações de API geraram mais custos.
-
Region (Região): veja quais regiões geraram mais custos.
-
A imagem a seguir mostra um exemplo dos custos gerados pelos recursos do CloudWatch ao longo de seis meses.
Para ver quais recursos do CloudWatch geraram mais custos, analise os valores de UsageType
. Por exemplo, EU-CW:GMD-Metrics
representa os custos gerados pelas solicitações de API em massa do CloudWatch.
nota
As strings de UsageType
correspondem a recursos e regiões específicos. Por exemplo, a primeira parte de EU-CW:GMD-Metrics
(EU
) corresponde à região da Europa (Irlanda) e a segunda parte de EU-CW:GMD-Metrics
(GMD-Metrics
) corresponde às solicitações de API em massa do CloudWatch.
A string inteira de UsageType
pode ser formatada como <Region>-CW:<Feature>
ou <Region>-<Feature>
.
Alguns recursos do CloudWatch, como logs e alarmes, também usam a região Global
para identificar o uso do nível gratuito. Por exemplo, Global-DataScanned-Bytes
representa o uso gratuito de ingestão de dados do CloudWatch Logs.
Para melhorar a legibilidade, as strings de UsageType
em todas tabelas deste documento foram encurtadas para seus sufixos. Por exemplo, EU-CW:GMD-Metrics
foi encurtada para GMD-Metrics
.
A tabela a seguir inclui os nomes de cada recurso e sub-recurso do CloudWatch e lista as strings de UsageType
.
Recurso do CloudWatch | Sub-recurso do CloudWatch |
|
---|---|---|
Métricas do CloudWatch | Métricas personalizadas |
|
Monitoramento detalhado |
|
|
Métricas incorporadas |
|
|
Solicitações de API do CloudWatch | Solicitações de API |
|
Em massa (Get) |
|
|
Contributor Insights |
|
|
Snapshot de imagem bitmap |
|
|
Fluxos de métricas do CloudWatch | Fluxos de métricas |
|
Painéis do CloudWatch | Painel com 50 métricas ou menos |
|
Painel com mais de 50 métricas |
|
|
Alarmes do CloudWatch | Standard (metric alarm) (Padrão [métricas de alarme]) |
|
High resolution (metric alarm) (Atla resolução [métricas de alarme]) |
|
|
Metrics Insights query alarm (Alarme de consulta ao Metrics Insights) |
|
|
Composite (aggregated alarm) (Composto [alarme agregado]) |
|
|
CloudWatch Application Signals | Application Signals |
|
Logs personalizados do CloudWatch | Coleta (ingestão de dados para a classe padrão de log) |
|
Coleta (ingestão de dados para a classe de acesso infrequente de log) |
|
|
Análise (consulta) |
|
|
Análise (Live Tail) |
|
|
Armazenamento (arquivo) |
|
|
Detecção e mascaramento (proteção de dados) |
|
|
Logs fornecidos do CloudWatch | Entrega (classe de logs do Amazon CloudWatch Logs Standard) |
|
Entrega (classe de acesso infrequente de logs do CloudWatch Logs) |
|
|
Entrega (Amazon S3) |
|
|
Entrega (Amazon S3) em formato Parquet |
|
|
Entrega (Amazon Data Firehose) |
|
|
Contributor Insights | CloudWatch Logs (regras) |
|
CloudWatch Logs (eventos) |
|
|
Amazon DynamoDB (regras) |
|
|
DynamoDB (eventos) |
|
|
Canários (Synthetics) | Executar |
|
Evidently | Eventos |
|
Unidades de análise |
|
|
RUM | Eventos |
|
Analisar os dados de custo e uso do CloudWatch com o AWS Cost and Usage Report e o Athena
Outra maneira de analisar os dados de custo e uso do CloudWatch é usar o AWS Cost and Usage Report com o Amazon Athena. O AWS Cost and Usage Report contém um conjunto abrangente de dados de custo e uso. Você pode criar relatórios que monitoram custos e uso e publicá-los em um bucket do S3 de sua escolha. Também pode baixar e excluir relatórios do bucket do S3. Para obter mais informações, consulte O que são AWS Cost and Usage Reports? no Guia do usuário do AWS Cost and Usage Reports.
nota
Não há custo para usar o AWS Cost and Usage Report. Você paga apenas pelo armazenamento quando publica relatórios no Amazon Simple Storage Service (Amazon S3). Para obter mais informações, consulte Quotas and restrictions (Cotas e restrições) no Guia do usuário do AWS Cost and Usage Report.
O Athena é um serviço de consulta que você pode usar com o AWS Cost and Usage Report para analisar dados de custo e uso. Você pode consultar relatórios em seu bucket do S3 sem precisar baixá-los primeiro. Para obter mais informações, consulte O que é o Amazon Athena? no Guia do usuário do Amazon Athena. Para obter mais informações, consulte O que é o Amazon Athena? no Guia do usuário do Amazon Athena. Para obter mais informações sobre preços, consulte Preço do Amazon Athena
O procedimento a seguir descreve como habilitar o AWS Cost and Usage Report e integrar o serviço ao Athena. O procedimento contém dois exemplos de consultas que você pode usar para analisar dados de custo e uso do CloudWatch.
nota
Você pode usar qualquer um dos exemplos de consulta neste documento. Todos os exemplos de consultas neste documento correspondem a um banco de dados chamado de costandusagereport e mostram resultados para o mês de abril de 2022. Você pode alterar essas informações. No entanto, antes de executar uma consulta, verifique se o nome do seu banco de dados corresponde ao nome do banco de dados na consulta.
Analisar dados de custo e uso do CloudWatch com AWS Cost and Usage Reports e o Athena
-
Habilite o AWS Cost and Usage Report. Para obter mais informações, consulte Creating cost and usage reports (Criar relatórios de custos e uso) no Guia do usuário do AWS Cost and Usage Report.
dica
Ao criar seus relatórios, selecione Include resource IDs (Incluir IDs dos recursos). Caso contrário, os relatórios não incluirão a coluna
line_item_resource_id
. Essa linha ajuda a identificar mais precisamente os custos ao analisar dados de custo e uso. -
Integrar o AWS Cost and Usage Report ao Athena Para obter mais informações, consulte Configuração do Athena usando modelos do AWS CloudFormation no Guia do usuário do AWS Cost and Usage Reports.
-
Faça consultas ao seus relatórios de custo e uso.
exemplo da consulta do Athena para mostrar os custos do CloudWatch por mês
Você pode usar a consulta a seguir para mostrar quais recursos do CloudWatch geraram mais custos em um determinado mês.
SELECT CASE -- Metrics WHEN line_item_usage_type LIKE '%%MetricMonitorUsage%%' THEN 'Metrics (Custom, Detailed monitoring management portal EMF)' WHEN line_item_usage_type LIKE '%%Requests%%' THEN 'Metrics (API Requests)' WHEN line_item_usage_type LIKE '%%GMD-Metrics%%' THEN 'Metrics (Bulk API Requests)' WHEN line_item_usage_type LIKE '%%MetricStreamUsage%%' THEN 'Metric Streams' -- Dashboard WHEN line_item_usage_type LIKE '%%DashboardsUsageHour%%' THEN 'Dashboards' -- Alarms WHEN line_item_usage_type LIKE '%%AlarmMonitorUsage%%' THEN 'Alarms (Standard)' WHEN line_item_usage_type LIKE '%%HighResAlarmMonitorUsage%%' THEN 'Alarms (High Resolution)' WHEN line_item_usage_type LIKE '%%MetricInsightAlarmUsage%%' THEN 'Alarms (Metrics Insights)' WHEN line_item_usage_type LIKE '%%CompositeAlarmMonitorUsage%%' THEN 'Alarms (Composite)' -- Logs WHEN line_item_usage_type LIKE '%%DataProcessing-Bytes%%' THEN 'Logs (Collect - Data Ingestion)' WHEN line_item_usage_type LIKE '%%DataProcessingIA-Bytes%%' THEN 'Infrequent Access Logs (Collect - Data Ingestion)' WHEN line_item_usage_type LIKE '%%DataProtection-Bytes%%' THEN 'Logs (Data Protection - Detect and Mask)' WHEN line_item_usage_type LIKE '%%TimedStorage-ByteHrs%%' THEN 'Logs (Storage - Archival)' WHEN line_item_usage_type LIKE '%%DataScanned-Bytes%%' THEN 'Logs (Analyze - Logs Insights queries)' WHEN line_item_usage_type LIKE '%%Logs-LiveTail%%' THEN 'Logs (Analyze - Logs Live Tail)' -- Vended Logs WHEN line_item_usage_type LIKE '%%VendedLog-Bytes%%' THEN 'Vended Logs (Delivered to CW)' WHEN line_item_usage_type LIKE '%%VendedLogIA-Bytes%%' THEN 'Vended Infrequent Access Logs (Delivered to CW)' WHEN line_item_usage_type LIKE '%%FH-Egress-Bytes%%' THEN 'Vended Logs (Delivered to Data Firehose)' WHEN (line_item_usage_type LIKE '%%S3-Egress-Bytes%%') THEN 'Vended Logs (Delivered to S3)' -- Other WHEN line_item_usage_type LIKE '%%Application-Signals%%' THEN 'Application Signals' WHEN line_item_usage_type LIKE '%%Canary-runs%%' THEN 'Synthetics' WHEN line_item_usage_type LIKE '%%Evidently%%' THEN 'Evidently' WHEN line_item_usage_type LIKE '%%RUM-event%%' THEN 'RUM' ELSE 'Others' END AS UsageType, -- REGEXP_EXTRACT(line_item_resource_id,'^(?:.+?:){5}(.+)$',1) as ResourceID, -- SUM(CAST(line_item_usage_amount AS double)) AS UsageQuantity, SUM(CAST(line_item_unblended_cost AS decimal(16,8))) AS TotalSpend FROM
costandusagereport
WHERE product_product_name = 'AmazonCloudWatch'AND year='2022'
AND month='4'
AND line_item_line_item_type NOT IN ('Tax','Credit','Refund','EdpDiscount','Fee','RIFee') -- AND line_item_usage_account_id = '123456789012' – If you want to filter on a specific account, you can remove this comment at the beginning of the line and specify an AWS account. GROUP BY 1 ORDER BY TotalSpend DESC, UsageType;
exemplo da consulta do Athena para mostrar como os recursos do CloudWatch geraram custos
Você pode usar a consulta a seguir para mostrar os resultados de UsageType
e Operation
. Isso mostra como os recursos do CloudWatch geraram custos. Os resultados também mostram os valores de UsageQuantity
e TotalSpend
, para que você possa ver os custos totais de uso.
dica
Para obter mais informações sobre UsageType
, adicione a linha a seguir a esta consulta:
line_item_line_item_description
Essa linha cria uma coluna chamada Description (Descrição).
SELECT bill_payer_account_id as Payer, line_item_usage_account_id as LinkedAccount, line_item_usage_type AS UsageType, line_item_operation AS Operation, line_item_resource_id AS ResourceID, SUM(CAST(line_item_usage_amount AS double)) AS UsageQuantity, SUM(CAST(line_item_unblended_cost AS decimal(16,8))) AS TotalSpend FROM
costandusagereport
WHERE product_product_name = 'AmazonCloudWatch'AND year='2022'
AND month='4'
AND line_item_line_item_type NOT IN ('Tax','Credit','Refund','EdpDiscount','Fee','RIFee') GROUP BY bill_payer_account_id, line_item_usage_account_id, line_item_usage_type,y line_item_resource_id, line_item_operation
Otimização e redução dos custos das métricas do CloudWatch
Muitos Serviços da AWS, como o Amazon Elastic Compute Cloud (Amazon EC2), o Amazon S3 e o Amazon Data Firehose, enviam métricas automaticamente para o CloudWatch sem nenhum custo. No entanto, as métricas agrupadas nas seguintes categorias podem incorrer em custos adicionais:
-
Métricas personalizadas, monitoramento detalhado e métricas incorporadas
-
Solicitações de API
-
Fluxos de métricas
Para obter mais informações, consulte Como usar métricas do Amazon CloudWatch.
Métricas personalizadas
Você pode criar métricas personalizadas para organizar pontos de dados em qualquer ordem e taxa.
Todas as métricas personalizadas são cobradas pro rata por hora. Elas só são medidas quando enviadas para o CloudWatch. Para obter informações sobre o preço de métricas do CloudWatch, consulte Preço do Amazon CloudWatch
A tabela a seguir lista os sub-recursos relevantes para as métricas do CloudWatch. A tabela inclui as strings de UsageType
e Operation
, que podem ajudar você a analisar e identificar custos relacionados a métricas.
nota
Para obter mais detalhes sobre as métricas listadas na tabela a seguir ao consultar dados de custo e uso com o Athena, verifique as strings de Operation
em relação aos resultados mostrados para line_item_operation
.
Sub-recurso do CloudWatch |
|
|
Finalidade |
---|---|---|---|
Métricas personalizadas |
|
|
Métricas personalizadas |
Monitoramento detalhado |
|
|
Monitoramento detalhado |
Métricas incorporadas |
|
|
Métricas incorporadas do Logs |
Filtros de log |
|
|
Filtros métricos do grupo de logs |
Monitoramento detalhado
O CloudWatch tem dois tipos de monitoramento:
-
Monitoramento básico
O monitoramento básico é gratuito e está ativado automaticamente para todos os Serviços da AWS compatíveis com esse recurso.
-
Monitoramento detalhado
O monitoramento detalhado incorre em custos e adiciona aprimoramentos diferentes, a depender do AWS service (Serviço da AWS). Você pode optar por ativar o monitoramento detalhado em cada AWS service (Serviço da AWS) compatível com o recurso. Para obter mais informações, consulte Monitoramento básico e monitoramento detalhado.
nota
Outros Serviços da AWS são compatíveis com o monitoramento detalhado e podem usar outro nome para se referir a esse recurso. Por exemplo, o monitoramento detalhado do Amazon S3 é conhecido como métricas de solicitação.
Assim como as métricas personalizadas, o monitoramento detalhado é cobrado pro rata por hora e só é medido quando os dados são enviados para o CloudWatch. O monitoramento detalhado gera custos pelo número de métricas enviadas ao CloudWatch. Para reduzir custos, só habilite o monitoramento detalhado quando necessário. Para obter informações sobre os preços do monitoramento detalhado, consulte Preço do Amazon CloudWatch
Exemplo: consulta do Athena
Você pode usar a consulta a seguir para mostrar as instâncias do EC2 nas quais o monitoramento detalhado foi habilitado.
SELECT bill_payer_account_id as Payer, line_item_usage_account_id as LinkedAccount, line_item_usage_type AS UsageType, line_item_operation AS Operation, line_item_resource_id AS ResourceID, SUM(CAST(line_item_usage_amount AS double)) AS UsageQuantity, SUM(CAST(line_item_unblended_cost AS decimal(16,8))) AS TotalSpend FROM
costandusagereport
WHERE product_product_name = 'AmazonCloudWatch'AND year='2022'
AND month='4'
AND line_item_operation='MetricStorage:AWS/EC2' AND line_item_line_item_type NOT IN ('Tax','Credit','Refund','EdpDiscount','Fee','RIFee') GROUP BY bill_payer_account_id, line_item_usage_account_id, line_item_usage_type, line_item_resource_id, line_item_operation, line_item_line_item_description ORDER BY line_item_operation
Métricas incorporadas
Com o formato de métrica incorporada do CloudWatch, você pode ingerir dados de aplicações como dados de log para poder gerar métricas acionáveis. Para obter mais informações, consulte Ingerir logs de alta cardinalidade e gerar métricas com o formato de métricas incorporadas do CloudWatch.
As métricas incorporadas geram custos pelo número de logs ingeridos e arquivados e pelo número de métricas personalizadas geradas.
A tabela a seguir lista os sub-recursos relevantes para o formato de métricas incorporadas do CloudWatch. A tabela inclui as strings de UsageType
e Operation
, que podem ajudar você a analisar e identificar custos.
Sub-recurso do CloudWatch |
|
|
Finalidade |
---|---|---|---|
Métricas personalizadas |
|
|
Métricas incorporadas do Logs |
Ingestão de logs |
|
|
Carrega um lote de eventos de logs no fluxo ou grupo de logs especificado |
Arquivamento de logs |
|
|
Armazena logs por hora e por byte no CloudWatch Logs |
Para analisar custos, use o AWS Cost and Usage Report com o Athena a fim de identificar quais métricas estão gerando custos e como eles são gerados.
Para aproveitar ao máximo os custos gerados pelo formato de métrica incorporada do CloudWatch, evite criar métricas com base em dimensões de alta cardinalidade. Assim, o CloudWatch não cria uma métrica personalizada para cada combinação de dimensão exclusiva. Para obter mais informações, consulte Dimensões.
Se você estiver usando o CloudWatch Container Insights para aproveitar o formato de métrica incorporada, poderá usar o AWS Distro para OpenTelemetry como alternativa para utilizar melhor os custos relacionados à métrica. Você pode usar o Container Insights para coletar, agregar e resumir métricas e logs de aplicações e microsserviços conteinerizados. Quando você habilita o Container Insights, o atendente do CloudWatch envia seus logs para o CloudWatch, onde eles são usados para gerar métricas incorporadas. No entanto, o atendente do CloudWatch envia apenas um número fixo de métricas para o CloudWatch e as cobranças são geradas por todas as métricas disponíveis, incluindo as que não são usadas. Com o AWS Distro para OpenTelemetry, você pode configurar e personalizar quais métricas e dimensões são enviadas para o CloudWatch. Isso ajuda a reduzir o volume de dados e o custo que o Container Insights gera. Para obter mais informações, consulte os seguintes recursos do :
Solicitações de API
O CloudWatch tem os seguintes tipos de solicitações de API:
-
Solicitações de API
-
Em massa (Get)
-
Contributor Insights
-
Snapshot de imagem bitmap
As solicitações de API geram custos de acordo com o tipo de solicitação e o número de métricas solicitadas.
A tabela a seguir lista os tipos de solicitações de API e inclui as strings de UsageType
e Operation
, que podem ajudar você a analisar e identificar custos relacionados a APIs.
Tipo de solicitação de API |
|
|
Finalidade |
---|---|---|---|
Solicitações de API |
|
|
Recupera as estatísticas das métricas especificadas |
|
|
Lista as métricas especificadas |
|
|
|
Publica pontos de dados de métricas no CloudWatch |
|
|
|
Exibe detalhes dos painéis especificados |
|
|
|
Lista os painéis em sua conta |
|
|
|
Cria ou atualiza um painel |
|
|
|
Exclui todos os painéis especificados |
|
Em massa (Get) |
|
|
Recupera valores de métricas do CloudWatch |
Contributor Insights |
|
|
Retorna dados de séries temporais coletados por uma regra do Contributor Insights |
Snapshot de imagem bitmap |
|
|
Recupera um snapshot de uma ou mais métricas do CloudWatch como uma imagem bitmap |
Para analisar os custos, use o Explorador de Custos e agrupe os resultados por API Operation (Operação de API).
Os custos das solicitações de API variam, e você incorre em custos quando excede o número de chamadas de API fornecidas no limite do nível gratuito da AWS.
nota
GetMetricData
e GetMetricWidgetImage
não estão incluídas no limite do nível gratuito da AWS. Para obter mais informações, consulte Como usar o nível gratuito da AWS no Guia do usuário do AWS Billing.
As solicitações de API que normalmente geram custos são Put
e Get
.
PutMetricData
PutMetricData
gera custos sempre que é chamada e pode incorrer em custos significativos dependendo do caso de uso. Para obter mais informações, consulte PutMetricData na Referência de APIs do Amazon CloudWatch.
Para aproveitar ao máximo os custos gerados por PutMetricData
, agrupe mais dados em suas chamadas de API. Dependendo do caso de uso, considere usar o CloudWatch Logs ou o formato de métrica incorporada do CloudWatch para injetar dados métricos. Para obter mais informações, consulte os seguintes recursos do :
-
O que é o Amazon CloudWatch Logs? no Guia do usuário do Amazon CloudWatch Logs
-
Lowering costs and focusing on our customers with Amazon CloudWatch embedded custom metrics
(Reduzir custos e focar nos clientes com as métricas incorporadas personalizadas do Amazon CloudWatch)
GetMetricData
GetMetricData
também pode gerar custos significativos. Casos de uso comuns que geram custos envolvem ferramentas de monitoramento de terceiros que extraem dados para gerar insights. Para obter mais informações, consulte GetMetricData na Referência de APIs do Amazon CloudWatch.
Para reduzir os custos gerados por GetMetricData
, considere extrair apenas dados monitorados e usados ou extrair dados com menos frequência. Dependendo do caso de uso, você pode usar fluxos de métricas, em vez de GetMetricData
, o que lhe permite enviar dados quase em tempo real para terceiros a um custo menor. Para obter mais informações, consulte os seguintes recursos do :
GetMetricStatistics
Dependendo do caso de uso, você pode usar GetMetricStatistics
em vez de GetMetricData
. Com GetMetricData
, você pode recuperar dados rapidamente e em grande quantidade. No entanto, GetMetricStatistics
está incluída no limite do nível gratuito da AWS até um milhão de solicitações de API, o que pode ajudar a reduzir custos se você não precisar recuperar esse número de métricas e pontos de dados por chamada. Para obter mais informações, consulte os seguintes recursos do :
-
GetMetricStatistics na Referência de APIs do Amazon CloudWatch
-
Should I use GetMetricData or GetMetricStatistics?
(Devo usar GetMetricData ou GetMetricStatistics?)
nota
Os chamadores externos fazem chamadas de API. Para APIs compatíveis com eventos de dados do CloudTrail (como GetMetricData e GetMetricWidgetImage), você pode usar o CloudTrail para identificar os principais chamadores de API do CloudWatch e, potencialmente, mitigar ou identificar chamadas inesperadas. Para obter mais informações, consulte Como usar o CloudTrail para analisar o uso da API do CloudWatch
Fluxos de métricas do CloudWatch
Com os fluxos de métricas do CloudWatch, você pode enviar métricas continuamente para destinos da AWS e de outros provedores de serviços.
Os fluxos de métricas geram custos de acordo com o número de atualizações de métricas. As atualizações de métricas sempre incluem valores para as seguintes estatísticas:
-
Minimum
-
Maximum
-
Sample Count
-
Sum
Para obter mais informações, consulte Estatísticas que podem ser transmitidas.
Para analisar os custos gerados pelos fluxos de métricas do CloudWatch, use o AWS Cost and Usage Report com o Athena. Assim, você pode identificar quais fluxos de métricas estão gerando custos e como esses custos são gerados.
Exemplo: consulta do Athena
Você pode usar a consulta a seguir para monitorar os fluxos de métricas que geram custos por nome do recurso da Amazon (ARN).
SELECT SPLIT_PART(line_item_resource_id,'/',2) AS "Stream Name", line_item_resource_id as ARN, SUM(CAST(line_item_unblended_cost AS decimal(16,2))) AS TotalSpend FROM
costandusagereport
WHERE product_product_name = 'AmazonCloudWatch'AND year='2022'
AND month='4'
AND line_item_line_item_type NOT IN ('Tax','Credit','Refund','EdpDiscount','Fee','RIFee') -- AND line_item_usage_account_id = '123456789012' – If you want to filter on a specific account, you can remove this comment at the beginning of the line and specify an AWS account. AND line_item_usage_type LIKE '%%MetricStreamUsage%%' GROUP BY line_item_resource_id ORDER BY TotalSpend DESC
Para reduzir os custos gerados pelos fluxos de métricas do CloudWatch, transmita apenas as métricas que agregam valor empresarial. Você também pode interromper ou pausar qualquer fluxo de métricas que não esteja usando.
Otimização e redução dos custos dos alarmes do CloudWatch
Com os alarmes do CloudWatch, você pode criar alarmes baseados em uma única métrica, alarmes baseados em uma consulta ao Metrics Insights e alarmes compostos que monitoram outros alarmes.
nota
Os custos para alarmes de métricas e compostos são calculados proporcionalmente por hora. Você será cobrado pelos alarmes somente enquanto seus alarmes existirem. Para otimizar os custos, certifique-se de que não haja alarmes mal configurados ou de baixo valor. Para ajudar com isso, você pode automatizar a limpeza dos alarmes do CloudWatch que não são mais necessários. Para obter mais informações, consulte Limpeza de alarmes do Amazon CloudWatch em escala
Alarmes de métricas
Os alarmes de métrica têm as seguintes configurações de resolução:
-
Padrão (avaliado a cada 60 segundos)
-
Alta resolução (avaliado a cada 10 segundos)
Quando você cria um alarme de métrica, seus custos são baseados na configuração de resolução do seu alarme e no número de métricas às quais seu alarme faz referência. Por exemplo, um alarme de métrica que faz referência a uma métrica incorre em um custo de métrica de alarme por hora. Para obter mais informações, consulte Uso de alarmes do Amazon CloudWatch.
Se você criar um alarme de métrica que contém uma expressão matemática métrica, a qual faz referência a várias métricas, você incorrerá em um custo para cada métrica de alarme referenciada na expressão matemática métrica. Para obter informações sobre como criar um alarme de métricas que contém uma expressão matemática métrica, consulte Criar um alarme do CloudWatch com base em uma expressão matemática métrica.
Se você criar um alarme de detecção de anomalias, no qual o alarme analisa dados de métricas anteriores para criar um modelo de valores esperados, você incorrerá em um custo para cada métrica de alarme referenciada em seu alarme, além de duas métricas adicionais, para as métricas de banda superior e inferior criadas pelo modelo de detecção de anomalias. Para obter informações sobre como criar um alarme de detecção de anomalias, consulte Criar um alarme do CloudWatch com base na detecção de anomalias.
Alarmes de consulta do Metrics Insights
Os alarmes de consulta ao Metric Insights são um tipo específico de alarme métrico, disponível somente com a resolução padrão (avaliado a cada 60 segundos).
Quando você cria um alarme de consulta ao Metric Insights, os custos são baseados no número de métricas analisadas pela consulta que o alarme referencia. Por exemplo, um alarme de consulta ao Metric Insights que referencia uma consulta cujo filtro corresponde a dez métricas incorre no custo de dez métricas analisadas por hora. Para obter mais informações sobre preços, veja um exemplo de preço em Amazon CloudWatch Pricing
Se você criar um alarme que contenha uma consulta ao Metrics Insights e uma expressão matemática de métrica, ele será relatado como um alarme de consulta ao Metrics Insights. Se o alarme contiver uma expressão matemática métrica que referencie outras métricas, além das métricas analisadas pela consulta ao Metrics Insights, você incorrerá em um custo adicional para cada métrica de alarme referenciada na expressão matemática da métrica. Para obter informações sobre como criar um alarme de métricas que contém uma expressão matemática métrica, consulte Criar um alarme do CloudWatch com base em uma expressão matemática métrica.
Alarmes compostos
Os alarmes compostos contêm expressões de regras que especificam como devem avaliar os estados de outros alarmes para determinar seus próprios estados. Os alarmes compostos incorrem em um custo padrão por hora, independentemente de quantos outros alarmes eles avaliem. Alarmes aos quais os alarmes compostos fazem referência em expressões de regras incorrem em custos separados. Para obter mais informações, consulte Criar um alarme composto.
Tipos de uso de alarmes
A tabela a seguir lista os sub-recursos relevantes para os alarmes do CloudWatch. A tabela inclui as strings de UsageType
, que podem ajudar você a analisar e identificar custos relacionados a alarmes.
Sub-recurso do CloudWatch |
|
---|---|
Alarme de métricas padrão |
|
High-resolution metric alarm (Alarme de métrica de alta resolução) |
|
Metrics Insights query alarm (Alarme de consulta ao Metrics Insights) |
|
Alarme composto |
|
Os alarmes compostos contêm expressões de regras que especificam como devem avaliar os estados de outros alarmes para determinar seus próprios estados. Os alarmes compostos incorrem em um custo padrão por hora, independentemente de quantos outros alarmes eles avaliem. Alarmes aos quais os alarmes compostos fazem referência em expressões de regras incorrem em custos separados. Para obter mais informações, consulte Criar um alarme composto.
Tipos de uso de alarmes
A tabela a seguir lista os sub-recursos relevantes para os alarmes do CloudWatch. A tabela inclui as strings de UsageType
, que podem ajudar você a analisar e identificar custos relacionados a alarmes.
Sub-recurso do CloudWatch |
|
---|---|
Alarme de métricas padrão |
|
High-resolution metric alarm (Alarme de métrica de alta resolução) |
|
Metrics Insights query alarm (Alarme de consulta ao Metrics Insights) |
|
Alarme composto |
|
Redução de custos do alarme
Para otimizar os custos gerados por alarmes de expressão matemática métrica que agregam quatro ou mais métricas, você pode agregar dados antes que os dados sejam enviados ao CloudWatch. Dessa forma, você pode criar um alarme para uma única métrica em vez de um alarme que agrega dados para várias métricas. Para obter mais informações, consulte o tópico sobre como Publicar métricas personalizadas.
Para otimizar os custos gerados pelos alarmes de consulta ao Metrics Insights, você pode garantir que o filtro usado para a consulta corresponda apenas às métricas que você deseja monitorar.
A melhor maneira de reduzir custos é remover todos os alarmes desnecessários ou não utilizados. Por exemplo, você pode excluir alarmes que avaliam métricas emitidas por recursos da AWS que não existem mais.
exemplo de usar DescribeAlarms
para verificar alarmes no estado INSUFFICIENT_DATA
Se você excluir um recurso, mas não os alarmes de métricas que o recurso emite, os alarmes ainda existirão e normalmente entrarão no estado INSUFFICIENT_DATA
. Para verificar alarmes que estão no estado INSUFFICIENT_DATA
, use o seguinte comando da AWS Command Line Interface (AWS CLI).
aws cloudwatch describe-alarms –state-value INSUFFICIENT_DATA
Para obter mais informações, consulte Automating Amazon CloudWatch Alarm Cleanup at Scale
Outras maneiras de reduzir custos incluem:
-
Criar alarmes para as métricas corretas.
-
Verificar se há algum alarme ativado em uma região na qual você não está trabalhando.
-
Lembre-se de que, embora os alarmes compostos reduzam o ruído, eles também geram custos adicionais.
-
Ao decidir se deseja criar um alarme padrão ou um alarme de alta resolução, considerar o caso de uso e o valor que cada tipo de alarme traz.
Otimização e redução dos custos do CloudWatch Logs
O Amazon CloudWatch Logs tem os seguintes tipos de log:
-
Logs personalizados (logs que você cria para suas aplicações)
-
Logs fornecidos (logs que outros Serviços da AWS, como o Amazon Virtual Private Cloud (Amazon VPC) e o Amazon Route 53, criam em seu nome)
Para obter mais informações sobre logs fornecidos, consulte Habilitar o registro em log de determinados serviços da AWS no Manual do usuário do Amazon CloudWatch Logs.
Os logs personalizados e fornecidos geram custos com base no número de logs coletados, armazenados e analisados. Além disso, os logs fornecidos geram custos em entregas ao Amazon S3 e ao Firehose.
A tabela a seguir lista os recursos e sub-recursos relevantes do CloudWatch Logs. A tabela inclui as strings de UsageType
e Operation
, que podem ajudar você a analisar e identificar custos relacionados a logs.
Recurso do CloudWatch Logs | Sub-recurso do CloudWatch Logs |
|
|
Finalidade |
---|---|---|---|---|
Logs personalizados | Coleta (ingestão de dados para a classe padrão de log) |
|
|
Carrega um lote de logs em um fluxo de logs específico em um grupo de logs da classe padrão. |
Coleta (ingestão de dados para a classe de acesso infrequente de log) |
|
|
Carrega um lote de logs em um fluxo de logs específico em um grupo de logs da classe acesso infrequente. | |
Detecção e mascaramento (proteção de dados) |
|
|
Detecta e mascara dados protegidos em eventos de log. | |
Armazenamento (arquivo) |
|
|
Armazena logs por hora e por byte no CloudWatch Logs. | |
Análise (consultas do Logs Insights) |
|
|
Registra dados analisados por consultas do CloudWatch Logs Insights | |
Análise (logs Live Tail) |
|
|
Logs analisados durante uma sessão Live Tail do CloudWatch Logs. | |
Logs fornecidos | Entrega (classe padrão de logs do CloudWatch Logs) |
|
|
Carrega um lote de logs em um fluxo de logs específico em um grupo de logs na classe de logs padrão. |
Entrega (classe de acesso infrequente de logs do CloudWatch Logs) |
|
|
Carrega um lote de logs em um fluxo de logs específico em um grupo de logs na classe de logs de acesso infrequente. | |
Entrega (Amazon S3) |
|
|
Carrega um lote de logs fornecidos em um bucket específico do S3. |
|
Entrega (Amazon S3) em formato Parquet |
|
|
Executa a conversão do Parquet em logs entregues ao Amazon S3. |
|
Entrega (Firehose) |
|
|
Carrega um lote de logs fornecidos no Amazon Data Firehose. |
Para realizar a análise dos custos, use o AWS Cost Explorer Service ou os AWS Cost and Usage Reports com o Athena. Com qualquer um desses métodos, é possível identificar quais logs estão gerando custos e compreender como esses custos são calculados.
Como usar o AWS Cost Explorer Service
Selecione CloudWatch para o filtro Serviço e escolha Recurso para a Dimensão. Quando Recurso é selecionado como dimensão no Cost Explorer Service, apenas os últimos 14 dias de uso ficam disponíveis para visualização.
Uso de consultas do Amazon Athena para rastrear logs que geram custos
Você pode usar a consulta a seguir para monitorar os logs que geram custos por ID do recurso.
SELECT bill_payer_account_id as Payer, line_item_usage_account_id as LinkedAccount, line_item_resource_id AS ResourceID, line_item_usage_type AS UsageType, SUM(CAST(line_item_unblended_cost AS decimal(16,8))) AS TotalSpend, SUM(CAST(line_item_usage_amount AS double)) AS UsageQuantity FROM
costandusagereport
WHERE product_product_name = 'AmazonCloudWatch'AND year='2022'
AND month='4'
AND line_item_operation IN ('PutLogEvents','HourlyStorageMetering','StartQuery','LogDelivery','StartLiveTail','ParquetConversion') AND line_item_line_item_type NOT IN ('Tax','Credit','Refund','EdpDiscount','Fee','RIFee') GROUP BY bill_payer_account_id, line_item_usage_account_id, line_item_usage_type, line_item_resource_id, line_item_operation ORDER BY TotalSpend DESC
Para aproveitar ao máximo os custos gerados pelo CloudWatch Logs, considere as seguintes recomendações:
-
Registre em log somente os eventos que agregam valor empresarial. Isso ajuda você a gerar menos custos com a ingestão.
-
Altere suas configurações de retenção de logs para gerar menos custos de armazenamento. Para obter mais informações, consulte Alterar a retenção de dados de log no CloudWatch Logs no Guia do usuário do Amazon CloudWatch Logs.
-
Execute consultas que o CloudWatch Logs Insights salva automaticamente no histórico. Dessa forma, você gera menos custos para análise. Para obter mais informações, consulte Exibir as consultas em execução ou o histórico de consultas no Guia do usuário do Amazon CloudWatch Logs.
-
Use o atendente do CloudWatch para coletar logs do sistema e da aplicação e enviá-los ao CloudWatch. Dessa forma, você pode coletar somente eventos de log que atendam aos seus critérios. Para obter mais informações, consulte Amazon CloudWatch Agent adiciona suporte para expressões de filtros de log
.
Para reduzir os custos de logs fornecidos, considere o caso de uso e, em seguida, determine se os logs devem ser enviados para o CloudWatch ou para o Amazon S3. Para obter mais informações, consulte Logs enviados ao Amazon S3 no Guia do usuário do Amazon CloudWatch Logs.
dica
Se quiser usar filtros de métricas, filtros de assinatura, CloudWatch Logs Insights e Contributor Insights, envie os logs fornecidos para o CloudWatch.
Como alternativa, se estiver trabalhando com logs de fluxo da VPC para fins de auditoria e conformidade, envie os logs fornecidos para o Amazon S3.
Para obter informações sobre como rastrear as cobranças geradas pela publicação de logs de fluxo da VPC em buckets do S3, consulte Uso de AWS Cost and Usage Reports e tags de alocação de custos para entender a ingestão de dados de logs de fluxo da VPC no Amazon S3
Para obter informações adicionais sobre como aproveitar ao máximo os custos gerados pelo CloudWatch Logs, consulte Which log group is causing a sudden increase in my CloudWatch Logs bill?