T2インスタンスの蓄積されたCPUクレジットは再起動すると失われるのか

2021.08.27

いわさです。

バーストパフォーマンスインスタンスのクレジット仕様のひとつに以下があります。

T2 では、CPU クレジット残高は、インスタンスが停止して起動すると引き継がれません。T2 インスタンスを停止した場合、蓄積されたすべてのクレジットが失われます。

なるほど、なるほど。

その後、以下の記事を発見しました。

インスタンスを再起動すると、CPU クレジット残高にはゼロクレジットに加え、割り当てられた起動クレジットが加わります。

EC2インスタンスの停止→起動と、再起動は挙動が違っていることはご存知の方が多いと思いますが、上記に記載されているように再起動でもCPUクレジットが失われるのでしょうか。
本当かなと思って、試してみました。

CPUクレジット貯める

まずはCPUクレジットを蓄積します。
EC2インスタンスを作成して放置しておくだけです。

各インスタンスサイズによって蓄積される量は異なります。
以下を参照してください。

t2.nanoは1時間あたり3獲得し、t3.nanoは1時間あたり6獲得します。

また、T2インスタンスは起動時にvCPUあたり30の「起動クレジット」を獲得します。

インスタンス作成後、約5時間後の蓄積クレジットを確認してみます。

T2

30 + (5 * 3) なので45くらいになっていれば期待どおりです。

42なので概ね期待どおりです。

T3

0 + (5 * 6) なので30くらいになっていれば期待どおりです。

26なので概ね期待どおりです。

再起動しても失われない

T2インスタンスを再起動してモニタリングで確認してみます。

再起動しても失われていませんでした。
再起動の時間帯に少しクレジット増加が止まっているようには見えますが、予想に反してクレジットは残っていました。

停止→起動する

T2のクレジット消失仕様自体がそもそも正しいのか確認してみたいと思います。

次は停止してから起動してみます。
まずはT2です。

こちらは予想どおりで、T2は蓄積クレジットが失われました。
再び起動すると、開始クレジットの30から始まっています。

T3も試してみましょう。

こちらも予想どおりで、T3は蓄積クレジットは残ったままでした。

ちなみにT3は停止したあと7日間はクレジットが維持されます。

おまけ

おまけでCPUオプションでコア数を変更したときにクレジット増加量が変わるのかも見てみました。
CPUオプションについては以下を参照してください。

t3.nanoのvCPU-1でクレジットを蓄積した場合に、デフォルトのvCPU-2と増加量が変わるのかを観察しました。

作成後、5時間後の蓄積クレジットです。

vCPU1とvCPU2で変わりはありませんでした。

まとめ

  • 停止→起動はT2は消失する。T3は消失しない。
  • 再起動は消失しない。
  • CPUオプションを変更してもCPUクレジットの増加率には影響なし