【AWSコスト削減の道 for 開発環境】EC2編
前提
- 前回ページにて紹介しているTerraformを用いて環境を構築している
概要
- 開発環境用に使用しているEC2インスタンスをスポットインスタンスに変更をおこなう
- 使用する時間になったら自動的にスポットインスタンスを起動する
- 使用していない時間に関しては自動的にスポットインスタンスを停止する
背景
- 開発環境用に利用していたEC2インスタンスがオンデマンドインスタンスだったので、スポットインスタンスに比べ料金が高くなっていた
本記事内の利用技術について
-
EC2スポットインスタンス
- AWSの料金を安くするための必須リソース!!
- 私たちの開発環境ではソースコードやDBはすべて外出しをしているので、
ソースコードのデプロイとインスタンス内に実行環境があれば問題ない状態となっている
-
EC2 Auto Scaling
- EC2インスタンスに対しての起動及び停止ハンドラ
- EC2 Auto Scalingを用いて、EC2インスタンスを起動するときにEC2スポットインスタンスとして起動させるために使用
- EC2スポットインスタンスを起動する際に予め定義しているVPCや
ロードバランサーターゲットグループに自動機に紐づけてくれるので超便利!!
-
起動テンプレート
- EC2 Auto Scalingから呼び出されるEC2インスタンス構築の際の手順をテンプレート化している
- 「ユーザーデータ」にはすごくお世話になっております・・・
-
AMI
- 特定時点のEC2インスタンスの状態を保存している
- サーバ内のミドルウェアなど基本的に変更がない部分を設定後、
その状態をAMI化して起動テンプレートから呼び出すようにしている
利用料金の比較 ※ 1時間当たり
前提
- 開発環境のインスタンスタイプはt3a.mediumを利用している
- 通信料金は変更がないため記載をしていない
インスタンス料金
70%安い!!!!! ※ リザーブドインスタンスに匹敵!!!
EC2 Auto Scaling
対応前
使っていない
対応後
EC2 Auto Scalingに対して料金は発生しない
起動テンプレート
対応前
使っていない
対応後
記事は発見できなかったが、利用料金を見る限り起動テンプレートに対しても料金は発生していない
AMI ※ EBSを含める
対応前
50G(AMI作成時点のストレージサイズ) * 1(1世代) * 0.05(1Gあたりの料金 ※USD) = $2.5
対応後
50G(AMI作成時点のストレージサイズ) * 1(1世代) * 0.05(1Gあたりの料金 ※USD) = $2.5
結論
🤣🤣コスト削減対応をしてもEC2の料金分しか変動対象がないため、単純に利用料金が**70%**安くなった!!!🤣🤣
おまけ
本記事の内容を実装した際のEC2スポットインスタンスのライフサイクルについて
前提
- 画像にはEvent BridgeやLambdaを記載しているが、そちらのリソースについては別の記事で紹介します