昨年末に、 新しいコンピュート最適化EC2インスタンスについてブログで紹介し、料金や技術情報は追ってご紹介しますと伝えました。本日、7つのリージョンでこれらのインスタンスをローンチしたことを嬉しく思います!
新インスタンスタイプ C4
新しいC4インスタンスはIntel Xeon E5-2666 v3 (コードネームHaswell) プロセッサをベースにしています。このEC2に最適化したカスタムプロセッサは2.9GHzで動作し、Intel® Turbo Boost時には3.5GHzで動作します(仕様の詳細はこちらを参照ください)。これらのインスタンスはEC2で最も高い性能を提供するように設計されています。ラインナップは以下のようになります:
インスタンス名 | vCPU | RAM | ネットワークパフォーマンス | 専有EBSスループット | Linux オンデマンド料金 |
c4.large | 2 | 3.75 GiB | 中 | 500 Mbps | $0.116/1時間 |
c4.xlarge | 4 | 7.5 GiB | 中 | 750 Mbps | $0.232/1時間 |
c4.2xlarge | 8 | 15 GiB | 高 | 1,000 Mbps | $0.464/1時間 |
c4.4xlarge | 16 | 30 GiB | 高 | 2,000 Mbps | $0.928/1時間 |
c4.8xlarge | 36 | 60 GiB | 10 Gbps | 4,000 Mbps | $1.856/1時間 |
上記の価格は米国東部(北バージニア)と米国西部(オレゴン)リージョンですが、欧州(アイルランド)、アジアパシフィック(東京)、米国西部(北カリフォルニア)、アジアパシフィック(シンガポール)、アジアパシフィック(シドニー)でも利用可能です。価格の詳細については、EC2料金表ページを御覧ください。
以前の記事でお伝えしたように、全てのサイズのC4ではEBS最適化がデフォルトで有効になっています。この機能により通常のネットワークスループットとは別に、500Mbpsから4000MbpsのEBSとの専有スループットを追加料金無しで利用可能です。C3インスタンスと同様に、C4インスタンスは、より高いパケット毎秒(PPS)、低ジッター、低遅延のネットワークを実現するために拡張ネットワーキングも利用できます。2台以上のC2インスタンスをPlacement Group内で起動することで、グループ内での低遅延な接続を実現できます。
c4.8xlarge について
EC2は、Web API経由で簡単に管理できるコンピュート環境、ネットワーク、ブロックストレージといったリソースをセキュアに提供するために、仮想化テクノロジーを使用しています。C4のようなコンピュート最適化インスタンスファミリーでは、その下層にあるハードウェアの性能を安全に出来る限り引き出しつつ、低ジッターな仮想化I/O を提供することを目標としてより効率的なシステムになるように常に取り組んでおり、その一環として、c4.8xlargeインスタンスタイプには4個のvCPUをさらに追加することが出来ました。(いくつかのオペレーティングシステムでは32 vCPUの上限があり、c4.8xlargeに非対応の可能性があります。詳細は対応オペレーティングシステムを参照ください)
以前のIntelプロセッサーと同じく、C4のIntel Xeon E5-2666 v3 は Turbo Boostをサポートします。このテクノロジーは、設計された電力消費と熱発生の制限内で、プロセッサーが定格周波数(2.9GHz)よりも高速に動作させる機能です。その効果は利用中のコア数やワークロードに依存しますが、理想的な状況では3.5GHzまでクロックスピードをブーストさせることができます。一般的に、少ないコアを使うワークロードは、このスピードアップによる効果を得られやすいです。Turbo Boostはデフォルトで有効で、皆さんのアプリケーションの変更すること無く効果を得ることができます。
これはHaswellマイクロアーキテクチャの実際のダイです(この写真は、C4インスタンスに使われているプロセッサに似ていますが同一ではありません)。中央にキャッシュがあり、その上下にCPUコアがあります:
もしあなたのワークロードがこれらの全コアを使う場合、2.9GHzの性能を利用でき、さらに、設計された発熱と消費電力の上限を超えない範囲でクロックスピードを上げることが可能な場合はいつでもTurbo Boostによる恩恵を得られます。
あなたのワークロードが18コア全てを必要としない場合もあるかと思います(各コアは2スレッドをサポートします)。そのようなアプリケーションをより良い性能にチューンするために、スレッド単位での消費電力をマネージ可能です。これはC-State管理として知られています。あなたのコードが2コアしか使っていないなら、その他の16コアの状態を深い省電力レベルにすることで熱の余裕ができ、残りのコアに対して Turbo Boostが効く機会が増えます。また、希望する性能(CPUクロック周波数)を制御することもでき、こちらはP-state管理として知られています。C-State管理を使うには、コアがアクティブになるまでの時間を考慮しておく必要があります(高いスリープレベルは低い電力消費ですがアクティブになるまでの時間を要します)。P-State管理を使うには、CPU周波数が変わることにアプリケーションが対応しておく必要があります。C-Stateと P-State管理はオペレーティング・システムのサポートが必要であり、現時点ではLinuxのみ対応している点に注意してください。
プロセッサの周波数とC-stateの情報を表示するには、 turbostat コマンドが利用できます。(Amazon Linux AMIで利用可能です)
C-State とP-State については、 Jeremy Ederのポスト processor.max_cstate, intel_idle.max_cstate and /dev/cpu_dma_latency や、Dellのテクニカルホワイトペーパー Controlling Processor C-State Usage in Linuxや、こちらの議論 Are hardware power management features causing latency spikes in my application? が参考になります。また、私達の新しいドキュメント [Processor State Control]も御覧ください。
Intel® Xeon® Processor (E5-2666 v3) の詳細
Intel Haswellマイクロアーキテクチャは、以前よりも顕著に改善されています。分岐予測がより良くなり、命令プリフェッチとデータプリフェッチがより効率的になっています。並列に複数の命令を実行する機会を活用しやすくなりますし、整数演算と分岐の性能を改善します。 この新しいプロセッサはインテルのAdvanced Vector Extensions 2を採用しています。AVX2は256ビットの整数ベクターをサポートし、 1サイクルあたり32個の単精度浮動小数点または16個の倍精度浮動小数点を演算することができます。AVX2はビットフィールドのパッキングやエキストラクティング、可変長ビットストリームのデコーディング、ビットギャザリング、任意精度演算、エンディアン変換、ハッシュ、暗号処理などもサポートします。マイクロアーキテクチャの改善は、既存アプリケーションの性能も30%かそれ以上引き上げることができます。これらの新機能を活用するには、新しい命令を使用するコードを生成できるツールチェーンを使う必要があります。Intel Developer Zoneの記事 Write your First Program with Haswell new Instructions も参照ください。
C4インスタンスは今日から利用できます
冒頭で述べたように、新しいC4インスタンスは本日より7リージョンで利用可能です(その他のリージョンも追って利用可能になります)。オンデマンドインスタンスとして起動したり、リザーブドインスタンスを購入したり、スポットマーケット経由でアクセスもできます。また、サポートされたリージョンでC4インスタンスでAWS Marketplace から起動できます。
私達は常にお客様からのフィードバックに興味があります。もしC4インスタンスタイプについてのフィードバックをお持ちで、私達に共有いただけるのであれば、 ec2-c4-feedback@amazon.com 宛にご連絡ください。