顧客フロントSEのIT勉強ブログ

2022 APN AWS Top Engineer / ALL AWS Certifications Engineer。AWS認定12冠、情報処理試験全冠。顧客フロントSEがなるべく手を動かしながらIT技術を学んでいくブログです。

AWS Billing Conductorで請求書をカスタマイズする

 2022年3月17日にAWS Billing Conductor」というサービスがGAされています。 これはAWS Organizationsでアカウント管理している環境において、メンバーアカウントの請求書の見え方をカスタマイズできるサービスです。 今回は実機を使ってこのサービスの機能と想定ユースケースを整理します。

AWS Billing Conductorとは

 AWS Billing ConductorはAWS Organizations管理下の環境においてLinkedアカウントの請求書の見え方をカスタマイズするサービスです。 例えば「EC2の利用料を10%割引する」や「AWS利用料全体に対して10%のコストを追加する」ということを特定のAWSアカウントに対して適用できます。 AWS Billing Conductorの略称はABCらしいのですが、あまり浸透している気がしないのでここでは単にBilling Conductorと表記します。
 まずBilling Conductorの構成要素を説明していきます。

  • 請求グループ:Organizations内の複数のLinkedアカウント(もしくはPayerアカウント)をグルーピングしたもの。アカウントは複数のグループに属すことはできない。1つの料金プランを関連付ける。
  • プライマリアカウント:請求グループのアカウントから1つ選択する。請求グループ内の全アカウントの請求情報を閲覧できる。
  • 料金プラン:料金ルールを束ねたもの。0個以上の料金ルールを関連付ける。
  • 料金ルール:全サービスまたは特定サービスに対して利用料を割引 or 割増するルール。
  • カスタム明細項目:固定金額または全利用料に対する割合で計算された明細項目を定義する。
  • マージンレポート:請求グループのマージン(手数料)を表示するレポート。

 Billing Conductorによってカスタマイズした手数料・割引が付与された請求書(以降、見積もりと呼びます)は、AWSアカウントのBillingコンソールやCURの表記に反映されるだけでAWSからの請求額には影響しません

実際に使ってみる

 まだどんな機能かピンと来ないと思いますので、Billing Condutorコンソール(https://console.aws.amazon.com/billingconductor/)を使って何が出来るのかを見ていきます。

ダッシュボードの確認

 Billing Conductorにはダッシュボードが用意されており、請求グループ横断の概要が確認できます。 ここからは画面左のペインのメニューを上から順に見ていきます。

請求グループの作成

 左ペインの「請求グループ」から「請求グループの作成」ボタンをクリックすると次の画面で請求グループを定義できます。

 ここでプライマリアカウントについて補足しておきます。 通常、OrganizationsのLinkedアカウントはBillingコンソールおよびCURで自身のAWS利用料しか閲覧できませんが、プライマリアカウントでは同じ請求グループのAWS利用料を閲覧できます(実機でのイメージは後述「Billingコンソールの確認」参照)。 請求グループに紐づくアカウントの中から1つだけ選択しますが、一度選択すると変更できないことと、Payerアカウントは選択できないことに注意です。

料金ルールの作成

 左ペインの「料金の設定」では料金プランと料金ルールを操作できます。

 まず料金ルールを作成します。 全サービスまたは特定サービスに対して利用料を割引 or 割増するルールです。 上記画面の料金ルールタブから「料金ルールを作成」ボタンをクリックすると次の画面でルールを定義できます。

料金プランの作成

 次に料金プランです。 請求グループ作成時に「パブリックオンデマンド料金プランを作成」を選択していると既に1つプランが出来ているはずです。 下記画面で新規にプランを作成することもできます。プラン作成後に請求グループを選択して、請求グループとプランを関連付けます。

カスタム明細項目の作成

 次はカスタム明細項目です。 請求書に新しい明細レコードを追加することが出来ます。

 リソース値の考え方が少しだけ分かりにくいので補足します。 「請求グループの総コストを含めます」のチェックボックスをONにした場合、カスタム明細項目を除く総コストに対する割合で金額を計算します。 下記例の場合、総コストは$1,000のため、割合10%で計算すると$100が割合カスタム明細項目の金額になります。
次に「固定カスタム明細項目を含めます」のチェックも入れると、コストの母数に選択した固定カスタム明細項目も含めます。 下記例の場合、総コスト+固定カスタム明細項目は$1,200となるため、10%の割合カスタム明細項目の金額は$120になります。

Billingコンソールの確認

 では、ここでプライマリアカウントのBillingコンソールを見てみます。 まず「アカウント毎の請求明細」タブが増えており、同一請求グループ内の請求金額が一括で見えるようになります。 Payerアカウントと同様の見た目になりますね(黒塗りばかりですみません)。

 次に請求明細について、Payerアカウントからの見た目とプライマリアカウントからの見た目を比較してみます。 ここでは以下の定義を請求グループに関連付けています。

  • 料金ルールとして、グローバルに8%の割増を定義
  • カスタム明細項目(説明:AWS Support Fee)として、総コストの10%の料金を定義

 元々の金額が少なくてやや分かりにくいですが、料金ルールにより全体の利用料が8%増しになっています。 また新たに「AWS Billing Conductor line-item-created」のなかにAWS Support Feeという明細が増えています。 ここでカスタム明細項目は各アカウントそれぞれに追加になるのではなくプライマリアカウントにまとめられるということはポイントです。
 くわえて、SPP(Service Provider Program)Discountsの明細がプライマリアカウント側の請求明細から消えています。 Billing Conductorのユーザガイドに重要な記載があります。

The AWS Billing Conductor does not include:
・ Credits (redeemed at the payer or linked account level)
・ Tax
・ AWS Support charges

つまり、Payerアカウントや各Linkerアカウントに適用されるクレジット・割引が非表示になるということです。 SPPやEDP(Enterprise Discount Program)の割引は、AWSとリセラーパートナー間の機密事項になっており、エンドユーザには開示できません。 それ故、PayerアカウントのBillingコンソールをエンドユーザに解放できず、Organizations配下の総利用料を見たければCUR等をインプットに別途レポートを作成するか、別途SaaSを使って請求管理する必要がありました。これはAWSリセラーにとって非常に嬉しい機能ですね。

 ちなみに、PayerアカウントのBillingコンソールにおいて、画面右上の「設定」から見積もりデータビューを有効にしておくと、下のようにデータビューというリストが追加されます。 データビューを「請求可能」にすればAWSから請求される実コストを、「見積もり」にして請求グループを選択すればエンドユーザから見た請求明細の内容を確認することが出来ます。

マージンレポートの確認

 では最後の機能「マージンレポート」を確認します。 ここでは過去13か月にさかのぼって請求グループごとのマージン(手数料)の履歴を確認できます。 もし月途中にAWSアカウントを別の請求グループに移しても、当月分の金額は再計算されますが、過去の金額は変動しません。

想定ユースケース

 ここまでBilling Conductorの機能を確認してきたところで、このサービスを使うユースケースを考えてみます。 私の想像も入りますが、次のようなケースが想定されるのではないでしょうか。

  • AWSリセラーパートナー(Solution Provider)が、エンドユーザに対して手数料や割引を付与した請求額を見せたい場合
  • CCoEなどのAWS管理組織が、利用部門に対して管理費を付与して費用付替えしたい場合
  • Organizationsに属するアカウントのうち、一部だけを集計した利用料を利用部門に見せたい場合

主たるユースケースは1つ目だと思います。 私もAWSリセラーパートナーであるSIerに属しているため、Billing Conductorを使う目的はコレでした。 しかし自分たちでAWSを管理しているユーザ企業においても、2つ目や3つ目の目的で使うシーンはあり得るのではないでしょうか。

Billing Conductorの利用料

 最後に、Billing Conductor自体の利用料です。1時間ごとの見積もりレコード件数に応じて利用料が計上されます。 例えばOrganizations管理下に5,000のリソースがある場合、5,000リソース * 31日 * 24時間 = 3,720,000レコードが見積もりレコード件数になります。 2022年11月現在、毎月最初の1,000,000レコードは無料枠で、その後は1,000レコード当たり$0.15が計上されるため、(3,720,000レコード - 1,000,000レコード) * $0.15 = $408がBilling Conductorの利用料です。
 Billing ConductorがGAになる前は、このような請求書カスタマイズの方法はAWSからは提供されていなかったため、RippleVantageといったSaaSを使う他ありませんでした。それらの利用料と比べると安い、というケースも多いのではないでしょうか (マルチクラウドで運用している環境では当然Billing Conductorでは集約できないので、SaaSを使うケースがなくなったわけではありません)

まとめ

 AWS Billing Conductorの機能と使い方を整理しました。 AWSリセラーパートナーにとってほぼ必須の機能と言えそうですが、自社でAWSを運用している場合も使えるシーンがありそうです。 このような非差別化領域は極力マネージドサービスを使って省力化し、効率体にAWS運用したいですね!