アナウンス

ポイント

  • 課金対象の最小単位が1秒となる
    • 対象は全リージョンのLinux(WindowsやRHELなどのディストリビューションは対象外)
  • 最低利用時間は1分
    • 起動→停止が30秒の場合、利用時間は60秒に切り上げられる
    • 起動→停止が90秒の場合、利用時間は90秒
  • 請求書上の単位は、従来通り「時間(hours)」
    • 「bills will show times in decimal form」部分、日本語ページでは「10 進数の形式で時間が表示」と訳されていますが、小数点以下の数値で表示される、ということだと思います。
    • 従来は時間単位だったため、基本的に整数表示(小数点以下は常にゼロ)でした
    • 今回のアップデートによって、小数点以下の数値が発生するということです
    • 1秒=1÷3600=0.000277777777777778時間
    • 割り切れない数量がでてきますね。実際は小数点以下6桁程度に丸められそうです

実際のデータ

Programmatic Billing のMonthly Reportの出力を確認してみました。下記はその項目抜粋です。 料金関連の項目について少しだけ詳しく見てみます。

ProductCode AmazonEC2
ProductName Amazon Elastic Compute Cloud
UsageType APN1-BoxUsage:i3.large
ItemDescription $0.183 per On Demand Linux i3.large Instance Hour
UsageStartDate 2017/10/1 0:00
UsageEndDate 2017/10/31 23:59
UsageQuantity 14.705834
BlendedRate 0.183000026
CurrencyCode USD
CostBeforeTax 2.691168
Credits 0
TaxAmount 0.22
TaxType CT
TotalCost 2.911168

UsageQuantity

  • UsageQuantity=14.705834時間
  • 0.705834時間×3600秒=2541秒=42分21秒
  • 利用時間は14時間42分21秒ということですね
  • 実際の計算結果は2541.0024秒となりますが、最小単位は1秒。
  • 割り切れていないですね。誤差が発生しそうです。

CostBeforeTax

  • 1時間単価は $0.183ですので、 $0.183×14.705834=2.691167622
  • ですが、CostBeforeTaxは2.691168
  • 小数点第7位四捨五入でしょうか。(要確認)
  • とにかく、丸めが発生しています。

BlendedRate

  • BlendedRate(1時間あたりの単価)=0.183000026
  • おかしいですね。0.183のはずですが・・・
  • このアカウントでは該当するリザーブドインスタンスの購入やクレジットはありません。
  • もしかしたら、丸められたCostBeforeTaxを再度UsageQuantityで割り算した結果かもしれません。
  • 2.691168(CostBeforeTax) ÷ 14.705834(UsageQuantity)=0.1830000257040840000≒0.183000026(小数点第10位四捨五入?)
  • んー、困ったもんですね。

facebook slideshare rubygems github qiita