動かざることバグの如し

殿、温めておいたバグがこちらでございます

EC2のT3インスタンスは安いがT3 Unlimitedで死なないように注意

先日、EC2に新しいタイプのインスタンス、その名もT3がリリースされた。すでに東京リージョンでも使用可能になっている。

新しいインスタンス、 t3インスタンスがリリースされました | Amazon Web Services ブログ

なんとスペックが30%上がった上にT2より安い。これは使うしかない。

けど、見てる感じT2と同様に扱おうとすると痛い目にあいそうだったのでメモ。

T3 Unlimited がデフォルトで有効

そもそもT3 Unlimitedってなんぞやって話だが、CPUクレジットがUnlimited(無制限)ってことである。

じゃあCPUクレジットって何?って話になるが、以下のような仕組みである。

  • インスタンスタイプに応じて初期CPUクレジットを持つ
  • あまり負荷のかかっていないときに自動的にCPUクレジットが貯まっていく
  • 負荷のかかる処理のときにCPUクレジットが消費されて一時的にCPU性能を上がる(バースト)

これはTから始まるインスタンス限定の機能で、同様のCPUクレジット機能がT2にも搭載されている。負荷のしきい値はベースラインパフォーマンスというもので定められていて、公式ドキュメントに載ってる

もちろん良い機能なのだが、アイドル状態>負荷多状態がずっと続くとCPUクレジットが枯渇して大変なことになる

以下のサイトがいい例

[AWS][CPU Credits][Instances]T2インスタンスの隠された罠について知っているか!? – ADACHIN SERVER LABO

急激にLoad Averageが上がり、sshもできず、CPU idle,stealもぱないし死亡。

CPUクレジットが切れても頑張ろうとするとCPU Stealが急激に上がる模様。南無

で、T3 Unlimitedの話に戻るが、要はT3 Unlimitedは課金が発生するが、CPUクレジットを使い切っても無限にバーストし続ける機能である。(vCPU時間あたり0.05ドル)

本質的にはバーストし続ける=インスタンスタイプの選定ミスなのでよくない。コスパも上位のインスタンスタイプに変更したほうが良い

怖いのが、T3ではこの機能がデフォルトで有効化されていることである。

無効化にする方法

T3 Unlimitedの無効化はそんなに難しくない

管理画面にログインしてEC2のインスタンス一覧を表示して

f:id:thr3a:20180831091846p:plain

f:id:thr3a:20180831091849p:plain

でおk

他のT3インスタンスの他の懸念点

t3.micro は無料利用枠対象外

あ、これはどうでもいい