AWSを使っているみなさん!
T2インスタンスファミリーをお使いになられている方はご存知でしょう。

上記のように運用していると急激にLoad Averageが上がり、sshもできず、CPU idle,stealもぱないし死亡
まるでカーネルパニック的な現象になり、原因はAWSのせいだ!!!!と判断してしまう人も多いと思います!
本日はT2インスタンスの罠についてブログします。


■CPU Credits

https://www.slideshare.net/aws-ninja/understanding-amazon-aws-ec2-t2-instance-type-cpu-credits

T2インスタンスの特徴としてCPUクレジットという概念があります。
インスタンスサイズに応じて初期CPUクレジットを持ち、アイドル状態のときにCPUクレジットを貯め、定められたベースラインを超えてのCPU性能を発揮させたい時はCPUクレジットを消費するという仕組みがあります。これを「バースト」と言います。

ちなみに公式には

https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/t2-instances.html#t2-instances-cpu-credits

CPU クレジット 1 CPU クレジットは、1 CPU コア全体の 1 分間のパフォーマンスを表します。従来の Amazon EC2 インスタンスタイプはパフォーマンスが一定ですが、T2 インスタンスはベースラインレベルの CPU パフォーマンスを提供しながら、そのベースラインレベルを超えてバーストする機能を備えています。ベースラインパフォーマンスとバースト機能は、CPU クレジットにより管理されます。

と書いていますね。w
つまり原因としては

「CPUクレジット残高が0になったからインスタンスがお亡くなりになった」

というのが正しいのです。


■Announcement: New CPU Credit allocation policy for T2 instances

https://forums.aws.amazon.com/ann.jspa?annID=5196

去年(2017年)までCPUクレジットには24時間の有効期限がありました。
さらにCPUクレジットバランスが最大値まで貯まらないことも。
アップデートにより24時間での失効はなくなり、Terminate、Stopが
行われるまで有効期限切れにはならなくなりました!


■新しいT2 Unlimited – バーストを超え、高い性能を発揮

https://aws.amazon.com/jp/blogs/news/new-t2-unlimited-going-beyond-the-burst-with-high-performance/

そしてre:Invent2017では「T2 無制限」(Unlimited)の設定が可能となり、
バーストしたCPU性能を従量課金制(コストわからん)となったので
しとけば上記のようなことがなくなりました!
他にも負荷分散時にEC2の起動したタイミングによる、
CPUクレジット残量の違いなど確認する必要がありません!


■まとめ

AWS今まで触ってたけどCPUクレジットについて詳しく知らんかった。。
基本チェックしときましょう。
これじゃAWSソリューションアーキテクト受からなああああいつ!!

そういえばterraformだと。こんな感じでいけるのか。

https://github.com/terraform-providers/terraform-provider-aws/pull/2619

参考
https://dev.classmethod.jp/cloud/aws/t2-unlimited-is-available/

The following two tabs change content below.

あだちん

1989年生まれ。 ランサーズ/SRE。 ホスティングから大規模なアドテクなどのインフラエンジニアとして携わり、ランサーズにてサーバ系のお仕事も副業で行い、他社インフラレスポンス改善、ansibleでのインフラコード化を推進し、未経験によるエンジニア勉強会なども実施している。 そして「脆弱性スキャナVuls」のOSS活動もしており、自称エバンジェリスト/広報/VulsRepo init file,chatwork通知のコントリビュータでもある。 現在はDocker開発環境の提供,AWSで新サービスのインフラ構築,PHPバージョンアップ,分析基盤を担当しておりDigdag,embulk,BigQueryを使いこなそうと奮闘中。

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください