BLOGサブスレッドの日常
2021.03.01
AWSでRDSのインスタンスを移行するときの進捗状況を把握したい
ケイタ
すっかりご無沙汰しています。ケイタです。
最後にブログを書いたのはいつだろうと確認したところ、ほぼ1年前でした。
もっと頻度を上げていかないと駄目ですね。
さて。
先日、とある案件でPostgreSQL DBをAurora PostgreSQL DBに移行しました。
(実際の移行作業は他のメンバーで、僕はAWSコンソールを見ながら進捗を確認していました)
その中でちょっとした知見を見つけたので共有です。
データベースエンジンを移行するという大きな作業ということもあり、移行手順も作成し、本番と同等のデータを利用してシミュレーションもしました。
事前の準備で、本番相当のデータを利用してPostgreSQLのスナップショットをAuroraクラスターへ移行する場合の所要時間を計測しており、おおよそ60分程度で終了することを確認済みです。
もちろん実際には多少の時間の前後はあるだろうと見越していたものの、いざ実際に移行を開始してみると、予定の60分になっても完了せず、さらに待っても完了せず・・・
待てど暮らせど完了する気配がありません。
AWSコンソール上ではずっと「移行中」ステータスのままなので、いつ終わるのかわかりません。1分後かもしれないし、5時間後かもしれません。
このまま移行処理に時間がかかりすぎると、翌朝のシステム稼働に間に合わないおそれがでてきます。
移行を続けるのか、それとも中断して差し戻すのかをジャッジするためにも所要時間がどうしても知りたくなりました。
何か方法はないものかとAWSコンソールを色々と見ていたところ、メトリクス内の「ディスク使用量」が少しずつ増えていることに気付きました。

線形にディスク容量が増えるのではなく、ある程度まとまったデータで移行されているようで、30分に1度くらいの割合でディスク容量が増えているようです。
事前準備した際にデータ容量はPostgreSQLDBでもAuroraDBでもそれほど差がないことは確認できていましたので、全体の容量とディスク容量を比べることで進捗を把握することができました。
メトリクスに気付いた時にはすでに予定時間を倍くらい超過していたのですが、それでも進捗が見えるようになると、ただ待つだけでも気持ちが楽になりますね。
その後はメトリクスを眺めながらなんとか移行作業を完了することができました。
入念に準備を重ねたにも関わらず、何かしらトラブルが発生するのはさすが本番といったところでしょうか。
ちなみに「Amazon Aurora のよくある質問」には「ほとんどの場合、移行は 1 時間以内に完了します」と書いてあったりします。予行練習でも60分でも終わっていたので、まさか倍以上も時間がかかるとは・・・
少しヒヤヒヤしたものの、いい経験を得られたと思います。
参考
- Amazon Aurora DB クラスターの合計ストレージ使用量を表示するにはどうすればよいですか?
- https://aws.amazon.com/jp/premiumsupport/knowledge-center/view-storage-aurora-cluster/
- RDS PostgreSQL DB スナップショットを Aurora PostgreSQL DB クラスターに移行する
- https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Migrating.html
- DB クラスターのステータス
- https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/Aurora.Status.html
- Amazon Aurora のよくある質問
- https://aws.amazon.com/jp/rds/aurora/faqs/
この記事を書いた人
ケイタ
