T系インスタンスの Unlimited モードにかかるコストを計算してみた

記事タイトルとURLをコピーする

こんにちは、テクニカルサポート課の大石(一)です。

Amazon EC2 のインスタンスタイプの内、T系インスタンスのコストについてお問合せいただく機会がありました。
特に Unlimided モードで CPU クレジットが枯渇したときのコストの考え方がわかりにくかったので詳細にご案内します。

T 系インスタンスとは

まず、対象となるインスタンスタイプについてです。

T 系インスタンスは他のインスタンスタイプと違い、CPU 使用率をバーストさせる機能を有しています。
これは、CPU 使用率がベースラインを上回ったときに、CPU クレジットを消費することでベースライン以上の性能を発揮するものです。
このベースラインを上回って CPU を稼働させることをバーストと呼びます。

詳細な情報は以下の公式ドキュメントをご確認ください。
docs.aws.amazon.com

CPU クレジットとは

CPU クレジットとは、バースト可能インスタンスで CPU を利用する時に消費されるリソースです。
1個の CPU クレジットで、1台の vCPU を1分間 100% の稼働率で使用できます。
仮に1つの vCPU を1時間、100%で稼働させると、60個のクレジットが必要となります。

この CPU クレジットは、インスタンスを稼働していると時間ごとに一定量獲得できます。 獲得できるクレジット数はインスタンスタイプごとに決まっており、以下の式で求められます。

1 時間あたりの獲得クレジット数[個] = ベースラインCPU使用率[%] × vCPU 数[個] × 60[分]

逆に、CPU を稼働させたときに消費されるクレジット数は以下の式にて求められます。

1 時間あたりの消費クレジット数[個] = 1時間平均のCPU使用率[%] × vCPU 数[個] × 60[分]

連続してバーストし続け、提供されるクレジットを消費するクレジットが上回ると、クレジットが枯渇した状態となります。

Unlimided モードとは

クレジットが枯渇した状態でも、継続してバーストすることを可能にする機能です。
24時間先の CPU クレジット を前借りしてバーストすることができるようになります。

これにより、クレジット切れによるパフォーマンスの急激な低下を防ぐことが出来ます。
しかしながら、インスタンスが24時間に獲得できるクレジット数を超えてバースト状態を継続する場合、追加でコストが発生します。

つまり、24時間平均で一定以上のCPU の使用率となった場合に追加でコストが発生します。
では、どのくらいのコストが発生するのでしょうか。

実際に計算してみる

実際に T系インスタンスを Unlimided モードで稼働させた際のコストを計算してみます。

条件

東京リージョンで、Amazon Linux2 が稼働する t3.large を vCPU の平均使用率 50% で 1ヶ月(730時間) 利用した際のコストを計算します。

インスタンスの基本情報は以下のとおりです。

オンデマンドの時間単価 0.1088 USD/h
vCPU 2
ベースライン CPU 使用率 30%

Unlimited モードのコストは vCPU 時間あたり 0.05 USD です。

インスタンスの稼働にかかるコスト

これは単に時間単価に稼働時間を掛けたものですので、

0.1088[USD/h] × 730[時間] = 79.424[USD]

となります。

CPU のバーストにかかるコスト

獲得できる CPU クレジット及び消費する CPU クレジットを計算します。
まず、獲得できる CPU クレジットの計算は以下の式でした。

ベースラインCPU使用率[%] × vCPU 数[個] × 60[分]

これに条件の数値を当てはめると、

0.3 × 2[vCPU] × 60[分] = 36[個]
24[個] × 730[時間] = 26,280[個]

となります。

次に、消費するクレジット数は以下の式で求められます。

1時間平均のCPU使用率[%] × vCPU 数[個] × 60[分]

これに条件の数値を当てはめると、

0.5 × 2[vCPU] × 60[分] = 60[個]
60[個] × 730[時間] = 43,800[個]

となります。


この結果より、消費するクレジットと獲得するクレジットの差を計算すると、

43,800[個] - 26,280[個] = 17,520[個]

のクレジットを過剰に消費しています。

この過剰に消費されたクレジットが、課金対象となります。

過剰に消費されたクレジットに掛かるコストは、vCPU 時間あたり 0.05 USD です。
つまり、1つの vCPU を1時間、100%で稼働させると 0.05 USD 掛かります。
「1つの vCPU を1時間、100%で稼働させる」ということは、60個の CPU クレジットを消費することに相当します。

これらの条件から、過剰に消費された CPU クレジットに掛かるコストは

17,520[個] × 0.05/60[USD] = 14.6[USD]

となります。

合計

「インスタンスの稼働にかかるコスト」と「CPU のバーストにかかるコスト」の合計は以下のとおりです。

79.424[USD] + 14.6[USD] = 94.024[USD]

これが、1ヶ月にかかるコストとなります。

M系インスタンスとの比較

同等のスペックを持つ汎用インスタンスタイプの m5.large を 1ヶ月(730時間) 利用した際のコストは、

0.124[USD/h] × 730[時間] = 90.52[USD]

となり、前項で計算した t3.large のコストより低くなっています。
このように一定以上の CPU 使用率が見込まれる場合、M系インスタンスを利用した方がコストメリットがあります。
損益分岐点の計算方法は公式ドキュメントに詳細な情報がありますので、そちらをご確認ください。
Unlimited モードの概念 - Amazon Elastic Compute Cloud

まとめ

今回は T3 インスタンスを Unlimited モードで利用した際のコストについてご案内いたしました。
Unlimited モードの場合、1日平均の CPU 使用率によってはコストメリットが失われてしまいます。
ご利用の際は、想定される CPU 使用率と損益分岐点をご確認のうえで、インスタンスタイプをご判断いただけますようお願いします。

大石 一騎(記事一覧)

テクニカルサポート課