LoginSignup
18
18

More than 3 years have passed since last update.

【AWS】バースト可能インスタンスについて

Posted at

バースト可能インスタンスとは

・AWSのインスタンスt2とt3・t3aに存在するシステム
・あまりCPUを必要としないサーバや、たまにしかCPUを使わないサーバの場合にこのインスタンスタイプにする
・このシステムを使ってるインスタンスは安い

バースト可能インスタンスの詳しい説明

CPUを使わないときに「クレジット」と呼ばれる通貨みたいなものを貯めておき
いざCPUを使いたいとなったときにその通貨を支払って100%のパフォーマンスを出すことができる

t2、t3・t3a以外のインスタンスは普通に100%のCPUを使うことができるが料金が高い

仕組み

CPU100%の状態を1分間続けると1クレジット失われる(全インスタンスタイプ共通)
(例えば20%の状態を1分間続けば1/5クレジット、2分間続くと2/5クレジットが失われる)

逆に起動している間、常にクレジットは回復していく
インスタンスによって1時間に回復するクレジットが異なる(t2.nanoの場合1時間に3クレジット回復)

払うCPUがなくなったときは「ベースラインパフォーマンス(図で説明)」までのCPUしか使うことができなくなる。

クレジット仕組み.png

各インスタンスのクレジット関連のスペック

t3インスタンスとt3aインスタンスの違い

t3はintel製のCPUを使用しているのに対して、t3aはAMDのEPYCシリーズを使用している
t3に比べて、t3aのほうが10%安い

IntelとAMDスペック比較についてはあまりよくわかってないので
こちらを見ていただくとわかりやすいと思います。
https://dev.classmethod.jp/cloud/aws/compare-rebuildtime-amd-epyc-t3a/#toc-t3at3-
https://www.pressmantech.com/tech/aws/6781

t2インスタンスとt3・t3aインスタンスの違い

t2 t3・t3a
モードデフォルト設定 スタンダードモード 無制限モード
起動クレジット 有り 無し
インスタンス停止時 クレジットはすべて失われる 7日間保持される
料金 - t2に比べてインスタンス料金が10%程度安い
仮想コア数 - nano~smallはt2に比べて2倍
CPUクレジット回復量 - t2に比べて多い

無制限モードとは

上では 「クレジットがなくなった場合は ベースラインパフォーマンス までのCPUしか使うことができなくなる。」と書いたが、
無制限モードの場合は上限を突破して使用することができるようになる。

ただし、24時間 or 起動していた時間での平均CPUが ベースラインパフォーマンス を超えていた場合は追加料金が発生する
無制限モードとは.png

起動クレジットとは

t2インスタンスかつスタンダードモードの場合、インスタンスを起動したときに、[ vCPUの数 ☓ 30 ] のクレジットを持った状態で開始できる
vCPUの数はインスタンスタイプによって異なる
起動クレジットとは.png

起動クレジットの獲得は、リージョン内の全インスタンス合計で24時間100回の制限がある。
100回を超えてしまうとそれ以上のインスタンス起動には起動クレジットが付与されない。

t3インスタンスを使用するための必要条件

t3インスタンスにはAWS Nitroと呼ばれる仕組みを使用しており、
それには必要なドライバ等があるのでインストールしなければならない

条件1:64ビット版の OS かつ HVM である

ビット確認方法
$ uname -m
x86_64  ← x86_64なら64ビット 

仮想化形式確認方法
必要条件.jpg

条件2:NVMeドライバがインストールされている

kernelが 3.19以降の場合は入っている

確認方法
$ uname -r
4.4.19-29.55.amzn1.x86_64
導入方法
# yum update kernel

完了後インスタンス再起動

条件3:Elastic Network Adapter(ENA)ドライバがインストールされている

確認方法
$ modinfo ena
filename:       /lib/modules/4.4.19-29.55.amzn1.x86_64/kernel/drivers/amazon/net/ena/ena.ko
version:        1.0.2
license:        GPL
description:    Elastic Network Adapter (ENA)
author:         Amazon.com, Inc. or its affiliates
srcversion:     EB49676051BBF026315D272
alias:          pci:v00001D0Fd0000EC21sv*sd*bc*sc*i*
alias:          pci:v00001D0Fd0000EC20sv*sd*bc*sc*i*
alias:          pci:v00001D0Fd00001EC2sv*sd*bc*sc*i*
alias:          pci:v00001D0Fd00000EC2sv*sd*bc*sc*i*
depends:
intree:         Y
vermagic:       4.4.19-29.55.amzn1.x86_64 SMP mod_unload modversions
parm:           debug:Debug level (0=none,...,16=all) (int)
parm:           push_mode:Descriptor / header push mode (0=automatic,1=disable,3=enable)
                          0 - Automatically choose according to device capability (default)
                          1 - Don't push anything to device memory
                          3 - Push descriptors and header buffer to device memory (int)
parm:           enable_wd:Enable keepalive watchdog (0=disable,1=enable,default=1) (int)
parm:           enable_missing_tx_detection:Enable missing Tx completions. (default=1) (int)
parm:           numa_node_override_array:Numa node override map
 (array of int)
parm:           numa_node_override:Enable/Disable numa node override (0=disable)
 (int)

上記のような行が出てきていればOK


ERROR: modinfo: could not find module ena
と出ていればNG
導入方法
条件2がクリアしていればおそらく問題ないはず

条件4:インスタンスに拡張ネットワーキングの enaSupport 属性が設定されている

確認方法(aws-cli)
$ aws ec2 describe-instances --instance-ids インスタンスid --query "Reservations[].Instances[].EnaSupport"
[
    true   ← trueならOK(設定されていない場合は何も出ない)
]
導入方法(aws-cli)
#対象インスタンスを停止した状態で
$ aws ec2 modify-instance-attribute --instance-id インスタンスid --ena-support
18
18
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
18