Auroraのスナップショット復元時間

年明けからAuroraに粘着し続けて4記事目、残りカスのような数値を記録しておきます。

RDS/Auroraは起動時間がそんなに早くないですが、スナップショットからの復元は特に遅いと感じたので、データ容量との関係を調べておきました。



スナップショットからの復元時間

いざという時・・・のためでもありますが、より機会が多いであろうテスト用に起動する時のためにも、何GBならだいたい何分で起動するのかを知っておくと、運用上健康的ですよね、ということで。Auroraの管理画面で、進行%を出してくれると最高なんですが、まぁそこまで要求するのもアレなんで、、(チラッ)ただデータを増やして起動するという、不毛気味な検証というかデータ採取をしてみました。

sysbench と INSERT ~ SELECT でデータ容量を倍増させてはスナップショットを取得。そして1つずつ起動時間を計測していきました。

起動時間は、管理画面で復元ボタンをポチってグルグルが終わった時間から、起動完了後にAPIで取得できる “InstanceCreateTime” まで、で計算しています。インスタンスタイプは r3.large になります。

今回は1発採りの結果ですが、まぁだいたい予想通りのグラフになりました。久しぶりにエクセル()でグラフを作成:-)



素晴らしいのは、どの容量でもスナップショットの取得自体は数分単位で終わるということです。凄い仕組みだと思います。

綺麗に右肩上がりにならなかったものの、それはそれで、タイミングによってバラつきますよということで。普通に起動するのが最も早く、容量が増えるほど、復元時間がこのくらいの比率で増えていく、というのがわかりました。

超大雑把にみると、10~100MB/s 程の速さで復元されそうです。冒頭では遅いとか書いちゃいましたが、データの転送速度という視点でみれば、わりと一般的な程度で考えればいいのかなと。あとはインスタンス起動のベース時間とか、インスタンスタイプや容量によって角度が急変する可能性とかありますが、今回のは全然楽しくないのでこの辺で……


特定時点への復元

スナップショットではなく、インスタンス直にある「特定時点への復元」を 512GB でスナップショットからの復元と同時にやってみましたが、3903秒 かかりました。スナップショットからは 3865秒。

どうやら、どちらも同じ処理のようなので、起動中のインスタンスがある場合は、特定時点への復元から起動した方が、最新状態に近いので嬉しいことがほとんどでしょう。


データ削除に対する課金

余談ですが、Auroraはデータを削除して容量を削減しても、Billed Storage のグラフが減少しません。総容量 512GB から 256GB のテーブルを削除して、4時間が経過しても減少しなかったので、ストレージは縮小しないということになるでしょう。

……という内容を、前にどこか公式系の資料で見た気がするのですが、見つかりませんでした。

まぁこまめに不要データを削除するようにすればいいのと、多少まとめて消すことになっても、時間が経てばまたどうせその容量を消費するので、よほど管理を怠らなければ無駄な費用を払うことにはならないはずです。



以上、搾りカスでした。

各種検証では、できるだけ節約してインスタンスを使ったつもりでしたが、それでも r3 は高いのとか、大容量データを作るだけでI/O課金が結構かかるとかで、$100 をゆうに超える検証費用がかかってしまいました。いやまぁ会社の金なんですけど。

ゆーても、今後の運用の精度が増すことを考えれば安いものですね。こーゆー研究系の豪遊っ・・・をした時は、社会にアウトプットすることで費用の意味を濃くし、罪悪感を薄める、というのが長く楽しく続けるコツだそうな:-)