高い読み取りコンカレンシーに対応し、システム全体のスループットを向上させるために、読み取り専用インスタンス を作成して効率的な 読み書き分離 を実現できます。読み取り専用インスタンスは、プライマリインスタンスの完全なレプリカです。プライマリインスタンス上のすべてのデータ変更は、関連付けられているすべての読み取り専用インスタンスに自動的に同期されます。これにより、プライマリインスタンスから読み取りワークロードをオフロードし、読み取り専用インスタンス上のデータとプライマリインスタンスとの一貫性を確保します。
他のデータベースエンジンの読み取り専用インスタンスを作成するには、次のトピックをご参照ください。
前提条件
プライマリRDS for MySQLインスタンスは、次の条件を満たす必要があります。
RDSインスタンスは、MySQL 8.0、MySQL 5.7、またはMySQL 5.6を実行します。
RDSインスタンスは、サブスクリプションまたは従量課金の課金方法を使用します。 サーバーレスRDSインスタンスは、読み取り専用RDSインスタンスをサポートしていません。
RDSインスタンスはRDS High-availability Editionを実行します。
RDSインスタンスの 基本情報 ページに移動して、上記の情報を取得できます。
RDS High-availability EditionまたはRDS Basic Editionを実行する読み取り専用RDSインスタンスを作成できます。 RDS High-availability Editionを実行する読み取り専用RDSインスタンスには、HAモードで動作するプライマリインスタンスとセカンダリインスタンスが含まれます。 詳細については、「RDS High-availability Edition」をご参照ください。
注意事項
-
読み取り専用インスタンスは、プライマリインスタンスからのみ作成できます。既存のインスタンスを読み取り専用インスタンスに変換することはできません。
-
データはプライマリインスタンスのセカンダリノードからレプリケートされるため、読み取り専用インスタンスを作成してもプライマリインスタンスには影響しません。
-
プライマリインスタンスが解放されると、サブスクリプションの読み取り専用インスタンスは自動的に返金および解放され、従量課金の読み取り専用インスタンスは直ちに解放されます。
-
読み取り専用インスタンスは、プライマリインスタンスのパラメーター設定を継承しません。読み取り専用インスタンスはデフォルトのパラメーター値で作成され、ApsaraDB RDS コンソールで変更できます。
-
読み取り専用インスタンスのストレージタイプは、プライマリインスタンスのストレージタイプと同じである必要があります。
-
バックアップはプライマリインスタンスで実行されます。したがって、読み取り専用インスタンスは ローカルログ保持ポリシー のみをサポートします。読み取り専用インスタンスの自動バックアップポリシーを設定したり、手動バックアップを開始したりすることはできません。
-
ストレージ容量:
-
クラウドディスクベースのインスタンス: 読み取り専用インスタンスのストレージ容量は、プライマリインスタンスのストレージ容量より小さくすることはできません。プライマリインスタンスのメモリが読み取り専用インスタンスのメモリより大きい場合、プライマリインスタンスの仕様を変更すると、読み取り専用インスタンスが再起動します。
-
ローカルディスクベースのインスタンス: 読み取り専用インスタンスのストレージ容量は、プライマリインスタンスのストレージ容量より小さくすることはできません。
-
-
最大 10 個の読み取り専用インスタンスを作成できます。
-
課金方法: サブスクリプションまたは従量課金。料金の詳細については、「読み取り専用インスタンスタイプ」をご参照ください。
-
読み取り専用インスタンスの作成時に選択できる VPC には 制限があります。
操作手順
- RDSインスタンスにアクセスし、上部のリージョンを選択し、対象のRDSインスタンスのIDをクリックします。
-
基本情報 ページで、インスタンスの分布 セクションの 読み取り専用インスタンス の右側にある 追加 をクリックします。
説明[追加] ボタンが表示されない場合は、インスタンスが「前提条件」を満たしているかどうかを確認してください。
-
読み取り専用インスタンスの基本リソースを設定します。
パラメーター
説明
[課金方法]
-
[サブスクリプション]: リソースに対して料金を前払いします。この課金方法は長期利用に最適で、従量課金よりもコスト効率に優れています。サブスクリプション期間が長いほど、割引率が高くなります。
-
[従量課金]: リソースに対して時間単位で課金されます。この課金方法は短期利用に適しており、いつでもインスタンスを解放してコストを節約できます。
[エディション]
-
[ベーシックエディション]: コスト効率に優れたシングルノードの読み取り専用インスタンスで、学習やテストに最適です。障害や再起動からの復旧に時間がかかります。
説明このオプションは、プライマリインスタンスのストレージタイプがクラウドディスクの場合にのみ使用できます。
-
[高可用性エディション] (デフォルト): プライマリノードとセカンダリノードで高可用性を確保します。このエディションは、本番環境に推奨されます。
説明High-availability Edition を選択した場合は、プライマリノードのゾーン、配置方法 (マルチゾーン配置またはシングルゾーン配置) 、およびセカンダリノードのゾーンも設定する必要があります。
[制品タイプ]
Yitian 版は、プライマリインスタンスのストレージタイプがESSDクラウドディスクであり、場合にのみ選択できます。
SE および 天国版 エディションの詳細については、「製品タイプ」をご参照ください。
[可用性ゾーン]
このパラメーターは、Basic Edition の読み取り専用インスタンスにのみ適用されます。ゾーンは、リージョン内の独立した物理エリアです。Basic Edition のインスタンスはシングルノードであるため、デフォルトでシングルゾーン配置を使用します。
-
[プライマリノードのゾーン]
-
[デプロイ方法]
-
[セカンダリノードのゾーン]
このパラメーターは、High-availability Edition の読み取り専用インスタンスにのみ適用されます。ゾーンは、リージョン内の独立した物理エリアです。High-availability Edition のインスタンスでは、配置方法も選択する必要があります:
-
[シングルゾーンデプロイ]: プライマリノードとセカンダリノードは同じゾーンにあります。プライマリノードのゾーンを指定するだけで済みます。
-
[マルチゾーンデプロイ]: プライマリノードとセカンダリノードは異なるゾーンにあります。この方法は、追加料金なしでゾーン間のディザスタリカバリを実現します。プライマリノードとセカンダリノードのゾーンを指定する必要があります。
[インスタンスタイプ]
-
[汎用]: 汎用インスタンスには専用のメモリと I/O リソースがありますが、CPU とストレージは同じサーバー上の他のインスタンスと共有されます。
-
[専用]: 専用インスタンスタイプのインスタンスは、割り当てられた CPU、メモリ、ストレージ、および I/O リソースを排他的に使用します。排他インスタンスタイプのインスタンスは、ホストサーバー上のすべての CPU、メモリ、ストレージ、および I/O リソースを排他的に使用します。
説明各インスタンスタイプには、特定の CPU コア数、メモリ容量、最大接続数、および最大 IOPS があります。
[データベースプロキシ]
プライマリインスタンスでデータベースプロキシが有効になっていない場合、読み取り専用インスタンスを作成するときに無料の汎用データベースプロキシを有効にできます。システムは 推奨仕様 に基づいてプロキシを自動的にデプロイし、プライマリインスタンスのデータベースプロキシ機能を有効にします。データベースプロキシは、読み書き分離、接続プーリング、トランザクション分割、永続的接続、Secure Sockets Layer (SSL) 暗号化などの高度な機能を提供します。データベースプロキシを有効にした後、ビジネス要件に基づいて プロキシタイプと仕様を変更 するか、手動でデータベースプロキシを無効にする ことができます。
説明-
プライマリインスタンスでデータベースプロキシが有効になっている場合、読み取り専用インスタンスではデータベースプロキシ機能がデフォルトで有効になります。手動で機能を有効にする必要はありません。
-
読み取り専用インスタンスが作成された後に データベースプロキシを有効にする こともできます。
[ストレージスペース]
ストレージ容量には、データ領域、システムファイル領域、ログファイル領域、およびトランザクションファイル領域が含まれます。ストレージ容量を調整する際の最小増分は 5 GB です。
説明読み取り専用インスタンスのストレージ容量は、プライマリインスタンスのストレージ容量と 同等以上 である必要があります。
-
-
[次へ: インスタンス設定] をクリックし、その他のインスタンスパラメーターを設定します。
パラメーター
説明
VPC
デフォルトでは、読み取り専用インスタンスはプライマリインスタンスと同じ VPC を使用します。このパラメーターは設定できません。
[プライマリノードの VSwitch]
プライマリノードの VSwitch を選択するか、デフォルトのものを使用できます。
[セカンダリノードの VSwitch]
セカンダリノードには VSwitch が自動的に割り当てられます。このパラメーターは設定できません。
[ポート]
デフォルトはポート 3306 です。この値は変更できます。
[インスタンスリリース保護]
このパラメーターは、従量課金インスタンスにのみ適用されます。リリース保護を有効にすると、従量課金インスタンスの誤った解放を防ぐことができます。
[リソースグループ]
デフォルトでは、読み取り専用インスタンスはプライマリインスタンスと同じリソースグループに属します。このパラメーターは設定できません。
[インスタンス名 ]
オプション。インスタンスを識別しやすくするために、カスタム名を指定します。
[タグ]
多数のインスタンスがある場合は、分類と管理 のためにタグを追加できます。このパラメーターはオプションです。
-
次へ:注文の確認 をクリックし、パラメーター を確認し、購入プラン、および 期間 (サブスクリプションインスタンスのみ) を選択し、次に 今すぐ支払い をクリックして支払いを完了します。
説明-
プライマリインスタンスがサブスクリプションインスタンスの場合、サブスクリプションの読み取り専用インスタンスを購入する際に、期間 の横にある プライマリインスタンスと一致 チェックボックスを選択できます。 これにより、読み取り専用インスタンスのライフサイクルがプライマリインスタンスと一致します。
-
プライマリインスタンスがサブスクリプションインスタンスの場合に、読み取り専用インスタンスの課金方法を従量課金からサブスクリプションに変更すると、期間 で プライマリインスタンスと一致 を選択できません。この設定は、新規購入した読み取り専用インスタンスでのみ利用可能です。このオプションを使用するには、従量課金の読み取り専用インスタンスを解放してから、新しいサブスクリプションインスタンスを購入することをお勧めします。
-
サブスクリプションインスタンスの場合、自動更新 を選択することをお勧めします。これにより、支払い遅延によるサービスの中断を防ぎ、手動で更新する必要がなくなります。
-
読み取り専用インスタンスとそのエンドポイントの表示
-
ApsaraDB RDS コンソールにログインします。 左側のナビゲーションペインで、インスタンス をクリックします。 上部のナビゲーションバーで、リージョンを選択します。
-
インスタンスリストでプライマリインスタンスを探し、インスタンス ID の左側にある矢印をクリックして、関連付けられている読み取り専用インスタンスを表示します。

また、プライマリインスタンスの ID をクリックすると、その詳細ページに移動できます。 読み取り専用インスタンスは、 セクションに表示されます。

-
読み取り専用インスタンスのエンドポイントの表示:各読み取り専用インスタンスには、専用のエンドポイントがあります。 エンドポイントを取得するには、読み取り専用インスタンスの ID をクリックして、その詳細ページに移動します。 次に、 セクションで、接続の詳細を表示 をクリックします。

レプリケーション遅延
読み取り専用インスタンスがプライマリインスタンスからデータを同期するときに、レプリケーション遅延が発生することがあります。 読み取り専用インスタンスの 基本情報 ページで遅延を確認できます。 レプリケーション遅延の一般的な原因と解決策については、「ApsaraDB RDS for MySQL 読み取り専用インスタンスのレプリケーションレイテンシの原因と解決策」をご参照ください。
読み書き分離の設定
読み取り専用インスタンスを追加した後、アプリケーションで手動で読み書き分離を設定するか、データベースプロキシ機能を有効にして読み書き分離を自動的に処理できます。詳細については、「データベースプロキシとは」、「読み書き分離とは」、および「データベースプロキシ機能を有効にする」をご参照ください。
汎用データベースプロキシと永続的接続機能は無料です。詳細については、「ApsaraDB RDS for MySQL インスタンスは、無料の汎用データベースプロキシと永続的接続機能をサポートします」をご参照ください。
読み取り専用インスタンスのオフライン化
1 つのプライマリインスタンス A と 2 つの読み取り専用インスタンス B および C を持つ読み書き分離環境があるとします。 サービスを中断せずに読み取り専用インスタンス C をオフラインにするには、次のステップを実行します。
RDS インスタンスページに移動し、インスタンス A があるリージョンを選択してから、インスタンス A の ID をクリックします。
左側のナビゲーションウィンドウで、[データベースプロキシ] をクリックします。 [接続トポロジ管理] セクションで、[設定を変更] をクリックします。

[プロキシエンドポイント設定の変更] ダイアログボックスで、読み取り専用ノード C の読み取りの重みを 0 に設定します。

読み取り専用インスタンス C の [モニタリングとアラーム] ページに移動します。 [セッション接続] セクションで、active_session メトリックをモニターし、それが 0 になるまで待ちます。
説明active_session の値が 0 であるかどうかを確認します。 長時間経過しても値が 0 にならない場合は、セッションを強制終了できます。
プライマリインスタンス A の [データベースプロキシ] タブで、データベースプロキシエンドポイントから読み取り専用インスタンス C を削除します。
よくある質問
作成
-
Q:読み取り専用インスタンスを作成するときに特定のゾーンを選択できないのはなぜですか?
A: ゾーンが選択できない場合は、そのゾーンのリソースが枯渇していることを示します。別のゾーンを選択できます。これは読み取り専用インスタンスには影響しません。
-
Q:読み取り専用インスタンスに、プライマリインスタンスの VPC とは異なる VPC を選択できますか?
A:
-
プライマリインスタンスがクラシックネットワークにある場合、読み取り専用インスタンスには任意の VPC を選択できます。
-
プライマリインスタンスが VPC にある場合、読み取り専用インスタンスの VPC のオプションは次のとおりです。
-
ストレージタイプがローカル SSD の場合、読み取り専用インスタンスには任意の VPC を選択できます。
-
ストレージタイプがクラウドディスクの場合、読み取り専用インスタンスはプライマリインスタンスと同じ VPC にある必要があります。
-
-
-
Q:読み取り専用インスタンスの作成はプライマリインスタンスに影響しますか?
A: 作成プロセス中は、プライマリインスタンスの仕様変更などの操作はできません。これらの操作を行うには、読み取り専用インスタンスが作成されるまでお待ちください。それ以外の影響はありません。
-
Q:Basic Edition の ApsaraDB RDS for MySQL インスタンスに読み取り専用インスタンスを追加して、読み書き分離を実装できますか?
A: Basic Edition の ApsaraDB RDS for MySQL インスタンスに直接読み取り専用インスタンスを追加することはできません。ApsaraDB RDS for MySQL 8.0 または 5.7 インスタンスを Basic Edition から High-availability Edition にアップグレードし、読み取り専用インスタンスを追加してから、データベースプロキシ機能を有効にして設定することで、読み書き分離を実装できます。また、Basic Edition インスタンスを Cluster Edition にアップグレードし、Cluster Edition インスタンスのプライマリノードとセカンダリノードを使用して読み書き分離を実装することもできます。
-
インスタンスを Basic Edition から High-availability Edition にアップグレードする方法については、「ApsaraDB RDS for MySQL インスタンスを Basic Edition から High-availability Edition にアップグレードする」をご参照ください。
-
インスタンスを Basic Edition から Cluster Edition にアップグレードする方法については、「ApsaraDB RDS for MySQL インスタンスを Basic Edition から Cluster Edition にアップグレードする」をご参照ください。
-
データベースプロキシ機能を有効にして設定する方法については、「データベースプロキシ機能を有効にする」および「データベースプロキシエンドポイントのアクセスポリシーを設定する」をご参照ください。
-
-
Q:High-availability Edition の読み取り専用インスタンスを作成するときに、プライマリノードとセカンダリノードのゾーンを選択できますか?
A: プライマリノードとセカンダリノードのゾーンを選択できるのは、プライマリインスタンスがクラウドディスクを使用し、マイナーエンジンバージョンが 20210430 以降の場合のみです。その他の場合、プライマリノードとセカンダリノードのゾーンを選択することはできません。
同期と遅延
-
Q:読み取り専用インスタンスのデータ同期にはどのくらいの時間がかかりますか?
A: 通常の状況では、データはリアルタイムで同期されます。ただし、大規模なトランザクションや DDL 操作中にレプリケーション遅延が発生する場合があります。実際の遅延は特定の状況によって異なります。
-
Q:読み取り専用インスタンスのレプリケーション遅延に基づいて、レプリケーションが正常かどうかを判断するにはどうすればよいですか?
A: 通常、読み取り専用インスタンスのレプリケーション遅延は 1 秒以内です。遅延が 1 秒を超えると、データ同期遅延が発生します。極端な場合には、接続が中断されることがあります。
-
Q:レプリケーション遅延の一般的な原因は何ですか?
A: レプリケーション遅延の一般的な原因と解決策については、「ApsaraDB RDS for MySQL 読み取り専用インスタンスのレプリケーション遅延の原因と解決策」をご参照ください。
-
Q:読み取り専用インスタンスは並列レプリケーションをサポートしていますか?
A: はい、読み取り専用インスタンスは並列レプリケーションをサポートしています。
接続とルーティング
-
Q:リクエストをプライマリインスタンスで強制的に処理するにはどうすればよいですか?
A: 次のいずれかの方法を使用して、リクエストをプライマリインスタンスに強制的に送信できます。
-
プライマリインスタンスの内部またはパブリックエンドポイントに接続して、リクエストをプライマリインスタンスに直接送信します。
-
データベースプロキシが有効で、トランザクション分割が無効になっている場合、リクエストをトランザクション内にカプセル化できます。デフォルトでは、トランザクション内の操作はプライマリインスタンスに送信されます。
-
ヒントを使用して、リクエストをプライマリインスタンスにルーティングします。詳細については、「ヒント」をご参照ください。
-
-
Q:読み取り専用インスタンスには専用のエンドポイントがありますか?専用のエンドポイントを使用して読み取り専用インスタンスに接続できますか?
A: はい、読み取り専用インスタンスには専用のエンドポイントがあります。エンドポイントは、読み取り専用インスタンスの詳細ページの [基本情報] セクションで取得できます。
インスタンスのメンテナンス
-
Q:ApsaraDB RDS for MySQL インスタンスに読み取り専用インスタンスを追加しましたが、しばらくすると、そのストレージ使用量がプライマリインスタンスよりも多くなります。これは正常ですか?
A: はい、これは正常です。この容量の不一致は、プライマリインスタンスと読み取り専用インスタンス間のデータ同期メカニズムの違いによって発生します。
-
プライマリインスタンス:
INSERTやUPDATEなどの元の SQL ステートメントを実行します。 -
読み取り専用インスタンス: 行ベースのバイナリログイベントを再生してデータを同期します。
この InnoDB ページ書き込みメカニズムの違いにより、読み取り専用インスタンスでページ分割や内部ストレージの断片化が多く発生する可能性があります。したがって、データが完全に一致していても、読み取り専用インスタンスの物理ファイルがプライマリインスタンスの物理ファイルよりも大きくなることがあります。頻繁な更新、削除、または大規模なトランザクションが伴うシナリオでは、読み取り専用インスタンスの ibdata1 ファイル、undo ログ、または一時ファイルがより速く増加し、容量の差がより顕著になることがあります。
解決策: 読み取り専用インスタンスを再作成します。データベースプロキシを使用して読み書き分離を有効にした後、新しい読み取り専用インスタンスを作成します。新しいインスタンスが期待どおりに動作していることを確認してから、古いインスタンスを削除します。
-
-
Q:読み取り専用インスタンスが High-availability Edition で、プライマリノードとセカンダリノードがある場合、これら 2 つのノードのパラメーターをどのように設定しますか?
A: 読み取り専用インスタンスのプライマリノードでのみパラメーターを設定する必要があります。セカンダリノードは、プライマリノードからパラメーター設定を自動的に同期します。セカンダリノードのパラメーターを直接変更することはできません。
-
Q:読み取り専用インスタンスを通常のインスタンスに変換できますか?
A: いいえ、この操作はサポートされていません。
-
Q:読み取り専用インスタンスのデータをバックアップできますか?読み取り専用インスタンスで自動インスタンスバックアップを実行できますか?
A: 読み取り専用インスタンスのデータをバックアップする必要はありません。バックアップはプライマリインスタンスで実行されます。スナップショットバックアップが使用されるため、プライマリインスタンスのパフォーマンスには影響しません。
-
Q:トランザクションログはどのようにクリアされますか?
A: ApsaraDB RDS for MySQL インスタンスのローカルログは、ルールに基づいて自動的に削除されるか、手動で削除できます。
-
Q:読み取り専用インスタンスの構成変更、解放、または課金方法の変更はプライマリインスタンスに影響しますか?
A: いいえ。
課金
-
Q:読み取り専用インスタンスの課金方法を変更できますか?
A: はい。詳細については、「インスタンスの課金方法を従量課金からサブスクリプションに変更する」または「インスタンスの課金方法をサブスクリプションから従量課金に変更する」をご参照ください。
-
Q:読み取り専用インスタンスのコストを見積もるにはどうすればよいですか?
A: ApsaraDB RDS コンソールにログインし、読み取り専用インスタンスの作成ページに移動し、ビジネス要件に基づいてインスタンスタイプやストレージ容量などのパラメーターを設定します。ページに表示される料金をコスト見積もりとして使用できます。
関連 API
|
API |
説明 |
|
読み取り専用の ApsaraDB RDS インスタンスを作成します。 |