スポットインスタンスのスポットブロック機能が良さげなお話
今年の年初にプロジェクトチームのTeamsでAWS資格の「SOAとSAP取るっす」とか宣言しちゃったものの
すでに3月終わりそうな段階で何も手を付けていないので
「そろそろ、やばいな~」という気になり
やる気が漲るように願いを込めて久しぶりにGoogle先生に
「AWS SOA 勉強」と投下するところまで来ました。(拍手!!)
去年、CLP・SAAを取得したときもそうでしたが
猛者たちの合格体験記を読むとなんだか勉強した気分にとりあえずなれるので
気を紛らわすのにちょうど良いですね
そんな感じで合格体験記を読んでいたのですが
さすがにサンプル問題くらいやってみるかと思い、AWS公式HPのサンプル問題解いてみたところ
スポットインスタンスのオプションに「こんなのあるんだ!」という気づきがあったので
備忘録的に残します
ちなみにこの問題と別に1問間違えて正答率80%だったので確実に今受験したら落ちますね。(サンプル問題は実際の試験の比にならないくらい簡単なはず)
まず問題は以下
S3に保存されている売り上げとかのデータ集計の夜間ジョブを実行するのにコスト最適なソリューションを問われています
現行は複数のオンデマンドインスタンスで実行されているけど2時間以内で完了するジョブなので明らかにコストかけすぎですね
夜間ならいつ実行されても良いけど、ジョブが失敗したら最初から再実行する必要があるというのが要件として記載されています
「夜間ならいつ実行されてもいいならスポットインスタンスでええやん!」と画像の通り"C"を選んだのですが
見事に不正解でした
正解は"B"
この「スポットブロック」って概念はまったく知らなかったので少し調べてみました
スポットブロック機能とは
スポットインスタンスで起動するインスタンスに「継続時間」を事前に定義することで
スポットインスタンスの起動時点から一定の時間インスタンスを中断させることなく起動させておけるオプション機能
そもそもスポットインスタンスって?
事前に"スポットインスタンスリクエスト"で以下を定義しておきます * スポットインスタンスに支払う上限料金 * スポットインスタンス数/インスタンスタイプ
スポットインスタンスの価格はスポットインスタンスに対する需給状態によって時間ごとに変動しています(スポット価格)
このスポット価格が設定した上限金額以内のときに事前設定したスポットインスタンスリクエストの通りに
インスタンスが起動します
オンデマンド料金と比較して、かなり安価にEC2を利用できる上に上限金額を設定できるので
コスト管理もしやすいという特徴があると言えると思います。
ただ、このスポットインスタンス、設定した上限金額をスポット価格が超えてしまうと
自動的にインスタンスを停止してしまうのです。
スポットインスタンスのコンセプト的には納得の動きなのですが
正直、スポットインスタンス使いづらそうだな~という印象でした
実行時間制御ができるスポットブロック機能
この途中でインスタンスが停止してしまう問題を解決してくれるのが
先に紹介したスポットブロックオプションです。
オプションとしてスポットブロック(継続時間)を1~6時間の間で1時間単位で指定することで
スポットインスタンスの起動からインスタンスを実行する時間を固定できます。
ユーザーが手動でインスタンスを停止するか、スポットブロックで指定した時間が経過するまでインスタンスが中断することはありません。
しかも価格はインスタンス起動時間からインスタンス終了まで固定!
ユースケースは?
冒頭に紹介したサンプル問題の通り
いつ実行されても良いが、途中で処理が終わってしまうのは困る
処理にかかる時間がある程度予測できる
ジョブ実行サーバーのコスト最適化が図れます
これがあるならスポットインスタンスを使用するハードルかなり下がる気がするので
頭の片隅に置いておこうと思います
サンプル問題解いてみてやはりちゃんと勉強必要そうなので
SAA取得したときにお世話になったWhizLabsで勉強しようと思います。。。