Amazon Relational Database Service (Amazon RDS) for MariaDB または MySQL DB インスタンスのリードレプリカで読み取りオペレーションと書き込みオペレーションの両方を実行したいと考えています。その方法を教えてください。
簡単な説明
Amazon RDS DB インスタンスのリードレプリカは、設計上読み取り専用です。シナリオによっては、レプリカを変更できるように DB インスタンスのリードレプリカを設定する必要がある場合があります。
解決策
Amazon RDS for MySQL または MariaDB を使用している場合は、DB インスタンスのリードレプリカを読み取り/書き込み可能に設定してください。そのためには、DB インスタンスに関連付けられている DB パラメータグループの read_only パラメータを false に設定します。Amazon Aurora など、他の Amazon RDS エンジンを使用している場合は、read_only パラメータを変更することはできません。
注: レプリカへの書き込みを有効にしても、バックアップ、復元、フェイルオーバーなどの自動化は影響を受けません。ただし、書き込みの影響を理解せずに書き込みを実行すると、不整合やレプリケーション障害が発生する可能性があります。
Amazon RDS DB インスタンスのリードレプリカを読み取り/書き込み可能に設定するには、次の手順に従います。
- MySQL または MariaDB インスタンスの DB パラメータグループを作成します。
- パラメータグループを変更します。
- RDS DB インスタンスを DB パラメータグループに関連付けます。
注: DB パラメータグループを指定せずに DB インスタンスを作成すると、デフォルトの DB パラメータグループが作成されます。つまり、デフォルトのパラメータグループは変更できません。インスタンスに関連付けられているカスタムパラメータグループが既にある場合は、新しいパラメータグループを作成する必要はありません。DB パラメータグループの詳細については、「Working with parameter groups」(パラメータグループを使用する) を参照してください。
DB パラメータグループを作成する
- Aurora と RDS コンソールを開きます。
- ナビゲーションペインの [パラメータグループ] から [パラメータグループの作成] を選択します。
- [パラメータグループファミリー] で、パラメーターグループファミリーを選択します。
- [タイプ] で [DB パラメータグループ] を選択します。
- [グループ名] ボックスに、新しい DB パラメータグループの名前を入力します。
- [説明] ボックスに、新しい DB パラメータグループの説明を入力します。
- [作成] をクリックします。
パラメータグループを変更する
- Aurora と RDS コンソールを開きます。
- ナビゲーションペインの [パラメータグループ] から、変更するパラメータグループを選択します。
- [パラメータグループアクション] を選択してから、[編集] をクリックします。
- 次のパラメーターを編集します: read_only = 0
- [変更を保存] をクリックします。
RDS DB インスタンスを DB パラメータグループに関連付ける
- Aurora と RDS コンソールを開きます。
- ナビゲーションペインの [データベース] から、変更した DB パラメータグループに関連付ける DB インスタンスを選択します。
- [変更] をクリックします。
注: インスタンスのステータスは [修正中] で、パラメータグループは [適用中] です。
- [データベースオプション] で、DB インスタンスに関連付けるパラメータグループを選択します。
- インスタンスのステータスが [使用可能] になり、パラメータグループが Pending-reboot になったら、フェイルオーバーなしでインスタンスを再起動します。
注: パラメータグループ名はすぐに変更されますが、パラメータの変更は、フェイルオーバーなしでインスタンスを再起動するまで適用されません。
関連情報
Amazon RDS リードレプリカの概要
Amazon RDS DB パラメータグループの値の変更方法を教えてください。