O blog da AWS
Visualize os custos do Amazon QuickSight usando AWS CUR e tags de alocação de custos
Por Ramon Lopez e Ashok Dasineni
O Amazon QuickSight é uma solução de business intelligence (BI) que qualquer organização pode utilizar para compartilhar dados e insights com qualquer pessoa. Como uma ferramenta de BI serverless, ela oferece um conjunto abrangente de recursos de análise avançada, e um dos principais benefícios é que os preços são baseados no consumo. Dito isso, o Quicksight pode ser usado para diferentes casos de uso e cada variante pode exigir um método diferente para rastrear e relatar o custo de execução do QuickSight. Por exemplo, talvez você tenha implantado o QuickSight como sua principal ferramenta corporativa de BI com milhares de usuários em dezenas de departamentos e gostaria de cobrar por departamento. Ou talvez você tenha integrado os recursos visuais do QuickSight em seu aplicativo de software como serviço (SaaS) usando namespaces para separar seus clientes por tenant e fornecer insights a milhares ou milhões de usuários. Nesse caso, você deseja rastrear o custo por tenant. Em qualquer cenário, é importante tratar a plataforma como qualquer outro ativo corporativo e otimizar os custos, rastrear o uso por recurso/usuário, implementar as melhores práticas de governança e buscar a excelência operacional.A alocação eficaz de custos e o gerenciamento de recursos são uma responsabilidade fundamental no espaço da infraestrutura em nuvem. Os relatórios de custo e uso da AWS (AWS CUR) servem como base para qualquer relatório sobre custos na AWS. Ele fornece uma lista abrangente dos custos incorridos nessa conta em todos os serviços da AWS. Além disso, as tags de alocação de custos da AWS são um recurso importante que o AWS Billing oferece. Você pode usar essas tags no AWS CUR, atuando como rótulos para recursos e oferecendo informações detalhadas sobre as tendências de consumo do ambiente. Eles podem transformar a forma como as despesas são alocadas e gerenciadas nas infraestruturas de nuvem, ao mesmo tempo em que permitem mecanismos de cobrança interna e externa.
Visão geral da solução
Vamos pegar a AnyCompany Inc., uma fornecedora independente de software (ISV) fictícia, como exemplo. A AnyCompany usa o QuickSight para fornecer análises a seus clientes em seu serviço baseado em nuvem. Com o AWS CUR, eles obtêm informações detalhadas sobre o uso por namespace e são capazes de produzir relatórios de custos abrangentes por tenant. Eles podem personalizar ainda mais usando as tags QuickSight para rastrear despesas e fazer cobranças em seus departamentos internos, centros de custos, projetos ou clientes.
Pré-requisitos
Antes de começar a aplicar tags e criar painéis do QuickSight, conclua as seguintes etapas de pré-requisito:
- Implante o AWS CUR aproveitando o AWS Data Exports. O AWS CUR legado ou padrão funcionará com essa abordagem. Observe que, no momento em que este artigo foi escrito, os relatórios de custo e uso implantados no console de faturamento da AWS não contêm IDs de recursos e não fornecem o nível de detalhes que desejamos.
- Como parte da etapa anterior, um trabalho é criado para exportar o arquivo CUR para o Amazon Simple Storage Service (Amazon S3).
- Como estamos usando o Amazon Athena para consultar os relatórios, os dados do CUR devem ser rastreados e disponibilizados no catálogo de dados do AWS Glue e/ou por meio do AWS Lake Formation.
- Contrate o QuickSight Enterprise, caso ainda não tenha feito isso.
- Configure o acesso no QuickSight ao Athena e ao Amazon S3 para que você possa consultar o arquivo CUR. Para obter mais informações, consulte Como acessar os recursos da AWS.
Uma alternativa para esses pré-requisitos é implementar a solução CUDOS. Isso implantará o AWS CUR e disponibilizará dados no Amazon S3 e no Athena. Para obter mais informações, consulte Cloud Intelligence Dashboards.
Tag para os usuários
A primeira etapa é ter tags para os usuários do QuickSight e atribuir rótulos de chave-valor, que serão usados nos dados do CUR. Usamos a AWS Command Line Interface (AWS CLI) e o comando tag-resource. Conclua as seguintes etapas:
- Na CLI da AWS instalada localmente ou usando o AWS CloudShell, marque um usuário com o seguinte código:
aws quicksight tag-resource --resource-arn arn:aws:quicksight:<Region>:<AWS-Account-ID>:user/default/Admin/<QuickSight-User-Name> --tags Key=<key-name>,Value=<Value>
Neste exemplo, usamos costcenter
como nossa chave de tag.
- 2. Na página inicial do AWS Management Console, pesquise por “Billing and Cost Management” e escolha-o na lista de serviços.
- No console Billing and Cost Management, em Cost Organization no painel de navegação, escolha Tags de Allocation tags.
- A chave de tag que você criou será preenchida (pode levar algumas horas para ser listada). Por padrão, a tag estará inativa.
- 3. Selecione sua tag e escolha Activate.
- Pode levar de 24 a 48 horas para preencher as tags recém-ativadas na tabela do Athena para gerar relatórios de CUR.
- 4. Dada a alteração no esquema dos dados CUR com a adição de uma nova tag, o esquema na tabela precisa ser atualizado. Se estiver usando o AWS Data Exports, após 24 a 48 horas, o crawler deverá ser executado novamente para capturar a nova coluna. Isso não é necessário com o CUDOS, pois o pipeline e o crawler são executados de acordo com um cronograma.
- Para validar se a tag está disponível, podemos executar uma consulta simples no AWS Athena. No editor de consultas do Athena, escolha sua fonte de dados, banco de dados e tabela para confirmar a localização dos dados CUR. Atualize o SQL abaixo com os nomes corretos do banco de dados e da tabela. Neste exemplo, usamos o banco de dados
athenacurcfn_aws_cost_and_usage_report
e a tabelaad_aws_cost_and_usage_report
. Edite e, em seguida, execute o script SQL básico no editor do Athena para confirmar se a tag está nos dados e veja o detalhamento do custo para o usuário, que pode ser filtrado usando a colunaresource_tags_user_costcenter
para o usuário do QuickSight marcado com o valorFinance
.
Crie uma análise de custos do QuickSight
Com o CUR implantado e os usuários com as tags, podemos criar um painel do QuickSight que fornece informações sobre o consumo de custos do QuickSight. Você pode usar as etapas desta seção como ponto de partida para criar um painel de custos personalizado, adaptado às necessidades da sua organização.
É importante destacar a origem de determinados dados importantes. Com a seguinte instrução SQL, estamos construindo uma fatia da tabela CUR básica para fins de nossa análise. Você pode personalizar ainda mais essa instrução SQL para atender às necessidades específicas da sua organização. A seguir estão os termos-chave extraídos pelo CUR por meio do SQL personalizado:
- Recurso QuickSight — Essa coluna é criada por uma declaração de caso em SQL e agrupa os elementos de custo do QuickSight por recurso. Ele divide os custos nas seguintes categorias: cobranças de autor e administrador, cobranças de leitores, custos adicionais do Amazon Q no QuickSight, alertas, SPICE e relatórios.
- ID do recurso — Essa coluna é originária do CUR e inclui o ID do recurso responsável pelo custo. Nos dados do QuickSight, ele pode representar um ARN de usuário ou ARN de painel.
- Categoria de ID do recurso — Essa coluna é criada pela instrução SQL e categoriza os recursos com base no tipo de recurso.
- Namespace do usuário — Essa coluna é criada pela instrução SQL e extrai o namespace do usuário do ID do recurso.
- Nome de usuário — Essa coluna é criada pela instrução SQL e extrai o nome do usuário da ID do recurso.
- ID do painel — Essa coluna é criada pela instrução SQL e extrai o ID do painel do ID do recurso.
Conclua as etapas a seguir para criar seu conjunto de dados e sua análise:
- No console do QuickSight, escolha Datasets no painel de navegação.
- Escolha Create new dataset.
- Escolha o Athena como sua fonte de dados.
- Insira um nome para sua fonte de dados e escolha Create data source.
5. Escolha Use custom SQL para inserir seu exemplo de SQL.
Atualize o nome do esquema e o nome da tabela na instrução SQL Select a seguir para corresponder ao esquema e a tabela do Catálogo de Dados. Se houver alguma tag, a coluna deverá ser adicionada na instrução SQL.
- Salve e publique o conjunto de dados.
Com o conjunto de dados preparado e disponível, podemos criar nossa análise e painel. Veja a seguir alguns exemplos de visualizações que você pode criar com alguns cliques.
- 8. Primeiro, visualizamos os custos mensais do QuickSight:
- Adicione um novo visual de KPI ao painel.
- Adicione o line item cost como um valor e a line item usage start date ao trend group.
- Altere a agregação para mensal.
- Em seguida, visualizamos o custo por característica do produto:
- Adicione um visual de gráfico circular.
- Adicione o line item cost como um valor.
Opcionalmente, filtre pelo mês mais recente.
- Também podemos visualizar o custo mensal por usuário para autores e leitores:
-
- Adicione um visual de tabela dinâmica.
- Adicione o Username ao Rows e a Usage Date (por mês) e o custo não combinado como valor.
- Para filtrar os custos não relacionados ao usuário, adicione um filtro e exclua o nome de usuário null.
- Adicione o campo QuickSight Features às linhas para diferenciar entre autores, leitores e outras categorias de custo.
-
Para preços baseados em sessões, o uso será o número de sessões. Para preços baseados no usuário, o uso representa o custo incorrido no mês.
- 11. A seguir, vamos visualizar o custo mensal por namespace:
- Adicione um visual de gráfico de barras empilhadas.
- Adicione a usage date por mês ao eixo x, o unblended cost como valor e o namespace ao grupo/cor.
- Filtre namespaces null para garantir que vejamos apenas os custos relacionados ao namespace e ao usuário.
O namespace é capturado no SQL personalizado anterior analisando o ID do recurso para recursos do tipo username
.
Por fim, visualizamos o custo mensal para os usuários por tag:
-
-
- Precisamos adicionar uma coluna de tag ao SQL personalizado, com base no nome da tag e na tabela definidos no AWS Glue pelo crawler. Por exemplo, se sua tag estiver como
cost_center
, você adicionaria o seguinte como uma coluna na instrução SELECT:Resource_tags_user_cost_center como cost_center_tag
- Adicione um visual de tabela dinâmica ao painel.
- Adicione
tag name
eusername
no Rows, a data e o mês de uso no Columns e ounblended cost
como valor. - Para calcular mês a mês, altere o campo calculado para capturar a diferença percentual usando a seguinte fórmula:
periodOverPeriodPercentDifference(sum({blended cost}),{Usage Date})
- Precisamos adicionar uma coluna de tag ao SQL personalizado, com base no nome da tag e na tabela definidos no AWS Glue pelo crawler. Por exemplo, se sua tag estiver como
-
A captura de tela a seguir mostra nosso painel final.
Limpeza
Para limpar seus recursos quando você terminar de usar essa solução. No AWS QuickSight, exclua o conjunto de dados, a análise e todos os painéis que você criou. No AWS Glue, exclua tabelas ou crawlers criados. No AWS Billing, desative a exportação de dados. No AWS S3, exclua os dados CUR.
Conclusão
Neste post, mostramos como configurar tags, conectar dados CUR ao Amazon S3 e criar um painel do QuickSight que fornece informações detalhadas sobre os custos do QuickSight.
Para muitos clientes, isso é apenas o começo do que é possível com essa solução. Por exemplo, como administrador de análise ou BI, agora você tem uma maneira de enviar relatórios mensais paginados para a liderança do departamento com o custo e o uso detalhados do QuickSight para os departamentos que você gerencia. Além disso, a liderança pode criar alertas que rastreiem seus custos em comparação com os orçamentos. Como proprietário do produto em um ISV, agora você tem ferramentas mais precisas para estornar ou monetizar sua oferta de BI. Essas possibilidades fornecem aos administradores de BI os detalhes necessários para monitorar e otimizar o custo de todos os seus produtos de dados QuickSight.
Comece implementando com relatórios de custo e uso e comece a usar o QuickSight!
Este conteúdo é uma tradução do blog original em inglês (Link aqui).
Sobre os autores
Ramon Lopez é arquiteto lider de soluções do Amazon QuickSight. Com muitos anos de experiência na criação de soluções de BI e experiência em contabilidade, ele adora trabalhar com clientes, criar soluções e oferecer serviços de classe mundial. Quando não está trabalhando, ele prefere ficar ao ar livre no oceano ou no alto de uma montanha.
Sobre o tradutor
Eduardo Pereira é Arquiteto de Soluções. Atua ajudando clientes do setor Enterprise da industria Financeira durante a sua jornada na nuvem da AWS. Tem grande interesse na área de Analytics, observabilidade e serverless.