AWS Aurora(MySQL)のライターインスタンス

目次

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はリーダーインスタンスになり、別のインスタンスがライターインスタンスになります。

関連の記事

AWS Aurora(MySQL)を作成/変更/削除する

△上に戻る