日記帳

おもったことをかく。

EC2 インスタンスのランニングコストを AWS Pricing Calculator で計算する

私の手元には PC とは別にハイパーバイザとして利用している購入したサーバがあり、python や ansible などの勉強をする際に利用しています。 そこそこ電力を消費するし外部公開しているサーバではないので、起動しっぱなしということもなく都度起動する運用になっているのですが、ふとこんな疑問が浮かびました。

「これをEC2インスタンスにしたらコストはどの程度変わるのだろう?」

AWS におけるコスト最適化に関しては明確に判明している私にとって経験不足の分野です。 システムアーキテクト アソシエイトを取得した際のスコアを確認したところコスト最適化の項目だけ合格ラインを下回っていました。 いままでに関わった最大のプロジェクトでは湯水のようにリソースを使用していたので身につかなかったのかもしれません。 そんなわけで、コスト最適化の初歩の初歩としてざっくりと計算してみることにしました。

以下の見積もりでは、サーバは常にフル稼働しているものと仮定します。 またネットワーク使用量などは考慮せず、単純にサーバインスタンスのスペックのみでコストを見積もります。

手元のオンプレサーバの場合

手元のサーバは DELL PowerEdge T130 というヤツで、ざっくりとしたスペックはこんな感じです。

  • 4C/4T CPU

  • 16GB RAM

  • 2TB HDD

お値段を調べたかったのですが、型落ちのためオンラインで購入できなくなってしまったので代わりに T140 を元にします。 www.dell.com 前述のスペックで見積もると割引なしでおよそ 23万でした。

また電源は 365W なので、ランニングコストはこれを一か月フル稼働したと仮定して計算すると月当たりおよそ 7100円になります。 常にフル稼働するわけではないので実質最大値でしょうが、一般家庭ではなかなか見ない光熱費になります。

EC2 インスタンス(オンデマンド)の場合

では同じようなスペックで EC2インスタンスを調達するといくらかかるのでしょうか? AWS ではコスト最適化のためのツールやサービスが多数用意されていますが、今回は AWS Pricing Calculator を利用します。

calculator.aws

最小要件として 4vCPU かつ 16GB RAM を指定すると、最も低コストな EC2 インスタンスとして t3a.xlarge が提案されました。 ひとまずオンデマンドインスタンスとすると、ランニングコストは 142.93ドル/月。 これに加えてストレージを用意します。スループット最適化 HDD で 2000GB 用意すると 108ドル/月 です。 結果として月のランニングコストは 250.93 ドルになります。円ドルの換算レートが 108円/ドルとして 27100円ほど。

EC2 インスタンスリザーブド)の場合

長期間 EC2 インスタンスを利用することがわかっている場合には、期間を指定し予約しておくことで全体コストを下げることができます。 さらに先払いを選択することで大幅なコスト削減も見込めます。 先程のオンデマンドインスタンスをスタンダードリザーブインスタンスに変更、3年間予約の上全額前払いにして料金を確認してみます。 すると費用は 2213 ドルとなり、仮にオンデマンドで3年稼働させると 142.93 * 12月 * 3年= 5145.48 ドルとなり50%以上のコスト削減になります。 長期間提供が決まっているサービスにはできる限りリザーブインスタンスを購入して利用しましょう。

その他

各種リソースをかなり多めに確保しているため、その分コストに跳ね返っています。 コスト最適化の観点では、最初から大量のリソースを確保するのではなく不足してから追加するのが望ましいとされます。 例えばストレージに関して、すぐに 2TB を利用する用途がないのであれば少なめに確保し都度拡張するようにするとコストが抑えられます。

当然ですが、AWS はマネージドな環境であるため手元にあるだけの環境と比べると割高になりますね。 個人ユースとビジネスユースで比較してもそれ自体にあまり意味はなかったかもしれませんが、コスト削減のイメージはしやすかったと思います。

AWS とは関係ない学習は手元の環境を用いるほうが安上がりということが再確認できてよかったです。