【AWS】T3インスタンスのUnlimitedな罠【EC2】
どうも。ジョーです。
2018/08/21にT3インスタンスが発表され数ヶ月が経ちましたね。
Amazon EC2 T3 インスタンスをリリース
弊社で「安い上に性能もT2より良いじゃん!!使ってみようぜ!!」と声が上がっていたので、某案件にて利用してみることにしました。
前回あたりに書いた記事のように、負荷分散(AutoScaling)可能な構成で組みました。
「T3インスタンス起動したー!!楽勝やん!T3万歳!!」
がしかし。。。
地獄の始まり
びっくりしました。
Elastic Beanstalk(以下EB)でEC2が立ち上がるじゃないですかぁ。
**デフォルトでCPUクレジットの「Unlimited」オプションが「有効」**になってるんですよ。
さらにはElastic beanstalkの設定項目にはCPUクレジットの変更項目が存在しない。。。まさかのデフォルト固定値で構築時にも選択肢に無い。。??
EBの設定で後から簡単に変更できるやろと油断してました。
さらにさらに!
起動済みのインスタンスのUnlimited設定をOFFっても、台数の追加などで次に生まれてくるインスタンスはONになっているので設定が統一されない気持ち悪い感じに。
解決策!!
EBの設定から「t2.micro」インスタンスをこっそり選択し、反映。
CPU CreditsがUnlimitedではないt2.microインスタンスが立ち上がりました。
具体的な解決策?
実際にT3インスタンスで解決(実践)したわけではないですが、それらしきものを発見したので共有。調査に15分くらい費やしてしまった気がする。
Is it possible to use T2 Unlimited instances in Elastic Beanstalk?
ほぅ。「ebextensions」配下にスクリプトを設置して解決してるようです。
先ほどの解決策のページを読むと、unlimitedを有効にする方法っぽいのですが、恐らくOFFにすることも可能でしょう。
## ここをstandardとかにすれば良いのではという微かな希望
$Credit.CpuCredits = "unlimited"
ちょうど今利用している環境でもebextensionsを利用していたので、ちょうど良いのでは。
しかしパッと見た所、一筋縄ではいかない感じ。できそうだけど検証やらで手間かかる。
なので今回はT3の利用を一旦保留し、T2インスタンスを利用することにしました。
ぐぬぬ。早くT3インスタンスをまともに使いたいでござる。
これからT3インスタンスをご利用の方、もしくは同じ問題にはまっている方の参考になればと思います。
また、「こんな方法でできたよ!」と言うのがあればコメントで教えていただけますとありがたいです(・ω・`)