ちょっと話題の記事

一般公開された Amazon Aurora Serverless v2 を東京リージョンで試してみた

2022年4月に一般公開された Aurora Serverless v2 を東京リージョンで試してみました。
2022.04.23

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

AWSチームのすずきりょうです。

2020年の re:Invent で発表された Amazon Aurora Serverless v2 が 2022年4月21日に一般公開されました。

Aurora Serverless v2 の DBクラスタを東京リージョンで作成、その動作を試す機会がありましたので紹介させていただきます。

データベースの作成

RDSダッシュボードを利用し Amazon Aurora Serverless v2 のDBクラスタを作成しました。

  • エンジンのタイプ: 「Amazon Aurora」
  • Serveless v2をサポートするエンジンバージョン:「Aurora MySQL 3.02.0 (Compatible with MySQL8.0.23)

  • DBインスタンスクラス: 「サーバレス」(Serveless v2)
  • 最小ACU:8、最大ACU:64 (デフォルト)
  • マルチAZ配置: 有効 (デフォルト)
  • Performance Insights: 有効にする (デフォルト)

所要時間

マルチAZ配置のDBクラスタ作成、今回の所要時間は20分強でした。

イベント 時刻
DBクラスタ作成開始 2:22:05 AM UTC
ライターインスタンス作成完了 2:34:00 AM UTC
リーダーインスタンス作成完了 2:45:59 AM UTC

動作確認

初期ACU

作成直後のAmazon Aurora Serverless v2 のACU値を、CloudWatchのメトリック「ServerlessDatabaseCapacity」で確認しました。

  • インスタンスの作成直後のACUの値は32でした。
  • 無負荷状態では、最小ACUの指定値(今回は8)まで段階的に低下していました。

INNODB_BUFFER_POOL_SIZE

CLIを利用し、ACU値「8」で稼働中のDBの状態を確認しました。

$ DBHOST='aurora-ss-v2.cluster-xxxxxxx.ap-northeast-1.rds.amazonaws.com'
$ echo 'SELECT @@GLOBAL.INNODB_BUFFER_POOL_SIZE/1024/1024' | mysql -h ${DBHOST} -P 3306 -u admin -p
@@GLOBAL.INNODB_BUFFER_POOL_SIZE/1024/1024
7534.75000000

sysbench

最小ACU値「0.5」で動作している AuroraServless v2 のDBクラスタに対し、 sysbenchを利用して DBの読み書き処理(oltp_read_write)を、8並列(threads=8)、5分間(time=300) 発生させてみました。

sudo su - ec2-user
curl -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.rpm.sh | sudo bash
sudo yum -y install sysbench

DBHOST='aurora-ss-v2.cluster-xxxxxxx.ap-northeast-1.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

CloudWatch

  • DatabaseConnections、sysbenchの8並列処理と一致する値が記録されていました。
  • ACU (ServerlessDatabaseCapacity)、初期の「0.5」では処理性能が不足し、CPU使用率が100%となる過負荷が発生していました。
  • AuroraServless V2の 性能調整により、ACUは 11.5まで上昇、CPU使用率が100%に張り付く過負荷は、約2分で解消していました。
  • 負荷が収束した後ACU値は段階的に縮小し、約20分で最小の0.5に戻りました。

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

sysbench処理中のDB負荷発生状況を確認ができました。

費用

Aurora Serverless v2、ACU (Aurora Capacity Unit) の1時間あたりの単価は、v1の2倍に設定されています。

Amazon Aurora Pricing

Aurora Serverless v2

  • 東京リージョン: $0.20 per ACU Hour
  • 北米リージョン: $0.12 per ACU Hour

Aurora Serverless v1

  • 東京リージョン: $0.10 per ACU Hour
  • 北米リージョン: $0.06 per ACU Hour

月額コスト試算

最大ACUを0.5とした「最小構成」と、最小ACU8でマルチAZ配置を有効にした「本番構成」で、30日間連続稼働させたコストを試算してみました。

構成 月額コスト(USD) ACU時間単価 ACU数 インスタンス台数 時間 日数
最小構成(北米) $43.2 $0.12 0.5 1 24 30
最小構成(東京) $72 $0.2 0.5 1 24 30
本番構成(北米) $1382.4 $0.12 8 2 24 30
本番構成(東京) $2304 $0.2 8 2 24 30

本番稼働用のテンプレートのデフォルト設定を利用して v2の DBクラスタを作成する場合、そのコストにご留意ください。

まとめ

Aurora Serverless v2、従来のv1と比較して、DB性能調整の高速化や、高い可用性での利用が期待できます。

短時間にスパイク的なDB負荷が発生したり、利用規模が右肩上がりでその上限の見極めが難しいワークロードで DBとしてAuroraを採用する場合、 Aurora Serverless v2 をお試しください。

なお、従来の Aurora Serverless v1 も 引き続き提供されます。 v1で停止状態のDBのコールドスタートが問題にならない場合や、v2の性能を必要としないワークロードであれば、廉価なACU単価で利用できるv1をご活用ください。