現行世代と旧世代のインスタンス比較(性能&コスト)


リンクバルでエンジニアをしている高島です。

最近EC2上でApache Jmeterを利用しての負荷テストを実施していて、いろいろなインスタンスタイプ・サイズやOSで試したりしています。
AWSではインスタンスタイプごとに現行世代と旧世代の2種類のインスタンスが選べますが、現行世代の方がベースの物理マシンも新しいため性能がよかったりします。

ただ、マシン買い切りのオンプレミスとは異なり、時間単位でコストが掛かってくるAWSでは性能のよいインスタンスをとにかく投入するのではなくランニングコストも視野に入れて選定が必要となってきます。
そこで、新旧で性能およびコストの比率をチェックしてみたいとおもいます。

性能測定実施

測定にはUnixBenchを利用してみました。
まずはインストールです。

実行に必要なパッケージを先に導入します。

# yum install perl-Time-HiRes
# yum install gcc

公式からソースコードをダウンロードし、展開します。

$ wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/byte-unixbench/UnixBench5.1.3.tgz
$ tar zxvf UnixBench5.1.3.tgz
$ cd UnixBench

実行するとコンパイルされた後に処理が開始されます。

$ ./Run

比較対象

比較対象はvCPU数とメモリ容量をあわせたいので、c4.4xlargeとc3.4xlargeを選択しました。
ともにvCPU数が16、メモリ容量が30GiBになります。

性能比較

c4.4xlarge c3.4xlarge c4/c3
1vCPUのスコア 1950.3 1793.7 約108%
16vCPUのスコア 8805.8 7753.3 約113%

物理CPUが(c4インスタンス)E5-2666 v3 @ 2.90GHzと(C3インスンタンス)E5-2680 v2 @ 2.80GHzのため、CPU世代が進んでいてクロック差もあるため妥当な差だと思います。
テストケースごとのスコアの掲載は省略していますが全体的にc4インスタンスが上回る結果となりました。

コスト比較

c4.4xlarge c3.4xlarge c4/c3
$1.061/h $1.021/h 約104%

c4インスタンスの方が上ですが、ほとんど気にならないレベルです。

総括

性能差に対して、コストの差が小さいため新しくインスタンスを選択する際には素直に現行世代インスタンスを選んだ方が無難だと思います。
ただし、新しくリリースされたインスタンスについてはリリース直後は物理サーバの絶対数が少ないためか、オートスケールなどで起動できる台数が制限に引っかかってしまうことがあるようで、大型システムではそのあたりについて考慮する必要がありそうです。