Amazon EC2の新世代″M4″のコストパフォーマンスを検証する

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

ウィスキー、シガー、パイプをこよなく愛する大栗です。 先日6月11日(PDT)に新しい汎用インスタンスタイプのM4が発表されました。同時に先代?のM3の料金も値下げされました。新インスタンスと旧インスタンスのコストパフォーマンスが気になったので評価してみました。

2015年7月8日:タイトルを「Amazon EC2の″M4″と″M3″のコストパフォーマンスを調べてみた」から変更しました

M4とM3の違い

まずはM4とM3の違いを確認しましょう。

比較内容 M4インスタンス M3インスタンス 備考
仮想化タイプ HVMのみ HVM, PV
CPU 2.4 GHz Xeon® E5-2676 v3 (Haswell) 2.5 GHz Xeon® E5-2670 v2 (Ivy Bridge) or 2.6 GHz Xeon® E5-2670 (Sandy Bridge) 最近起動するM3インスタンスは2.5 GHz Xeon® E5-2670 v2が多い
ストレージ EBSのみ SSDあり
EBS最適化 デフォルト有効 有効化可能 M3はxlarge以上の場合
タイプの種類 m4.large 〜 m4.10xlarge m3.medium 〜 m3.2xlarge
拡張ネットワーキング 使用可能 使用不可
Placement Group 使用可能 使用不可

性能評価

計測環境

計測ツールはいつも通りにUnixBenchを使用します。 計測内容は以下の通りです。

  • UnixBench 5.1.3
  • EC2インスタンス:m4.large(1並列)、m3.large(1並列)、m4.large(2並列)、m3.large(2並列)
  • EBS:gp2 1000GB(3000 IOPS)
  • ディスクPre-warming:無し
  • 使用リージョン:東京(ap-northeast-1)
  • 使用AMI:Amazon Linux AMI 2015.03 (HVM), SSD Volume Type - ami-cbf90ecb
  • サンプル数:5(各々別のインスタンスで計測)

計測結果

m4.large (1並列) m3.large (1並列) m4.large/m3.large (1並列) m4.large (2並列) m3.large (2並列) m4.large/m3.large (2並列)
Dhrystone 2 using register variables (整数演算) 2758.9 2839.3 97.2% 3194.9 3208.4 99.6%
Double-Precision Whetstone (浮動小数点) 728.0 749.1 97.2% 1232.5 1247.0 98.8%
Execl Throughput (システムコール) 900.3 871.4 103.3% 1424.7 1352.0 105.4%
File Copy 1024 bufsize 2000 maxblocks (ディスクI/O) 2325.1 2367.7 98.2% 2924.0 2630.1 111.2%
File Copy 256 bufsize 500 maxblocks (ディスクI/O) 1496.9 1525.2 98.1% 1867.9 1674.2 111.6%
File Copy 4096 bufsize 8000 maxblocks (ディスクI/O) 5102.1 4474.0 114.0% 5990.7 5114.1 117.1%
Pipe Throughput (パイプ) 1350.6 1309.6 103.1% 1599.1 1604.8 99.6%
Pipe-based Context Switching (パイプ) 97.6 89.9 108.6% 1019.3 852.8 119.5%
Process Creation (プロセスフォーク) 889.5 842.5 105.6% 1608.3 1509.1 106.6%
Shell Scripts (1 concurrent) (シェルのテキスト処理:1並列) 1696.3 1609.3 105.4% 2042.7 1942.8 105.1%
Shell Scripts (8 concurrent) (シェルのテキスト処理:8並列) 1955.5 1852.8 105.5% 1976.4 1867.2 105.8%
System Call Overhead (システムコール) 1649.0 1496.9 110.2% 1941.0 1889.9 102.7%
System Benchmarks Index Score (総合スコア) 1286.68 1240.18 103.7% 1986.2 1860.5 106.8%

スペック表でのCPU指標(ECU)はM4とM3で同等ですが、UnixBenchの結果ではM4が僅かに優位でした。

  • 数値演算:ほぼ同等(差が3%以内なので有意な差は無いと考えられる)
  • システムコール:M4が僅かに優位(差が3〜5%)
  • ディスクI/O:M4が優位(1並列の1024byte、256byteバッファは同等、それ以外は10%以上M4が優位)
  • パイプ処理:状況によるがM4が優位(Pipe-based Context Switchingの場合はM4が優位)
  • プロセスフォーク:M4が優位(M4が6%程度優位)
  • テキスト処理:M4が優位(M4が6%程度優位)
  • システムコール:M4が優位(2並列では有意な差がない)

コストパフォーマンス

今回はM3に対するM4のコストパフォーマンス指標を以下のように定義します。 ( M4のパフォーマンス / M4の時間単価 ) / ( M3のパフォーマンス / M3の時間単価 ) 上記の式に今回の計結果を当てはめると、以下のように10%以上コストパフォーマンスが良いと言えます。

指標
M4のパフォーマンス 1986.2
M4の時間単価 $0.183 / 時間
M3のパフォーマンス 1860.5
M3の時間単価 $0.193 / 時間
コストパフォーマンス指標 112.6%

M4の方が10%以上コストパフォーマンスが良いですが、M3はSSDのInstance Storeを使用できます。そのため、ユースケースによってはM3を使用すべき場面が出てきますので、自分のユースケースをよく確認しましょう。

さいごに

本懐の計測結果ではM4を使用したほうがコストパフォーマンスが良いと言えますが、本結果はUnixBenchでの計測結果でしかありません。皆さんのアプリケーションで同様の結果になるとは限りませんので、ご自身のワークロードに応じたパフォーマンス計測を行いましょう。