RDS の リードレプリカ を使って、DB をマスター/スレーブ構成でレプリケーションして負荷分散させるようにします。
Contents
RDS リードレプリカ
Multi-AZ は、Multi Availability Zoneの略です。
リードレプリカは単独の DB インスタンスに変更、昇格させることもできます。
利用可能リードレプリカ
- Amazon RDS for MySQL
- Amazon RDS for MariaDB
- Amazon RDS for PostgreSQL
- Amazon RDS for Amazon Aurora
Amazon Aurora は MySQL, MariaDB, PostgreSQL とは仕様が異なります。
マスター用 DB の設定
DB インスタンスの変更画面でバックアップを有効にしておく必要があります。
- RDS サービスへ移動
- メニューから「インスタンス」を選択
- マスターにするDBで右クリック
- インスタンスのコンテキストメニューから「変更」をクリック
- DB インスタンスの変更画面で「バックアップの保存期間」項目で日数と「バックアップウィンドウ」項目でい時刻を設定
- メンテナンス時に適応するか、あるいはすぐに適用する場合は「すぐに適用」チェックを入れてインスタンスの変更
- ステータスが「変更中」から「利用可能」になったら「インスタンスの操作」から「リードレプリカの作成」をクリック
- インスタンスのコンテキストメニューから「変更」をクリック
- 「DB インスタンス識別子」に任意の識別子を入れて「リードレプリカの作成」をクリック
再起動をする際には、ダウンタイムを考慮する必要があります。(約10分ほど)
アプリケーション側のプログラム設定
スレーブ用DBの設定を追加して、今回作成したリードレプリカをRead用に設定します。
まとめ
Multi-AZ は高可用性やフェイルオーバーの設定となり、同期レプリケーションの為、レイテンシが大きくなりますが、リードレプリカは非同期にレプリケーションができます。
参考
PostgreSQL、MySQL、および MariaDB リードレプリカの使用 - Amazon Relational Database Service