一畳のくつろぎタイム

このブログでは紹介する商品画像をAmazonアソシエイトより借りています。画像やリンクにはアフィリエイト広告が含まれる事があります

2019年3月1日金曜日

AWSのt型インスタンスについてひどく誤解していた事

バーストしたタイヤ
AWSでは、サーバーであるEC2サービスに様々なスペックの仮想サーバーが用意されている。

無料枠で使用可能なのはt2.microインスタンスである。
t2.microインスタンスはvCPU 1つ、メモリ1GByteというスペックで、一見特に問題ないと思っていたが、私の知らない落とし穴があった。

AWSの説明文にはこのようにある。
T2 インスタンスは、ベースラインレベルの CPU パフォーマンスを提供するバースト可能パフォーマンスインスタンスで、パフォーマンスをベースラインを超えるレベルにバーストさせる機能を備えています。
※T2インスタンスはとありますが、T型全部に共通らしいです。

パフォーマンスをバーストさせる?
格安SIMなどではバーストという用語は(一瞬性能が上がる)ということなのでIntel系CPUのターボブーストみたいに性能が良くなるということ?安いのにスゲーとか
アホな私が適当な認識で喜んでいましたが、ベースラインという単語が問題だった。

 以下にインスタンス毎のベースラインの資料がある。
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/burstable-credits-baseline-concepts.html

無料枠で使えるt2.microのベースラインはたったの10%!!!!!!!!!!!!!!!

わかりやすくWindowsのタスクマネージャーで表現すると
こういうことである。
つまりt2.microインスタンスに保証されているのはAWSのデータセンターで使用されているXeonプロセッサの1コア3.0GHzぐらいのうち10%しか使えないという事である。

で、バーストって?

バースト

AWSの説明にはこうある。

各バーストパフォーマンスインスタンスは、インスタンスサイズに応じて、1 時間当たりの CPU クレジットを絶えず一定の割合で (ミリ秒レベルの細かさで) 獲得します。クレジットを蓄積または消費する会計処理もミリ秒レベルの細かさで実施されるため、CPU クレジットの浪費について心配する必要はありません。CPU の短期バーストでは CPU クレジットのごく一部しか使用されません。

つまり、t2.microインスタンスの場合10%以下の負荷の時にCPUを使える貯金(CPUクレジット)が1時間ごとに溜まっていき、10%以上の力が必要になったときにその貯金が消費されるということらしい。

ベースライン(10%)を超えるレベル(11%~100%)まで性能向上することができるが、負荷が続き、CPU貯金を使い果たした場合性能がCPUの10%になるという。
走れてはいるけど、自転車並みの速度しか出せない車のようだ。

無料枠t2.microの場合、蓄積可能なCPU貯金は最大144までなので、いくらためても2時間24分までしか10%を超えるCPU利用はできないという事である。
厳密にはCPU貯金1でCPU100%を1分なので、CPU50%なら2分などとなるため、もう少し時間は伸びると思う。

まとめ

 tインスタンスは1日のうち、ある一定期間だけ負荷がある、もしくはぼちぼちとしたアクセスがたまにあるぐらいの用途でないと、突然性能がガタ落ちするという事らしい。

用途や負荷によりけりであるが、そういう特徴を考えて、CPUが丸々1個使えるレンタルサーバー業者のVPSサービスなどの方を選択した方が良い場合も多いであろう。

AWSを選択するメリットは、絶対にサービス不可にならないサイトが作れる点であり、
そういった構成をとると個人ではびっくりするような金額になる。
節約という面ではVPSかと思う。