クラウド事業部の原口です。
弊社での業務におけるインスタンスタイプはGravitonを積極採用しており、なかなかキャッチアップできていなかったところがあるのですが、知らない間にIntelのXeon第4世代CPUを使用したR7iとC7iのインスタンスタイプが展開されておりました。
re:Invent 2023 においてはGraviton4のR8gが発表され、パブリックプレビュー、もしくはGAが非常に楽しみではありますが、そこまではまだ少し時間がかかりそうです。Graviton4が出たすぐにベンチマーク結果が比較できるよう、現状のインスタンスタイプを把握する意味でもベンチマークを測ってみたいと思います。
ベンチマークしたインスタンスタイプ一覧
Type | 料金(us-east-1) | vCPU | Memory | arch | 備考 |
c7i.large | USD 0.08925 | 2 | 4 GiB | x86 | Xeon第4世代CPU 東京リージョンなし |
c7i.xlarge | USD 0.1785 | 4 | 8 GiB | x86 | Xeon第4世代CPU 東京リージョンなし |
c7i.2xlarge | USD 0.357 | 8 | 16 GiB | x86 | Xeon第4世代CPU 東京リージョンなし |
r7i.large | USD 0.1323 | 2 | 16 GiB | x86 | Xeon第4世代CPU 東京リージョンなし |
r7i.xlarge | USD 0.2646 | 4 | 32 GiB | x86 | Xeon第4世代CPU 東京リージョンなし |
r7i.2xlarge | USD 0.5292 | 8 | 64 GiB | x86 | Xeon第4世代CPU 東京リージョンなし |
c6i.large | USD 0.085 | 2 | 4 GiB | x86 | Xeon第3世代CPU |
c6i.xlarge | USD 0.17 | 4 | 8 GiB | x86 | Xeon第3世代CPU |
c6i.2xlarge | USD 0.34 | 8 | 16 GiB | x86 | Xeon第3世代CPU |
c5.large | USD 0.085 | 2 | 4 GiB | x86 | Xeon第2世代CPU |
c5.xlarge | USD 0.17 | 4 | 8 GiB | x86 | Xeon第2世代CPU |
c5.2xlarge | USD 0.34 | 8 | 16 GiB | x86 | Xeon第2世代CPU |
c7g.large | USD 0.0725 | 2 | 4 GiB | ARM | Graviton3 |
c7g.xlarge | USD 0.145 | 4 | 8 GiB | ARM | Graviton3 |
c7g.2xlarge | USD 0.29 | 8 | 16 GiB | ARM | Graviton3 |
c6g.large | USD 0.068 | 2 | 4 GiB | ARM | Graviton2 |
c6g.xlarge | USD 0.136 | 4 | 8 GiB | ARM | Graviton2 |
c6g.2xlarge | USD 0.272 | 8 | 16 GiB | ARM | Graviton2 |
残念ながらR7i / C7i 共に東京リージョンへは来ていないため、すべてus-east-1での価格としています。また、c系とr系ですがCPUのベンチマーク的に大きな差が見られなかったため、r7i以外はc系に絞ってベンチマークしました。
インスタンスタイプ以外は以下の条件となっております。
1[AMI]
2ami-01450e8988a4e7f44 (Amazon Linux 2023 AMI 2023.3.20231218.0 x86_64 HVM kernel-6.1)
3ami-0e186acd30b9cf6a7 (Amazon Linux 2023 AMI 2023.3.20231218.0 arm64 HVM kernel-6.1)
4
5[PHP]
68.2
7
8[MariaDB]
910.5
phoronix-test-suite
まずはphoronix-test-suiteにて
「openssl(sha256)」
「gcrypt」
「pef-bench(memcopy)」
「stress-ng(cpu stree)」
「phpbench」
「php zend-bench」
と6つのテストツールでのテストを試してみます。
インストールとベンチ実施手順は以下となります。
1# phoronix-test-suiteのインストール
2sudo yum install -y php8.2 perl
3sudo yum install -y php8.2-pdo php8.2-mysqlnd mariadb105-server httpd
4sudo yum install -y perl-IPC-Cmd expat-devel ss
5sudo yum install -y java-17-amazon-corretto java-11-amazon-corretto java-21-amazon-corretto java-1.8.0-amazon-corretto
6wget https://phoronix-test-suite.com/releases/phoronix-test-suite-10.8.4.tar.gz
7tar zxvfpa phoronix-test-suite-10.8.4.tar.gz
8cd phoronix-test-suite
9sudo ./install-sh
10
11# ベンチマークの実行
12phoronix-test-suite benchmark openssl gcrypt stress-ng phpbench java-jmh perf-bench php
openssl(sha256)
openssl組み込みのopensslspeedを使ったベンチマークで、SHA256での暗号化スピードのベンチマークです。
R7i/C7iはC6iからは順当に進化していますがGraviton2(C6g)と同じくらいの性能となっていますね。ここいらの処理はC7gがもっとも処理能力高そうです。
opensslの暗号化という領域についてはGravitonは総じて性能が良いですね。
gcrypt
GnuPGプロジェクトの一部として開発された汎用暗号ライブラリであるLibgcryptにて、暗号化/マック/ハッシュ化を50回繰り返すのにかかる時間を測定するベンチマークです。
ですので、かかった時間が少ないほど高性能という事になります。
こちらのベンチはシングルコアに対するものなので同インスタンスファミリーにおけるスペックによる差はありません。
結果はR7i/C7iのスペックが圧倒!ハッシュ化のように乱数生成によるCPU負荷については非常に得意なようです。逆にGravitonについては苦手な領域なのかな、といった感じですね。
perf-bench(memcpy)
perf-benchと呼ばれるベンチマークを使ったメモリへのデータコピー速度のベンチマーク結果です。
こちらのベンチはシングルコアに対するものなので同インスタンスファミリーにおけるスペックによる差はありません。
これまではGraviton3(C7g)の圧勝だったのですがR7i/C7iではかなりの速度向上が見られています。メモリの取り扱いが非常に進化したCPUなようですね。
stress-ng(CPU)
stress-ngはcpuに負荷をかけさせる事ができるツールですが、「1秒あたりの偽オペレーション」のスループットを計測する事ができ、そちらの値となります。stress-ngのドキュメントには「あまりベンチマークには使わないで」とあったので微妙かもしれませんがベンチ結果は安定して出ています。
結果R7i/C7iのスペックが圧倒!そしてGravitonについてはかなり苦手な領域なのかな、といった感じです。
phpbench
PHPBenchは多数の単純なテストを実行し、総合的なスコアとして性能を算出するPHPのベンチマークです。
こちらのベンチはシングルコアに対するものなので同インスタンスファミリーにおけるスペックによる差はありません。
こちらでもR7i/C7iは非常によい結果を残しています
php(zend bench)
PHPマイクロベンチマークであるZendBenchについても試してみました。
こちらのベンチはシングルコアに対するものなので同インスタンスファミリーにおけるスペックによる差はありません。かかった時間が少ないほど高性能というベンチマークです。
こちらでもR7i/C7iは非常によい結果!
java-jmh (Amazon Corretto 17 / 21)
javaのJMHベンチマークです。SDKはAmazon Correttoの17と21でテストしました。
この結果はなかなか興味深いですね。
R7i/C7iにおいてはCorretto17ではあまりよい結果とは言えませんが、Corretto21ではかなり良い結果となりました。
またこの結果においてはGraviton、特にGraviton3がかなりよい結果となりました。
実際のワークロードでの測定
ここまでベンチをしておいてですが結局のところ実際のワークロードにて優れたパフォーマンスを発揮するかどうかは「そのワークロードによる」という感じというところがあります。
そのため弊社がEC2を使う際に多いWordPress6.4.2 + Apache + php8.2 + MariaDB10.5 の環境でインストール済みのWordPressのTOPページに対してAB(Apache Bench)してみました。
1# インストール
2sudo yum install -y php8.2
3sudo yum install -y php8.2-pdo php8.2-mysqlnd mariadb105-server httpd
4sudo mysqld_safe --skip-grant-tables --skip-networking &
5sudo curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
6sudo chmod +x wp-cli.phar
7sudo mv wp-cli.phar /usr/local/bin/wp
8sudo mysql -u root -e "create database wp_sample;"
9
10# wordpressインストール
11wp core download --locale=ja --path=/var/www/html --allow-root
12wp core config --dbname=wp_sample --dbuser=root --dbhost=localhost --dbprefix=wp_ --path=/var/www/html --allow-root
13wp core install --url=http://localhost/ --title=test --admin_user=admin --admin_password=admin1234 --admin_email=admin@example.com --path=/var/www/html --allow-root
14
15# ab実行
16ab -n 10000 -c 100 http://localhost/
以下が結果です。
やはり弊社の実際のワークロードにおけるベンチマークではGraviton3が強い、のですがご覧の通り、R7i/C7iはそんなC7gとほぼ僅差といえるほど性能を伸ばしてきています!
またインスタンスタイプがあがればあがるほど性能の伸びは大きいですね。
AB(Apache Bench)の結果を元にコストパフォーマンスを算出してみる
今回、R7i/C7i についてはC6iに比べて5%ほど価格上昇しています。またGraviton2であるC6gはC6iに比べると25%ほどの価格がお安いのですが、C7gはC6gに比べると10%ほどの価格上昇がしています。
まぁざっくりとAWS 7系インスタンスは6系インスタンスに比べて5〜10%ほどの値上げが見られる、という事なのですが、こうなってくるとコストパフォーマンス的にはどれがよいのやら!となってきますよね。今回のAB(Apache Bench)の結果を元にコストUSD 1 あたりに換算するとどのファミリが最もコストパフォーマンスがいいか計算してみました。
1 USDに揃えた際に比例して処理速度が上がると仮定した際の処理数の多さでコスパを見比べてみます。やはり圧倒的なのはGraviton。特にGraviton3は価格の上昇が気にならないレベルなくらいに性能の伸びが見られます。
R7i / C7i についても価格は上昇していますがC6iに比べるとコスパという観点では僅差でしたね。ただし明確に上回っていますんどえ、旧世代よりコスパがよいと言えるのでは無いでしょうか。
考察、気づいたこと、思ったこと
- C7i / R7iはx86インスタンス中では最強!
今回総じて感じたのはC7i / R7i インスタンスの性能の強さです。各項目のベンチにおいては満遍なく強い成果を発揮しましたのであらゆるワークロードにおいて活躍できるCPUであると思います。
- 迷ったらとりあえず最新の世代を使う
今回C5系のインスタンスのベンチも計りましたが明らかに見劣りする結果となっていました。とにかく最新の世代を使う事でコストパフォーマンスが上昇すると言えます。
これはC系だけでなく他のインスタンスファミリでも同様の事が言えるのではないかと思います。
- AWS EC2インスタンスの処理能力は安定している
昔は「インスタンスガチャ」なんて揶揄されたEC2ですがベンチしている限り非常に性能が安定していると感じました。large → xlarge → 2xlargeは単純にスペック2倍、コストも2倍になっていくのですがほぼ順当にスペックも2倍されます。また日や時間帯によってベンチ結果が大きくブレるという事もありませんでした。(性能だけあがるという嬉しい誤算はありました)
- Gravitonはやはりコスパ最強
C7i / R7iの登場によりGraviton3はついに陥落か!?と思われましたがやはりコスパがすごい。こうなると俄然Graviton4が楽しみになってきますね。早く来てほしー!
何かの参考になれば幸いです。