
Graviton3 搭載インスタンス(r7g, m7g)をサポートしたAmazon RDSを試してみた
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
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 の利用が可能な場合、ぜひお試しください。






