先日、新インスタンスタイプとなるT2インスタンスがリリースされましたね!
【AWS発表】バースト可能な性能を持つ新しい低コストEC2インスタンス
いままで特にお世話になっていた t1.micro/m1.small の
後継というべきインスタンスでしょうか。
しかし実際に使ってみると、T2インスタンスならではの特徴がいくつかあるようです。
これから一番お世話になりそうなT2インスタンスですし
もう少し詳細に調査し、その結果をまとめてみました。
ベースライン/クレジット/バーストという概念
CPUの性能に関する概念です。
t1.microにもバーストという機能はありましたが
T2では実装が大きく異なるようです。
要約すると
クレジットを持っている分だけ、CPUの性能が向上するバーストが発動する。
クレジットがなくなると、CPUの性能がベースラインに留まる。
という感じでしょうか。
また、
1クレジット=1分間バースト可能
と覚えておくとよいでしょう。
10クレ持っていれば、10分間バーストし続けられる、ということです。
インスタンス詳細
タイプ | vCPUs | RAM (GiB) | 時間あたりの料金 (Linux)(東京) | 月あたりの料金 (Linux)(東京)
-------| ------| ------------ | --------- | -------------| ------------------ | -----------------------| ---------
t2.nano | 1 |0.5 | $0.008| $5.76
t2.micro | 1 |1 | $0.016| $11.52
t2.small | 1 |2 | $0.032| $23.04
t2.medium | 2 |4 | $0.064| $46.08
t2.large | 2 |8 | $0.128| $92.16
t2.xlarge | 4 |16 | $0.256| $184.32
t2.2xlarge | 8 |32 | $0.512| $368.64
ベースラインについて
インスタンスタイプ毎に異なります。
100%がCPU10割使えるとすると、
たとえばmicroだとCPU1割の性能しか使うことが出来ないということですね。
インスタンスタイプ | ベースラインCPU利用率 |
---|---|
t2.nano | 5% |
t2.micro | 10% |
t2.small | 20% |
t2.medium | 40% |
t2.large | 60% |
t2.xlarge | 90% |
t2.2xlarge | 135% |
初期クレジットについて
初期クレジットですが、調べたところLaunch直後は
以下のクレジットがチャージされているようです。
インスタンスタイプ | 初期クレジット量 |
---|---|
t2.nano | 30 |
t2.micro | 30 |
t2.small | 30 |
t2.medium | 60 |
t2.large | 60 |
t2.xlarge | 120 |
t2.2xlarge | 240 |
仮想コア1つにたいして 30クレ、という感じでしょうか。
t2.mediumは60クレなので
初回から60分間CPUを全力でぶん回せるということですね。
クレジットの回復について
1時間毎に回復します。インスタンスタイプ毎に回復量が異なります。
インスタンスタイプ | 1時間毎のクレジット回復量 |
---|---|
t2.nano | 3 |
t2.micro | 6 |
t2.small | 12 |
t2.medium | 24 |
t2.large | 36 |
t2.xlarge | 54 |
t2.2xlarge | 81 |
グレードの高いインスタンスほど、回復量が多いですね。
クレジットの最大チャージ料
インスタンスタイプ毎に異なります。
計算式としては「24時間チャージし続けたときの数値」です。
これ以上はクレジットがチャージされません。
インスタンスタイプ | 最大クレジットチャージ量 |
---|---|
t2.nano | 72(1時間12分間バースト可能) |
t2.micro | 144(2時間24分間バースト可能) |
t2.small | 288(4時間48分間バースト可能) |
t2.medium | 576(9時間36分間バースト可能) |
t2.large | 864(14時間24分間バースト可能) |
t2.xlarge | 1296(21時間36分間バースト可能) |
t2.2xlarge | 1944(32時間24分間バースト可能) |
クレジットのリセットについて
インスタンスrebootならリセットされませんが、
stop/startだと初期値にリセットされるようです。
クレジットが溜まっている時には気をつけたほうが良いでしょう。
クレジットの確認方法について
CloudWatchの
CPUCreditUsage / CPUCreditBalance
という項目で確認できます。
EC2一覧のmonitoringタブから確認できますし、通知も出来る?(未確認)はず。
その他T2ならではの特徴
HVMのみサポート
PVインスタンスでは起動することが出来ません。
すでに、PVインスタンスからHVMインスタンスに移行するツールもあるようです。
https://github.com/j3tm0t0/pv2hvm
VPCのみサポート
T2インスタンスはVPC上にしか作ることが出来ません。
EC2-Classicのみで運用しているアカウントではVPCを作り、
その上でインスタンスを起動しましょう。
API経由でT2インスタンスを起動したい場合
APIから起動する場合、
subnet-id(またはnetwork-id)が必須 になっていたり1
セキュリティグループの指定がid必須 になっていたりと、
バッチ処理などでインスタンス起動する場合には
多少手を加える必要があるかもしれません。
AWS Document:T2:vpc-support
ユースケース
常にCPUを使いまくるようなサーバでなければ有用だと思います。
例えば以下のようなロールでしょうか。
- テストサーバ
- 開発サーバ
- バッチサーバ
- 管理画面サーバ
- Packer用サーバ
- CIサーバ(デプロイ多いと辛いかも)
- ベンチマークサーバ(長時間だと辛いかも)
まとめ
クレジット内で収まるような要件ならだいぶコスト節約できそうです。
いろいろなインスタンスタイプで試してみて、
クレジット量をみながら徐々に移行していくのが良いかと思います。
SUICAみたいに足りなくなったらお金払って
クレジットチャージできるようになったら面白いなぁ…
おまけ:バースト時実際どのくらい速いの?
con_mameさんが既に性能評価されているようです。
T2インスタンスがでたので簡単に性能をみてみた
また別ブログですが、以下は他のインスタンスと比較した結果です。
microインスタンスはlimitかけると大きくパフォーマンスが向上する(※再追記あり)
バースト時にはおよそc3インスタンスと遜色ない性能が出ているような感じです。
良い感じですね!!!
参考
1. 指定しないと "VPCResourceNotSpecified" というエラーが発生する