説明
単一のアベイラビリティーゾーンに配置した RDS DB インスタンスでは、プライマリやそのゾーンの障害時に Multi-AZ のスタンバイへ自動で切り替える保護を利用できません。高い可用性が必要なワークロードでは、別のゾーンのスタンバイを使う Multi-AZ 配置を検討してください。
想定される影響
障害やメンテナンスによる停止が長引き、アプリケーションのエラーや手動復旧の負担が増えるおそれがあります。
対処方法
対応する RDS DB インスタンスで MultiAZ: true を設定し、費用と変更の影響を確認してください。フェイルオーバーとアプリケーションの再接続を試し、バックアップ・復旧計画も維持してください。Multi-AZ は無停止を保証せず、バックアップの代わりにもなりません。Aurora では別のクラスター可用性構成を使います。
例
RDS MySQL インスタンスの抜粋です。対応する DBInstanceType と残りのネットワーク設定を定義してください。マスターパスワードは RDS が Secrets Manager で管理する構成です。
変更前
yaml
Resources:
MasterDB:
Type: AWS::RDS::DBInstance
Properties:
DBName: MyDatabase
AllocatedStorage: "20"
DBInstanceClass: !Ref DBInstanceType
Engine: mysql
MasterUsername: admin
ManageMasterUserPassword: true
新しいインスタンスで Multi-AZ を要求していません。許容できる停止時間と照らし合わせてください。
変更後
yaml
Resources:
MasterDB:
Type: AWS::RDS::DBInstance
Properties:
DBName: MyDatabase
AllocatedStorage: "20"
DBInstanceClass: !Ref DBInstanceType
Engine: mysql
MasterUsername: admin
ManageMasterUserPassword: true
MultiAZ: true
別のアベイラビリティーゾーンにあるスタンバイへ切り替えられるようにします。この DB インスタンスのスタンバイは読み取り負荷の分散には使えません。