Slide 1

Slide 1 text

バックエンド勉強会#1 AWS CPU Credit を完全に理解 する 2021/06/02 atma株式会社 nyk510 1

Slide 2

Slide 2 text

インスタンスごとの vCPU に対する制限 普通の EC2 インスタンス • vCPUは好きに使っていい (制限なし) • 要するに特定のマシンを買っているのと同じ状況 バースト可能インスタンス (t系) • vCPU量が同じ通常インスタンスよりは安い • しかしCPU利用率を CPU Credit によって制限・管理される (全部使えないときがある) • 基本 (ベースライン) と超過分 (バースト) という概念がある 借りてるマシンに割り当てられている 仮想のCPU数 vCPUとは… 2

Slide 3

Slide 3 text

CPUクレジットとは ● のべで使ったCPU利用量を表す単位 ● 次元: vCPUの稼働率 x 時間(分) で表される ex). ● 1vCPU で 100% 稼働を 10分 = 10 credit ● 2vCPU で 100% 稼働を 5分 = 10 credit ● 3vCPU で 10% 稼働を 2分 = 0.6 credit 3

Slide 4

Slide 4 text

CPUクレジットの管理方法 バースト可能インスタンスでのクレジット管理方法は下記の通り 1. 1時間あたりに固定のクレジット (ベースライン) を取得 2. 使った分だけクレジットを消費 / 使わなかった分は貯蓄 3. 貯蓄できる最大のクレジット量はインスタンスごとに固定 4. 固定料を超えると貯蓄から切り崩して稼働 (バースト) 4

Slide 5

Slide 5 text

CPUクレジットの管理方法 / 具体例 具体例: t3.large ● vCPU=2 ● 1時間あたり36クレジットを取得 / 最大クレジット料は864 2vCPUで1時間36(vCPU*min)なのでもらった分を完全に消費すると36/2=18minは利用 率100%で稼働できる。実際にはクレジットはじわじわもらうので 18/60=0.3 (30%) で 稼働するとプラマイゼロ。 この「もらった分を完全に消費したときの稼働率」をベースライン利用率と呼ぶ 5

Slide 6

Slide 6 text

クレジットが余ったら? ● 時間ごとに一定量をもらうので、場合によってはあまるときがある。 ○ ex: t3.largeで10分だけフル稼働したとすると20creditを使う → 16credit余 る。 ● 余った分は貯金に回る。 ○ t3.largeだと864だけ貯められる。(ためたcreditには有効期限がない) 6

Slide 7

Slide 7 text

ベースラインを超えて使ったら? ● あまることがあるのと同様、使いすぎることもある。 ● この場合使った分だけ貯金から引き落としされる ● 具体例 ○ t3.largeで1時間100%稼働すると ○ 2*60=120(credit)を使うことになるので ○ 36-120=-84だけ貯金が減る。 7

Slide 8

Slide 8 text

貯金がないときは? 借りているインスタンスのモードによって扱いが変わる ● standard mode | それ以上稼働できなくなる ● unlimited mode | 制限なく稼働できる t2系: デフォルト standard mode t3/4: デフォルト unlimited mode 8

Slide 9

Slide 9 text

unlimited mode • 簡単に言うと貯金がゼロでも借金して稼働できるモード • 借金は返済できる(消費 < 獲得量の差分が返済に当てられる) • 24時間で返済できないときは追加料金が発生する 見方を変えると… CPU利用量の面積をならしたものがベースラインを超えたとき課金される 9

Slide 10

Slide 10 text

unlimited 万能説 賢明な読者諸君の中には 「可変に稼働を調整できて借金もできるなら全部これでよくない?」 と思われた方もいらっしゃるのではないか。 10

Slide 11

Slide 11 text

unlimited は万能でもない 賢明な読者諸君の中には 「可変に稼働を調整できて借金もできるなら全部これでよくない?」 と思われた方もいらっしゃるのではないか。 残念ながら商売なのでそうはいかない / 固定のCPUに比べて割高 例えばt3系で常時100%でバーストし続けるとvCPU固定のインスタンスの1.5倍の料金が かかる If a T3 instance continuously bursts at 100% CPU, you end up paying approximately 1.5 times the price of an equivalently-sized M5 instance. あるタイミングだけバースト/それ以外はあまり稼働しないというような場合に使う 11

Slide 12

Slide 12 text

どういうときにバースト系(t系)を使えばいい? 固定CPUタイプとの損益分岐点 AWSが計算してくれているので参考にして設定しましょう https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance- instances-unlimited-mode-concepts.html 参考文献 ● Burstable performance instances ○ https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-perf ormance-instances.html 12