adtech studio

[Google Cloud Platform] GCEはホントに速い?

By kuniaki

GCP

アドテク本部 の小林です。

[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からの移行を考えている方の参考情報にしていただけると幸いです。