はじめに
高橋 (ポインコ兄) です。
今回は DB インスタンス (RDS) の再起動によるフェイルオーバーについての Tips です。
まとめ
再起動によるフェイルオーバー後の AZ (アベイラビリティーゾーン) 確認は 10分 くらい待ってから!
再起動によるフェイルオーバーで AZ が切り替わらない?
DB インスタンスの AZ が意図せずに切り替わってしまい、再起動によるフェイルオーバーで強制的に元に戻したいことがあると思います。その際、ステータスが「利用可能」になったもの、マネジメントコンソールや AWS CLI で確認しても AZ が切り替わっていない、って経験はありませんか? その理由はちゃんとドキュメントに書いてあります。
再起動時にあるアベイラビリティーゾーンから別にアベイラビリティーゾーンに強制的にフェイルオーバーする場合、このアベイラビリティーゾーンの変更は、AWS Management Console や、AWS CLI および RDS API への呼び出しに反映されるまで数分かかる場合があります。 docs.aws.amazon.com
AZ が切り替わっていないからもう 1 回再起動... としてしまうと、元の AZ のままとなってしまうので注意が必要です!
実験してみた
反映にどのくらい時間がかかるのかを実験してみました。雑ですが... 以下のような shell スクリプトを使用しました。
#!/bin/sh nowIC=`aws rds describe-db-instances --db-instance-identifier test-takahashi-01 --query "DBInstances[].[DBInstanceClass]" --output text` nowAZ=`aws rds describe-db-instances --db-instance-identifier test-takahashi-01 --query "DBInstances[].[AvailabilityZone]" --output text` aws rds reboot-db-instance --db-instance-identifier test-takahashi-01 --force-failover &> /dev/null echo "start >" `date` ":" $nowIC $nowAZ while true do newAZ=`aws rds describe-db-instances --db-instance-identifier test-takahashi-01 --query "DBInstances[].[AvailabilityZone]" --output text` if [ $nowAZ != $newAZ ]; then echo "end >" `date` ":" $nowIC $newAZ exit 0 fi sleep 1 done
実験結果
- 最短: 約 2 分
- 最長: 約 10 分
インスタンスタイプによらず、かなりまちまちなのが分かりますね。 ひとまずは最長の 10 分 ほど待てば良さそうです。
start > Fri Jan 26 09:20:48 JST 2024 : db.t2.micro ap-northeast-1a end > Fri Jan 26 09:22:54 JST 2024 : db.t2.micro ap-northeast-1c ... start > Fri Jan 26 09:42:58 JST 2024 : db.t2.micro ap-northeast-1c end > Fri Jan 26 09:53:02 JST 2024 : db.t2.micro ap-northeast-1a ... start > Fri Jan 26 10:06:22 JST 2024 : db.t2.micro ap-northeast-1a end > Fri Jan 26 10:13:06 JST 2024 : db.t2.micro ap-northeast-1c ... start > Fri Jan 26 10:53:55 JST 2024 : db.m5.large ap-northeast-1c end > Fri Jan 26 11:03:17 JST 2024 : db.m5.large ap-northeast-1a ... start > Fri Jan 26 11:56:16 JST 2024 : db.m5.large ap-northeast-1a end > Fri Jan 26 12:03:31 JST 2024 : db.m5.large ap-northeast-1c ... start > Fri Jan 26 12:06:05 JST 2024 : db.m5.large ap-northeast-1c end > Fri Jan 26 12:13:34 JST 2024 : db.m5.large ap-northeast-1a ... start > Fri Jan 26 12:24:23 JST 2024 : db.m5.large ap-northeast-1a end > Fri Jan 26 12:33:38 JST 2024 : db.m5.large ap-northeast-1c
あとがき
「やっぱり何事もちゃんと説明書を読むことが大事だな」と感じた兄でした。
それではまた、ごきげんよう。
高橋 悠佑 (ポインコ兄) (執筆記事一覧)
健康志向です