Amazon Web Services ブログ

Amazon Athena を使用して AWS Cost and Usage Report をクエリする

AWS Cost and Usage Report には、お客様のコストと使用状況に関する包括的な情報が含まれています。Amazon Athena を使って AWS Cost and Usage Report のデータソースに問い合わせることで、迅速に価値を引き出すことができます。

Amazon Athena はサーバーレスのインタラクティブなクエリサービスであり、Amazon S3 バケット内の情報に直接クエリし、標準的な SQL を使用して分析します。これには、pricing、products、および reservations に関連する追加のメタデータが含まれます。最も良い点は、インフラストラクチャの設定や維持が必要ないことです。

この記事では、Athena を使用して迅速かつ簡単に構成と有効化を行い、AWS のコストと使用状況について問い合わせる方法を説明します。

AWS Cost and Usage Report の始め方

AWS Cost and Usage Report を始めるには、AWS のマネジメントコンソールで Billing に移動します。左側ナビゲーションペインの Cost & Usage Reports 選択し、[Create report] をクリックします。あるいは、Report Preferences API を使用してプログラム的にレポートを作成することもできます。詳細については、コストと使用状況レポートの作成を参照してください。

レポートの作成プロセスでは、レポートを保存するための S3 バケットを用意する必要があります。S3 バケットでは要件に応じてアクセス権限を調整することができます。ファイナンス、エンジニアリング、オペレーションの各グループでは、コストと使用状況に対する関心が高まっています。それらのグループには、以下のようなニーズがあるかもしれません。

  • カスタムコストアプリケーションやレポートの作成
  • 緻密な予測
  • 特定の使用パターンの深堀り

コストと使用状況のレポーティングのために専用の S3 バケットを作成することで、アクセス制御、カスタムレポーティングの実装、既存ファイルの設定変更などに要する時間を節約することができます。

レポートの作成プロセスで Athena と統合するために、Enable report data integration for オプションにあるチェックボックスが選択されていることを確認してください。

Blog

このオプションを選択すると、コストと使用状況のデータを Apache Parquet 形式で出力するように設定されます。Apache Parquet 形式は、S3 では自動的に年と月のフォルダに分割されます。Athena はクエリごとに価格が設定されており、料金はクエリによってスキャンされたデータ量に基づいているため、クエリのパフォーマンスとコストを最適化することができます。AWS Cost and Usage Report データを Apache Parquet 形式 (カラムベースで圧縮が可能) にすることでスキャンするデータ量が少なくなり、クエリごとのコストを 30%~90% 削減できます。詳細については、Amazon Athena の料金ページをご覧ください。

Athena にデータを統合する

AWS Cost and Usage Report が有効になったら、標準の AWS CloudFormation テンプレート (crawler-cfn.yml) を使用して、AWS Glue クローラーをオンデマンドで実行します。これにより、分析のためにデータを準備する作業が不要となり、コストと使用状況に関する最新の情報が常に Athena で利用できるようになります。

Blog

詳細は、こちらのユーザーガイドを参照してください。

Athena を使用した AWS Cost and Usage Report へのクエリ

CloudFormation のスタックを作成したら、Athena コンソールに移動します。データセットが正しく構成されると、AWS Cost and Usage Report が左のナビゲーションペインのデータベースに表示されます。

以下のコマンドを使用して、2019 年のプロダクト別総支出額をクエリします。

SELECT line_item_product_code,

sum(line_item_unblended_cost) AS cost

FROM <YOUR TABLE NAME>

WHERE year='2019'

GROUP BY  line_item_product_code

HAVING sum(line_item_unblended_cost) > 0

ORDER BY  line_item_product_code;

ここから、AWS Cost and Usage Report で利用可能なあらゆるデータフィールドに対して、任意のクエリを実行できます。レポートの列や定義の詳細については、データディクショナリを参照してください。

結論

Athena では、AWS Cost and Usage Report を迅速かつ容易に問い合わせることができ、使用パターンとコスト要因の根拠をこれまで以上にコスト効率よく (かつ容易に) 確認することができます。さらに、標準的な AWS サービスが自動的に統合されているので、常に最新のコストと使用状況のデータを問い合わせることができます。ガイド付きチュートリアルはこちらからご覧いただけます。

詳細は、AWS Cost and Usage Report のマーケティングページまたは AWS コストと使用状況レポートのユーザーガイドをご覧ください。

Erin Carlson
Erin Carlson
エリンは、AWS のコストと使用状況へのアクセス、分析、最適化の体験を向上させることに焦点を合わせたデザイナーのチームを率いています。また、世界中のお客様や現場チームに AWS コスト管理プロダクトのポートフォリオを使って、ベストプラクティスに基づいたプロダクトトレーニングやガイダンスを提供しています。エリンは、プロダクトマーケティングマネージャーとして、AWS のコスト管理ブランドを初めて開発し、監督しました。

翻訳はソリューションアーキテクトの渡邊が担当しました。原文はこちら