【AWS】インスタンス自動停止設定は必ずしも最適なコスト削減方法なのか【RI】
どもども、2024年度のリザーブドインスタンス購入が終わり一安心している僕です。
AWSなどクラウドインフラの利用において必ず意識しなければいけないのはそのコストです。インフラ、SRE、DevOpsを中心に様々なエンジニアがこのコストを鋭い眼差しで監視していることでしょう。
コスト削減施策は終わりなき冒険であり、数多くの工夫が提案、実施されています。
そんなコスト削減案の代表としてよく取り上げられているのが業務時間外のインスタンスの自動停止です。
AWSのEC2をはじめ多くのコンピューティングリソースは起動時間分だけオンデマンドに料金が発生しますから、この施策の効果は絶大と感じる方も多くいると思います。
しかし、企業によっては必ずしも最適解ではないと僕は考えます。特に今回のリザーブドインスタンス購入で改めてそう強く感じました。
そこで本記事ではリザーブドインスタンス購入vs業務時間外の開発環境インスタンスの自動停止という観点からそのコスト削減効果を検証してみたいと思います。
前提条件
今回は僕が現在勤務している企業の状況を前提として検証します。各企業の前提条件によってこれから行う検証の結果は異なってくる点に留意して読み進めてください。
- フレックス制であり勤務時間範囲は8時から22時です
- 自動停止を検討するのは検証環境が稼働するインスタンスです
- AWSを利用しておりコンピューティングリソースはEC2です
- リザーブドインスタンスは全額前払いで1年間分を購入します
- 勤務時間範囲外で検証環境を利用することは基本的にありません
これらの前提をもとにそれぞれの施策をおこなった場合のコストをチェックしてみましょう。
料金計算
今回は以下の条件で計算します。また、RI購入及び自動停止設定それぞれにかかる人的コストや作業の性質の違いは考慮しません。
期間 | 2024/03/02 時点 |
タイプ | スタンダード |
リージョン | ap-northeast-1 (東京) |
OS | Linux |
インスタンスタイプ | m5.large |
まずはリザーブドインスタンスを購入した場合です。公式ページを参照すると月額$53.25となることがわかります。
続いて自動停止の料金です。停止処理そのものにはEventbridgeやLambdaを利用することがほとんどであると考えられるため、その分の料金は計算しません。(ほとんど料金はかからないはずです。)
勤務時間範囲を考えると開発環境を稼働するべき1日あたりの時間は14時間です。公式ページを参照し料金を計算すると
14 * 30.5 * 0.124 = $52.948
となり微差ではありますが実は自動停止設定の方が割高になります。
結局どちらがオススメなの?
記事の最初にも書いた通り、前提条件次第なので一概にどちらが良い悪いの判断はできません。
今回自動停止設定の方が割高になったのはあくまで僕が現在勤務している企業の働き方の場合です。例えば、一日8時間きっちり勤務時間が決まっていて、あまり残業を前提としていない企業であれば自動停止設定の方の料金がリザーブドインスタンス購入金額の半分ほどに収まります。
逆にフレックスによる勤務時間範囲が広がれば広がるほどリザーブドインスタンス料金の方が割安になっていきます。
さらにリザーブドインスタンスの購入管理コストや対応可能人材の確保、または自動停止設定システムの管理者確保など企業の特性によって人的コストやハードルも異なるでしょう。
コンピューティングリソース料金の削減に限った話ではないですが、それぞれの企業属性にマッチしたコスト削減施策を進める必要があり比較検討は慎重に!といったところです。
最後に僕の心の叫びを残しておきます。
ドル高すぎ!!!!
ここまで読んでいただきありがとうございました!