コンテンツへスキップ

[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 クレジット」が必要です。

クレジットの消費量は下記のように設定されています。
CPU使用率「100%」の状態を「1分間」継続すると「CPU クレジット」が「1」消費。

つまり、1分間バーストするとCPU クレジットが1ポイントなくなるわけです。
また、このCPU クレジットは1時間毎に一定量、毎時間獲得することができます。

「1時間」で「1時間ごとに獲得するクレジット」を、
丁度消費する「CPU 使用率」が「ベースライン」になります。

要は、ソシャゲでいうところの「スタミナ」みたいな感じですね。
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 です。
これはCPU 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時間クレジットを貯めておいて一気に使う。みたいな感じでまかなえています。

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

(Visited 2,695 times, 1 visits today)
タグ:

「[AWS] EC2 ベースラインとバーストについて。」への1件のフィードバック

  1. ピンバック: [AWS] Windows Server のEC2 インスタンスを起動して接続する。 - .zapping

コメントを残す

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