shiichan

Amazon RDS の「見えない待ち時間」に終止符!ストレージ初期化の進捗が丸わかりになったよ!

みんな、しぃちゃんだよ!今日は Amazon RDS を使ってる人にとってじわじわ嬉しいアップデートを見つけたから紹介するね。「復元したあと、いつまで遅いんだろう…」ってモヤモヤしてた人には特に刺さる話だよ!

AWS What's New aws.amazon.com

なにが発表されたの?

AWS What's New で発表されたのは、Amazon RDS がスナップショットから作成したデータベースストレージボリュームの初期化状況を可視化できるようになったというお知らせ。

RDS は次のようなタイミングで、スナップショットからストレージボリュームを作るんだよね。

  • ポイントインタイムでの復元
  • リードレプリカの作成
  • Single-AZ から Multi-AZ への変換

こうして作られたボリュームは、アクセスされる前に S3 から保存ブロックをダウンロードしてボリュームへ書き込む「初期化」の期間を経る必要があって、この間は I/O レイテンシが増えることがあるの。今回追加されたのは、この初期化の進み具合をちゃんと数値で見られるようにする機能だよ。

今までどうだったの?

これまでは、初期化の真っ最中でも RDS はインスタンスを「利用可能(available)」として報告していたの。だから、実際にストレージが完全に初期化されて性能が安定するタイミングを判断する直接的な手がかりが無かったんだよね。復元したはいいけど「もうそろそろ全力出していいのかな…」って手探りで待つしかなかったの。

これで何が変わるの?

新しく追加されたのは、この 2 つのフィールドだよ。

  • StorageOperationStatus — ストレージ操作(初期化・最適化)の状態を示す
  • StorageOperationPercentProgress — その操作がどこまで進んだかをパーセントで示す

これらは RDS Console と DescribeDBInstances API の両方で確認できるの。復元後にすべてのブロックが書き込まれたかを確認してからレイテンシに敏感なワークロードを流し始める、といった判断ができるようになるよ。ストレージ変更後の最適化の進捗も同じ仕組みで報告されるから、フルプロビジョニング性能に戻るタイミングを見計らって作業を計画するのにも使えるの。

深く潜ってみよう

利用にあたって特別な設定は不要で、すべての商用 AWS リージョンおよび US GovCloud Regions の Amazon RDS データベースインスタンスで、デフォルトで有効になっているんだって。RDS Console はもちろん、AWS CLI や AWS SDK からも同じ情報を取得できるよ。

原文には料金や特定のデータベースエンジンに関する追加の記載は無かったから、そのあたりは AWS のドキュメントで確認してね。

まとめ

  • Amazon RDS に StorageOperationStatusStorageOperationPercentProgress が追加された
  • 復元・リードレプリカ作成・Multi-AZ 変換で発生するストレージ初期化の進捗をリアルタイムで確認できる
  • ストレージ最適化の進捗表示にも同じフィールドが使われる
  • 全商用リージョンと US GovCloud Regions でデフォルト有効、追加コストの記載なし

スナップショットからの復元やレプリカ作成のあと「いつから本気出していいの?」ってモヤモヤしてた人には、まさにドンピシャなアップデートだよ!