RDS Auroraでライターインスタンスが死んだ場合、どういうルールで昇格するんだっけ?
- ライターインスタンスの内「優先度」が最も低い値のインスタンスから選ばれる(0がデフォルト)
- 同じ「優先度」の場合、同じサブネット、AZのものが優先される
Terraformでインスタンスの「優先度」を決めるにはどうしたら良いの?
instances
の中で promotion_tier
を設定すれば良い
instances = { 1 = { # 未指定だと 0 instance_class = "db.r5.2xlarge" publicly_accessible = true } 2 = { identifier = "static-member-1" instance_class = "db.r5.2xlarge" promotion_tier = 10 } 3 = { identifier = "excluded-member-1" instance_class = "db.r5.large" promotion_tier = 15 } }
typeが READER
のカスタムエンドポイント内のリーダーインスタンスが昇格するとどうなるの?
- エンドポイントから外される
- なので、負荷がギリギリなカスタムエンドポイントだと死ぬ
- そういうエンドポイントのインスタンスは、優先度の数値を高くして昇格を防ぐ
フェイルオーバーや昇格に伴って DB インスタンスのロールがライターとリーダーの間で変更されると、Aurora は静的リストまたは除外リストで指定された DB インスタンスを変更します。
例えば、タイプ READER のカスタムエンドポイントに Aurora レプリカが含まれ、その後、ライターインスタンスに昇格されたとします。新しいライターインスタンスは、カスタムエンドポイントの一部ではなくなります。
👆ここの「カスタムエンドポイントのメンバーシップルール」より