[アップデート] RDS 最適化読み込み(Optimized Reads)がリリースされました

Amazon RDS for MySQL が、インスタンスストアをサポートしました。 筐体に内蔵された高速SSDを一時領域として活用する事で、一時領域を多用するクエリ処理が最大50%高速化します。
2022.11.28

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

Amazon RDS for MySQL が、 RDS最適化読み込み (RDS Optimized Reads)をサポート。 インスタンスストアをDBの一時領域として利用する事で、 これまでの環境と比較して、最大50%のSQL処理性能の向上が期待できるアップデートがありました。

今回、RDS 最適化読み込みを有効にした、RDS(MySQL)環境を起動する機会がありましたので、紹介させていただきます。

アップデート内容

  • RDS(MySQL)で、インスタンスストア(内蔵SSD)を搭載したDBインスタンスクラスが選択可能になりました。
  • 2022年11月時点、 db.m6gd, db.r6gd, db.m5d, db.r5d の インスタンスファミリーが RDS最適化読み込みを利用可能です。
  • RDS最適化読み込みをサポートするDBインスタンスは、DBの一時領域としてインスタンスストア(筐体内蔵の高速SSD)を利用。一時領域を利用したSQL処理の高速化が期待できます。

起動してみた

DBエンジン

RDS最適化読み込みは、MySQL8.0.28 以降のDBエンジンで利用可能です。

今回、2022年11月時点で最新の MySQL 8.0.31 を利用しました。

DBインスタンスクラス

RDS最適化読み込みをサポートするDBエンジンでは、db.m6gd, db.r6gd, db.m5d, db.r5d のインスタンスファミリーの選択が可能になります。

確認

RDS最適化読み込みを有効化にしたDBインスタンスで、以下のCloudWatchメトリクスが確認可能になりました。

  • FreeLocalStorage
  • ReadIOPSLocalStorage
  • ReadLatencyLocalStorage
  • ReadThroughputLocalStorage
  • WriteIOPSLocalStorage
  • WriteLatencyLocalStorage
  • WriteThroughputLocalStorage

CloudWatch表示

価格

「xlarge」、2コアのvCPU数で利用できるDBインスタンスクラスで、 RDS最適化読み込み、インスタンスストアの有無によるオンデマンド料金を確認しました。

インスタンスクラス インスタンスストア容量 単価(USD) 価格差
db.m5.xlarge - $0.34 -
db.m5d.xlarge 150 $0.42 123%
db.m6g.xlarge - $0.30 -
db.m6gd.xlarge 237 $0.37 123%
db.r5.xlarge - $0.48 -
db.r5d.xlarge 150 $0.57 119%
db.r6g.xlarge - $0.43 -
db.r6gd.xlarge 237 $0.51 120%
  • 単価は北米リージョン、1時間オンデマンド料金
  • RDS最適化読み込み、オンデマンド利用費は約20%の追加になります。

RDS最適化の無効化

インスタンスストアを搭載しない DBインスタンスクラス への変更を行う事で、RDS最適化読み込みは無効となります。

まとめ

ソートや、集計、複数テーブルのジョインなど、大きな中間テーブルが生成されるSQLが多用されるワークロードでは、 RDS最適化読み込みを利用する事で、大きな性能向上が期待できます。

また、一時テーブルに起因するEBSのストレージ消費が多いワークロードでは、ストレージコストの抑制効果も期待できると思われます。 ただし、インスタンスストアには内蔵SSD容量に起因する容量上限などの制限が存在します。

公式ドキュメントで紹介されているベストプラクティスや、制限事項を確認頂いた上で、十分な事前評価を実施してご利用頂くことをおすすめします。

参考

Improving query performance with Amazon RDS Optimized Reads