こんにちは。SKMです。
今回はAWSをやっていてよく耳にするけど詳しく分からなかった、
Multi-AZ配置とSingle-AZ配置について説明してみます。
そもそもどのタイミングで活用されるのか?
RDS(Relational Database Service)で、DBインスタンスの高可用性とフェイルオーバーを実現するために使われます。
マスター(M)が存在するアベイラビリティゾーンとは異なるアベイラビリティゾーンに同期スタンバイのスレーブ(S)を配置します。 →高可用性
異常や障害が発生したとき、冗長な待機系コンピュータサーバ/システム/ネットワークに切り替える機能。 →フェイルオーバー
どのタイミングでフェイルオーバーするのか?
下記の状態が発生した場合、プライマリBDインスタンスがスタンバイレプリカに自動的に切り替えられる。(フェイルオーバーする)
・アベイラビリティゾーンの機能停止
・プライマリDBインスタンスのエラー
・DBインスタンスのサーバータイプ変更
・DBインスタンスのオペレーティングシステムでソフトウェアのパッチ適用中
・DBインスタンスの手動フェイルオーバーが [Reboot with failover] を使用して開始された
Multi-AZとSingle-AZの違い
Multi-AZ配置
複数のアベイラビリティゾーンに配置される、自動でフェイルオーバーが行われる。
Single-AZ配置
1つのアベイラビリティゾーンに配置される、手動で復元する必要がある。
1つのリージョンに複数のAZがあり、その中にマスターやスレーブがある。
マスターは管理・制御する元のデータであり、
それに対してスレーブがマスターを複製したものになる。
スレーブはマスターに問題が生じたときに、常に最新の状態に更新されているため、マスターに昇格する。しかし、マスターが動いている間は読み書きしないため、マスターの負荷を減らすことはない。
それと合わせて、Multi-AZ配置する際に覚えておきたいのが、リードレプリカです。
データの読み書きはマスターのみ可能で、スレーブは読み取りも出来ない完全なスタンバイになるので、データベースの読み取り性能を上げたい場合はリードレプリカを作成するかElastiCacheを配置します。リードレプリカは読み込みが可能なため、マスターの読み取り負荷を軽減させることが出来ます。
先程スレーブは自動的に同期されると記載しましたが、リードレプリカは非同期です。
Multi-AZとSingle-AZに関する説明は以上になります。
今までマスターとスレーブの存在をそもそも知らなかったため、なぜデータベースで可用性を高めるのがMulti-AZ配置なのか分かりませんでした。
マスターとスレーブの役割を知ったのでMulti-AZ配置について理解出来ました。
以上になります。