...

パブリッククラウドサービス Amazon EC2 の性能検証レポート

by user

on
Category: Documents
2

views

Report

Comments

Transcript

パブリッククラウドサービス Amazon EC2 の性能検証レポート
パブリッククラウドサービス Amazon EC2 の性能検証レポート
<日付 2011/02/28>
システムディベロップメントグループ
並河 祐貴
はじめに
大手パブリッククラウドサービスの 1 つに Amazon Web Services がある。Amazon Web Services
は、仮想サーバを 1 時間単位課金の従量制で利用できる Amazon EC2 や、高信頼性のオンライン
ス ト レ ー ジ を 1GB 単 位 か ら の 従 量 制 課 金 で 利 用 で き る Amazon S3 な ど を 中 心 と し た 、
IaaS(Infrastructure as a Service)の代表格である。
現在も定期的に続々と新しいサービスや機能を発表し、Amazon Web Services は日本でも益々
注目を集める存在である。本稿では、この Amazon Web Services の中でも、特に仮想サーバ部分
である Amazon EC2 について、主に性能に関する調査結果を記す。通常の物理サーバで確認した
性能と比較することで、Amazon EC2 から既存物理サーバからの移行や、もしくは既存物理サーバ
から Amazon EC2 への移行、Amazon EC2 を利用した新規構築の際のサーバ選定の参考になれば
幸いである。
本研究の目的
パブリッククラウドサービスを使う目的の 1 つは、部分的なコストの削減である。アメーバのような、
既に巨大なメディアサービスを自社インフラで運用する弊社が、パブリッククラウドサービス使う機会
は、現時点でそう多くはないかもしれないが、既存のデータと連携しないような新規サービスをリリ
ースする際は、例えば以下のコスト的な観点により、利用するシーンが存在すると考える。
* サービスインしてみないと必要なサーバ台数がまったく計算できない場合
多くの Web サービスがこの悩みに遭遇していると思われるが、通常、新しい Web サービスはサー
ビスインしてみないと、どのくらいアクセスがある(ユーザにヒットする)かは、なかなか正しく予想し辛
いものである。ヒットするかわからない、新しい Web サービスに多額の初期投資(多くのサーバやネ
ットワークの準備)は賭けに出るようなものだが、全く準備しないというわけにもいかず、サービスを
始める際には、通常何かしらの設備投資が必要となる。
そこで、クラウドを利用すれば、アクセス状況を見ながら、サーバ数を増減させることが容易かつ
低コストで実現出来るため、例えばサービスイン時はクラウドサービスを利用して負荷状況を確認し
つつサーバ台数を調整しながら運用し、運用が落ち着いた頃に自社インフラへ移行することで、正
しいキャパシティプランニングが可能となる。
* 季節モノ(クリスマス・お正月など)やキャンペーン等で一時的にしか多くのサーバを必要としない
場合
例えば、お正月向けのサービスであれば、お正月のみ本稼動させていれば良く、それ以外の時
期はシステムを縮退させておけば良い。12 月および 1 月はサーバ 20 台必要で、それ以外の時期
は 1 台で良い場合、サーバの増減に柔軟に対応できるクラウドサービスの利用は相性が良い。
また、上記以外にも、自社インフラを持たないグループ会社や、その他投資しているスタートアッ
プのベンチャーにおいては、初期費用無しで 1 時間単位($0.02/1hour)からサーバを借りることの
出来る、このパブリッククラウドサービスを検討する価値があると考える。
しかし、Amazon EC2 では、公表している公称スペック(以降、計測・比較対象の項にて紹
介)においては、CPU スペックが ECU といった独自単位であったり、I/O 性能が非定量的
かつ相対的な 4 段階評価である等、初めて利用するユーザにとっては、サーバの選定・サ
イジングがし辛い問題が現状としてあげられる。
そこで本稿では、実際に物理サーバに対して扱うようなベンチマークツールを利用して、
Amazon EC2 の仮想サーバ上で、CPU やディスクに対する性能調査を行った。本稿の調査
結果と、普段利用している物理サーバでのベンチマーク結果と照らし合わせることで、
Amazon EC2 からの移行、もしくは Amazon EC2 への移行時においての、サーバサイジン
グの材料になると考える。
計測・比較対象
今回、計測・比較を行うのは、現時点(2011/02)で利用可能となっている、以下の 4 Region
(サーバの設置ロケーション)、および Amazon EC2 で提供されている 10 Instance type (サ
ーバの種類・スペック)となる。
Region (現在利用可能なリージョン全て)
* us-east (アメリカ東海岸)
* us-west (アメリカ西海岸)
* ap-southeast (アジア・シンガポール)
* eu-west (ヨーロッパ西部)
Instance Type (現在利用可能なインスタンスタイプ全て)
Instance
Price
(per hour)
Memory
CPU
Disk
I/O
performance
Micro Instances
Micro Instance
[t1.micro]
$0.02
Small Instance
[m1.small]
$0.085
Large Instance
[m1.large]
$0.34
Extra Large
Instance
[m1.xlarge]
$0.68
High-CPU
Medium Instance
[c1.medium]
High-CPU
Extra Large
Instance
[c1.xlarge]
$0.17
$0.68
613 MB
Up to 2 ECU
(for short periodic bursts)
Standard Instances
1 ECU
1.7 GB (1 virtual core
with 1 ECU)
4 ECU
7.5 GB (2 virtual cores
with 2 ECU each)
8 ECU
15 GB (4 virtual cores
with 2 ECU each)
High-CPU Instances
5 ECU
1.7 GB (2 virtual cores
with 2.5 ECU each)
7 GB
20 ECU
(8 virtual cores
with 2.5 ECU each)
EBS
storage
only
Low
160 GB
Moderate
850 GB
High
1690 GB
High
350 GB
1690 GB
Moderate
High
High-Memory Instances
High-Memory
Extra Large
Instance
[m2.xlarge]
High-Memory
Double Extra
Large Instance
[m2.2xlarge]
High-Memory
Quadruple Extra
Large Instance
[m2.4xlarge]
Cluster Compute
Quadruple Extra
Large Instance
[cc1.4xlarge]
$0.50
17.1 GB
6.5 ECU
(2 virtual cores
with 3.25 ECU each)
850 GB
Moderate
$1.20
34.2 GB
13 ECU
(4 virtual cores
with 3.25 ECU each)
850 GB
High
$2.40
68.4 GB
26 ECU
(8 virtual cores
with 3.25 ECU each)
1690 GB
High
1690 GB
Very High
(10 Gigabit
Ethernet)
$1.60
Cluster Compute Instances
33.5 ECU
(2 x Intel Xeon X5570,
23 GB
quad-core "Nehalem"
architecture)
※ 1ECU (EC2 Compute Unit)は、Xeon もしくは Opteron の 1.0~1.2GHz 相当。
※ Price(価格)は、us-east で Linux プラットフォームを稼動させた場合の 1 時間あたりの料金。
(2011/02 現在)
各 Region からのネットワークレイテンシ
計測方法
各 Region にて、Amazon EC2 の仮想サーバを起動し、日本で割と普及しているとされる、
OCN 系の ISP 網内および Softbank 系の ISP 網内のクライアントマシンより、ping(ICMP
Echo)を 10 回実行し、RTT(Round Trip Time)の平均値を取った。単位は msec となる。
実行結果
from OCN 系 ISP
from Softbank 系 ISP
us-east
183.920
178.129
us-west
129.306
124.487
eu-west
278.324
262.590
85.716
77.956
ap-southeast
ap-southeast
eu-west
from Softbank系ISP
from OCN系ISP
us-west
us-east
0
50
100
150
200
250
300
上記の結果より、日本国内からのネットワークレイテンシについては、"ap-southeast (ア
ジア・シンガポール)"が最も小さいという結果となった。
日本国内向けの Web サービスを展開する際は、この ap-southeast の Region を利用する
ことが、他 Region と比べて、最もユーザに対して良いレスポンスが返りやすいということ
となる。
各 Instance type での CPU ベンチマーク
計測方法
各 Instance type の仮想マシンを起動し、それぞれのマシン上で、CPU ベンチマークソ
フトである「姫野ベンチマーク」(http://accc.riken.jp/HPC/HimenoBMT.html)を利用して
測定を行った。測定の際に利用したものは、"C, static allocate version"の M サイズのソー
スコードを実機でコンパイルしたものである。
以下ベンチマークの対象は、Amazon EC2 のインスタンス(10 種類)となり、結果値の単
位は"MFLOPS"である。
実際にインスタンスで利用されていた CPU
検証を行う際に、実際に Amazon EC2 の各 Instance type の仮想サーバ上にて、
"/proc/cpuinfo"の情報から確認した CPU モデルは以下の通りであった。
Instance type
CPU Model
t1.micro
Intel(R) Xeon(R) CPU E5430 @ 2.66GHz x 1core
m1.small
Dual-Core AMD Opteron(tm) Processor 2218 HE x 1core (us-east
のみ)
Intel(R) Xeon(R) CPU E5430 @ 2.66GHz x 1core (上記以外)
m1.large
Intel(R) Xeon(R) CPU E5430 @ 2.66GHz x 2cores
m1.xlarge
Intel(R) Xeon(R) CPU E5430 @ 2.66GHz x 4cores
c1.medium
Intel(R) Xeon(R) CPU E5410 @ 2.33GHz x 2cores
c1.xlarge
Intel(R) Xeon(R) CPU E5410 @ 2.33GHz x 8cores
m2.xlarge
Intel(R) Xeon(R) CPU X5550 @ 2.67GHz x 2cores
m2.2xlarge
Intel(R) Xeon(R) CPU X5550 @ 2.67GHz x 4cores
m2.4xlarge
Intel(R) Xeon(R) CPU X5550 @ 2.67GHz x 8cores
cc1.4xlarge
Intel(R) Xeon(R) CPU X5570 @ 2.93GHz x 16cores
実行結果
Instance type
MFLOPS measured
(vCore)
t1.micro
271.320092
(x1)
m1.small
324.676111
(x1)
c1.medium
774.602322
(x2)
m1.large
892.176316
(x2)
m1.xlarge
880.100758
(x4)
c1.xlarge
1044.821975
(x8)
m2.xlarge
1544.973882
(x2)
m2.2xlarge
1600.39996
(x4)
m2.4xlarge
1572.732919
(x8)
cc1.4xlarge
1676.395005
(x16)
cc1.4xlarge
m2.4xlarge
m2.2xlarge
m2.xlarge
c1.xlarge
m1.xlarge
m1.large
c1.medium
m1.small
t1.micro
0
200
400
600
800
1000
1200
1400
1600
1800
姫野ベンチマークでは、単純なシングルコアでの性能値が算出されているように見受け
られるため、実際の総合的なベンチマークとしては、上記の実測値と Core 数の積と考えら
れる。
上記の結果は、概ね想定通りの結果ではあるが、公称値 5ECU(2.5ECU x 2)の c1.medium
より、4ECU(2ECU x 2)の m1.large の性能値が良いことが意外であった。尚、CPU の型番
からは、c1.medium は Xeon E5410(2.33GHz)で、m1.large は Xeon E5430(2.66GHz)とな
るため、この結果は納得がいく。
尚、m1.small については、他インスタンスタイプとの比較値、および性能テスト中の
OS 上では、steal 値が 60%前後だったことを考慮すると、1 つの CPU を、2.5~3 つのイ
ンスタンスで共有しているように見受けられる。
参考: 私物のサーバ(CPU)での姫野ベンチマーク結果
上記と同様のテストを、私物の物理サーバ(Linux)で行ったところ以下のような結果とな
った。比較の参考となれば幸いである。
CPU model
MFLOPS measured
Intel(R) Core(TM)2 Duo CPU P9500 @ 2.53GHz x 2cores
1503.59
AMD Phenom(tm) 9950 Quad-Core Processor x 4cores
1192.06
AMD Athlon(tm) 64 Processor 3500+ x 1core
814.56
Dual-Core AMD Opteron(tm) Processor 1210 x 2cores
725.76
Intel(R) Pentium(R) III CPU family 1.13GHz x 2CPUS
121
各 Instance type でのディスク I/O ベンチマーク
計測方法
各 Instance type の仮想マシンを起動し、それぞれのマシン上で、ディスク I/O のベンチ
マ ー ク を 計 測 す る べ く 「 dbench 」 (http://dbench.samba.org/) と 「 hdparm 」
(http://hdparm.sourceforge.net/)を利用して測定を行った。
hdparm は、ディスクの読み込みスループット計測がメインとなり、ルートパーティショ
ンのディスク(/dev/sda1)、エフェメラルディスク(/dev/sdb)、EBS ボリュームとしてアタッ
チしたディスク(/dev/sdf1)の 3 種類に対して計測を実行した。ここでの結果値は、"-t"オプ
ションを利用し、連続で 5 回実行した平均値とする。(以下は、参考までに、hdparm の man
より、"-t"オプションに関する記載を引用した。)
-t
ベンチマーク及び比較目的で、デバイス読み込みを測定する。有意な結果を得るためには、少なくとも数メガバイト
の空きメモリがあり、他にアクティブなプロセスがない状態で、この操作を 2, 3 回繰り返すべきである。これはデ
ータのキャッシュがない状態から、バッファキャッシュを通してディスクを読み出す速度を表示する。これは、ファ
イルシステムのオーバーヘッドなしに、そのドライブが Linux でどれだけ連続データ読み込み速度を維持できるか
を測定するものである。測定の正確さを上げたいのであれば、 -t の実行の間に BLKFLSBUF ioctl を使ってバッ
ファキャッシュをクリアする。
※ hdparm の man より引用
また、dbench のベンチマークについては、ルートパーティションのディスク(/dev/sda1)
および、EBS ブートで稼動させたインスタンスのルートパーティションのディスク(つまり
EBS ボリューム)に対して、計測を実行した。尚、4clients からの書き込みを想定した設定
を行った。
hdparm の実行結果
以下が、instance-root タイプの各インスタンスに対し、上記手順にて hdparm を行った
実行結果となる。結果値の単位は MB/sec である。
/dev/sda1
m1.small
/dev/sdb
/dev/sdf1
252.872
275.708
66.86
271.04
306.462
66.152
m1.large
153.548
166.746
75.746
m1.xlarge
196.758
170.98
67.002
c1.xlarge
196.282
197.344
75.318
m2.xlarge
577.024
375.936
79.056
m2.2xlarge
612.69
432.278
86.486
c1.medium
m2.4xlarge
m2.2xlarge
m2.xlarge
/dev/sdf1
/dev/sdb
/dev/sda1
c1.xlarge
m1.xlarge
m1.large
c1.medium
m1.small
0
100
200
300
400
500
600
700
I/O performance が公称値では Moderate となっている m1.small と c1.medium のイン
スタンスの測定結果が、思いのほか、良い結果となった。また、m2 系の「High-Memory
Instances」のパフォーマンスも値が良い結果となっている。
ルートパーティションのディスク(/dev/sda1)とエフェメラルディスク(/dev/sdb)について
は、それほど大きな差が見られないため、同等の性能を持つディスクと見てよいと考える。
EBS ボリュームについては、公表されている情報では、特に区分けがないため。どのイ
ンスタンスタイプでも同様の結果となる想定であったが、思いのほか結果にややバラつき
が出ている。また、上位のインスタンスで良い結果が出ている傾向となっており、EBS ボ
リュームのスループットは概ね"65~85MB/sec"となる。
次に、以下は EBS タイプのインスタンスに対する hdparm の測定結果となる。
「Cluster Compute Instance」である"cc1.4xlarge"のインスタンス、および「マイクロイ
ンスタンス」の"t1.micro"インスタンスが、EBS AMI ベースのものしか準備されていない
ため、以下にて簡単にベンチマークを行い比較した。結果値の単位は MB/sec である。
尚、比較対象となっている"c1.medium”、"m1.large"、"m2.xlarge"について、エフェメラ
ルディスク(/dev/sdb)や、EBS ボリュームとしてアタッチしたディスク(/dev/sdf1)は、上記
で同様の測定を行っているため、ここでは省略する。また、"t1.micro"についてもエフェメ
ラルディスク(dev/sdb)が存在していないため、計測は行っていない。
/dev/sda1
t1.micro
/dev/sdb
/dev/sdf1
85.12
-
81.798
c1.medium
77.212
-
-
m1.large
74.126
-
-
m2.xlarge
86.244
-
-
cc1.4xlarge
140.594
234.084
84.992
m2.xlarge
m1.large
/dev/sdf1
/dev/sdb
/dev/sda1
c1.medium
t1.micro
cc1.4xlarge
0
50
100
150
200
250
ここでは、"cc1.4xlarge"タイプが非常に良い実行結果が出ている。ただ、エフェメラルデ
ィスク(dev/sdb)については、m2 系(High-Memory Instances)のインスタンスに付いている
エフェメラルディスクの性能より低い結果となっており、最上位のインスタンスではある
が、この点には注意が必要となる。
EBS ボリュームについては、他のインスタンスタイプ同様それほどスループットは大きく
出ていないが、レイテンシも低く、終始安定した書き込みを行っている感覚を受けた。(結
果毎にバラつきが出ない。)
dbench の実行結果
以下が、instance-root タイプの各インスタンスに対して上記手順にて dbench を行った
実行結果である。Throughput の単位は MB/sec、max_latency の単位は ms となる。
Throughput
max_latency
m1.small
83.3971
3152.082
c1.medium
144.739
1847.075
m1.large
172.128
4875.352
m1.xlarge
197.14
2492.915
c1.xlarge
198.618
3100.112
m2.xlarge
276.09
4059.14
m2.2xlarge
293.215
3569.074
m2.4xlarge
313.331
3623.604
350
6000
300
5000
250
4000
200
3000
150
2000
100
1000
50
0
0
m1.small c1.medium m1.large m1.xlarge c1.xlarge m2.xlarge m2.2xlargem2.4xlarge
Throughput
max_latency
公称されているスペックでの I/O パフォーマンスは、"Moderate"、"High"、"Very High"
の 3 種類であるが、
同じ"Moderate"の"m1.small"と"c1.medium"、"m2.xlarge"の 3 つでも、
割と差がある感じとなった、尚、公表スペックの I/O パフォーマンスは、ディスクだけでは
なくネットワークの I/O も含まれていると考えられる。
また、m2 系の「High-Memory Instances」は、レイテンシが少々高めではあるがスルー
プット結果は良く、高パフォーマンスを出しているといえる。
次に、以下は EBS タイプのインスタンスに対する dbench の測定結果となる。
Throughput
max_latency
t1.micro
40.6677
2520.518
c1.medium
45.1286
692.144
m1.large
39.8205
674.802
m2.xlarge
69.861
1167.158
cc1.4xlarge
137.968
382.083
160
3000
140
2500
120
2000
100
80
1500
60
1000
40
500
20
0
0
t1.micro
c1.medium
m1.large
Throughput
m2.xlarge
cc1.4xlarge
max_latency
この結果から、EBS ボリュームを持つディスクタイプについては、"t1.micro”以外は、レ
イテンシが全体的に低く高レスポンスだが、instance-root タイプ(先ほどの結果のもの)ほど
のパフォーマンスは出ていないことがわかった。ただ、この結果においても、他インスタ
ンスと比べて、"cc1.4xlarge"タイプの結果が非常に優れていることがわかる。
おわりに
本稿では、Amazon EC2 の各 Region、および各 Instance type について、ネットワーク
レイテンシ、CPU、ディスクに関する性能調査を行った。調査結果より、それぞれの Instance
type において、CPU およびディスク性能の定量的な数値が計測できたことで、既存物理サ
ーバとの比較材料とすることができると考える。
参考図書にも記しているが、パブリッククラウドサービスはシステム上のメリットとデ
メリットをきちんと把握した上で利用することで、大きなコストメリットが生まれる場合
がある。制約が少なからずあるため、特に大規模な Web サービスにおいては、パブリック
クラウドサービスだけで事業・サービスのインフラが完結することは少ないが、ハイブリ
ッドに利用することで前述のメリットを享受できるケースが少なくないため、今後ウォッ
チを続け、適材適所で有効活用できればと考えている。
補足: 参考図書
* [書籍] 並河祐貴, 安達輝雄: クラウド Amazon EC2/S3 のすべて ~実践者から学ぶ設計/
構築/運用ノウハウ~, 日経 BP 社 (2009)
Fly UP