仮想サーバーのベンチマーク
マルチクラウドが叫ばれる昨今、パブリッククラウドを比較検討する機会も多くなってきたかと思います。AWS、Alibaba、Azure、GCP4社それぞれの仮想マシンに対してUnixBenchを実行してみましたので、その値を共有します。
ただし、本番環境を想定した比較検討をする上で最も大切なのは「ユースケースの明確化とシステム要件に対する優先度設定」です。その為、本値のみでクラウドの優劣を判断するのは時期尚早である事を理解いただき、議論する上でのたたき台の1つとして参照くださればと思います
UnixBench実施要項
クリックして詳細を確認する
- 対象は1社につき8vCPUのLinuxインスタンスを3種類(汎用、CPU特化、メモリ特化)
- AWS: m5.2xlarge, c5.2xlarge, r5.2xlarge
- Alibaba: ecs.g5.2xlarge, ecs.c5.2xlarge, ecs.r5.2xlarge
- Azure: D8_v3, F8s v2, E8_v3
- GCP: n1-standard-8, n1-highcpu-8, n1-highmem-8
- 後述するUnixBenchを2時間のインターバルで10回/台実施、平均値を算出
- スコア値として「System Benchmarks Index Score (Multi Core)」を採用
- 実施時期は2019年4月
- Ansible経由でUnixBench実行
Ansibleのyamlを確認する
- name: Instance Setup
hosts: alibaba
remote_user: root
tasks:
- name: Package Upgrade
apt: name={{item}} state=present update_cache=no
with_items:
- build-essential
- git
- name: directory
file:
path=git
state=directory
owner=root
group=root
- name: git_clone
git:
repo: https://github.com/kdlucas/byte-unixbench.git
dest: ~/git/
- name: make
shell: make
args:
chdir: ~/git/UnixBench
become: true
- name: Start Benchmark to All the hosts 01
hosts: alibaba
remote_user: root
tasks:
- name: run benchmark
shell: nohup bash -c "./Run -i 5 >> /tmp/alibaba_benchmark.log"
args:
chdir: ~/git/UnixBench
- name: Interval on localhost 01
hosts: localhost
connection: local
tasks:
- name: interval
shell: sleep 1800
- name: Start Benchmark to All the hosts 0x # 20までコピペ実行しました。。
hosts: alibaba
remote_user: root
tasks:
- name: run benchmark
shell: nohup bash -c "./Run -i 5 >> /tmp/alibaba_benchmark.log"
args:
chdir: ~/git/UnixBench
UnixBenchスコア結果
AWS | Alibaba | Azure | GCP | |
---|---|---|---|---|
汎用 | 5085.13 | 4932.21 | 4987.68 | 4228.00 |
CPU | 5471.57 | 4967.28 | 4943.25 | 3859.73 |
メモリ | 5013.38 | 4913.41 | 5040.79 | 4168.85 |
考察
- AWS、Alibaba、AzureのCPUコア性能はほぼ同じ
- AWSのCPUタイプは他の汎用やメモリに比べて良いコアを使っている様子
- GCPだけ他社より20%程度低めのスコア
コスト比較
参照URL(2019年4月末時点)※値が低い程良い
https://aws.amazon.com/jp/ec2/pricing/on-demand/
https://www.alibabacloud.com/product/ecs
https://azure.microsoft.com/ja-jp/pricing/calculator/
https://cloud.google.com/products/calculator/?hl=ja
AWS | Alibaba | Azure | GCP | |
---|---|---|---|---|
汎用 | 0.496 | 0.480 | 0.516 | 0.488 |
CPU | 0.428 | 0.384 | 0.428 | 0.364 |
メモリ | 0.608 | 0.608 | 0.640 | 0.607 |
###事前払い(1年間)
AWS | Alibaba | Azure | GCP | |
---|---|---|---|---|
汎用 | 235.417 | 238.560 | 237.500 | 249.370 |
CPU | 209.583 | 202.360 | 185.080 | 186.000 |
メモリ | 261.000 | 279.600 | 274.750 | 310.070 |
考察
- 全社共通でメモリ>汎用>CPUの順で値段が高い
- Azureは従量課金は高めだが、事前払いにした時の金額が低い
- 逆にGCPは従量課金は安いが、事前払い(自動割引)のメリットが相対的にやや薄い
コストパフォーマンス比較
※数値が高い程、コストパフォーマンスが高い
###従量課金コストパフォーマンス(スコア/金額)
AWS | Alibaba | Azure | GCP | |
---|---|---|---|---|
汎用 | 10252.278 | 10275.438 | 9666.047 | 8663.934 |
CPU | 12784.042 | 12935.625 | 11549.650 | 10603.654 |
メモリ | 8245.691 | 8081.266 | 7876.234 | 6870.221 |
###事前払いコストパフォーマンス(スコア/金額)
AWS | Alibaba | Azure | GCP | |
---|---|---|---|---|
汎用 | 21.601 | 20.675 | 21.001 | 16.955 |
CPU | 26.107 | 24.547 | 26.709 | 20.751 |
メモリ | 19.208 | 17.573 | 18.347 | 13.445 |
補足比較
- AWSはコミュニティが最も活発的=学習コストが低い
- Alibabaは事前払いの価格にシステムディスクも同梱されている=ディスク費用も低減
- AzureはWindowsサーバーでのコスパがより良くなるはず(今回スコープ外)
- GCPは事前払いでなく自動割引なので、購入手続き分の運用工数が減る
ユースケースの考察
- システム環境は得てして、事前払いのインスタンスよりも従量課金のインスタンスの方が多くなるので、Alibabaがコストパフォーマンス一番良さげかな?