0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[国産VPS vs 海外クラウド] AWS EC2 vs ConoHa VPS 〜性能比較してみた〜

Posted at

どうも、キタです。
今回は国産VPS vs 海外クラウドということで
ConoHa VPS と AWS EC2 を徹底的にベンチマークして性能を比較してみました。

ConoHa VPS は、GMOインターネットが提供するVPS(仮想専用サーバー)型のクラウドサービスです。

高性能かつ低価格で、何よりも「シンプルでわかりやすい料金体系」と「すぐに使えるスピード感」が大きな魅力とされています。

特に、SSDストレージを標準搭載しており、Webサイト運用や開発環境、ゲームサーバーなど幅広い用途に対応できる柔軟さが特長です。とはいえ、やはり気になるのはサーバーの実際の性能ではないでしょうか? そこで今回は、ConoHa VPS と AWS EC2 を徹底的にベンチマークして、その性能を比較してみました。

比較するサーバーのスペックと月額料金

まずは比較対象のスペックと料金からです。
image.png
料金だけを見れば ConoHaが圧倒的に安いですね。
EC2はインターネットへのデータ送信量(OUT)は有料になります。
今回は転送量の変数は除外しているので、本番環境を想定した場合これに追加で更に料金がかかります。

ベンチマークの概要

今回は以下内容で測定をしてみました。
image.png
cronを利用して以下の設定の通りで24時間の丸一日のデータを取得しました。

/var/spool/cron/root
00 * * * * /usr/local/bin/unixbench.sh
40 * * * * /usr/local/bin/io_read.sh
45 * * * * /usr/local/bin/io_write.sh
50 * * * * /usr/local/bin/sysbench.sh

ベンチマーク結果(サマリ)

image.png
記事の内容が長いので、先に各ベンチーク結果の平均値をまとめました。
今回計測したサーバーのスペックだけを見ると、AWS EC2 に軍配が上がりそうです。

各ベンチマークの設定方法

ConoHa VPS と AWS EC2 どちらもまったく同じ手順で、ベンチマークを設定し計測しました。サーバーOSは Alma Linux 9.6 です。

今回のベンチマーク結果ログ

はじめに、インストール済みのパッケージを最新版にアップデートし、開発ツールなど基本的なパッケージをインストールします。

$ dnf -y update
$ dnf -y groupinstall base
$ dnf -y groupinstall development
$ dnf -y groupinstall network-tools

続けて各ベンチマーク結果ログの保存先を作成しておきます。

$ mkdir /var/log/bench

CPU性能(UnixBench)

今回はベンチマークソフトとしてUnixBenchを使用します。
UnixBenchとは↓

まずは必要パッケージのインストールとgit cloneで落としてきて
make コマンドでビルドします。

$ dnf -y install perl perl-Time-HiRes perl-FindBin make gcc git
$ git clone https://github.com/kdlucas/byte-unixbench
$ cd byte-unixbench/UnixBench
$ make

実行後にベンチマーク実行スクリプトの作成をしていきます。

$ vi /usr/local/bin/unixbench.sh
#!/bin/sh -
LOG='/var/log/bench/unixbench.log'

cd /root/byte-unixbench/UnixBench
echo '==================== START ' `date` '====================' >> $LOG
./Run >> $LOG 2>&1
echo '==================== END ' `date` '====================' >> $LOG
echo '' >> $LOG

exit 0

実行権限を設定します。

$ chmod 700 /usr/local/bin/unixbench.sh

crontab に登録します。

$ crontab -e
00 * * * * /usr/local/bin/unixbench.sh

これで毎時00分ごとに実行してログに情報を残してくれます。

Read ディスク性能

Read 性能に関しては hdparm を使用します↓

hdparm をインストールします。

$ dnf -y install hdparm

インストールが出来たらベンチマーク実行スクリプトの作成をしていきます。

$ vi /usr/local/bin/io_read.sh
#!/bin/sh -
LOG='/var/log/bench/io_read.log'

#
# ディスクのデバイス名を指定
#
DISK='/dev/sda1'

echo '==================== START ' `date` '====================' >> $LOG
for i in `seq 10`
do
    echo 1 > /proc/sys/vm/drop_caches 
    /sbin/hdparm -t $DISK >> $LOG 2>&1
done
echo '==================== END ' `date` '====================' >> $LOG
echo '' >> $LOG

exit 0

※この際指定しているディスクのデバイス名は lsblk もしくは df -h で確認して置き換えてください。

続けて実行権限を設定します。

$ chmod 700 /usr/local/bin/io_read.sh

crontab に登録します。

$ crontab -e
40 * * * * /usr/local/bin/io_read.sh

毎時40分ごとにhdparmを10回実行してログに情報を残してくれます。

Write ディスク性能

Write 性能に関しては dd を使用します↓

同様にベンチマーク実行スクリプトの作成をしていきます。

$ vi /usr/local/bin/io_write.sh
#!/bin/sh -
LOG='/var/log/bench/io_write.log'
OF='/tmp/io_write'

/bin/mkdir $OF
echo '==================== START ' `date` '====================' >> $LOG
for i in `seq 10`
do
    /bin/dd if=/dev/zero of=${OF}/${i} bs=1M count=512 >> $LOG 2>&1
done
echo '==================== END ' `date` '====================' >> $LOG
echo '' >> $LOG

/bin/rm -r $OF
exit 0

続けて実行権限を設定します。

$ chmod 700 /usr/local/bin/io_write.sh

crontab に登録します。

$ crontab -e
45 * * * * /usr/local/bin/io_write.sh

これで毎時45分ごとにddコマンドを使って、データのないファイル(/dev/zero)を1回あたり
512MB のサイズで10回連続で書き込んで、書き込み速度など実行結果をログに残してくれます。

MySQLのTPS(トランザクション毎秒)

最後にMySQLトランザクションの設定です。
こちらは SysBench↓ というツールを利用して計測をしていきます。

SysBench のインストールをしていきます

$ dnf -y install epel-release
$ dnf -y install sysbench

MySQL のインストールと起動をします。

$ dnf install https://dev.mysql.com/get/mysql80-community-release-el9-5.noarch.rpm
$ dnf -y install mysql-community-server
$ systemctl enable --now mysqld.service

MySQL の初期設定をします。

#root のパスワード確認
$ grep password /var/log/mysqld.log
$ mysql_secure_installation

SysBench用のDBとユーザーの作成

$ mysql -p
mysql> CREATE DATABASE sbtest;
mysql> GRANT ALL ON sbtest.* TO 'sbtest'@'localhost' IDENTIFIED BY '<パスワード>';
mysql> EXIT

計測用テーブルの作成をする

$ sysbench \
--test=/usr/share/sysbench/tests/include/oltp_legacy/oltp.lua \
--db-driver=mysql \
--oltp-table-size=1000000 \
--mysql-password=<パスワード> \
prepare

ベンチマーク実行スクリプトの作成をする

$ vi /usr/local/bin/sysbench.sh
#!/bin/sh -
LOG='/var/log/bench/sysbench.log'

echo '==================== START ' `date` '====================' >> $LOG
/bin/sysbench \
--test=/usr/share/sysbench/tests/include/oltp_legacy/oltp.lua \
--db-driver=mysql \
--oltp-table-size=1000000 \
--mysql-password=<パスワード> \
--num-threads=1 \
--max-requests=0 \
--max-time=300 \
--oltp-read-only=off \
run >> $LOG 2>&1
echo '==================== END ' `date` '====================' >> $LOG
echo '' >> $LOG

exit 0

最後に実行権限を設定します。

$ chmod 700 /usr/local/bin/sysbench.sh

crontab に登録します。

$ crontab -e
50 * * * * /usr/local/bin/sysbench.sh

これで毎時50分毎にデータベースに単一の負荷を5分間かけ続け、その処理速度を測って記録してくれます。

(結論) ConoHa VPS はコスパ最強!

最後にコスパの観点から各ベンチマーク項目に重み付けをしてスコアを出してみました。
image.png

総合スコアに対して月額料金を割ってから10,000を掛けてコスパスコアを算出したところ
ConoHa VPS は圧倒的なコストパフォーマンスを出してくれました。

image.png

ただし、ConoHa VPSはあくまで VPS であり、AWS RDS のようなマネージドサービスがないため、ユーザ側でのインフラの定期的なメンテナンスは必須となります。
パブリッククラウドにこだわる必要がなければ、クラウドサーバの半分以下の金額で同程度の性能を得られる ConoHa VPS がオススメです。

最後に

image.png

弊社ビヨンドではGMOインターネット株式会社様と協業し、法人向けのサーバー運用代行サービス『ConoHa VPS byGMOマネージドパック』を提供しております。

ConoHa VPSの導入・設計・構築・移行、24時間365日の運用保守・監視までの技術サポートを、フルサポートでお客様へご提供しておりますのでご興味があれば相談からでも問題ありませんので、お気軽にお問い合わせくださいませ!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?