データベースへの書き込み要求が少なく、読み取り要求が大きいビジネスシナリオでは、読み書き分離機能を使用することでマスターインスタンスに対する読み取り負荷を分散できます。 このトピックでは、読み書き分離機能の使用を開始する方法について説明します。

前提条件

  • インスタンスが MySQL 5.6 High-Availability Edition または Finance Edition、もしくは MySQL 5.7 High-Availability Edition であり、マスターインスタンスであること。
  • インスタンスには、少なくとも1つの読み取り専用インスタンスがあること。 読み取り専用インスタンスを作成する方法については、「読み取り専用インスタンスの作成」をご参照ください。

注意事項

  • 読み書き分離機能を初めて使用する場合、システムは自動的にマスターインスタンスおよび関連するすべての読み取り専用インスタンスのバックエンド制御システムを最新バージョンにアップグレードして、サービスが正常に機能することを確認します。 そのため、マスターインスタンスと読み取り専用インスタンスは、読み書き分離機能の使用開始の過程で自動的に 1 回再起動されます。 マスターインスタンスは最大 30 秒間アクセスが一時的に遮断され、また読み取り専用インスタンスも再起動中はアクセスできません。 一時的なアクセス遮断の影響を避けるため、オフピーク時間帯に読み書き分離機能の使用を開始し、アプリケーションが自動的に再接続できることを確認しておくことを推奨します。
  • 2017 年 3 月 8 日以降にマスターインスタンスで読み書き分離機能の使用を開始したか、または読み取り専用インスタンスの再起動または構成変更を行ったことがある場合、これらのインスタンスのバックエンド制御システムは自動的に最新バージョンに更新されています。 この場合、使用開始時にインスタンスが再起動されることはありません。

手順

  1. RDS コンソール にログインします。
  2. 読み書き分離機能の使用を開始するインスタンスが配置されているリージョンを選択します。
  3. 対象のインスタンス ID をクリックして、[基本情報] ページを開きます。
  4. 左側のナビゲーションペインから [データベースの接続] を選択して、[データベースの接続] ページを開きます。
  5. [読み書き分離] タブを選択します。
  6. [有効にする] をクリックして、[読み書き分離の設定] ページを開きます。
    インスタンスが 2017 年 3 月 8 日より前に作成され再起動されていないか、または仕様が 2017 年 3 月 8 日以降変更されていない場合、読み書き分離機能の使用開始後、マスターインスタンスおよび読み取り専用インスタンスが 1 回再起動されます。 確認ダイアログボックスで、[OK] をクリックして読み書き分離機能の使用を開始します。
  7. 次の図に示すように、基本情報を設定します。
    • ネットワーク分離モード: 読み書き分離機能を使用するアドレスを指定します。イントラネットアドレスまたはインターネットアドレスを指定できます。 イントラネットアドレスが選択されている場合、読み書き分離アドレスのイントラネットタイプは自動的にマスターインスタンスのタイプと一致します。 たとえば、マスターインスタンスのイントラネットタイプが VPC (仮想プライベートクラウド) である場合、読み書き分離のイントラネットタイプも VPC になります。
    • 遅延しきい値: 読み取り専用インスタンスの遅延しきい値を設定します。値の範囲は 0 秒から 7,200 秒です。 読み取り専用インスタンスの遅延がこのしきい値を超えた場合、その重みに関係なく、読み取り要求はこのインスタンスに転送されません。 SQL の実行状況に応じて、読み取り専用インスタンスで遅延が発生する場合があります。 しきい値は 30 秒以上に設定することを推奨します。
    • 読み取り重みの設定: インスタンスごとのの読み取り要求の重みを設定します。 高い重みが設定されたインスタンスは、より多くの読み取り要求を処理します。 たとえば、 1 つのマスターインスタンスと 3 つの読み取り専用インスタンス (読み取り重みはそれぞれ0、100、200、200) に読み書き分離アドレスが関連付けられている場合、マスターインスタンスは読み取り要求を処理せず (書き込み要求は自動的にマスターインスタンスに転送されます)、3つの読み取り専用インスタンスが、1 : 2 : 2の比率で読み取り要求を処理することを意味します。 重みを設定するには、次のモードのいずれかを使用します。
      • 自動設定: インスタンスの重みは、インスタンスの構成に従って自動的に設定されます。 マスターインスタンスに後から追加された読み取り専用インスタンスについては、既定の重みに従って読み書き分離自動的に追加されます。 インスタンスの仕様に対する読み取り重みの詳細については、「システムによる重み配分の規則」をご参照ください。

      • カスタム設定: インスタンスごとに、読み取り要求処理の重みを 0 から 10,000 の範囲で設定できます。 このモードを選択すると、マスターインスタンスに後から追加された読み取り専用インスタンスの重みはデフォルトで 0 になるため、値を手動で設定する必要があります。
        特定のクエリステートメントでのリアルタイムデータを取得する場合、ヒントを使用してステートメントを強制的にマスターインスタンスに転送して実行することができます。 RDS の読み書き込み分離機能でサポートされるヒントについては、「システムによる重み配分の規則」の「ヒントを追加して、SQL ステートメントをマスターインスタンスまたは読み取り専用インスタンスのどちらへ送信するかを指定する」をご参照ください。
  8. [OK] をクリックします。
    インスタンスの状態がネットワーク接続を作成中に変わります。 処理の完了を待ちます。