Marcação de alocação de custos para produtos de AMI no AWS Marketplace - AWS Marketplace

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Marcação de alocação de custos para produtos de AMI no AWS Marketplace

O AWS Marketplace oferece suporte à marcação de alocação de custos para produtos de software baseados em imagem de máquina da Amazon (AMI). As tags de instância novas e existentes do Amazon Elastic Compute Cloud (Amazon EC2) são preenchidas automaticamente com base no uso correspondente da AMI do AWS Marketplace. Você pode usar tags de alocação de custos ativadas para identificar e rastrear o uso da AMI por meio do AWS Cost Explorer, do Relatório de custos e uso da AWS, de Orçamentos da AWS ou de outras ferramentas de análise de gastos na nuvem.

O fornecedor que forneceu a AMI também pode registrar outras tags personalizadas na medição de produtos baseados em AMI, com base nas informações específicas do produto. Consulte mais detalhes em Usar tags de alocação de custos.

Você pode usar tags para organizar os seus recursos e tags de alocação de custos para acompanhar os custos da AWS em um nível detalhado. Depois de ativar as tags de alocação de custos, a AWS as usa para organizar seus custos de recursos no relatório de alocação de custos, para facilitar a categorização e o controle dos custos da AWS.

A marcação de alocação de custos só rastreará os custos a partir do momento em que as tags foram ativadas no console do Billing and Cost Management. Somente os proprietários de Conta da AWS, os proprietários de contas de gerenciamento do AWS Organizations e usuários com as permissões apropriadas podem acessar o console do Billing and Cost Management de uma conta. Independentemente de você usar a marcação de alocação de custos, não há alteração no valor cobrado. Usar ou não tags de alocação de custos não afeta a funcionalidade de seus produtos de software baseados em AMI.

Rastrear tags de alocação de custos para uma AMI em várias instâncias

Cada instância do Amazon EC2 executada para uma assinatura de AMI do AWS Marketplace tem um item de linha de uso de software do AWS Marketplace correspondente no Relatório de custos e uso da AWS. O uso que você fizer do AWS Marketplace sempre refletirá as tags específicas aplicadas à instância correspondente do Amazon EC2. Isso permite que você diferencie seus custos de uso do AWS Marketplace com base nos diferentes valores de tag que foram atribuídos, no nível de instância.

Também é possível somar seus custos de uso baseados em tag para igualar a cobrança de uso de software da AMI refletida na sua fatura com o Cost Explorer ou o Relatório de custos e uso da AWS.

Encontrar orçamentos com instâncias marcadas de custos alocados

Se você já tem orçamentos ativos filtrados por tags de alocação de custos em várias instâncias do Amazon EC2 no console do Billing and Cost Management , pode ser difícil encontrar todos eles. O script Python a seguir retorna uma lista de orçamentos que contêm instâncias do Amazon EC2 do AWS Marketplace na Região da AWS atual.

Você pode usar esse script para estar ciente de um possível impacto em seu orçamento e onde excedentes podem ocorrer com essa alteração. Observe que o valor faturado não muda, mas as alocações de custos serão refletidas com mais precisão, o que pode afetar os orçamentos.

#! /usr/bin/python import boto3 session = boto3.Session() b3account=boto3.client('sts').get_caller_identity()['Account'] print("using account {} in region {}".format(b3account,session.region_name)) def getBudgetFilters(filtertype): ''' Returns budgets nested within the filter values [filter value][budeget name]. The filtertype is the CostFilter Key such as Region, Service, TagKeyValue. ''' budget_client = session.client('budgets') budgets_paginator = budget_client.get_paginator('describe_budgets') budget_result = budgets_paginator.paginate( AccountId=b3account ).build_full_result() returnval = {} if 'Budgets' in budget_result: for budget in budget_result['Budgets']: for cftype in budget['CostFilters']: if filtertype == cftype: for cfval in budget['CostFilters'][cftype]: if cfval in returnval: if not budget['BudgetName'] in returnval[cfval]: returnval[cfval].append(budget['BudgetName']) else: returnval[cfval] = [ budget['BudgetName'] ] return returnval def getMarketplaceInstances(): ''' Get all the Amazon EC2 instances which originated with AWS Marketplace. ''' ec2_client = session.client('ec2') paginator = ec2_client.get_paginator('describe_instances') returnval = paginator.paginate( Filters=[{ 'Name': 'product-code.type', 'Values': ['marketplace'] }] ).build_full_result() return returnval def getInstances(): mp_instances = getMarketplaceInstances() budget_tags = getBudgetFilters("TagKeyValue") cost_instance_budgets = [] for instance in [inst for resrv in mp_instances['Reservations'] for inst in resrv['Instances'] if 'Tags' in inst.keys()]: for tag in instance['Tags']: # combine the tag and value to get the budget filter string str_full = "user:{}${}".format(tag['Key'], tag['Value']) if str_full in budget_tags: for budget in budget_tags[str_full]: if not budget in cost_instance_budgets: cost_instance_budgets.append(budget) print("\r\nBudgets containing tagged Marketplace EC2 instances:") print( '\r\n'.join([budgetname for budgetname in cost_instance_budgets]) ) if __name__ == "__main__": getInstances()

Resultado do exemplo

Using account 123456789012 in region us-east-2 Budgets containing tagged Marketplace EC2 instances: EC2 simple MP-test-2

Para obter mais informações, consulte os tópicos a seguir.