こんにちは。サニービュー事業部の小寺です。
みなさんは、どのタイプのEC2インスタンスをご利用されていますか?
T系インスタンスをお使いの方も多いと思いますが、「CPUクレジット」について聞かれたことはございますか。
今日は他のインスタンスタイプとは違った、T系インスタンスの特徴を解説します。
CPUクレジットとは
Amazon EC2でT系インスタンスでは、他のインスタンスタイプとは違い、ベースラインと呼ばれるあらかじめ決められたCPU使用率が定義されています。ベースラインを超えたCPU使用率が使用できる状況をバースト機能と呼びます。バースト機能を使用している時に使われるのが、「CPUクレジット」です。
T系インスタンスを利用されている方はマネジメントコンソールにログインして、EC2サービスにアクセスし、該当インスタンスをチェックした上で、「モニタリング」タブを御覧ください。
「モニタリング」欄の下部に、「CPUクレジット使用状況」と「CPUクレジット残高」が表示されています。この「CPUクレジット残高」が0になると、CPUクレジットの消費タイプにより、ベースライン以下の性能しか出なくなるか、追加の課金が発生します。
さらに、CPU クレジットはvCPU 時間の単位を指していて、以下のように計算することができます。
1 CPU クレジット = 1 vCPU × 100% 使用率 × 1 分
1 CPU クレジット = 1 vCPU × 50% 使用率 × 2 分
1 CPU クレジット = 2 vCPU × 25% 使用率 × 2 分
・ベースライン使用率
ベースライン使用率とは、CPU クレジットの獲得数と CPU クレジットの使用数が一致する場合に、正味クレジット残高 0 で CPU を使用できるレベルです。ベースライン使用率はベースラインとも呼ばれます。ベースライン使用率は、vCPU の使用割合として表され、次のように計算されます。
ベースライン使用% = (獲得クレジット数÷vCPUs 数)÷60 分
例えば、2 つの vCPU を持つ t3.nano インスタンスが 1 時間あたり 6 クレジットを獲得すると、ベースライン使用率は 5% になります。これは、次のように計算されます。
(6 credits earned/2 vCPUs)/60 minutes = 5% ベースライン使用率
4 つの vCPU を持つ t3.xlarge インスタンスが 1 時間あたり 96 クレジットを獲得すると、ベースライン使用率は 40% になります (計算方法=(96/4)/60)。
・獲得クレジット
実行中のインスタンスが継続的に獲得するクレジットです。
1 時間あたりの獲得クレジット数 =ベースライン使用率 (%) × vCPU 数 (個)× 60 (分)
例:vCPU を 2 個使用し、ベースライン使用率が 5% に設定された t3.nano では次の計算のように、1 時間あたり 6 クレジットを獲得します。
2 個の vCPU × 5% のベースライン × 60 分 =1 時間あたり 6 クレジット
1 時間あたりに獲得する CPU クレジット数は、インスタンスのサイズによって決まります。上記の通り、t3.nano は 1 時間あたり 6 クレジットを獲得しますが、他のインスタンスタイプについては、下記表の通りです。
ンスタンスタイプ | 1 時間あたりに受け取る CPU クレジット | 蓄積可能な最大獲得クレジット* | vCPU 数 | vCPU あたりのベースライン使用率 |
---|---|---|---|---|
T2 | ||||
t2.nano | 3 | 72 | 1 | 5% |
t2.micro | 6 | 144 | 1 | 10% |
t2.small | 12 | 288 | 1 | 20% |
t2.medium | 24 | 576 | 2 | 20% |
t2.large | 36 | 864 | 2 | 30% |
t2.xlarge | 54 | 1296 | 4 | 22.5% |
t2.2xlarge | 81.6 | 1958.4 | 8 | 17% |
T3 | ||||
t3.nano | 6 | 144 | 2 | 5% |
t3.micro | 12 | 288 | 2 | 10% |
t3.small | 24 | 576 | 2 | 20% |
t3.medium | 24 | 576 | 2 | 20% |
t3.large | 36 | 864 | 2 | 30% |
t3.xlarge | 96 | 2304 | 4 | 40% |
t3.2xlarge | 192 | 4608 | 8 | 40% |
T3a | ||||
t3a.nano | 6 | 144 | 2 | 5% |
t3a.micro | 12 | 288 | 2 | 10% |
t3a.small | 24 | 576 | 2 | 20% |
t3a.medium | 24 | 576 | 2 | 20% |
t3a.large | 36 | 864 | 2 | 30% |
t3a.xlarge | 96 | 2304 | 4 | 40% |
t3a.2xlarge | 192 | 4608 | 8 | 40% |
T4g | ||||
t4g.nano | 6 | 144 | 2 | 5% |
t4g.micro | 12 | 288 | 2 | 10% |
t4g.small | 24 | 576 | 2 | 20% |
t4g.medium | 24 | 576 | 2 | 20% |
t4g.large | 36 | 864 | 2 | 30% |
t4g.xlarge | 96 | 2304 | 4 | 40% |
t4g.2xlarge | 192 | 4608 | 8 | 40% |
・消費または使用されたクレジット
実行中のインスタンスにより継続的に使用されるクレジットです。
1 分あたりに使用される CPU クレジット = vCPU 数 (個) × CPU 使用率 (%) × 1 分
・蓄積されたクレジット
インスタンスの使用量がベースラインの使用率よりも少ないので、消費されなかった CPU クレジットです。
蓄積されたクレジット = 獲得クレジットー 使用されたクレジット (ともにベースラインより低い場合)
(例) t3.nano の CPU 使用率が 2% で、ベースラインである 5% を 1 時間の間下回っていた場合、蓄積されたクレジットは次のように計算されます。
蓄積された CPU クレジット = (1 時間あたりの獲得クレジット) ー( 1 時間あたりの使用クレジット)
6 ー 2 (vCPU 個数) × 2 (CPU 使用率 %) × 60 (分)
=6 ー 2.4
=3.6 (1 時間あたりに蓄積されたクレジット)
・クレジット蓄積制限
インスタンスのサイズによって異なりますが、通常は 24 時間以内に獲得できるクレジットの最大数と等しくなります。
例:t3.nanoの場合、クレジット蓄積制限 = 24 × 6 = 144クレジット
・起動クレジット(※スタンダードモードのT2インスタンスのみ)
スタンダードモードに設定された T2 インスタンスにのみ適用されるクレジットです。
起動クレジットは、新しい T2 インスタンスに割り当てられるもので、CPU クレジットの数に制限があります。スタンダードモードで起動することで、ベースラインを超えたバーストが可能になります。
・余剰クレジット(※Unlimitedモードのみ)
蓄積されたクレジットの残高が枯渇したインスタンスが消費するクレジットです。余剰クレジットは、長期間高パフォーマンスを維持するバーストインスタンスのために設計されており、使用できるのは Unlimited モードでのみです。余剰クレジット残高は、Unlimited モードのインスタンスがバーストのために使用した、クレジットの数を判断するために使用されます。
CPUクレジットのタイプ
クレジットの消費タイプとして「Standard」と「Unlimited」の2つのモードがあります。
・Standard Mode(スタンダードモード): CPUクレジット残高が0になると、CPU使用率はベースライン使用率以下までのみ使用できます。CPUがアイドル状態になると、CPUクレジットの残高が回復します。
・Unlimited Mode(無制限モード): 長時間にわたって高い CPU 使用率でインスタンスを実行する場合には、CPUクレジットが0になった後は、vCPU 時間ごとに均一追加料金が発生します。24 時間ごとのインスタンスの平均 CPU 使用率またはインスタンスの存続期間のいずれか短い方の時間で、インスタンスの平均 CPU 使用率がベースライン以下になった場合、1 時間ごとのインスタンス価格は自動的にすべての CPU 使用率スパイクをカバーします。
クレジットはいつまで有効?
実行中のインスタンスの CPU クレジットは失効することなく、利用することができます。
T2 では、CPU クレジット残高は、インスタンスが停止して、起動した後は継続した利用ができなくなるので注意が必要です。T2 インスタンスを停止した場合、今まで蓄積してきたクレジットが全て失われてしまいます。
T4g、T3a、および T3では、インスタンスが停止した後も CPU クレジット残高は 7 日間保持され、その後に失われます。インスタンスを停止した場合でも、7 日以内にインスタンスを起動すると、クレジットは失われず、継続して利用することができます。
まとめ
今日はT系インスタンスの特徴でもあるCPUクレジットについて、お伝えしました。
比較的、お安くお使いいただけるT系インスタンスの「CPUクレジット残高」が、パフォーマンスや課金にも影響することがあります。
クレジット残高があるうちは、CPU使用率の制限がかかることはありません。ただし、CPUクレジット残高が0になると、CPU使用率に制限がかかります。その影響で、WEBの応答速度遅延が発生して、WEBの利用者からの不満に繋がることもあるかもしれないですよね。
もし、普段お使いいただいている際に、高い負荷がかかっている場合はT系以外のインスタンスタイプの検討も行った方が良い場合もあります。
また、CPUクレジットの残高について、監視することもお勧めです。CPUクレジットの残高が0になると、CPU使用率がベースラインまでのみになるか、課金が発生します。監視の設定はCloudWatchのバーストパフォーマンスインスタンスの追加 CloudWatch メトリクスで行うことができます。
AWSをご利用いただくには、直接契約するより断然お得。
AWS利用料が5%割引、さらに日本円の請求書による支払いが可能です!