AzureとAWSでベンチマークしてみた
最近記事を書いていなかった、、、orz
というのは置いといて、今日はGlobal Windows Azure Boot Camp 2014 in Japanに参加してみました。
基本的にAWS陣営の人なので、若干アウェイ感を感じつつ参加しましたが、大変勉強になりました。
イベントの中身は他の方々が書かれると思うので、イベント中に気になって検証してみた事を書きます。
気になった事
ある方が、AzureとAWSのベンチマーク結果を出されていたのですが、AWS側がM3インスタンスだったんですね。結果は当然Azureのが良かったです。公平に見て、AWSは仮想サーバのパフォーマンスが悪い傾向が有ります。
でも、AWSをやっている方は分かっていると思いますが、CPUとメモリの分量で考えるとC3インスタンスを比較すべきだと思います。なので、パフォーマンスがどの程度改善されたかが気になりました。
じゃあ確認するか!
と言う事で、検証にて見ました。
まず検証する
検証対象は、これです。
環境 | インスタンス | CPU | メモリ | OS |
---|---|---|---|---|
Azure | XL(A4) | 8 cores | 14 GB | CentOS 6.5 |
AWS | c3.2xlarge | 8 cores | 15 GB | Amazon Linux AMI 2014.03 |
AWS | c3.2xlarge | 8 cores | 15 GB | CentOS 6.5 |
Linuxなので、ベンチマークツールは定番のUnixBench(Version 5.1.3)を使っています。
並列度が8の結果はこんな感じでした。
項目 | Index Score |
---|---|
Azure(CentOS 6.5) | 2,624.1 |
AWS(Amazon Linux) | 1,934.7 |
AWS(CentOS 6.5) | 1,840.6 |
色々な方が公開されている結果だと、M1系インスタンスとの比較の場合はAzureがAWSの3倍位だったので、C3系になって随分良くなっています。
再度検証する
やった後に気が付いたのですが、この結果は準仮想化(paravirtual)なので完全仮想化(HVM)の場合も比較する必要があります。
そうして、HVMで取った結果が以下になります。
※CentOS 6.5のHVM AMIが無かったのでRHELを使いました。
項目 | Index Score |
---|---|
Azure(CentOS 6.5) | 2,624.1 |
AWS HVM(Amazon Linux) | 3,401.9 |
AWS HVM(RHEL 6.5) | 4,619.7 |
なんと、逆転してます!
完全仮想化に比べて準仮想化の方がデバイスのアクセスでパフォーマンスが有利と言われていましたが、ファイルコピーを中心に大幅な向上が見られました。
三度検証する
でも、AzureなのにLinux系のベンチマークって一方的な気がすると思いました。だったらWindowsでもベンチとってみます。
Windowsでの検証対象は、これです。エディションが異なりますが、パフォーマンスには大きな影響がないと思っています。
環境 | インスタンス | CPU | メモリ | OS |
---|---|---|---|---|
Azure | XL(A4) | 8 cores | 14 GB | Windows Server 2012 Datacenter Edition |
AWS | c3.2xlarge | 8 cores | 15 GB | Windows Server 2012 Standard Edition |
使用ツールは、CrystalDiskMark 3.0.3とCrystalMark 2004R3を使用しました。
ディスクI/Oは以下のようになりました。
まとめ
現在では、AzureとAWSを比べると、AWSの方がパフォーマンスが良いです。
しかし、C3は最近出たインスタンスなので世代が異なります。
インスタンス | CPU | CPU発売時期 | |
Azure | XL(A4) | AMD Opteron 4171HE | 2011年 3月 |
AWS | c3.2xlarge | Intel Xeon E5-2680 v2 | 2013年 Q3 |
CPUの世代が2年半違うので、あくまで現在の比較結果です。
今後Azureのインスタンスも新世代が出ると思われますので、その時にまた比較してみたいと思います。
最後に
新規インスタンスはHVMを使っとけ!!!