RDSリードレプリカのAvailability Zoneに関するメモ
最近インフラの作業を行っているので、AWSのコンソールと格闘する時間が増えてきました。
今回はRDSのリードレプリカについて気になることがあったのでメモします。
リードレプリカ(read replica)
文字にリードと書かれているので、DBアクセスする際に読み取りトラフィックを処理するための参照専用のDBを意味します。
メインとなるDB情報の複製で、DBへの追加、更新、削除は行わないものとして読み取り操作のみをメインのDBから切り離します。
それによってDBにかかる負荷の軽減や読み取り処理のスループットの向上が見込めます。
今回のポイント
AWSではRDS自体をMuiti-AZ(複数のアベイラビリティゾーン)にすることができますが、Muiti-AZにした状態でリードレプリカの作成を行おうとして、アベイラビリティゾーンを指定すると、作成時にエラーが発生しました。
Requesting a specific availability zone is not valid for Multi-AZ instances. (Service: AmazonRDS; Status Code: 400; Error Code: InvalidParameterCombination; Request ID: xxx-xxx・・・-xxx; Proxy: null)
Multi-AZの場合、リードレプリカを用意するアベイラビリティゾーンの指定はできず、SIngle-AZの場合のみ設定できる項目のようです。
すでにRDS本体をMulti-AZにしているので、リードレプリカをさらに別のAZにする必要がないということなのでしょうか。ちょっと理解が足りていないのですが、Muiti-AZの場合は指定しなければ設定できましたので、そのような仕様なんだと思います。
リファレンスにも近しい記載がありました。
さいごに
リードレプリカは負荷分散としてとても便利なのと、AZ構成による冗長化がされている場合は、設定できない項目もあったりなので、リファレンスをしっかり見た方がいい、という教訓になりました。