Vantage でマルチクラウドのコストを一元管理する

この記事は [**セゾン情報システムズ Advent Calendar 2022**](https://qiita.com/advent-calendar/2022/sisco) の 19 日目の記事です。

## Vantage とは
Vantage とは VNTG, Inc が提供するクラウドコスト管理のためのプラットフォーム (SaaS) です。サービス使用料の管理をシンプルにし、料金の予測や今月はどのリソースにいくらかかったか、どのリソースの利用が多かったかなど、支出状況を把握できるツールです。

https://www.vantage.sh/

本記事では Vantage のようなサービスが必要となる背景や機能概要について紹介します。

## なぜクラウドコストの一元管理が必要か
メインで使用するクラウドサービスに加えて、複数のクラウドサービスプロバイダーへの依存するケースも増えてきています。
例えば以下のようなケースです。

* AWS を主に使っているが、データ分析基盤には BigQuery や Snowflake を使用している
* AWS にアプリケーションをデプロイしているが、監視は Datadog を採用している

アプリケーションのリリースが監視サービスの料金に影響を与えるなどプロバイダー間のコストに相関が発生するケースも考えられます。

このような場合に、チームまたはアプリケーション/サービスといった単位にかかる全体のコストを把握したい場合があります。とはいえプロバイダー毎に課金体系や明細はバラバラですから、これらのデータの統合や分析を自前でやるには多くのエンジニアリング時間を費やす必要があります。


## 各クラウドサービスの標準機能との違い
単一クラウドの利用を考えた場合、AWS の Cost Explorer などの各クラウドプロバイダーが提供する機能でもアカウント内のコストや使用状況を確認することができます。その場合でも Vantage を利用することにより以下のようなメリットがあります。

* マルチアカウントの可視性
* 組織をまたぐ

### マルチアカウントの可視性
AWS の場合、AWS Organizations で部門やシステム単位で複数のアカウントを使い分けることは一般化しています。一方で AWS Cost Explorer の場合、組織内の全アカウントのコストを確認できるのは組織の管理アカウントのみです。現状、委任管理者の設定もできません。メンバーアカウントは自身のアカウントのコストのみを確認できます。

アクセス最小特権の原則のプラクティスに反するため、仮にコスト情報だけだとしても、管理アカウントに対して多くのユーザーの権限を払い出すのは気がすすみません。Vantage 上でマルチアカウントのコストを確認することで、管理アカウントへの権限払い出しは不要になります。

### 組織をまたぐ
ここでは AWS Organizations の組織、Azure のテナント、Google Cloud の組織をまとめて「組織」と表現します。

単一クラウドの使用であっても、クラウドプロバイダーの標準機能においては複数の組織からなるコストの一元管理は難しいのではないでしょうか。Vantage を使用すると、複数の組織を取り込んで可視化することができます。

## Vantage の主要機能
### マルチクラウド対応
三大クラウドはもちろん、Snowflake や Datadog といった SaaS についても順次対応が拡大しています。

#### サポート済みのサービス
* AWS
* Microsoft Azure
* Google Cloud
* Fastly
* Snowflake
* Datadog
* Databricks

#### サポート予定のサービス
* MongoDB Atlas
* Fly.io
* PlanetScale

### Overview
Overview では以下のようなウィジェットが表示され、各コスト状況の要約を把握することができます。

* Savings Plans のカバレッジ
    * オンデマンド料金と Savings Plans 料金の割合を確認できます
* 接続済みのクラウドプロバイダーごとのコストサマリー
* アカウントごとのコストサマリー
    * AWS の場合はメンバーアカウント、Google Cloud の場合はプロジェクトごとの料金が確認できます
* 作成済みの Cost Report の概要
* Top Query のサマリー (Snowflake) 

Overview の例：
![](https://cdn.hashnode.com/res/hashnode/image/upload/v1671384476606/OKo4T1RWF.png)

### Cost Report
#### Cost Report とは
Vantage では任意のフィルター条件を設定して Cost Report を作成することができます。デフォルトで All Resources という名前のレポートが作成されます。このレポートでは接続するすべてのクラウドプロバイダーとアカウントのコストが表示されます。

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1671380101447/cYMeGZ654.png)

クラウドプロバイダーやアカウント、サービス、リージョン、コスト配分タグ、コストカテゴリーなどのフィルター条件を設定し、Save As New で新しい Cost Report を作成できます。これにより任意の条件で部門単位やシステム単位のレポートを簡単に作成していくことができます。
![](https://cdn.hashnode.com/res/hashnode/image/upload/v1671380648909/MdDHitIBh.png)

#### コスト予測と予算設定
Cost Report を作成するとコストの推測値が自動で生成されます。また予算を作成し、Cost Report に割り当てることで、予算に対するコストの使用状況も確認できるようになります。

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1671380917381/AbDdr9j1g.png)

#### コストのドリルダウン
サービス毎の料金だけではなく、サービスカテゴリ、サブカテゴリ毎またはリソースごとに料金をドリルダウンしていくことができます。これにより想定外のコスト変動があった場合に、どのアカウントのどのリソースが影響しているのかを特定しやすくなります。

S3 のカテゴリごとの料金を確認:
![](https://cdn.hashnode.com/res/hashnode/image/upload/v1671381507259/1y-RkydBw.png)

S3 のリソース (バケット) ごとの料金を確認:
![](https://cdn.hashnode.com/res/hashnode/image/upload/v1671381688210/WskKViB1h.png)

#### コスト異常検知
すべてのプロバイダー、サービスのコストは Vantage により分析され、異常な使用が検知された場合はアラートが生成されます。

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1671382955305/fN0kqEC9B.png)

カテゴリ列から対象のサービスをクリックすると、Cost Report でアラートがトリガーされた日のサービスコストが強調表示されます。

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1671383206392/T5GWsI4gK.png)

#### 通知
Email/Slack/Teams への通知に対応しています。Cost Report 単位で Daily/Weekly/Monthly といった定期的な通知、コスト異常検知時の通知ができます。

Slack へのコスト異常通知の例:
![](https://cdn.hashnode.com/res/hashnode/image/upload/v1671382319585/4yUFjlk4q.png)

### Cost Recommendations
コスト削減の推奨事項を自動で検出し、リソース一覧と削減額を提示してくれる機能です。対象アカウントとリソースを自動で分析できます。一例として以下のようなものがあります。

* どこにもアタッチされていない EBS Volume
* どこにもアタッチされていない Elastic IP
* gp2 ボリュームの使用
* ライフサイクルポリシーが設定されいない ECR リポジトリ
* Savings Plans / Reserved Instance の購入推奨

以下は実際の推奨事項の例です。
![](https://cdn.hashnode.com/res/hashnode/image/upload/v1671378130458/VoAn_5EVY.png)

View resources をクリックすると Active Resources 上の対象のリソース一覧を表示できます。
![](https://cdn.hashnode.com/res/hashnode/image/upload/v1671378325623/1eX_FaOY3.png)

クラウド環境は常に進化、変化するため、いつ不要コストが発生するかわかりません。またクラウドコストに精通したメンバーを常に確保できる部門ばかりではないという会社も多いと思います。Cost Recommendations により、時間がかかるコスト分析の作業をある程度自動化できます。

またマルチクラウド対応という強みを生かし、クロスプロバイダーでの推奨を行ってくれるケースもあるようです。

https://www.vantage.sh/blog/cloudflare-specific-cost-recommendations-for-amazon-cloudfront-and-amazon-s3-egress

### Autopilot
AWS には Reserved Instance Marketplace という仕組みがあります。所有しているが使用していない EC2 スタンダート RI を Maketplace 上で販売できる機能です。

https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ri-market-general.html

Autopilot はユーザーのワークロードを分析し、Reserved Instance Marketplace の仕組みを使用してリザーブドインスタンスの売買を行うことで自動でコスト節約を行います。Autopilot を利用するには Reserved Instance Marketplace に販売者として登録する必要があります。 **米国の銀行口座** が必要であるため、残念ながら日本国内から利用するのは難しいかと思います。


## 料金
Vantage でトラッキングするクラウドサービスコストの総額によってプランが決まります。プランに設定されている金額内であれば接続するクラウドプロバイダーやアカウントの数の制限はありません。

|Plan|追跡コスト総額|Vantage 月額利用料|
|---|---|---|
|Starter|～$2,500| Free |
|Pro| ～$7,500 | $30 |
|Bussiness| ～$20,000| $200 |
|Enterprise|$20,000+| 追跡コストの 1%|

https://www.vantage.sh/pricing

Autopilot 機能の使用には別途料金がかかります。Autopilot の使用によって節約された Compute 料金の 5% が請求されます。たとえば EC2 の請求額が月 10,000 ドルで、Autopilotにより 3,000ドル節約できる場合、Autopilot の請求額は 150 ドルです、

https://docs.vantage.sh/autopilot/

以上です。
参考になれば幸いです。