Amazon Aurora が Graviton3 搭載インスタンス(R7g)をサポートしました

Amazon Aurora でサポートされた 最新世代の Graviton3 インスタンス (R7g) を試してみました。
2023.05.13

2023年5月11日、Amazon Aurora が 「R7g」、 AWSの子会社が開発する ArmアーキテクチャのCPU、 Graviton3 を搭載する インスタンスファミリーがサポートされました。

新しい「「R7g」、前世代の Graviton2 を搭載する 「R6g」 と比較して、最大30%の性能向上、20%のコストパフォマンスが改善されるとされています。

早速、AWS環境上で試す機会がありましたので、紹介させていただきます。

Amazon Aurora MySQL and PostgreSQL support for Graviton3 based R7g instance family

リージョン

「R7g」をサポートするリージョンは4リージョンです。(2023年5月時点)

  • 米国東部 (バージニア北部、オハイオ)
  • 米国西部 (オレゴン)
  • 欧州 (アイルランド)

DBエンジンバージョン

「R7g」をサポートするエンジンバージョンは、以下以降となります。

MySQL互換

  • バージョン 3.03.1

PostgreSQL互換

  • バージョン 13.10
  • バージョン 14.7
  • バージョン 15.2

DB起動

オレゴンリージョンで、MySQL8互換のAuroraを「R7g」で起動してみました。

DBインスタンスクラス

db.r7g.large から db.r7g.16xlargeの選択が可能になりました

アベイアビリティゾーン

執筆当日、「R7g」が起動可能なAZは 2つでした。

  • us-west-2b (usw2-az1)
  • us-west-2c (usw2-az3)

以下のAZ、前世代の「R6g」は起動可能でしたが、「R7g」は未サポートでした。

  • us-west-2a (usw2-az2)
  • us-west-2d (usw2-az4)

今後、「R7g」をサポートするAZは拡張されると予想されますが、直近に稼働中のインスタンスを「R7g」へ変更する場合はご注意ください。

性能比較

「db.r7g.large」と「db.r6g.large」の クラスタを同一のAZに起動。

EC2から sysbench を実行し、5分間の簡易な負荷テストを試みました。

sysbench

実行環境 - AMI: Amazon Linux 2023 AMI 2023.0.20230503.0 x86_64 HVM kernel-6.1 - スペック: c6i.large

sudo su - ec2-user
sudo dnf install postgresql15 postgresql-libs mariadb105 luajit -y
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

結果

「R7g」の トランザクション、クエリ性能、「R6g」と比較し 約24%の 向上が確認できました。

項目 R7g R6g 向上率
transactions ( per sec.) 614.95 464.85 24%
queries (per sec.) 12305.59 9300.67 24%

「db.r7g.large

SQL statistics:
    queries performed:
        read:                            2584596
        write:                           727060
        other:                           380212
        total:                           3691868
    transactions:                        184495 (614.95 per sec.)
    queries:                             3691868 (12305.59 per sec.)
    ignored errors:                      119    (0.40 per sec.)
    reconnects:                          0      (0.00 per sec.)

General statistics:
    total time:                          300.0142s
    total number of events:              184495

Latency (ms):
         min:                                    5.14
         avg:                                   13.01
         max:                                  221.99
         95th percentile:                       20.37
         sum:                              2399832.97

Threads fairness:
    events (avg/stddev):           23061.8750/136.57
    execution time (avg/stddev):   299.9791/0.00

db.r6g.large

SQL statistics:
    queries performed:
        read:                            1953364
        write:                           549908
        other:                           287022
        total:                           2790294
    transactions:                        139461 (464.85 per sec.)
    queries:                             2790294 (9300.67 per sec.)
    ignored errors:                      65     (0.22 per sec.)
    reconnects:                          0      (0.00 per sec.)

General statistics:
    total time:                          300.0086s
    total number of events:              139461

Latency (ms):
         min:                                    6.34
         avg:                                   17.21
         max:                                  292.73
         95th percentile:                       28.67
         sum:                              2399834.78

Threads fairness:
    events (avg/stddev):           17432.6250/114.88
    execution time (avg/stddev):   299.9793/0.00

パフォーマンスインサイト

sysbench 実行中の DB負荷状況、パフォーマンスインサイトで確認を試みました。

db.r7g.large

db.r6g.large

SQL別 AAS 比較表

r7g(AAS) r6g(AAS) SQL
0.28 0.27 UPDATE sbtest1 SET k = k + ? WHERE id = ?
0.25 0.25 SELECT DISTINCTROW c FROM sbtest1 WHERE id BETWEEN ? AND ? ORDER BY c
0.22 0.42 SELECT c FROM sbtest1 WHERE id = ?
0.21 0.16 UPDATE sbtest1 SET c = ? WHERE id = ?
0.16 0.16 DELETE FROM sbtest1 WHERE id = ?
0.12 0.17 SELECT c FROM sbtest1 WHERE id BETWEEN ? AND ?
0.11 0.21 SELECT c FROM sbtest1 WHERE id BETWEEN ? AND ? ORDER BY c
0.1 0.15 SELECT SUM ( k ) FROM sbtest1 WHERE id BETWEEN ? AND ?
0.07 0.05 COMMIT
0.04 0.09 INSERT INTO sbtest1 ( id , k , c , pad ) VALUES (...)

平均アクティブセッション(AAS) の結果より、「R7g」は ピークが低めになる事。 また、SELECT、参照処理の所要が 「R6g」より 短縮する傾向が伺えました。

価格

北米リージョン、1時間あたりのオンデマンド価格を比較しました。

「R7g」は「R6g」と比較し 約6% 高い価格が設定されています。

Aurora Standard

インスタンス R7g R6g
large $0.28 $0.26
xlarge $0.55 $0.52
2xlarge $1.11 $1.04
4xlarge $2.21 $2.08
8xlarge $4.42 $4.15
12xlarge $6.63 $6.23
16xlarge $8.84 $8.31

Aurora Standard

インスタンス R7g R6g
large $0.36 $0.34
xlarge $0.72 $0.68
2xlarge $1.44 $1.35
4xlarge $2.87 $2.70
8xlarge $5.75 $5.40
12xlarge $8.62 $8.10
16xlarge $11.50 $10.80

まとめ

新しい 「R7g」を搭載するAurora、従来の「R6g」と比較して 利用費は若干上昇しますが、 世代更新による IO性能、ネットワーク帯域、CPU処理能力などの強化により、値上げ分を上回る 高性能なDBとしての利用が期待できます。

今回は極めて時間、簡単な負荷テストの紹介となりましたが、実際のワークロードなどでの有効性についても、確認を試みたいと思います。