s_tajima:TechBlog

渋谷で働くインフラエンジニアのTechブログです。

AWS Reserved Instancesによる減額効果を計算するツールを作った

概要

AWSの料金を節約する手段の1つに Reserved Instances という仕組みがあります。
これは、予め将来的に利用するであろうインスタンスを予約し、一定額の前払金を支払う(支払わないケースも有る)ことで、
通常の利用(Ondemand Price)に比べて一定の割引を受けた料金(Blended Rate)でインスタンスを利用できるようにするというものです。

今回は、そのReserved Instanceによって、
インスタンスの利用料金がどれだけ減額されたのかを確認するツールを作成したので紹介します。

aws-ri-discount-calculator

GitHub - s-tajima/aws-ri-discount-calculator: Reserved Instance discount calcurator

使い方はREADMEを参照。

  • IAMアカウントの権限は必要ありません。
  • AWSの提供するMonthly Reportからインスタンスの利用時間, Blended Rateを取得。
  • AWS Price List APIからOndemand Priceを取得。
  • Ondemand PriceとBlended Rateの差額にインスタンスの利用時間を掛けて、
    どれくらいの減額を受けているのかを計算します。
    • Reserved Instanceの購入費用(前払金)は計算に含まれません。
    • Reserved Instanceの購入によるコスト削減効果を計算する場合にはそれを含めて考慮する必要があります。
    • そこまで含めた数字を出せるようになるとよさそうですが、うまいやり方を検討中です。
  • Consolidated Billingを組んでいる場合は、子AWSアカウント毎に集計します。
  • Monthly ReportのCSVの詳細な仕様が公開されていないため、現時点では動作確認できているデータが限定的で、
    場合によっては間違った数値を出してしまったり、動作しない可能性があります。
    • Reserved InstanceのオファリングタイプはEC2のAll Upfront, RDSのHeavy Utilizationのみテスト済み。
  • 実は AWS Cost and Usage Reports で近しい情報は閲覧できるのですが、
    以下のような不都合があったので自作することにしました。
    • EC2以外の情報は確認できない。
    • Consolidated Billing環境で複数のAWSアカウントでReserved Instanceを購入している場合に、
      その効果を合算した数値を見ることができない。

以上、aws-ri-discount-calculatorの紹介でした。 PRもお待ちしております。