Utilizando Queries no Amazon Athena para Otimização Estratégica de Instâncias EC2 On-Demand

finops day
3 min readOct 16, 2023

--

O Amazon Athena é um serviço de consulta interativo que facilita a análise de dados diretamente no Amazon Simple Storage Service (Amazon S3) usando SQL padrão. Sendo um serviço serverless, o Athena simplifica o processo de análise de grandes volumes de dados sem a necessidade de configuração e manutenção de infraestrutura complexa, proporcionando uma maneira direta e eficiente de realizar consultas SQL sobre dados armazenados no S3. Ele está intrinsicamente integrado ao AWS Glue, fornecendo um ambiente robusto para categorização, preparação de dados e armazenamento de metadados.

Para uma compreensão mais aprofundada e técnica do Amazon Athena, recomendamos a leitura deste artigo, que oferece insights valiosos sobre as capacidades e funcionalidades do serviço.

Aplicando em Instâncias On-Demand:

Nesse artigo, exploramos o conceito de instâncias On-Demand e como essa tecnologia é aplicada e utilizada. O modelo de pagamento flexível e a falta de compromissos de longo prazo fazem das instâncias On-Demand uma escolha atrativa. No entanto, é essencial entender o impacto financeiro desta flexibilidade. A capacidade de analisar e otimizar o uso destas instâncias torna-se crucial para evitar custos desnecessários e promover uma estratégia de uso mais econômica e eficiente. Para um entendimento profundo e aplicação estratégica das instâncias On-Demand, este documento oficial da AWS oferece orientações detalhadas e fundamentadas.

Objetivo da Query:

Visando facilitar esta análise e otimização, a query detalhada neste artigo foi concebida para proporcionar insights cruciais sobre o uso das instâncias On-Demand. Ela permite:

  • Análise Profunda: Uma visão detalhada do uso e operação das instâncias, promovendo uma compreensão clara dos padrões de utilização.
  • Estratégia de Otimização: Equipa os usuários com dados valiosos necessários para formular estratégias de reserva e implementação de Savings Plans, contribuindo para uma abordagem mais custo-eficiente.

Query utilizada:

SELECT 
line_item_resource_id as instancia,
product_instance_type as instanceType,
line_item_usage_account_id as conta,
DATE_FORMAT(line_item_usage_start_date,'%Y-%m') AS data_inicio,
SUM(line_item_usage_amount) AS horas,
pricing_term as tipo,
line_item_line_item_type as cobranca
FROM
<coloque-dados-da-tabela>
WHERE
--Ano/mes
year='2023'
AND month='10'
--Filtrando on-demand
AND pricing_term = 'OnDemand'
AND line_item_line_item_type = 'Usage'

AND (line_item_product_code = 'AmazonEC2'
AND product_servicecode <> 'AWSDataTransfer'
AND line_item_operation LIKE '%RunInstances%'
AND line_item_usage_type NOT LIKE '%DataXfer%'
)

AND (line_item_line_item_type = 'Usage'
OR (line_item_line_item_type = 'SavingsPlanCoveredUsage')
OR (line_item_line_item_type = 'DiscountedUsage')

)

--Aqui fazemos o like para pegar todas as instancias ec2
AND line_item_resource_id like '%i-%'

GROUP BY
line_item_resource_id,
product_instance_type,
line_item_usage_account_id,
DATE_FORMAT(line_item_usage_start_date, '%Y-%m'),
line_item_usage_amount,
pricing_term,
line_item_line_item_type

ORDER BY
-- filtro do maior para o menor, para saber quem consome mais ondemand
horas DESC;

Como esta Query Ajuda na Análise:

  • Identificação de Uso On-Demand: A query identifica instâncias que estão sendo usadas no modelo de pagamento On-Demand, ajudando a identificar onde poderiam ser feitas otimizações.
  • Análise de Horas de Uso: Através da somatória de horas de uso, é possível identificar instâncias que estão sendo utilizadas extensivamente e poderiam se beneficiar de um modelo de pagamento reservado.
  • Customização de Tags: As tags de recursos permitem uma análise mais granular, possibilitando identificar departamentos ou projetos específicos que estão consumindo mais recursos.
  • Filtragem Detalhada: A filtragem detalhada permite focar apenas nos dados relevantes para a análise de otimização, excluindo outros usos e serviços.

Documentação:

Para mais informações sobre como escrever queries no Athena e entender o esquema de faturamento da AWS, você pode consultar a documentação oficial:

Consulte estas fontes para obter detalhes sobre a estrutura das tabelas, as colunas disponíveis e exemplos de queries.

Agradecimentos:

Um agradecimento especial a Antonio de Abreu e Rodrigo Ferradas pela valiosa contribuição e insights compartilhados. Seus conhecimentos têm sido essenciais para guiar a comunidade nas melhores práticas e estratégias, ajudando a otimizar o uso das instâncias EC2 On-Demand na AWS.

--

--