EC2の稼働時間とコストを見てみる
しばらく動かし続けたEC2インスタンスがいたため、
そのコストと稼働時間を見てみます。
稼働時間 * オンデマンド料金 = コスト
となればよいですね
EC2のスペックは以下
- Linux
- AMIは無料枠Ubuntu
- t3.xlarge
コスト配分タグをつけている
コスト配分タグCost
をつけていたため、EC2のコストをCost Explorerから調べられます。
- key:Cost
- value:t3.xlarge
です。インスタンスタイプそのまま、わかりやすいですね
合計コストは大体$7.40
でした。
次はこのEC2の稼働時間を調べてみます
起動時刻・現在時刻を調べる
LaunchTime
をawscliで出し、現在時刻との差を調べれば良さそうです(原始的)
$ aws ec2 describe-instances --filters "Name=tag:Cost,Values=t3.xlarge" --query 'Reservations[].Instances[].LaunchTime' --output text
2023-06-12T11:54:13+00:00
日本時間にするため、プラス9時間で6月12日20時54分起動とします
いまの時刻は
$ LC_ALL=C LANG=C date
Wed Jun 14 22:23:12 JST 2023
6月14日22時23分としましょう
稼働時間
pythonのdatetime
で出します
>>> import datetime
>>> dt1 = datetime.datetime(year=2023, month=6, day=12, hour=20, minute=54)
>>> dt2 = datetime.datetime(year=2023, month=6, day=14, hour=22, minute=23)
>>> print(dt2 - dt1)
2 days, 1:29:00
まあ50時間くらいということで...
インスタンスタイプのコストを見る
先述の通り、今回の使ったインスタンスタイプはt3.xlarge
,OSはlinuxです。
時間当たりのオンデマンド料金は0.2176 USD/時間
でした
いざ計算
材料が揃ったので計算します。
>>> 0.2176 * 50
10.879999999999999
??????高いね
先程のコスト計算は6/12~6/14
の範囲で行っていました。
しかし6/12~6/13
の範囲で再計算したところコストは同じく$7.40
でした。
どうやら本日(6/14)分は計算されていないようです。
ということで本日の22時間を引いて、28時間で計算してみます
28時間で再計算
>>> 0.2176 * 28
6.0927999999999995
うわー...今度は低く出てる...
すべてのコストは前日までの使用量が反映される
思い切り書いてありました。
インスタンス止めて、後日再計算してみましょう...
すべてのコストには、前日までの使用量が反映されます。たとえば、今日の日付が 12 月 2 日である場合、データには 12 月 1 日からの使用量が反映されます。
所感
ざっくり計算ですが、概ね期待した結果が得られて良かったです。
課金の様子を実際に見てみるのは大事ですね