AMI 製品のコスト配分タグ - AWS Marketplace

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AMI 製品のコスト配分タグ

AWS Marketplaceは、Amazon Machine Image (AMI) ベースのソフトウェア製品のコスト配分タグをサポートします。新規および既存の Amazon Elastic Compute Cloud (Amazon EC2) インスタンスタグは、対応するAWS MarketplaceAMI の使用法 アクティブ化されたコスト配分タグを使用して、AMI の使用状況を特定および追跡できます。AWS Cost Explorerとすると、AWSコストと使用状況レポートAWS予算、またはその他のクラウド支出分析ツール

AMI を提供したベンダーは、製品に固有の情報に基づいて、AMI ベースの製品のメータリングに他のカスタムタグを記録することもできます。詳細については、「コスト配分タグ」を参照してください。

タグを使用してリソースを整理し、コスト配分タグを使用して AWS のコストを詳細レベルで追跡できます。コスト配分タグをアクティブ化した後、AWSでは、コスト配分レポートでリソースコストの整理にコスト配分タグが使用されるようになります。これにより、AWSコスト。

コスト配分タグは、Billing and Cost Management コンソールでタグがアクティブ化された時点からのコストのみを追跡します。のみAWSアカウント所有者AWS Organizations管理アカウントの所有者AWS Identity and Access Management(IAM) ユーザーは、アカウントのBilling and Cost Management コンソールにアクセスできます。コスト配分タグを使用するかどうかに関係なく、請求額に変更はありません。コスト配分タグを使用するかどうかは、AMI ベースのソフトウェア製品の機能には影響しません。

複数のインスタンス間での 1 つの AMI のコスト配分タグの追跡

起動された Amazon EC2 インスタンスごとにAWS MarketplaceAMI サブスクリプションには、対応するAWS MarketplaceAWS のコストと使用状況レポートのソフトウェア使用状況行項目 あなたのAWS Marketplaceの使用には、対応する Amazon EC2 インスタンスに適用される特定のタグが常に反映されます。これにより、インスタンスレベルで割り当てられたさまざまなタグ値に基づいて AWS Marketplace の使用コストを区別できます。

また、タグベースの使用コストを合計して、Cost Explorer または AWS のコストと使用レポートのいずれかを使用して、請求書に反映された AMI ソフトウェア使用料と同等にすることができます。

コスト配分タグ付きインスタンスを使用した予算の検索

課金およびコスト管理コンソールで多数の Amazon EC2 インスタンスにわたってコスト配分タグでフィルタリング済みのアクティブな予算がある場合、それらすべてを見つけるのは難しいかもしれません 次の Python スクリプトは、Amazon EC2 インスタンスを含む予算のリストをAWS Marketplace現在の AWS リージョンに追加します。

このスクリプトを使用して、予算への潜在的な影響、およびこの変更によってオーバーランが発生する可能性がある場所を認識することができます。請求額は変更されませんが、コスト配分はより正確に反映され、これが予算に影響する可能性があることに注意してください。

#! /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 AWS 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()

出力例

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

詳細については、以下のトピックを参照してください。