はじめに
主に検証用途に使うことが多いAWSのT2インスタンスですが、
新しい世代のT3インスタンスが利用できるようになりました。
New T3 Instances – Burstable, Cost-Effective Performance
https://aws.amazon.com/jp/blogs/aws/new-t3-instances-burstable-cost-effective-performance/
※2019/2/11 起動クレジットなどについての情報を追記しました。
古いAMIからの移行
性能30%upでT2よりお値段も安いので、新しく起動するものに関してはT3を活用したいです。
ただしT3はハイパーバイザが新しい世代になっているので、古いAMIからの起動は注意が必要です。
これは他の最新世代の C5,M5,R5 に移行を検討する場合も同様です。
NITRO世代(C5、M5)へのEC2インスタンスタイプ変更を試してみた(Amazon Linux編)
https://dev.classmethod.jp/cloud/aws/change-type-to-m5-nitro-generation/
インスタンスが移行可能な状態になっているかどうかは
c5_m5_checks_script で確認することもできます。
タイプを C5 または M5 に変更した後に、Linux インスタンスが起動しなくなったのはなぜですか?
https://aws.amazon.com/jp/premiumsupport/knowledge-center/boot-error-linux-m5-c5/
移行に必要な PVDriver(Windowsのみ)、EnaNetworkDriver、NVMeDriverは
Systems Managerのランコマンド経由でインストールすることも可能です。
T3 Unlimited がデフォルトで有効
CPUクレジットを使い切っても性能を維持できるT3 Unlimitedがデフォルトで有効になっています。
T2シリーズの場合はデフォルトでチェックが入っていませんが、
T3シリーズの場合は有効化のチェックが入っている状態です。
CPUクレジットを使い切ってもバーストできる代わりにvCPU時間あたり
0.05ドルの料金が発生するので気になる場合はチェックを外します。
CLIの場合は --credit-specification で standardを指定します
$ aws ec2 run-instances --image-id ami-abc12345 --count 1 --instance-type t3.micro --key-name MyKeyPair --credit-specification "CpuCredits=standard"
かなりレアケースだと思いますが、AutoScalingグループでT3を利用し、
更にUnlimitedを無効化したいような場合は
CreditSpecification={CpuCredits=standard} を指定して予め起動テンプレートを作成しておきます。
また 2019/11/26 にアカウントレベルで無制限モードの設定を変更することができるようになりました。
Amazon EC2 T instances now support Unlimited Mode at AWS account level
https://aws.amazon.com/jp/about-aws/whats-new/2019/11/amazon-ec2-t-instances-now-support-unlimited-mode-at-aws-account-level/
CLIまたはSDKからEC2を起動する際に
T2をデフォルトUnlimitedで起動するようにしたり
T3をデフォルトでStandardで起動するように変更することができます。
T3インスタンスは起動クレジットが無い
T2のスタンダードインスタンスは、起動時またはスタート時に vCPU あたり
30 クレジットを獲得しますが、T3は起動クレジットがありません。
そのため、T2は起動直後もある程度バースト可能ですが、
T3の場合は起動直後はCPU使用率が頭打ちになりやすいと言えます。
例えばt3.microの場合、CloudWatch上は20%まで。
(vCPUあたりのベースラインパフォーマンスが10%かつvCPUが2つで20%)
起動直後の処理でCPUがバーストできず、T3のパフォーマンスが出ない、
あるいは固まってしまうような場合は、以下のいずれかの対応が考えられます。
- 一時的にT3 Unlimitedを有効化する
- 起動クレジットが獲得できるT2インスタンスで起動する
- t3.small, t3.largeのようなベースラインパフォーマンスがより高いインスタンスタイプに変更する
起動直後のt2.micro(左)とt3.microのクレジット残高
ドキュメント
バースト可能パフォーマンスインスタンスの CPU クレジットおよびベースラインパフォーマンス
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/burstable-credits-baseline-concepts.html
- T2 スタンダードインスタンスは、獲得クレジット と 起動クレジットの 2 種類の CPU クレジットを受け取ります。
- T3 スタンダードインスタンスは起動クレジットを受け取りません。
- 起動クレジットは、インスタンスが獲得クレジットを蓄積できるようになる前に、起動してすぐにバーストできるよう、最適な起動エクスペリエンスを提供するために設計されています
t3.micro は無料利用枠対象外
個人利用でない限り、気にしないとは思いますが。。