Graviton3 搭載インスタンス(r7g, m7g)をサポートしたAmazon RDSを試してみた
2023年4月28日のアップデートで、最新世代の Graviton3 を搭載するインスタンスが Amazon RDS で利用可能になりました。
Amazon RDS now supports M7g and R7g database (DB) instances
AWS公式ページで、前世代 の Graviton2 を搭載するインスタンスと比較し、30%の性能向上と 27%の費用対効果の向上とされている Graviton3。
今回、北米のオレゴンリージョン のRDSで 「db.m7g.large」 を起動し、試す機会がありましたので紹介させていただきます。
RDSサポート
リージョン
- us-east-1 (バージニア)
- us-east-2 (オハイオ)
- us-west-2 (オレゴン)
- ec-west-2 (アイルランド)
DBエンジン
- MySQL version 8.0.28 以降
- PostgreSQL version 13.4, 14.5 以降
- MariaDB version 10.4.26, 10.5.17, 10.6.10 以降
データベースの作成
Graviton3をサポートするリージョン、DBエンジンでは、 データベースの作成時、DBインスタンスクラスとして「db.m7g」、「db.r7g」の選択が可能になりました。
m7g
r7g
価格
北米リージョン、シングルAZで1時間のオンデマンド利用単価を比較しした。
Graviton3搭載するRDSインスタンス、前世代のGraviton2インスタンスの10%増しの単価設定となっています。
db.m7g と db.m6g
db.m7g | db.m6g | |
---|---|---|
large | $0.17 | $0.15 |
xlarge | $0.34 | $0.30 |
2xlarge | $0.67 | $0.61 |
4xlarge | $1.35 | $1.22 |
8xlarge | $2.70 | $2.43 |
12xlarge | $4.04 | $3.65 |
16xlarge | $5.39 | $4.86 |
db.r7g と db.r6g
db.r7g | db.r6g | |
---|---|---|
large | $0.24 | $0.22 |
xlarge | $0.48 | $0.43 |
2xlarge | $0.96 | $0.86 |
4xlarge | $1.91 | $1.72 |
8xlarge | $3.83 | $3.44 |
12xlarge | $5.74 | $5.16 |
16xlarge | $7.65 | $6.87 |
性能比較
Amazon Linux 2023 のAMIで起動、sysbench をインストールした EC2環境 (c6i.large) を 用意。
5分間の oltp_read_write 性能を、 db.m7g.large 、db.m6g.large で一回ずつ測定して比較しました。
sudo su - ec2-user sudo dnf install postgresql15 postgresql-libs mariadb105 luajit sudo rpm -ivh http://rpmfind.net/linux/fedora/linux/releases/34/Everything/x86_64/os/Packages/s/sysbench-1.0.20-5.fc34.x86_64.rpm DBHOST='database-1.xxxxxxx.us-west-2.rds.amazonaws.com' DBPASS='xxxxxxx' echo 'CREATE DATABASE benchmark' | mysql -h ${DBHOST} -P 3306 -u admin -p # prepare sysbench --db-driver=mysql \ --mysql-host=${DBHOST} \ --mysql-user=admin \ --mysql-password=${DBPASS} \ --mysql-db=benchmark \ oltp_read_write \ prepare # run sysbench --db-driver=mysql \ --mysql-host=${DBHOST} \ --mysql-user=admin \ --mysql-password=${DBPASS} \ --mysql-db=benchmark \ --time=300 \ --threads=8 \ oltp_read_write \ run
結果
1秒あたりのSQL実行性能、m7g は m6g より 約23%高い 計測値が得られました。
db.m7g.large | db.m6g.large | 比率 | |
---|---|---|---|
transactions (rps) | 703.06 | 572.12 | 122.9% |
queries (rps) | 14065.26 | 11445.66 | 122.9% |
それぞれ1回だけの簡易計測でしたが、 RDSのCPU使用率は、m7gはm6g より低い状態。 最適化余地は残されている状態でした。
詳細結果
db.m7g.large
SQL statistics: queries performed: read: 2953972 write: 837083 other: 428646 total: 4219701 transactions: 210924 (703.06 per sec.) queries: 4219701 (14065.26 per sec.) ignored errors: 74 (0.25 per sec.) reconnects: 0 (0.00 per sec.) General statistics: total time: 300.0073s total number of events: 210924 Latency (ms): min: 5.29 avg: 11.38 max: 133.21 95th percentile: 17.63 sum: 2399773.89 Threads fairness: events (avg/stddev): 26365.5000/317.86 execution time (avg/stddev): 299.9717/0.00
db.m6g.large
SQL statistics: queries performed: read: 2403814 write: 678143 other: 351857 total: 3433814 transactions: 171643 (572.12 per sec.) queries: 3433814 (11445.66 per sec.) ignored errors: 58 (0.19 per sec.) reconnects: 0 (0.00 per sec.) General statistics: total time: 300.0086s total number of events: 171643 Latency (ms): min: 6.08 avg: 13.98 max: 133.31 95th percentile: 20.74 sum: 2399840.43 Threads fairness: events (avg/stddev): 21455.3750/1311.24 execution time (avg/stddev): 299.9801/0.00
まとめ
今回、利用可能となった 最新 Graviton3 のインスタンス、前世代の Graviton2 と比較して10% 単価は上昇しますが、 DBクエリ性能は20%以上向上、費用帯効果に優れた利用ができる可能性が高い事が確認できました。
2023年4月時点のサポートリージョンは限られていますが、今後 リージョン、エンジンとも拡張が期待出来ると思われます。 RDS性能のボトルネックを改善する手段の一つとして、新しい Graviton3 の利用が可能な場合、ぜひお試しください。