【RDS】DB インスタンスの再起動によるフェイルオーバーで AZ が切り替わらない

記事タイトルとURLをコピーする

はじめに

高橋 (ポインコ兄) です。
今回は DB インスタンス (RDS) の再起動によるフェイルオーバーについての Tips です。

docs.aws.amazon.com

まとめ

再起動によるフェイルオーバー後の 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

あとがき

「やっぱり何事もちゃんと説明書を読むことが大事だな」と感じた兄でした。

それではまた、ごきげんよう。

高橋 悠佑 (ポインコ兄) (執筆記事一覧)

健康志向です