今回の発表も日本の多くのユーザーの方から頂いていたものなのですが、まずはその背景からお話したいと思います。
企業においてAWSを利用される場合、典型的な流れ次のようなものになるでしょう。まず、小さなパイロットプロジェクトでの利用からはじまります。バックアップのためにS3のバケットを一つ作ったり、Amazon EC2のインスタンスを用いて、Webサイトやアプリケーションをホスティングするかもしれません。もしこの小さなプロジェクトがうまくいくと、その噂はすぐに広まり、会社の周りの人も使い始めることになります。いつのまにか、会社全体でAWS利用が高まっていき、沢山のAWSサクセスストーリーが生まれてきます。
AWSの利用量が増えるにつれ、個人アカウントでの使用はやめて、会社用のアカウントを作ることになります。IAMを用いて、子ユーザーやグループを作り、各アプリケーションから、AWSのリソースに対するアクセスコントロールを行います。
そうすると、しばしば課題になってくるのが、各アカウントの中で、どの部門、開発者、アプリケーションがどれくらいの量のAWSリソースを用いているのか、そのコストをどこに割り当てるかについてです。AWS側ではコスト割当てのための詳細情報はこれまで提供しておりませんでした。そのため、お客様から、このコスト割り当てのプロセスに、非常に手間がかかるということで、改善要望を頂いておりました。
タグを用いたコスト割当て
今回の発表により、EC2において既存の機能であるタギングシステムを用いて、新しいコスト割当ての機能の提供を開始しました。AWSリソースにタグをつけることで、タグ毎に配分された利用明細にアクセスすることができます。
今回のリリースでは、下記のリソールに関して、タグを用いてコスト割当て可能です。
- S3 バケット
- EC2 インスタンス
- EBS ボリューム
- リザーブド・インスタンス
- ストップ・インスタンス・リクエスト
- VPN コネクション
- Amazon RDS DB インスタンス
- AWS CloudFormation スタック
下記が利用の手順です:
- タギングのモデルを決定 - タグはキー・バリューで指定できるようになっており、一般的に、タグのキーはある軸を示し、その軸にそって値(バリュー)を持つことになります。例えば、キーの名前が部門であると、その値は、営業、マーケティング、開発、QA、開発などになります。会社における会計のコスト割当ての仕組みに沿って、このキーとバリューを自在に設定することができます。もちろん、複数のタグを利用できます。もし、各部門が複数のアプリケーションを稼働させている場合、それが用いるリソースに対して(例えばS3のバケット)、アプリケーションと、部門の両方をタグとしてつけることができるでしょう。
- リソースをタグ付けする - 各リソース毎に10個までタグをつけることができます。AWS Management Console、サービスAPI、コマンドライン、Auto Scalingのいずれからでもタグ付けできます。
また、CloudFormationを用いると、関連するAWSリソースをセットで簡単にタグ付けできます。 - 利用するタグを選択する -AWS Portalにアクセスし、関連サービス(CSV Report, Programmatic Access, Cost Allocation Report)にサインアップすれば、下記のManage Cost Allocation Reportから、どのタグを、利用明細のコスト割当てに利用するか選択できるようになります。
上記のページから、どのタグを利用して、どのタグを利用しないか選択できます。
- 利用明細にアクセスする - 利用明細の見積もり状況は毎日定期的に何度か作成されます。また、月締めから3日以内に、各月の利用明細が作成されます。このデータには、Programmatic accessを通してアクセス、もしくは、S3バケットに保存されます。
データ処理
コスト割当てレポート(Cost Allocation Report)では、各タグのキー毎に列が追加されます。タグの値は、各コラムに明記されます。

上記のコスト割当てレポートの場合、キーとして、Owner、Stack、Cost Center、Application、Projectを利用しています。もしタグの値が無い場合は、レポートにおいても空白となります。データ転送とリクエストの料金もタグ付されたリソースに含まれます。
このデータを用いることで、会社の会計システムにこのデータを入力したり、レポート化やグラフ化の元データとして活用できるでしょう。例えば、ピボットテーブルを用いてデータ解析も容易になるでしょう。

今後の予定
今後も、この機能に関しては改善を加えていく予定です。より多くのリソースでタグ付できるようにし、各リソース毎に10以上のタグを利用できるようにしていきたいと考えています。また、リザーブドインスタンスの予約金(upfront fee)にも対応を考えています。是非、利用してみて、ご要望頂ければと思います!