Amazon EC2の新インスタンス「C4ファミリー」を触ってみた

アイキャッチ AWS EC2

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

こんにちは、せーのです。
今日は去年のre:Invent2014でアナウンスされていた新しいインスタンス「C4ファミリー」がいよいよローンチされたのでご紹介したいと思います。

7つのリージョンにてローンチ

今回のローンチではUS East (Northern Virginia)、US West (Oregon)、Europe (Ireland)、Asia Pacific (Tokyo)、US West (Northern California), Asia Pacific (Singapore), and Asia Pacific (Sydney)の7つのリージョンにてC4インスタンスが使えるようになります。最初から東京リージョンが使えるのはいいですね。

なんとHaswell搭載

C3ファミリーではXeon E5-2680 v2が使用されていましたが、今回は満を持してIntel Xeon E5-2666 v3 (code name Haswell) が使用されております。HaswellといえばMacbookなどで採用されているあれ、ですね。あのHaswellが今回はEC2用にカスタマイズされベースクロックは2.9GHz、ターボ時には3.5 GHzで動作します。このクロック数は現在の全EC2インスタンスの中で最強となります。
またHaswellが使えるということでAVX2が組み込んであるので256bitの演算を一度に行う事ができ、1サイクルで同時実行可能な単精度実数の演算数は32個となります。

c4-3

こちらはHaswellの中です。上下にCPUコアがあり、挟まれた真ん中にキャッシュがあります。

デフォルトでEBS最適化オプションが有効になっている

全てのC4インスタンスにてデフォルトでEBS最適化(EBS Optimized)が有効になっています。インスタンスサイズによって500Mbpsから4000Mbpsまでのスループットを実現していて、しかもこれらに追加料金はかかりません。
さらにC3やR3、I2系などで採用されている拡張ネットワーキングの有効化が使用でき、更なる1秒ごとのパケット数(PPS)の増加、ジッターの低下、レイテンシーの低下が望めます。またグルーピングにも対応しておりplacement groupでC4インスタンスを複数組む事により相互間を低レイテンシーで接続することができます。

C4ファミリーラインナップ

ではラインナップと詳細を見てみましょう。料金は東京リージョンでの価格となります。

instance名 vcpu数 ram network performance ebsスループット(最大) 料金
c4.large 2 3.75 gib moderate 500 mbps $0.147/hour
c4.xlarge 4 7.5 gib moderate 750 mbps $0.294/hour
c4.2xlarge 8 15 gib high 1,000 mbps $0.588/hour
c4.4xlarge 16 30 gib high 2,000 mbps $1.176/hour
c4.8xlarge 36 60 gib 10 gbps 4,000 mbps $2.352/hour

いかがでしょうか。やはりc4.8xLargeは圧巻、といった感じでしょうか。AWSのアナウンスによれば

EC2 uses virtualization technology to provide secure compute, network, and block storage resources that are easy to manage through Web APIs. For a compute optimized instance family like C4, our goal is to provide as much of the performance of the underlying hardware as safely possible, while still providing virtualized I/O with very low jitter. We are always working to make our systems more efficient, and through that effort we are able to provide four additional vCPUs on the c4.8xlarge instance size.

vCPUをc4.8xlargeにc3.8xlargeより4つ追加できたのは「努力のおかげ」だそうです。

C4.8xlargeはP-StateとC-StateでCPUパワーを管理する

C4.8xlargeはCPUの管理方法にP-StateC-Stateを使用します。P-StateとはCPUの負荷によって動作周波数と動作電圧をセットで切り替えて電源管理をする機能で、C-Stateとはアイドル時に使っていないコアの電源を切ることで消費電力を減らす機能のことです。C0ステートは動作状態、C1ステートは停止状態を表します。デフォルトで[turbostat]コマンドが使えるようになっているのでC-StateはこのコマンドをつかってC-Stateを確認するようにすると便利ですね。

さわってみた

では早速触ってみましょう。いつものEC2のインスタンス立ち上げ画面を開いてみると

c4-1

いたーーーーっ!!

c4-2

情報としては知っていましたが、改めてこのスペックを見るとすごいですね。ドラクエ得意な友達の家に行ったみたいな妙な興奮とリスペクトを感じます。

では中にログインしてみます。まず最初はCPUを見てみます。

# cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 63
model name      : Intel(R) Xeon(R) CPU E5-2666 v3 @ 2.90GHz
stepping        : 2
microcode       : 0x25
cpu MHz         : 1816.917
cache size      : 25600 KB
physical id     : 0
siblings        : 18
core id         : 0
cpu cores       : 9
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq monitor est ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm ida xsaveopt fsgsbase bmi1 avx2 smep bmi2 erms invpcid
bogomips        : 5786.75
clflush size    : 64
cache_alignment : 64
address sizes   : 46 bits physical, 48 bits virtual
power management:

XeonのE5-2666 V3、Haswellが確認できます。flagsの中にはAVX2もいますね。これが36個もずらずらずら〜っと並びます。なんなんだこれは、、、と正直圧巻に思います。 次にc4.8xLargeのデフォルト、turbostatを見てみましょう。

# turbostat -v
turbostat v3.6 Dec 2, 2013 - Len Brown <lenb@kernel.org>
CPUID(0): GenuineIntel 13 CPUID levels; family:model:stepping 0x6:3f:2 (6:63:2)
CPUID(6): APERF
RAPL: 1942 sec. Joule Counter Range, at 135 Watts
cpu0: MSR_NHM_PLATFORM_INFO: 0x80c33f3811d00
12 * 100 = 1200 MHz max efficiency
29 * 100 = 2900 MHz TSC frequency
cpu0: MSR_IA32_POWER_CTL: 0x2b040059 (C1E auto-promotion: DISabled)
cpu0: MSR_NHM_SNB_PKG_CST_CFG_CTL: 0x00008402 (locked: pkg-cstate-limit=2: pc6-noret)
cpu0: MSR_NHM_TURBO_RATIO_LIMIT: 0x2020202020212323
32 * 100 = 3200 MHz max turbo 8 active cores
32 * 100 = 3200 MHz max turbo 7 active cores
32 * 100 = 3200 MHz max turbo 6 active cores
32 * 100 = 3200 MHz max turbo 5 active cores
32 * 100 = 3200 MHz max turbo 4 active cores
33 * 100 = 3300 MHz max turbo 3 active cores
35 * 100 = 3500 MHz max turbo 2 active cores
35 * 100 = 3500 MHz max turbo 1 active cores
cpu0: MSR_RAPL_POWER_UNIT: 0x000a0e03 (0.125000 Watts, 0.000061 Joules, 0.000977 sec.)
cpu0: MSR_PKG_POWER_INFO: 0x2f087001700438 (135 W TDP, RAPL 46 - 270 W, 0.045898 sec.)
cpu0: MSR_PKG_POWER_LIMIT: 0x7851000158438 (UNlocked)
cpu0: PKG Limit #1: ENabled (135.000000 Watts, 1.000000 sec, clamp ENabled)
cpu0: PKG Limit #2: ENabled (162.000000 Watts, 0.007812* sec, clamp ENabled)
cpu0: MSR_DRAM_POWER_INFO,: 0x2f00c4004000bc (24 W TDP, RAPL 8 - 24 W, 0.045898 sec.)
cpu0: MSR_DRAM_POWER_LIMIT: 0x00000000 (UNlocked)
cpu0: DRAM Limit: DISabled (0.000000 Watts, 0.000977 sec, clamp DISabled)
cpu9: MSR_RAPL_POWER_UNIT: 0x000a0e03 (0.125000 Watts, 0.000061 Joules, 0.000977 sec.)
cpu9: MSR_PKG_POWER_INFO: 0x2f087001700438 (135 W TDP, RAPL 46 - 270 W, 0.045898 sec.)
cpu9: MSR_PKG_POWER_LIMIT: 0x7851000158438 (UNlocked)
cpu9: PKG Limit #1: ENabled (135.000000 Watts, 1.000000 sec, clamp ENabled)
cpu9: PKG Limit #2: ENabled (162.000000 Watts, 0.007812* sec, clamp ENabled)
cpu9: MSR_DRAM_POWER_INFO,: 0x2f00c4004000bc (24 W TDP, RAPL 8 - 24 W, 0.045898 sec.)
cpu9: MSR_DRAM_POWER_LIMIT: 0x00000000 (UNlocked)
cpu9: DRAM Limit: DISabled (0.000000 Watts, 0.000977 sec, clamp DISabled)
pk cor CPU    %c0  GHz  TSC SMI    %c1    %c3    %c6    %c7   %pc2   %pc3   %pc6   %pc7  Pkg_W RAM_W PKG_% RAM_%
             0.28 1.55 2.90   0   4.32   0.00  95.40   0.00   0.00   0.00   0.00   0.00  53.64 39.20  0.00  0.00
 0   0   0   0.28 1.45 2.90   0   4.73   0.00  94.99   0.00   0.00   0.00   0.00   0.00  27.92 25.72  0.00  0.00
 0   0  18   0.28 1.52 2.90   0   4.73
 0   1   1   0.26 1.58 2.90   0   4.73   0.00  95.01   0.00
 0   1  19   0.29 1.58 2.90   0   4.70
 0   2   2   0.29 1.53 2.90   0   4.70   0.00  95.01   0.00
 0   2  20   0.26 1.56 2.90   0   4.73
 0   3   3   0.25 1.71 2.90   0   3.78   0.00  95.97   0.00
 0   3  21   0.25 1.74 2.90   0   3.77
 0   4   4   0.25 1.69 2.90   0   3.90   0.00  95.84   0.00
 0   4  22   0.26 1.70 2.90   0   3.89
 0   5   5   0.29 1.63 2.90   0   4.73   0.00  94.98   0.00
 0   5  23   0.29 1.55 2.90   0   4.73
 0   6   6   0.29 1.54 2.90   0   3.75   0.00  95.97   0.00
 0   6  24   0.27 1.53 2.90   0   3.76
 0   7   7   0.27 1.53 2.90   0   3.79   0.00  95.95   0.00
 0   7  25   0.27 1.54 2.90   0   3.78
 0   8   8   0.27 1.49 2.90   0   3.93   0.00  95.80   0.00
 0   8  26   0.29 1.52 2.90   0   3.92
 1   0   9   0.26 1.62 2.90   0   4.71   0.00  95.03   0.00   0.00   0.00   0.00   0.00  25.72 13.48  0.00  0.00
 1   0  27   0.27 1.67 2.90   0   4.70
 1   1  10   0.30 1.42 2.90   0   7.69   0.00  92.01   0.00
 1   1  28   0.36 1.70 2.90   0   7.63
 1   2  11   0.27 1.45 2.90   0   3.77   0.00  95.96   0.00
 1   2  29   0.28 1.45 2.90   0   3.76
 1   3  12   0.25 1.56 2.90   0   3.77   0.00  95.97   0.00
 1   3  30   0.27 1.55 2.90   0   3.76
 1   4  13   0.29 1.42 2.90   0   4.72   0.00  94.99   0.00
 1   4  31   0.28 1.47 2.90   0   4.73
 1   5  14   0.29 1.48 2.90   0   3.75   0.00  95.96   0.00
 1   5  32   0.28 1.49 2.90   0   3.76
 1   6  15   0.29 1.53 2.90   0   3.75   0.00  95.96   0.00
 1   6  33   0.28 1.54 2.90   0   3.76
 1   7  16   0.28 1.62 2.90   0   3.79   0.00  95.93   0.00
 1   7  34   0.26 1.61 2.90   0   3.80
 1   8  17   0.29 1.44 2.90   0   3.77   0.00  95.94   0.00
 1   8  35   0.29 1.49 2.90   0   3.77
 ......

上の32 * 100 = 3200 MHz max turbo 8 active coresというのはCPU使用コア数と対応するターボブーストの上限周波数で下の数字の表がターボブーストが反映された周波数となります。このうちC-Stateは「%c1-%c7」にあたります。数字が多いほど省電力となります。今は殆どが%c6に集中していますね。「%pc2-%pc7」は各物理CPUの省電力状態を表します。

まとめ

いかがでしたでしょうか。電源管理機能までついてるなんてかなりいけてますね。是非皆さんもC4ファミリーを一度立ち上げてみて、その早さを体感してみてください!
また実際の速さはどうなのか、ベンチマークを大栗が取っておりますのでそちらの記事も是非御覧ください。

参照記事