目次
Auroraのライターインスタンスとリーダインスタンスの関係
ライター(Writer)インスタンス
クラスターで1つのみ存在します。読み書き(Read/Write)可です。
プライマリインスタンスとも呼ばれます。
→更新負荷が高いとライターがボトルネックになりやすいです。
リーダー(Reader)インスタンス
クラスターで複数(最大15台)存在できます。読み込み(Read)のみ可です。
Auroraレプリカ、レプリカインスタンスとも呼ばれます。
→読み取りが多いサービスは、リーダーを複数配置して負荷を分散できます。
ライターに障害が発生した場合
リーダーインスタンスがあるときにライターインスタンスに障害が発生すると、
リーダーインスタンスの1つが自動でライターインスタンスになります(フェイルオーバー)。
リーダインスタンスがない場合、Auroraが新しいライターインスタンスを作成して復旧します。
エンドポイントの使い分け
書き込み処理 →クラスターエンドポイント(ライターに接続)
読み取り処理 → 読み取りエンドポイント(リーダーに自動分散)
→読み取り処理をリーダーに分散させることで、ライターの負荷を下げるのが一般的な構成です。
Auroraのイメージ図(ライターインスタンスが1つの例)
インスタンスがデータを処理します。
データはクラスターボリュームにあります。
ボリュームについて
アプリ・インスタンスから見ると1つのストレージとして見えます(論理的)。
AWS内部の物理的な実体としては、6つのコピーがあり、裏側で自動的に冗長化されています(物理的)。
(3つのAZに6コピーで自動保存)
ストレージは、最大128TBまで自動拡張されます。
リーダーインスタンスを追加してライターインスタンスを削除する
1.Auroraの一覧です。リージョン別クラスターとライターインスタンスがあります。

2.アクションからリーダーの追加をクリックしてリーダーインスタンスを増やします。

3.リーダーインスタンスを2つ追加しました。
リージョン別クラスターのサイズは、3インスタンス(ライター1+リーダー2)となっています。

4.ライターインスタンスを削除しました。ステータスが削除中になっています。

5.しばらくすると上記図までリーダーインスタンスだったdb-test3がライターインスタンスに変わっています。

フェイルオーバーでライターとリーダーを変更する
1.test-db2がライターインスタンスです。チェックを入れます。

2.アクションからフェイルオーバーをクリックします。

3.確認画面がでるのでフェイルオーバーをクリックします。

4.しばらくするとtest-db2はリーダーインスタンスになり、別のインスタンスがライターインスタンスになります。

関連の記事
