概要・目的
- EC2のインスタンスファミリ、t2ファミリは低コストラインナップが特徴です
- t2ファミリは「CPUクレジット残高」によってパフォーマンスが変動する仕組みが独特です
- t2ファミリの中でも、特に価格の安いt2.nanoを、Cloud Automatorを利用して活用する方法を紹介します
前置き
t2のリリース
- 2017年11月30日、t2に「Unlimited」という機能がリリースされました
- 従来はCPUクレジットを使い果たすと処理パフォーマンスが低下し、CPUクレジットの回復を待つ、またはインスタンスのSTOP→STARTによって初期CPUクレジットにリセットするしかありませんでした
- 「Unlimited」機能を有効にすれば、追加料金を支払うことでパフォーマンス低下を回避することができます(CPUクレジットを追加購入しているイメージでしょうか)
- パフォーマンス低下状態から回復したい、でもインスタンスを停止できない、そんなシーンではとても有効な機能です
T2 Unlimitedの追加料金
- 「T2 Unlimited」、良いリリースだと思うのですが、追加料金はどうなっているのでしょうか
-
LinuxではvCPU時間あたり0.05ドル
と記述があります。リーズナブルに見えます(実際リーズナブルだとも思います) - しかし、今回ターゲットとするt2.nanoのインスタンス料金は
1時間あたり $0.0058 (us-east1)
です。一桁違います - 適用局面は違いますが、0.05ドルあれば8時間イケるともいえます
結論
- (少々強引ですが)止めてもいいシステムならやっぱりSTOP→STARTが手っ取り早い
本題
- 前置きが長くなりましたが、やりたいことは、CPUクレジットを使い切ったインスタンスを自動的にSTOP→STARTして初期CPUクレジットを獲得するです
- 当然ながら短時間なら停止しても問題のないシステムが対象です
- 実際のところ、t2.nanoのCPUクレジット枯渇時は停止しているようなものと考えて差し支えないと思います
- つまり、t2.nanoを採用している時点で停止は覚悟の上ということです(知らんけど)
動作の仕組み
- CloudWatchAlarmでCPUクレジット低下を検知
- AmazonSNS経由でCloud Automatorの
EC2 STOP
ジョブを起動 - (
EC2 STOP
ジョブが完了するまでCloud Automatorは待機してくれます) -
EC2 STOP
ジョブの正常完了時アクションでEC2 START
ジョブを起動(Cloud Automatorはジョブ同士を数珠つなぎで起動できるのです) -
EC2 START
ジョブの完了時アクションで管理者へメール通知
参考
- この仕組みは(停止しても問題のない)個人サイトで実際に動作しています
- 仕組み導入前後の様子をCloudWatchのグラフで紹介します
導入前
- CPUクレジットを使い果たして復活する様子がありません
導入後
- CPUクレジットを使い果たす前にSTOP→STARTすることで初期CPUクレジットを獲得して復活しています
最後に
t2ファミリはクセが強いので使いドコロの見極めは必要ですが、上手くつかえばコストを抑えた運用が可能ですね。
T2 Unlimitedのリリースでさらに利用バリエーションが広がり、活用シーンも増えるのではないでしょうか。
今回はちょっとかわったCloud Automatorの利用方法を紹介いたしました。