0
Help us understand the problem. What are the problem?

posted at

updated at

【AWSコスト削減の道 for 開発環境】EC2編 ※ スポットインスタンス変更編

【AWSコスト削減の道 for 開発環境】EC2編

前提

概要

  • 開発環境用に使用している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を利用している
  • 通信料金は変更がないため記載をしていない

インスタンス料金

ondemand_and_spot_price_comparison.PNG
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を記載しているが、そちらのリソースについては別の記事で紹介します

spot_instance_life_cycle.drawio.png

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
0
Help us understand the problem. What are the problem?