$30 off During Our Annual Pro Sale. View Details »

AWS CPU Credit を完全に理解する

Yamaguchi Takahiro
June 02, 2021
330

AWS CPU Credit を完全に理解する

Yamaguchi Takahiro

June 02, 2021
Tweet

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  11. 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

    View Slide

  12. どういうときにバースト系(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

    View Slide