メニュー 閉じる

[AWS] EC2 ベースラインとバーストについて。

ベースラインとバーストについて

t2、t3 インスタンスを使用する際は、
この「ベースライン」と「バースト」について必ず理解しておく必要があります。

何故なら、このベースラインとバーストこそが、t2、3インスタンス低コストの理由だからです。

この「ベースラインとバーストのシステムを許容できるか」をちゃんと検討しておかないと、
せっかくのコスパ仕様が台無しです。

というわけで、ベースラインとバーストの概念についてまとめました。

これからt2、t3 インスタンスを検討する方や、
ベースラインとバーストの概念がいまいちよく分からない。。。という方の参考になれば幸いです。

そもそも、ベースラインとバーストって何?

バーストとは?

「CPU の負荷を100% にする」ことです。

いや、普通やん^^;

そのネーミングから
「CPU に高負荷がかかった時に一時的にクロックアップやスケールアップして処理を一気にこなしてくれる機能」
というイメージを持っていないでしょうか。(私はそう思っていました。)

これは次の「ベースライン」の概念を知ることで、なんとなく「バースト」なのかなと思えるようになります。

ベースラインとは

「バーストしなかったら、1時間平均でCPU を何% まで動かせるか?」

という概念が「ベースライン」です。

普通のPC で考えたら、「そんなの、100% まで使い放題じゃないの?」って感じですが、
実は t2、t3 などのインスタンスは1時間あたりに使える量に制限があるのです。

これを理解するためにはもう一つ、「CPU クレジット」の概念を知っておく必要があります。

CPU クレジットとはCPU を動かすための「ポイント」みたいなものです。

t2 やt3 インスタンスのCPU が動作するためには、この「CPU クレジット」が必要です。

前述のバーストを1分間継続すると「CPU クレジット」が「1」消費されます。
これを基準にして、バースト以外の通常時でも、CPU使用率に応じて、CPU クレジットが消費されていきます。 

また、このCPU クレジットは1時間毎に一定量、毎時間獲得することができます。

要は、ソシャゲでいうところの「スタミナ」みたいな感じですね。
CPU を動かすのにスタミナを消費しますと。
時間で回復ところもスタミナの概念と似ています^^

CPU クレジットの獲得量はインスタンスのランクに応じて変化します。
(下の図の「CPU credits earned per hour」が獲得する量です。)

インスタンスタイプ1 時間あたりに受け取る CPU クレジット蓄積可能な最大獲得クレジット*vCPUvCPU あたりのベースライン使用率
T2
t2.nano37215%
t2.micro6144110%
t2.small12288120%
t2.medium24576220%**
t2.large36864230%**
t2.xlarge541296422.5%**
t2.2xlarge81.61958.4817%**
T3
t3.nano614425%**
t3.micro12288210%**
t3.small24576220%**
t3.medium24576220%**
t3.large36864230%**
t3.xlarge962304440%**
t3.2xlarge1924608840%**
T3a
t3a.nano614425%**
t3a.micro12288210%**
t3a.small24576220%**
t3a.medium24576220%**
t3a.large36864230%**
t3a.xlarge962304440%**
t3a.2xlarge1924608840%**

* 蓄積できるクレジットの数は、24 時間で獲得できるクレジットの数と同じです。
** 表内のベースライン使用率は vCPU 別の割合です。CloudWatch では、CPU 使用率は vCPU 別に表示されます。例えば、ベースラインレベルで動作する t3.large インスタンスの CPU 使用率は、CloudWatch の CPU メトリクスに 30% として表示されます。ベースライン使用率の計算方法については、「ベースライン使用率」を参照してください。

引用元:バーストパフォーマンスインスタンスの CPU クレジットとベースライン使用率

やっと、ベースライン の本題。

さて、CPU を100% で1分間動かすには1クレジット必要でした。

逆に1クレジットで1時間動かすには、CPU の使用率を平均で約1.666667% にすればOK です。
これは1コアあたりの話になるので、2コアある場合は、その半分に抑える必要があります。

上記を踏まえて1時間当たりに獲得するCPU クレジットを全部1時間で使ったら何%平均で使用できるか?
というのが「ベースライン」になります。

これもソシャゲのスタミナに置き換えると、
純回復するスタミナだけで1時間当たり何回ダンジョンに突入できるか?
という数が「ベースライン」という感じです。

ベースラインの計算式は「(<CPU クレジット獲得量>/ 60) / CPUコア数 」になります。

また、1時間当たりのベースライン以下でCPU を運用した場合、CPU クレジットは1日分を上限に貯蓄されます。
(使わなかったスタミナは、石にしてある程度還元してくれる神運営という訳です。)

手持ちのクレジットが足りなくなった場合は、別途購入することでCPU を継続使用する事が出来ます。
これが「Unlimited(アンリミテッド)モード」です。

Unlimited モードの概念

実際は単純に足りなかったら課金して使う、という計算式ではなく1日の終わりにCPU 使用率を稼働時間で均してみてベースラインをオーバーしたら課金になるようです。

Unlimited モードの例

クレジットの残量は、インスタンス概要のモニタリングタブの中の「CPU クレジット残高」で確認できます。

まとめ

t2、t3 インスタンスは「CPU クレジット」を使って、
CPU の使用率を一定量以下に制限することで低コスト提供されるインスタンスです。
通常はベースライン以下で推移し、たまにバーストするようなメリハリのある運用に向いていると思います。

ランクでベースラインが変わってくるので、バランスを考えて配置する必要がありますね。

私は検証用とか、普段使いっぽい事しかしないのでt2.large くらいでも十分です。
2、3時間クレジットを貯めておいて一気に使う。みたいな感じでまかなえています。

以上、ベースラインとバーストについて分かりにくかったので、調べた結果をまとめてみました。
同じようにモヤモヤしている方の参考になれば幸いです。

Posted in AWS, EC2

関連投稿

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です