[廃止] AWS Application Cost Profiler が 2024 年 9 月 30 日に廃止されます

2024.01.14

いわさです。

AWS には AWS Cost Profiler というサービスがあります。

先日こちらのサービスをひさしぶりに触ってみようと思ったら、いつのまにかサービス廃止スケジュールが設定されていることに気が付きました。

ただ、おそらくですが「Application Cost Profiler って...?」という方がほとんどではないでしょうか。

個人的には Application Cost Profiler はとても良いコンセプトのサービスだなと思っていたのですが、主なユースケースがマルチテナントに限られるという点、使用可能サービスが限られている点などから、どのワークロードでも使えるサービスではありませんでした。

どうやら DevelopersIO にも AWS Application Cost Profiler の記事は無いようなので、Application Cost Profiler がどういうものだったのか、廃止スケジュールと代替サービスの有無について紹介します。

AWS Application Cost Profiler (ACP) とは

マルチテナントのコスト分析は難しい

マルチテナント SaaS などで、テナント分離のおはなしがよくでてきます。
概念を雑に分けると、インフラをテナントごとに用意するか、一緒に使うかの考え方があります。
それぞれ AWS ではサイロモデル、プールモデルと言ったりします。

引用元:Importance and Impact of Compliance for SaaS Solutions on AWS | AWS Partner Network (APN) Blog

ここでコスト分析について考えてみます。
マルチテナント SaaS を運用していると、ほぼ必ず「テナントごとにインフラコストはどのくらいかかっているのか?」を分析する必要が出てきます。料金プランや新機能を考えたり、あるいはインフラのサイジングを行うためなど利用は様々ですが。

ここじで上記の構成の時、サイロモデルの場合はリソースにコスト配分タグを設定しておくことでテナントごとのインフラコストを算出出来ます。
しかし、プールモデルの場合同じインフラを全員で使っているのでテナントごとのコストを算出することが出来ません。

この問題を解決するためには、各テナントの使用量をどうにかトラッキングし、さらに全体コストから独自のロジックで費用を算出することが必要です。

引用元:マルチテナントアーキテクチャのコスト分析 ~SaaS on AWS を成功に導くためのポイントとは ? 第 8 回 - builders.flash☆ - 変化を求めるデベロッパーを応援するウェブマガジン | AWS

AWS Application Cost Profiler がコスト分析を手伝ってくれる

この使用量算出後に独自ロジックでテナントコストを算出する部分をサポートしてくれるサービスとして、AWS Application Cost Profiler は 2021 年 5 月に登場しました。

使い方ですが、前提としてテナントごとのメトリクス(使用量)を計測して Amazon S3 バケットへアップロードする必要があります。

引用元:マルチテナントアーキテクチャのコスト分析 ~SaaS on AWS を成功に導くためのポイントとは ? 第 8 回 - builders.flash☆ - 変化を求めるデベロッパーを応援するウェブマガジン | AWS

そうなのです、Application Cost Profiler はテナントごとの使用量を算出してくれるサービスではありません。
テナント別の使用量を Application Cost Profiler が解析出来るフォーマットで S3 バケットにアップロードし、Application Cost Profiler にインポートする必要があります。

そうすると、Application Cost Profiler がレポートを出力してくれるようになります。
このレポートからテナントごとのリソースコストがわかるようになるというものになっています。

公式ドキュメントから読み取れるサポートリソースは以下と記述されています。
時間ベースのものから実行回数ベースのものまで存在するのですが、サポートされているリソースの種類は多くはありませんでした。

  • Amazon EC2 instances (on demand and spot instances only)
  • Amazon Simple Queue Service (Amazon SQS) queues
  • Amazon Simple Notification Service (Amazon SNS) topics
  • Amazon DynamoDB reads and writes

廃止スケジュール

まず、新規の利用はもう出来ません。
以前はサービスメニューから Application Cost Profiler が検索出来たのですが、表示されなくなっています。

現在 Application Cost Profiler リソースが有効化されている方はおそらく閲覧出来るのだと思いますが、私の環境だと見ることが出来ませんでした。1 年半ほど前に有効化しているのですがその後リソースを削除していました。

現時点で過去に作成したリソースから使用出来ている場合も 2024 年 9 月 30 日に削除されるので移行が必要となります。

代替サービスは現状ないが

廃止にともない代替サービスはあるのかという点ですが、現状ありません。
次の記事は re:Invent 2023 のとあるセッションの 1 シーンです。

プールモデルのテナントごとのコストをどのようにトラッキングすれば良いのかという点について次のように言及されていました。

プールされたコストは、SaaSのインフラで直面する主な問題の1つです。 プールされたコストを把握するにはどうすればよいのでしょうか? ここで結末を明かしてしまうと、申し訳ないのですが、手作業になります。 このプロセスには多少の努力が必要だ。

AWSが新しいサービスを立ち上げ、共有コストをすべて教えてくれる、と言いたいところだが。今年はそれを発表しませんでした。

その代わりに、使えるテクニックをいくつか紹介しよう。

上記から、本日時点で手動でコスト計算を行う必要があることがわかります。
方法は上記セッションで紹介されているので確認してみてください。キャプチャしたテナントごとの使用量を使って、独自で計算を行う形となります。

ただ、新しいサービスが発表される可能性があるようにも受け取れるので、何らかの情報のアップデートを期待したいところです。

さいごに

本日は AWS Application Cost Profiler が 2024 年 9 月 30 日に廃止されるということで、そもそも Application Cost Profiler がどういうものなのかと、廃止スケジュール、そして代替サービスの状況についてまとめてみました。

マルチテナント SaaS で実際にコスト算出に悩まれているお客様を知っているので、Application Cost Profiler がより強化された新サービスが出て欲しいなーと期待しています。