レポートの作成 - Application Cost Profiler

AWS Application Cost Profiler は 2024 年 9 月 30 日までに廃止され、新規顧客を受け入れなくなります。

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

レポートの作成

前提条件を満たしたら、AWS アカウントのレポートを設定して使用状況データを AWS Application Cost Profiler に送信する準備をします。このセクションでは、レポートを設定する方法、および使用状況データを Application Cost Profiler に送信する方法について説明します。

Application Cost Profiler レポートの設定

次の手順で、使用状況データに基づいて生成するレポートを設定する方法を示します。レポートを生成する頻度などの詳細を設定します。

注記

AWS アカウントが AWS 組織に含まれている場合、管理アカウントまたは個々のメンバーアカウントのいずれかを使用してレポートを設定できます。個々のアカウントに対して設定されたレポートには、そのアカウントのデータのみが含まれます。管理アカウントを使用して設定されたレポートには、組織全体のデータを含めることができます。

レポート出力に使用される Amazon S3 バケットは、レポート設定を作成するアカウントに属している必要があります。

Application Cost Profiler レポートを設定するには
  1. Web ブラウザを開き、Application Cost Profiler コンソールにサインインします。

  2. [Get started now] (今すぐ始める) をクリックして、レポートを設定または変更します。

  3. レポートの [レポート名] および [レポートの説明] を入力します。

  4. [S3 バケット名を入力] フィールドに S3 バケットの名前を入力し、[S3 プレフィックスを入力] フィールドに S3 プレフィックスを入力します。S3 バケットの作成および Application Cost Profiler へのアクセス許可の付与の詳細については、「Application Cost Profiler 用の Amazon S3 バケットの設定」を参照してください。

  5. レポートに使用するオプションを選択します。

    • [時間頻度] — レポートを生成する頻度として [毎日][毎月][両方] のいずれかを選択します。

    • [レポート出力形式] — Amazon S3 バケット内に作成するファイルのタイプを選択します。[CSV] を選択すると、Application Cost Profiler によって、レポートに gzip 圧縮を使用したカンマ区切り値のテキストファイルが作成されます。[Parquet] を選択すると、レポートに Parquet ファイルが生成されます。

  6. [Configure] (設定) を選択してレポート設定を保存します。

注記

AWS Application Cost Profiler API を使用してレポートを設定することもできます。

[今すぐ始める] をクリックして現在のレポート設定を表示し、レポート設定を確認します。

注記

設定できるレポートは 1 つのみです。設定ページに戻ると、既存のレポートが編集されます。

レポートを設定した後で、データの取り込みが有効になります。サービスを Application Cost Profiler と統合して、リソースの使用状況データを提供できます。

サービスのテナント使用状況データのレポート

レポートを設定したら、アカウントのリソースまたはサービスのテナント使用状況データを送信する準備ができます。リソースが特定のテナントで使用されている場合は、Application Cost Profiler に通知する必要があります。例えば、異なるテナントからの API コールをサービスが受け入れる場合、そのテナントからの API コールを開始および終了するときに、各テナントの開始時刻と終了時刻を記録します。Application Cost Profiler は、そのデータを使用して、各テナントの作業に費やされた時間ごとにサービスのコストに関するレポートを生成します。

Application Cost Profiler に使用状況データを提供するには、次の操作を行います。

  • リソース使用状況データの準備 — 特定のテナントでリソースがいつ使用されるかを説明するテーブルを作成します。

  • 使用状況データのアップロード — Application Cost Profiler にアクセス許可を付与した Amazon S3 バケットにテーブルをアップロードします。

  • 使用状況データのインポートImportApplicationUsage API オペレーションを呼び出して、Application Cost Profiler にデータの処理準備が整ったことを通知します。

以下のセクションで、これらの各手順について詳しく説明します。

ステップ 1: リソース使用状況データの準備

サービスでリソースが使用されているときに、どのテナントがそのリソースを使用しているかを追跡します。このデータをテーブルに記録します。このテーブルを後でアップロードして、Application Cost Profiler にインポートできるようにします。テーブル内の各行に、リソース、そのリソースを使用しているテナント、およびその使用の開始時刻と終了時刻が示されます。リソースの例としては、使用されている Amazon Elastic Compute Cloud (Amazon EC2) インスタンスなどがあります。

このステップでは、使用状況に関する正しい情報を出力するために、コードをサービスに統合する必要があります。

次の表に、リソース使用状況テーブル内のフィールドの一覧を示します。

フィールド 説明
ApplicationId システム内の使用されているアプリケーションまたは製品を識別します。テナントメタデータの範囲を定義します。
TenantId 指定されたリソースを消費するテナントのシステム内の識別子。Application Cost Profiler は、ApplicationId 内でこのレベルに集計します。
TenantDesc (オプション) 独自の追加レポートのテナントに関する追加データ。
UsageAccountId リソースを実行するアカウント (組織に含まれているアカウントの場合に重要)。
StartTime エポックからのミリ秒およびマイクロ秒単位のタイムスタンプ (UTC)。指定されたテナントによる使用期間の開始時刻を示します。
EndTime エポックからのミリ秒およびマイクロ秒単位のタイムスタンプ (UTC)。指定されたテナントによる使用期間の終了時刻を示します。
ResourceId 使用されているリソースの Amazon リソースネーム (ARN)。
名前 (オプション) [ResourceId] を指定する代わりに、[Name] (名前) リソースタグを指定して、コストがリソースセットに帰属させることができるようになります (フィールドに、[Name] (名前) タグに使用する値が含まれている必要あり)。リソースタグは、コストと使用状況レポートの一部として有効になります。リソースタグの詳細については、コストと使用状況レポートユーザーガイドの「リソースタグの詳細」を参照してください。

出力は、次の例に示すように、見出し行を含むカンマ区切り値 (.csv) ファイルに含まれている必要があります。

ApplicationId,TenantId,TenantDesc,UsageAccountId,StartTime,EndTime,ResourceId MyApp,Tenant1,,123456789012,1613681437032.9001,1613681437041.5312,arn:aws:ec2:us-east-1:123456789012:instance/1234-abcd-example-1234 MyApp,Tenant2,,123456789012,1613681245531.4426,1613681245551.1323,arn:aws:ec2:us-east-1:123456789012:instance/1234-abcd-example-1234 MyApp,Tenant1,,123456789012,1613681904815.3381,1613681904930.0972,arn:aws:ec2:us-east-1:123456789012:instance/1234-abcd-example-1234 MyApp,Tenant2,,123456789012,1613681904765.1956,1613681904946.574,arn:aws:ec2:us-east-1:123456789012:instance/1234-abcd-example-1234

データを .csv 拡張子のファイルとして保存します (gzip で圧縮する場合は .csv.gzip)。このデータを Application Cost Profiler にアップロードすると、各タイムスライスは関連付けられたテナントに割り当てられます。この例では、レポートには、そのテナントの Amazon EC2 インスタンスコストのタイムスライスが含まれます。Amazon EC2 インスタンスの場合にのみ、特定のテナントに関連付けられていないスライスは属性なしのテナントに追加されます。オーバーラップするタイムスライスは複数回カウントされます。使用状況テーブルのデータが正確であることを確認するのは、ユーザーの責任です。

注記

ファイルは 1 時間に相当する必要があります。リソースが数時間使用される場合は、1 時間で使用状況が終了し、それと同時に次のファイルで新しいレコードが開始されます。

1 時間分のデータを含む 1 つのファイルを送信する必要があります。同じ時間のデータに対して複数のファイルが送信された場合、Application Cost Profiler は最新のファイルのデータのみを考慮します。

例えば、次の表は、指定されたタイムスライスに基づいて、1 時間 (3,600,000 ミリ秒) における 3 つのテナントの使用状況を Application Cost Profiler が計算する方法を示しています。

テナント 指定されたタイムスライス 計算された 1 時間あたりのコストのパーセント
Tenant1 1,200,000 ms 33.34%
Tenant2 600,000 ms 16.66%
<unattributed> 50.00%

この例では、Tenant1 には 1 時間の 3 分の 1 が割り当てられ、Tenant2 には 1 時間の 6 分の 1 が割り当てられています。1 時間の 50% である残りの 30 分 (1,800,000 ミリ秒) は、どちらのクライアントにも帰属しません。

現在、Application Cost Profiler では以下のリソースが有効になっています。

  • Amazon EC2 インスタンス (オンデマンドインスタンスとスポットインスタンスのみ)

  • Lambda 関数 (Lambda 関数のデータを送信する場合は、ResourceId として非修飾リソース ARN を送信する必要があります)

  • Amazon Elastic Container Service (Amazon ECS) インスタンス

  • Amazon Simple Queue Service (Amazon SQS) キュー

  • Amazon Simple Notification Service (Amazon SNS) のトピック

  • Amazon DynamoDB の読み取りと書き込み

注記

Amazon SQS、Amazon SNS、DynamoDB の使用量は、ほとんどのリソースとは異なり、時間単位で課金されません。この場合、1 時間の使用量 (DynamoDB での読み取りと書き込みの数など) は、その 1 時間の中で読み取りまたは書き込みがいつ発生したのかに関係なく、異なるテナントに割り当てられた時間のパーセントで分類されます。

ステップ 2: リソース使用状況のアップロード

テナントごとの使用状況のファイルを取得したら、データファイルを Amazon S3 にアップロードし、Application Cost Profiler がそのファイルへのアクセス許可を持っていることを確認します。

S3 バケットの作成の詳細については、「Application Cost Profiler 固有の前提条件」を参照してください。

Application Cost Profiler が S3 バケットにアクセスできることを確認する必要があります。これは S3 バケットごとに 1 回だけ行う必要があります (同じバケットを再利用して複数の使用状況ファイルをアップロードできます)。バケットへのアクセス許可の付与については、Application Cost Profiler に使用状況データ S3 バケットへのアクセス許可を付与するを参照してください。バケットが暗号化されている場合は、「Application Cost Profiler に SSE-KMS で暗号化された S3 バケットへのアクセス許可を付与する」を参照してください。

注記

使用状況データに使用する S3 バケットを暗号化する必要はありません。

データを .csv 拡張子 (gzip で圧縮する場合は .csv.gzip) のファイルとして S3 バケットに 1 時間間隔でアップロードします。新しいファイルをアップロードした後、ファイルをレポートにインポートできるように、アップロードしたことを Application Cost Profiler に通知する必要があります。

注記

Application Cost Profiler に使用状況データへのアクセス許可を付与することにより、レポート処理中は、これらの使用状況データオブジェクトを米国東部 (バージニア北部) の AWS リージョンに一時的にコピーすることに同意するものとします。これらのデータオブジェクトは、毎月のレポート生成が完了するまで、米国東部 (バージニア北部) リージョンに保持されます。

ステップ 3: Application Cost Profiler への使用状況データのインポート

Application Cost Profiler がアクセスできる Amazon S3 バケットに使用状況データをアップロードしたら、そのデータが存在すること、および最終レポートにインポートするように Application Cost Profiler に通知します。そのためには、Application Cost Profiler API で ImportApplicationUsage オペレーションを使用します。

ImportApplicationUsage オペレーションを含め、AWS Application Cost Profiler API の詳細については、「AWS Application Cost Profiler API リファレンス」を参照してください。

次の例は、ImportApplicationUsage を呼び出す方法を示しています。括弧内の入力テキストを、S3 バケットの値およびアップロードされたオブジェクトの値に置き換えてください。

POST /ImportApplicationUsage HTTP/1.1 Content-type: application/json { "sourceS3Location" : { "bucket": "<bucket-name>", "key": "<object-key>", "region": "<region-id>" } }
注記

region パラメータが必要になるのは、デフォルトで無効になっている AWS リージョンにバケットがある場合のみです。詳細については、「AWS 全般のリファレンス」の「Managing AWS リージョン」を参照してください。

ImportApplicationUsage でインポートしたデータを使用し、レポートを設定したときにリクエストした頻度で、Application Cost Profiler によって新しいレポートが生成されます。

レポートを設定し、Application Cost Profiler への使用状況データのインポートを自動化したら、生成されたレポートを表示できます。レポートの詳細については、「Application Cost Profiler レポートの使用」を参照してください。