Blog
[Google Cloud Platform] GCEはホントに速い?
アドテク本部 の小林です。
[Google Cloud Platform] AWSしか使ったことがない私から見たGCE で紹介されたように、GCEはEC2に比べて半額のコストで性能1.5倍と高いコストパフォーマンスを持っているようです。
ここまで差があると、新たなサービスだけでなく、既存システムをGCEへ移行するだけでもかなりのコスト削減効果がありそうですね。
ただ、EC2は多くのインスタンスタイプがあり、全てがこの結果に当てはまるとは限りません。
そこで、EC2から利用シーンが多いであろう一般的なインスタンスタイプを選び、GCEと比較してどの程度の性能差があるのか確認してみたいと思います。
GCEとEC2でよく使われるインスタンスタイプとして以下を比べてみました。
GCE | EC2 | |
Standerd | n1-standard | M3,M4 |
Memory | n1-highmem | R3 |
CPU | n1-highcpu | C3,C4 |
n1-standard と M3 の比較は既に済んでいるので、まずはM4インスタンスとの比較を行います。
それぞれのスペックはこちら
GCE | EC2 | |
type | Standard | M4 |
Name | n1-standard-2 | m4.large |
CPU | 2 | 2 |
MEM | 7.5 | 8 |
Price | $0.077/hour (※) | $0.174/hour |
Region | asia-east1-c | ap-northeast-1 |
※ 長期利用割引が適用された価格。未適用の場合は $0.110/hour
UnixBench結果
n1-standard-2 | m4.large | |
Dhrystone 2 using register variables | 3146.3 | 3180.7 |
Double-Precision Whetstone | 1151.4 | 1230.7 |
Execl Throughput | 1265.8 | 1639.7 |
File Copy 1024 bufsize 2000 maxblocks | 1991.2 | 3055.8 |
File Copy 256 bufsize 500 maxblocks | 1315.8 | 1912.6 |
File Copy 4096 bufsize 8000 maxblocks | 3559.2 | 6605.5 |
Pipe Throughput | 1329.5 | 2113.1 |
Pipe-based Context Switching | 894.2 | 1169.5 |
Process Creation | 1457.9 | 1634.7 |
Shell Scripts (1 concurrent) | 1593.2 | 2105.8 |
Shell Scripts (8 concurrent) | 1522.5 | 2070.9 |
System Call Overhead | 1978.1 | 3237.2 |
System Benchmarks Index Score | 1631.5 | 2217.4 |
M3の場合とは異なり、全体的にEC2の方がよい結果になりました。
M3とM4の違いは採用されているCPU世代です。
M3はE5-2670 v2@2.50GHz (Ivy Bridge)ですが、M4はその後の世代であるE5-2676 v3@2.40GHz (Haswell)もしくはE5-2686 v4@2.30GHz (Broadwell)が使われます。
上記のBenchで使われたCPUは E5-2676 v3@2.40GHz (Haswell) です。
GCEのCPUは正確な型番が取得できないので結果数値からの推測になりますが、ターボ・ブーストが効かない E5-2609 v2 をベースにカスタムしたものではないかと思われます。
続いてメモリタイプの比較を行います。
GCE | EC2 | |
type | High Memory | R3 |
Name | n1-highmem-2 | r3.large |
CPU | 2 | 2 |
MEM | 13 | 15 |
Price | $0.097/hour(※) | $0.2/hour |
Region | asia-east1-c | ap-northeast-1 |
※ 長期利用割引が適用された価格。未適用の場合は $0.1649/hour
UnixBench結果
n1-highmem-2 | r3.large | |
Dhrystone 2 using register variables | 3275.8 | 3217.3 |
Double-Precision Whetstone | 1119.4 | 1248.0 |
Execl Throughput | 1260.6 | 1526.7 |
File Copy 1024 bufsize 2000 maxblocks | 1641.7 | 2322.8 |
File Copy 256 bufsize 500 maxblocks | 1008.0 | 1649.0 |
File Copy 4096 bufsize 8000 maxblocks | 3707.3 | 5041.3 |
Pipe Throughput | 1120.4 | 1923.8 |
Pipe-based Context Switching | 800.1 | 1028.2 |
Process Creation | 1303.4 | 1497.1 |
Shell Scripts (1 concurrent) | 1671.5 | 2042.8 |
Shell Scripts (8 concurrent) | 1614.9 | 2012.3 |
System Call Overhead | 1886.6 | 3046.2 |
System Benchmarks Index Score | 1533.2 | 2011.6 |
こちらも似たような結果で、EC2に軍配が上がりました。
今度はEC2のCPUも Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz と同じ世代のものが利用されています。
(GCEのCPUはn1-standard-2と同じもの)
E5-2670 v2はブーストが効いた場合1.35倍程度にまでクロックが上がるので、数値の結果もうなずけます。
最後にCPUタイプで比較を行います。
GCE | EC2 | EC2 | |
type | High CPU | C3 | C4 |
Name | n1-highcpu-2 | c3.large | c4.large |
CPU | 2 | 2 | 2 |
MEM | 3.75(※1) | 3.75 | 3.75 |
Price | $0.068/hour(※2) | $0.128/hour | $0.133/hour |
Region | asia-east1-c | ap-northeast-1 | ap-northeast-1 |
※1 EC2に合わせるため、カスタマイズでメモリを1.8GB → 3.75GBへ変更
※2 長期利用割引が適用された価格。未適用の場合は $0.0884/hour
UnixBench結果
n1-highcpu-2 | c3.large | c4.large | |
Dhrystone 2 using register variables | 3146.5 | 3441.7 | 3768.8 |
Double-Precision Whetstone | 1154.4 | 1335.5 | 1458.1 |
Execl Throughput | 1259 | 1634.8 | 1781.8 |
File Copy 1024 bufsize 2000 maxblocks | 2014.7 | 3070.3 | 3598.2 |
File Copy 256 bufsize 500 maxblocks | 1296.8 | 1948.7 | 2255.1 |
File Copy 4096 bufsize 8000 maxblocks | 3354.7 | 6241 | 7669.6 |
Pipe Throughput | 1275.7 | 2320.1 | 2507.5 |
Pipe-based Context Switching | 853.6 | 1162.4 | 1369 |
Process Creation | 1381.7 | 1621.6 | 1674.3 |
Shell Scripts (1 concurrent) | 1561.6 | 2197.8 | 2390.3 |
Shell Scripts (8 concurrent) | 1503.2 | 2174.8 | 2382.3 |
System Call Overhead | 1954 | 3668.1 | 3855.2 |
System Benchmarks Index Score | 1597.7 | 2296.5 | 2553.6 |
CPUは下記の通りでした。
n1-highcpu-2 | Intel(R) Xeon(R) CPU E5-2609 v2 @ 2.50GHz カスタム (※) |
c3.large | Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz (ターボ・ブースト最大時 3.60GHz) |
c4.large | Intel(R) Xeon(R) CPU E5-2666 v3 @ 2.90GHz (ターボ・ブースト最大時 3.30GHz) |
※ ベンチ結果からの推測
やはりEC2の方が高いパフォーマンスを発揮した結果となりました。
世代、クロック数の差がそのまま出ていますね。
出揃ったので、ScoreとPrice をまとめます。
standard | m4.large | highmem | r3.large | highcpu | c3.large | c4.large | |||||
Score (Total) | 1631.5 | 2217.4 | 1533.2 | 2011.6 | 1597.7 | 2296.5 | 2553.6 | ||||
Price ($/hour) | 0.077 | 0.174 | 0.097 | 0.2 | 0.068 | 0.128 | 0.133 |
今回M4、R3、C3,C4とインスタンスタイプを変えて比較したところ、M3とは異なりAWSの方が高速な結果が得られたことに驚きました。
とはいえ50%のコスト削減ができるにも関わらず20~30%程度しか性能が変わらないことを考えれば、GCEは十分に移行先として魅力的です。
また、GCEはインスタンス作成時にCPU、メモリの割当量を自由に変更する事ができるので、性能を落とさずに安価なインスタンスを作ることも可能でしょう。
(せめて負荷に合わせてAutoscalingする構成に作り直した方が将来的にも幸せになりそうでが。。。)
GCPは今年中に東京リージョンが稼働を開始する予定なので、その段階で改めて比較を行ってみたいですね。
最後におまけとして世界各国のリージョンで実行したUnixBench System Benchmarks Index ScoreのScoreを掲載しておきます。
過去に比較したときとは異なる結果になっているところあるので、各リージョンでも頻繁に世代交代が行われているようです。
asia-east1-a | asia-east1-b | asia-east1-c | |
1614.8 | 1667.4 | 1609.6 | |
europe-wast1-b | europe-wast1-c | europe-wast1-d | |
1844 | 1619.7 | 1684.3 | |
us-central1-a | us-central1-b | us-central1-c | us-central1-f |
1758.1 | 1744.1 | 1760.4 | 1851.3 |
us-east1-b | us-east1-c | us-east1-d | |
1791.5 | 1752.5 | 1722.7 | |
us-wast1-a | us-wast1-b | ||
1847.1 | 1856.1 |
<2016/11/15 追記>
と、記事を書いてから公開されるまでの間に東京リージョンがオープンされちゃいました。
せっかくなのでこちらもいっちゃいましょう。
asia-northeast1-a | asia-northeast1-b | asia-northeast1-c | |
Score (Total) | 1869.6 | 1824.2 | 1759.9 |
東京リージョン n1-standard-2 のPrice ($/hour) が $0.07956(※) なので、アジアリージョンの1.2倍くらいですね。
※ 長期利用割引が適用された価格。未適用の場合は $0.1326
うーん、AWS c4.large が $0.133 で Score 2553.6 であることを考えると 、コストは約40%減削減できるけど、性能も同じくらいの割合で落ちるようです。
しかもこれ月内の75%以上を稼働させて、割引を適用した価格なんですよね。おまけにもしもAWSのリザーブインスタンス価格を考慮すると。。。
今は旧態依然としたインスタンスの利用のされ方は減りつつあり、システムの要件に合わせてコンテナ、プリエンプティブ、スポットインスタンスなどもうまく活用し、要求に合わせて動的にインスタンスを変動させるやり方に変わってきています。
また、他のマネージドサービスと連携することを前提とした設計をするので、今回のように1インスタンスだけに絞って性能や価格を比較することはあまり意味をなさないかもしれませんが、新システムの設計やAWSからの移行を考えている方の参考情報にしていただけると幸いです。
Author