

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

# の AMI ベースの製品 AWS Marketplace
<a name="buyer-server-products"></a>

Amazon マシンイメージ (AMI) は、オペレーティングシステム、および多くの場合に AWSで動作する追加のソフトウェアを含むサーバーのイメージです。

にリストされているソフトウェア AWS Marketplace は、Amazon Elastic Compute Cloud (Amazon EC2) でのみ実行できます。ダウンロードすることはできません。

 では AWS Marketplace、AMIs の検索 (検索提案を含む）、他の顧客から送信された製品レビューの表示、AMIsサブスクライブと起動、サブスクリプションの管理を行うことができます。すべての AWS Marketplace 製品は品質が検証され、Amazon Web Services (AWS) インフラストラクチャの 1-Click 起動機能用に事前設定されています。

 AMI 製品と Software as a Service (SaaS) 製品の出品は、どちらも信頼できる販売者から提供されます。AMI 製品は、お客様の AWS アカウントで実行されます。ソフトウェア設定とソフトウェアで動作するサーバーをより詳細に制御できますが、サーバーの設定とメンテナンスに関する責任も大きくなります。

 AWS Marketplace カタログには、有名販売者の厳選されたオープンソースおよび商用ソフトウェアが含まれています。の多くの製品は、1 時間で購入 AWS Marketplace できます。

 AMI カタログは、ユーザーや開発チームがコストのかかる調査を行うことなく開発中のソフトウェアやプロジェクトを表示および交換できるコミュニティリソースです。コミュニティの AMI カタログに表示される製品は、有名な販売者が提供するものである場合とそうでない場合があり、一般的には詳しい調査を行っていません。

 AWS Marketplace 製品には、製品が利用可能な各 AWS リージョン 1 つの AMI が含まれています。これらの AMI は、場所を除いて同じです。また、販売者が最新のパッチと更新プログラムで製品を更新するときに、製品に別の AMI セットを追加することがあります。

 一部の AWS Marketplace 製品は、 AWS CloudFormation テンプレートを使用してクラスターとしてデプロイされるため、AMI の複数のインスタンスを起動することがあります。このインスタンスのクラスターと CloudFormation テンプレートで設定された追加の AWS インフラストラクチャサービスは、単一製品のデプロイとして機能します。

## AWS CloudFormation テンプレート
<a name="what-is-aws-cloudformation"></a>

 AWS CloudFormation は、 AWS リソースをモデル化してセットアップするのに役立つサービスです。これにより、これらのリソースの管理に費やす時間が減り、 で実行されるアプリケーションに集中する時間が増えます AWS。CloudFormation テンプレートは、Amazon Elastic Compute Cloud (Amazon EC2) インスタンスや Amazon Relational Database Service (Amazon RDS) データベースインスタンスなど、必要なさまざまな AWS リソースを記述します。次に、CloudFormation はプロビジョニングとそのためのリソースの設定を行います。詳細については、[「 の開始方法 CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/GettingStarted.html)」を参照してください。

### AWS CloudFormation テンプレートの使用
<a name="using-CF-templates"></a>

ソフトウェア販売者は CloudFormation テンプレートを提供して、複数の AMI インスタンスやその他の AWS リソースで構成される優先デプロイトポロジを定義できます。製品に CloudFormation テンプレートを使用できる場合は、製品一覧ページにデプロイオプションとして表示されます。

AMI では単一の Amazon EC2 インスタンスをデプロイできます。CloudFormation テンプレートを使用して、クラスターとして機能する AMI の複数のインスタンスと、Amazon RDS、Amazon Simple Storage Service サービスなどの AWS リソースを単一のソリューションとしてデプロイできます。

### 計測対応 AMI 製品
<a name="buyer-ami-metering-enabled-products"></a>

にリストされている一部の製品は AWS Marketplace 、ソフトウェアアプリケーションによって測定された使用量に対して請求されます。計測された使用状況ディメンションの例として、ホスト/エージェントの使用状況や帯域幅の使用状況などがあります。これらの製品が正しく機能するには追加の設定が必要です。使用量を計測するアクセス許可を持つ IAMroleは、起動時に AWS Marketplace Amazon Elastic Compute Cloud (Amazon EC2) インスタンスに関連付ける必要があります。Amazon EC2 の IAM ロールの詳細については、「[Amazon EC2 の IAM ロール](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html)」を参照してください。

### AMI 製品バージョンポリシー
<a name="ami-product-version-policies"></a>

AWS Marketplace は、S-AMI、CloudFormation テンプレートを使用した AMI、およびコンテナ製品を使用して、 AWS 顧客と販売者のバージョン管理エクスペリエンスを自動化します。自動バージョンアーカイブにより、販売者によって 2 年以上制限されているすべての製品バージョンが自動的にアーカイブされます。アーカイブされたバージョンは、新規のお客様は AWS Marketplace から起動できなくなりましたが、既存のユーザーは、AMI ID を指定することにより、起動テンプレートと Amazon EC2 Auto Scaling グループを通じてアーカイブされたバージョンを引き続き使用できます。過去 13 か月間に新しいインスタンスの起動に使用されていないアーカイブバージョンは削除されます。アーカイブされたバージョンが削除されると、新規または既存のユーザーによって起動できなくなります。

# AWS Marketplace での AMI サブスクリプション
<a name="buyer-ami-subscriptions"></a>

AWS Marketplace では、一部の Amazon マシンイメージ (AMI) ベースのソフトウェア製品には、年間サブスクリプション料金モデルがあります。この料金モデルは一括前払いで、以降の 12 か月間は時間単位の使用料金はかかりません。1 つの Amazon Elastic Compute Cloud (Amazon EC2) インスタンスに対して、AWS Marketplace のソフトウェア製品の 1 つの年間サブスクリプションを適用できます。

**注記**  
年間料金による時間単位の AMI の場合、年間サブスクリプションは購入時に指定したインスタンスタイプのみを対象としています。例えば、`t3.medium`。他のインスタンスタイプを起動すると、アクティブなサブスクリプションに基づいて、そのインスタンスタイプの時間単価の料金が発生します。

また、AWS Marketplace のソフトウェアを時間単位の料金で起動および実行を継続できます。AWS Marketplace のソフトウェア製品を購入するために支払う料金に加えて、Amazon EC2 や AWS の他のサービスの使用料金が別途必要です。

Amazon EC2 インスタンスタイプを時間単位で使用するように変更した場合、Amazon EC2 インフラストラクチャは契約した Savings Plans に従って請求されます。ただし、AWS Marketplace の AMI ライセンスは自動的に時間単位の料金に変更されます。

時間単位の AMI 製品が年間料金をサポートしていない場合、購入者は年間サブスクリプションを購入できません。時間単位の AMI 製品が年間料金をサポートしている場合、購入者は AWS Marketplace の製品のページにアクセスして年間料金で購入できます。各年間契約では、購入者は時間単位の料金を請求されることなく 1 つのインスタンスを実行できます。契約は、インスタンスタイプによって異なります。

## 年次契約の変更
<a name="annual-agreement-amendments"></a>

1 時間ごとの年次 (年次) プラン修正案では、AWS Marketplace 管理ポータル から直接プランを変更できます。より多くの vCPU が搭載されている Amazon Elastic Compute Cloud (Amazon EC2) インスタンスタイプで実行するために AMI に切り替えるか、CPU アーキテクチャの最新世代に移行する場合は、修正案を使用できます。修正案により、既存の年間計画に以下の変更を加えることができます。
+ Amazon EC2 インスタンスタイプファミリー間の切り替え
+ Amazon EC2 インスタンスタイプサイズ間の切り替え
+ 新しいインスタンスタイプを追加する
+ 契約内の既存のインスタンスタイプの数量を増やす

契約で追加または切り替えた新しい Amazon EC2 インスタンスタイプは、プランの現在の終了日に同時終了されるため、契約内のすべてのインスタンスタイプが同時に更新されます。

変更の比例配分コストが 0 より大きい限り、変更を行うことができます。新しく追加された Amazon EC2 インスタンスの日割額は、契約の残りの期間に合わせて調整されたインスタンスタイプの年次コストに基づいています。インスタンスタイプを切り替える場合、削除された Amazon EC2 インスタンスタイプの比例配分コストは、新しく追加された Amazon EC2 インスタンスタイプの日割額から差し引かれます。

**注記**  
修正案は、パブリックオファーから行われたすべての契約と、分割プランなしのプライベートオファーからの契約でサポートされます。

### 年間契約修正案の例
<a name="amendment-scenarios"></a>

年次契約の修正案に関する以下の例を検討してください。次の例では、顧客は 2024 年 1 月 1 日に m5.large インスタンスタイプの 2 つのユニット (4,000 USD/年) の契約に署名しました。販売者には、8,000 USD から出品料を差し引いた金額が支払われます。

**Example 1: 同じ数のインスタンスタイプに切り替える**  
年半ばに、顧客は m5.large インスタンスタイプの 1 つのユニットを r5.large インスタンスタイプの 1 つのユニットに切り替えたいと考えています。切り替え日割額は、追加されたインスタンスの日割額 (6 か月分の r5.large - 2,000 USD) から、削除されたインスタンスの日割額 (6 か月分の m5.large - 2,000 USD) を差し引いて計算されます。正味コストは 0 USD であるため、修正が発生する可能性があります。



**Example 2: より高価なインスタンスタイプに切り替える**  
年半ばに、顧客は m5.large インスタンスタイプの 1 つのユニットを m5.2xlarge インスタンスタイプの 1 つのユニットに切り替えたいと考えています。スイッチの日割額は、追加されたインスタンスの日割額 (6 か月分の m5.2xlarge - 3,000 USD) から、削除されたインスタンスの日割額 (6 か月分の m5.large - 2,000 USD) を差し引いて計算されます。正味コストは 1,000 USD であるため、修正が発生する可能性があります。



**Example 3: 低価格インスタンスタイプの 1 つのユニットに切り替える**  
年半ばに、顧客は m5.large インスタンスタイプの 1 つのユニットを c5.large インスタンスタイプの 1 つのユニットに切り替えたいと考えています。切り替えの日割額コストは、追加されたインスタンスの日割額 (6 か月分の c5.large - 1,500 USD) から、削除されたインスタンスの日割額 (6 か月分の m5.large - 2,000 USD) を差し引いて計算されます。正味コストは - 500 USD (0 USD 未満) であるため、修正は発生しません。



**Example 4: 低価格インスタンスタイプの複数のユニットに切り替える**  
年半ばに、顧客は m5.large インスタンスタイプの 1 つのユニットを c5.large インスタンスタイプの 2 つのユニットに切り替えたいと考えています。切り替えの日割額は、追加されたインスタンスの日割額 (6 か月分の 2 つの c5.large - 3,000 USD) から、削除されたインスタンスの日割額 (6 か月分の m5.large - 2,000 USD) を差し引いて計算されます。正味コストは 1,000 USD であるため、修正が発生する可能性があります。



**Example 5: 新しいインスタンスタイプを追加する**  
年半ば、顧客は m5.large インスタンスタイプの追加ユニットを契約に追加したいと考えています。この変更の日割額は、追加されたインスタンスの日割額 (6 か月の m5.large - 2,000 USD) として計算されます。正味コストは 2,000 USD であるため、修正が発生する可能性があります。



**Example 6: インスタンスタイプを削除する**  
年半ば、顧客は m5.large インスタンスタイプの 1 つのユニットを削除したいと考えています。この変更の日割額は、削除されたインスタンスの日割額 (6 か月の m5.large - 2,000 USD) として計算されます。正味コストは - 2,000 USD (0 USD 未満) であるため、修正は発生しません。

# で契約料金が設定されている AMI 製品 AWS Marketplace
<a name="buyer-ami-contracts"></a>

一部の販売者は、Amazon マシンイメージ (AMI) ベースのソフトウェア製品を契約料金モデルで販売しています。このモデルでは、選択した期間、ソフトウェア製品にアクセスするための個別のライセンスについて、一括で前払いすることに同意したものとみなされます。を通じて事前に請求されます AWS アカウント。例えば、1 年間に 10 件のユーザーアクセスライセンスと 5 件の管理ライセンスを購入するとします。ライセンスを自動的に更新するように選択できます。

さらに、一部の企業では、契約料金モデルでプライベート AMI ベースのソフトウェア製品を提供しています。通常、プライベートオファーは期間が決まっており、変更できません。

AMI ベースのソフトウェア製品の契約は、 AWS Marketplaceの製品の詳細ページから購入できます。このオプションが利用可能な場合、商品の詳細ページの **[配信方法]** に、**[契約料金による AMI]** が表示されます。製品を購入すると、アカウントのセットアップと設定を行うために、製品のウェブサイトが表示されます。その後、使用料が通常の AWS アカウント 請求レポートに表示されます。

# 契約料金の AMI 製品をサブスクライブする
<a name="sub-public-AMI-contract"></a>

販売者は、Amazon マシンイメージ (AMI) ベースのソフトウェア製品に対してパブリック契約またはプライベート契約を提案できます。ソフトウェア製品にアクセスするための個別のライセンスについて、一括で前払いすることに同意したものとみなされます。

契約がパブリックオファーである場合は、契約の期間とライセンスを自動更新するかどうかを選択できます。

通常、プライベートオファーは期間が決まっており、変更できません。

**契約料金モデルによるパブリックオファーの AMI ベースの製品をサブスクライブするには**

1. AWS Marketplace にサインインして、契約料金モデルによるコンテナベースのソフトウェア製品を検索します。

1. **[調達]** ページで、**[料金情報]** を表示します。

   各期間 (月単位) の **[単位]** と料金を確認できます。

1. **[サブスクライブを続ける]** を選択して、サブスクリプションを開始します。

   サブスクライブせずにこの製品を保存するには、**[リストに保存する]** を選択します。

1. 料金情報を確認し、ソフトウェア製品の条件を設定して契約を作成します。

   1. **[1 か月]**、**[12 か月]**、**[24 か月]**、**[36 か月]** の中から契約期間を選択します 

   1. **[更新設定]** で、契約を自動的に更新するかどうかを選択します。

   1. **[契約オプション]** で、各単位の数量を選択します。

   契約料金の合計は、**[料金の詳細]** に表示されます。

1. すべての選択を完了したら、[**Create Contract (契約の作成)**] を選択します。

**契約料金の合計** が AWS アカウント に請求されます。ライセンスは AWS License Manager で生成されます。

**注記**  
サブスクリプションを処理し、ソフトウェア製品のライセンスが AWS License Manager アカウントに生成されるまで、最大 10 分かかる場合があります。

**契約料金モデルによるプライベートオファーの AMI ベースの製品をサブスクライブするには**

1. 購入者アカウントで AWS Marketplace にサインインします。

1. プライベートオファーが表示されます。

1. **[調達]** ページで、**[料金情報]** を表示します。

    各期間 (月単位) の **[単位]** と料金を確認できます。

1. **[サブスクライブを続ける]** を選択して、サブスクリプションを開始します。

1. 料金情報を確認し、ソフトウェア製品の条件を設定して契約を作成します。

   契約期間は既に販売者が設定しており、変更できません。

1. **[契約オプション]** で、各単位の数量を選択します。

1. **[料金の詳細]** で契約料金の合計を表示します。

   また、パブリックオファーは、**[ご利用いただけるその他のオファー]** の **[オファーを表示]** を選択して確認できます。

1. すべての選択を完了したら、[**Create Contract (契約の作成)**] を選択します。

**注記**  
サブスクリプションを処理し、ソフトウェア製品のライセンスが AWS License Manager アカウントに生成されるまで、最大 10 分かかる場合があります。

# AMI ベースソフトウェアへのアクセス
<a name="access-ami-software"></a>

契約料金で Amazon マシンイメージ (AMI) ベースソフトウェア製品を購入すると、アカウントのセットアップと設定のために製品のウェブサイトに遷移します。その後、使用料が通常の AWS アカウント 請求レポートに表示されます。

**AMI ベースのソフトウェア製品にアクセスするには**

1.  AWS Marketplace コンソールで、**サブスクリプションの表示**に移動し、ソフトウェア製品のライセンスを表示します。

1. **[調達]** ページで、次の手順を実行します。

   1. **ライセンスの管理**を選択して、使用権限の表示、アクセス許可の付与、使用状況の追跡を行います AWS License Manager。

   1. **[設定に進む]** を選択します。

1. **[起動]** ページの設定を確認し、**[アクションを選択]** でソフトウェアの起動方法を選択します。

1. **[インスタンスタイプを選択]** で、Amazon Elastic Compute Cloud (Amazon EC2) を選択し、次に **[次の手順: インスタンスの詳細の設定]** を選択します。

1. **インスタンスの詳細の設定**ページの **IAM ロールで、** から既存の AWS Identity and Access Management (IAM) ロールを選択します AWS アカウント。

   IAM ロールがない場合は、**[新しい IAM ロールを手動で作成]** リンクを選択し、その手順に従ってください。
**注記**  
契約料金で製品を購入すると、ソフトウェアが License Manager API を使用してチェックできるライセンス AWS アカウント が AWS Marketplace で によって作成されます。AMI ベースの製品のインスタンスを作成するには、IAM ロールが必要です。  
IAM ポリシーでは、次の IAM アクセス許可が必要です。  

****  

   ```
   {
      "Version":"2012-10-17",		 	 	 
      "Statement":[
         {
            "Sid":"VisualEditorO",
            "Effect":"Allow",
            "Action":[
               "license-manager:CheckoutLicense",
               "license-manager:GetLicense",
               "license-manager:CheckInLicense",
               "license-manager:ExtendLicenseConsumption",
               "license-manager:ListReceivedLicenses"
            ],
            "Resource":"*"
         }
      ]
   }
   ```

1. インスタンスの詳細を設定したら、**[確認と作成]** を選択します。

1. **[インスタンス作成の確認]** ページで、既存のキーペアを選択するか、新しいキーペアを作成し、**[インスタンスの作成]** を選択します。

   **[インスタンスの作成を開始する]** 進行状況ウィンドウが表示されます。

1. インスタンスが開始されたら、EC2 ダッシュボードに移動し、**[インスタンス]** の下の **[インスタンスの状態]** に **[実行中]** と表示されていることを確認します。

# 生成されたライセンスを表示する
<a name="view-generated-license"></a>

AMI ベース製品をサブスクライブすると、AWS License Manager でライセンスが生成されます。**[発行者]** (AWS/マーケットプレイス) および **[使用権限]** (ライセンスによってアプリケーションやリソースの使用、アクセス、消費する権限を与える単位) を表示できます。

**生成されたライセンスを表示するには**

1. AWS License Manager で AWS アカウント にサインインします。

1. **[付与されたライセンス]** には、付与されたライセンスがすべて表示されます。

1. **[検索]** バーに、製品 SKU、受取人、または状態を入力してライセンスを検索します。

1. **[ライセンス ID]** を選択すると、**[ライセンスの詳細]** が表示されます。

# 既存の契約を変更する
<a name="modify-existing-contract"></a>

AMI 製品に対して既存の前払い契約がある場合、 AWS Marketplace 購入者は契約の一部の側面を変更できます。AMI 契約は、時間単位または年単位の Flexible Consumption Pricing (FCP) オファーではなく、契約条件ベースのオファーによってサポートされています。この機能は、 と統合されているアプリケーションでのみ使用できます AWS License Manager。購入者は、現在の契約と同一オファーの使用権限の範囲内で、追加ライセンスを購入できます。ただし、購入者は契約で購入した使用権限の数を減らすことはできません。また、販売者がオプションを有効にしている場合、購入者はサブスクリプションの自動更新をキャンセルできます。

**注記**  
分割払いプランの契約オファーは修正できません。分割払いプランで購入した契約では、購入者が使用権限を変更することはできません。使用権限とは、アプリケーションやリソースを使用、アクセス、消費する権利のことです。分割払いプランの契約オファーは変更できません。

**サブスクリプションを管理する**

1.  AWS Marketplace コンソールで、**サブスクリプションの表示**に移動し、ソフトウェア製品のライセンスを表示します。

1. **[調達]** ページで **[ライセンスを管理]** を選択します。

1. リストから **[条件を表示]** を選択します。

1. **[契約オプション]** セクションで、矢印を使って使用権限を増やします。使用権限の数は、購入した使用権限の数よりも減らすことはできません。

1. 契約の詳細と合計金額は **[料金の詳細]** セクションに表示されます。



**サブスクリプションの自動更新をキャンセルするには**

1.  AWS Marketplace コンソールで、**サブスクリプションの表示**に移動し、ソフトウェア製品のライセンスを表示します。

1. **[調達]** ページで **[ライセンスを管理]** を選択します。

1. **[サブスクリプション]** ページで、**[更新設定]** セクションを見つけます。

1. キャンセルに関する利用規約を必ずご確認ください。

1. チェックボックスをオンにすると、自動更新がキャンセルされます。

# での AMI 製品のコスト配分タグ付け AWS Marketplace
<a name="cost-allocation-tagging-ami-marketplace"></a>

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

AMI を提供したベンダーでは、製品固有の情報に基づいて、AMI ベースの製品の計測に他のカスタムタグを記録する場合もあります。詳細については、[コスト配分タグを使用する](cost-allocation-tagging.md)を参照してください。

タグを使用してリソースを整理し、コスト配分タグを使用して AWS のコストを詳細レベルで追跡できます。コスト配分タグを有効にすると、 はコスト配分タグ AWS を使用してコスト配分レポートのリソースコストを整理し、 AWS コストの分類と追跡を容易にします。

コスト配分タグは、タグが Billing and Cost Management コンソールでアクティブ化された時点からのコストのみを追跡します。アカウントの請求情報とコスト管理コンソールにアクセスできるのは、 AWS アカウント 所有者、 AWS Organizations 管理アカウントの所有者、および適切なアクセス許可を持つユーザーのみです。コスト配分タグを使用するかどうかにかかわらず、請求額に変更はありません。コスト配分タグを使用するかどうかは、AMI ベースのソフトウェア製品の機能には影響しません。

## 複数のインスタンス間での 1 つの AMI のコスト配分タグの追跡
<a name="multi-instances-cost-allocation-tagging-marketplace"></a>

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

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

## コスト配分タグ付きインスタンスを使用した予算の検索
<a name="cost-allocation-tag-script-marketplace"></a>

Billing and Cost Management コンソールで、複数の Amazon EC2 インスタンスのコスト配分タグでフィルタリング済みの有効な予算が既にある場合、それらすべてを見つけるのは難しい場合があります。次の Python スクリプトは、現在の AWS リージョンの AWS Marketplace からの Amazon EC2 インスタンスを含む予算のリストを返します。

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

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

**出力例**

```
Using account 123456789012 in region us-east-2

Budgets containing tagged Marketplace EC2 instances:
EC2 simple
MP-test-2
```

## 関連トピック
<a name="cost-allocation-tagging-related-topics"></a>

詳細については、以下の各トピックを参照してください。
+ 「*AWS Billing ユーザーガイド*」の「[コスト配分タグの使用](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html)」。
+ 「*AWS Billing ユーザーガイド*」の「[AWS 生成コスト配分タグの有効化](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/activate-built-in-tags.html)」。
+ 「Amazon EC2 ユーザーガイド」の「[Amazon EC2 リソースにタグをつける](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html)」

# AWS Marketplace で AMI エイリアスを使用する
<a name="buyer-ami-aliases"></a>

Amazon マシンイメージ (AMI) は、`AMI ID` で識別されます。`AMI ID` を使用して、製品を起動する際に使用する AMI を指定できます。`AMI ID` は `ami-<identifier>` の形式で、例えば ami-123example456 などです。AMI (`AMI ID`) は、AWS リージョン、製品、製品バージョンによって異なります。

AWS Marketplace から製品を起動すると、`AMI ID` が自動的に入力されます。`AMI ID` があると、AWS Command Line Interface (AWS CLI) から、または Amazon Elastic Compute Cloud (Amazon EC2) を使用して、製品の起動を自動化する場合に便利です。`AMI ID` は、起動時にソフトウェアを設定すると確認できます。詳細については、「[ステップ 3: ソフトウェアを設定する](tutorial-buying-ami.md#step-3-configure-your-software)」を参照してください。

ソフトウェアの設定時には、`Ami Alias` も `AMI ID` と同じ場所にあります。`Ami Alias` は `AMI ID` と似たような ID ですが、その方が自動化で簡単に使用できます。`AMI alias` は `aws/service/marketplace/prod-<identifier>/<version>` の形式で、例えば` aws/service/marketplace/prod-1234example5678/12.2` などです。この `Ami Alias` ID はどのリージョンでも使用でき、AWS は正しいリージョンの `AMI ID` に自動的にマッピングされます。

製品の最新バージョンを使用する場合は、`AMI alias` でバージョンの代わりに **latest** の語句を使用すると、AWS は製品の最新バージョンを自動的に選択します (例: **aws/service/marketplace/prod-1234example5678/latest**)。

**警告**  
**latest** オプションを使用すると、ソフトウェアの最新リリースが表示されます。ただし、この機能使用する際には注意する必要があります。例えば、ある製品にバージョン 1.x と 2.x がある場合、2.x を使用している可能性があります。ここで、製品の最新リリースバージョンは 1.x のバグ修正である場合があります。

## AMI エイリアスの使用例
<a name="buyer-ami-alias-examples"></a>

AMI エイリアスは自動化に役立ちます。AMI エイリアスは AWS CLI テンプレートまたは CloudFormation テンプレートで使用できます。

次の例では、AWS CLI を使用することにより、AMI エイリアスを使用してインスタンスエイリアスを起動しています。

```
aws ec2 run-instances
--image-id resolve:ssm:/aws/service/marketplace/prod-<identifier>/version-7.1
--instance-type m5.xlarge
--key-name MyKeyPair
```

次の例では、AMI エイリアスを入力パラメータとして受け入れ、インスタンスを作成する CloudFormation テンプレートを示しています。

```
AWSTemplateFormatVersion: 2010-09-09

Parameters:
    AmiAlias:
        Description: AMI alias
        Type: 'String'
        
Resources:
    MyEC2Instance:
        Type: AWS::EC2::Instance
        Properties:
            ImageId: !Sub "resolve:ssm:${AmiAlias}"
            InstanceType: "g4dn.xlarge"
            Tags:
                -Key: "Created from"
                 Value: !Ref AmiAlias
```