このトピックでは、MySQL の読み取り専用 ApsaraDB RDS インスタンスを作成する方法について説明します。読み取り専用 RDS インスタンスは、データベースシステムの読み取り機能とアプリケーションのスループットを向上させるのに役立ちます。各読み取り専用 RDS インスタンスは、プライマリ RDS インスタンスのレプリカです。これは、各読み取り専用 RDS にプライマリ RDS インスタンスと同じデータが含まれていることを示します。プライマリ RDS インスタンスのデータ更新は、各読み取り専用 RDS インスタンスに自動的に同期されます。
前提条件
プライマリ MySQL RDS インスタンスは、以下の条件を満たしている必要があります。
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」をご参照ください。
注意事項
プライマリ RDS インスタンスの読み取り専用 RDS インスタンスを作成できます。既存の RDS インスタンスを読み取り専用 RDS インスタンスに変換することはできません。
読み取り専用 RDS インスタンスの作成中は、ApsaraDB RDS はセカンダリ RDS インスタンスから読み取り専用 RDS インスタンスにデータを複製します。これにより、プライマリ RDS インスタンスでのワークロードの中断を防ぎます。
プライマリ RDS インスタンスがリリースされると、プライマリ RDS インスタンスのサブスクリプション読み取り専用 RDS インスタンスは自動的に払い戻されてリリースされます。従量課金読み取り専用 RDS インスタンスは直接リリースされます。
読み取り専用 RDS インスタンスは、プライマリ RDS インスタンスのパラメータ設定を継承しません。ApsaraDB RDS は、各読み取り専用 RDS インスタンスのデフォルトパラメータ設定を生成します。読み取り専用 RDS インスタンスのパラメータ設定は、ApsaraDB RDS コンソールで変更できます。
読み取り専用 RDS インスタンスは、プライマリ RDS インスタンスと同じストレージタイプを使用する必要があります。
読み取り専用 RDS インスタンスでは、自動バックアップポリシーの構成やバックアップの手動作成はできません。これらの操作はプライマリ RDS インスタンスで実行されるためです。読み取り専用 RDS インスタンスのバイナリログファイルの保持ポリシーのみ構成できます。詳細については、「MySQL 用 ApsaraDB RDS インスタンスのバイナリログファイルを削除する」をご参照ください。
ストレージ容量:
プライマリ RDS インスタンスがクラウドディスクを使用している場合、読み取り専用 RDS インスタンスのストレージ容量は、プライマリ RDS インスタンスのストレージ容量より小さくすることはできません。また、プライマリ RDS インスタンスのメモリ容量が読み取り専用 RDS インスタンスのメモリ容量よりも大きい場合、プライマリ RDS インスタンスの仕様を変更すると、読み取り専用 RDS インスタンスが再起動します。
プライマリ RDS インスタンスがローカルディスクを使用している場合、読み取り専用 RDS インスタンスのストレージ容量は、プライマリ RDS インスタンスのストレージ容量以上である必要があります。
最大 10 個の読み取り専用 RDS インスタンスを作成できます。
読み取り専用 RDS インスタンスは、従量課金とサブスクリプションの課金方法をサポートしています。読み取り専用 RDS インスタンスの料金の詳細については、「読み取り専用 ApsaraDB RDS インスタンスのインスタンスタイプ」をご参照ください。
読み取り専用 RDS インスタンスを作成する場合は、指定された要件を満たす VPC(Virtual Private Cloud)を選択する必要があります。詳細については、「FAQ」をご参照ください。
読み取り専用 RDS インスタンスを作成する
[インスタンス] ページに移動します。上部のナビゲーションバーで、RDS インスタンスが存在するリージョンを選択します。次に、RDS インスタンスを見つけて、インスタンスの ID をクリックします。
[インスタンス分散][基本情報] ページの [追加][読み取り専用インスタンス] セクションで、 の右側にある をクリックします。
説明
[読み取り専用インスタンス] の右側に [追加] が表示されない場合は、RDS インスタンスが前提条件を満たしているかどうかを確認する必要があります。
以下のパラメータを構成します。
パラメータ | 説明 |
[課金方法] | [サブスクリプション]: サブスクリプションインスタンスは、前払い料金を支払うインスタンスです。長期間の使用の場合、サブスクリプション課金方法は従量課金方法よりも費用対効果が高くなります。サブスクリプション期間が長いほど、料金が安くなります。 [従量課金]: 従量課金インスタンスは、実際の resource 使用量に基づいて時間単位で課金されます。短期間の使用には、従量課金方法を選択することをお勧めします。従量課金 RDS インスタンスが不要になった場合は、リリースしてコストを削減できます。
|
[エディション] | [basic Edition]: 読み取り専用 RDS インスタンスは 1 つだけ作成されます。RDS Basic Edition は、学習またはテストシナリオに適した費用対効果の高いデータベースソリューションです。RDS Basic Edition を実行する RDS インスタンスは、再起動またはエラーからの回復に時間がかかります。 説明 このオプションは、RDS インスタンスがクラウドディスクを使用している場合にのみ使用できます。 [high-availability Edition] (デフォルト): 高可用性を実現するために、1 つのプライマリ読み取り専用 RDS インスタンスと 1 つのセカンダリ読み取り専用 RDS インスタンスが作成されます。RDS High-availability Edition は、本番環境を必要とする 80% 以上のビジネスシナリオに適しています。 説明 このオプションを選択した場合は、[プライマリノードのゾーン]、[デプロイ方法]、および [セカンダリノードのゾーン] パラメータも構成する必要があります。[デプロイ方法] パラメータの有効な値: [マルチゾーンデプロイ] および [シングルゾーンデプロイ]。
|
[プロダクトタイプ] | YiTian プロダクトタイプは、プライマリ RDS インスタンスの [ストレージタイプ] パラメーターを ESSD に設定した場合にのみ使用できます。 [スタンダード] プロダクトタイプと [yitian] プロダクトタイプの詳細については、「プロダクトタイプ」をご参照ください。 |
[プライマリノードのゾーン] または [セカンダリノードのゾーン] | 読み取り専用 RDS インスタンスを作成するゾーン。各ゾーンは、リージョン内の独立した物理的な場所です。同じリージョン内のゾーンに大きな違いはありません。 |
[インスタンスタイプ] | [汎用インスタンスタイプ]: 汎用 RDS インスタンスは、割り当てられたメモリと I/O リソースを排他的に使用します。ただし、このタイプのインスタンスは、同じホストにデプロイされている他の汎用インスタンスと CPU とストレージリソースを共有します。 [専用インスタンスタイプ]: 専用インスタンスタイプまたは専用ホストインスタンスタイプを選択できます。専用 RDS インスタンスは、割り当てられた CPU、メモリ、ストレージ、および I/O リソースを排他的に使用します。専用ホストインスタンスタイプは、専用インスタンスファミリで最高の仕様を提供します。専用ホスト RDS インスタンスは、RDS インスタンスがデプロイされている物理ホスト上のすべての CPU、メモリ、ストレージ、および I/O リソースを排他的に使用します。
|
[データベースプロキシ] | 汎用データベースプロキシ機能は無料で提供されており、ApsaraDB RDS 購入ページまたは ApsaraDB RDS インスタンスの作成後に有効にすることができます。この機能は、読み書き分離、持続的接続、トランザクション分割、コネクションプーリング、SSL 暗号化などの高度な機能をサポートしています。システムは、RDS インスタンスに推奨される仕様のデータベースプロキシを有効にします。詳細については、「手順」をご参照ください。 |
[ストレージ容量] | 読み取り専用 RDS インスタンスのストレージ容量。ストレージ容量は、データファイル、システムファイル、アーカイブログファイル、およびトランザクションファイルを格納するために使用されます。ストレージ容量は 5 GB 単位で変更できます。 説明 読み取り専用 RDS インスタンスのストレージ容量は、読み取り専用 RDS インスタンスがアタッチされているプライマリ RDS インスタンスのストレージ容量以上である必要があります。 |
[次へ: インスタンス構成] をクリックし、以下のパラメータを構成します。
パラメータ | 説明 |
[VPC] | プライマリ RDS インスタンスが存在する VPC。 |
プライマリノードの VSwitch | プライマリ RDS インスタンスのデフォルト vSwitch。 |
[リリース保護] | リリース保護機能を有効にするかどうかを指定します。リリース保護機能は、意図しない操作によって従量課金 RDS インスタンスがリリースされるのを防ぐために使用されます。詳細については、「リリース保護機能を有効または無効にする」をご参照ください。 説明 このパラメータは、[課金方法] パラメータが [従量課金] に設定されている場合にのみ使用できます。 |
[リソースグループ] | 読み取り専用 RDS インスタンスが属するリソースグループ。 |
[次へ: 注文の確認] をクリックします。
[パラメータ構成] セクションの設定を確認し、[数量] パラメータと [サブスクリプション期間] パラメータを構成し、利用規約を読んで選択し、[今すぐ支払う] をクリックして、支払いを完了します。[サブスクリプション期間] パラメータは、RDS インスタンスがサブスクリプション課金方法を使用している場合にのみ構成する必要があります。
説明
プライマリ RDS インスタンスがサブスクリプション課金方法を使用しており、サブスクリプション読み取り専用 RDS インスタンスを購入する場合、[サブスクリプション期間] セクションで [プライマリインスタンスと一致] を選択できます。これにより、読み取り専用 RDS インスタンスのサブスクリプション期間がプライマリ RDS インスタンスと同じになります。
プライマリ RDS インスタンスがサブスクリプション課金方法を使用しており、読み取り専用 RDS インスタンスの課金方法を従量課金からサブスクリプションに変更する場合、[サブスクリプション期間] セクションで [プライマリインスタンスと一致] を選択することはできません。この設定は、新しい読み取り専用 RDS インスタンスにのみ適用されます。従量課金読み取り専用 RDS インスタンスをリリースしてから、サブスクリプション読み取り専用 RDS インスタンスを購入することをお勧めします。
読み取り専用 RDS インスタンスの [課金方法] パラメータを [サブスクリプション] に設定する場合は、[自動更新] を選択することをお勧めします。これにより、読み取り専用 RDS インスタンスを定期的に手動で更新する必要がなくなり、支払い遅延による読み取り専用 RDS インスタンスでのワークロードの中断を防ぎます。
読み取り専用 RDS インスタンスを表示する
[インスタンス] ページで読み取り専用 RDS インスタンスを表示する
[ApsaraDB RDS コンソール] にログオンします。左側のナビゲーションウィンドウで、[インスタンス] をクリックします。上部のナビゲーションバーで、RDS インスタンスが存在するリージョンを選択します。
必要な読み取り専用 RDS インスタンスを見つけて、インスタンス ID をクリックします。
プライマリ RDS インスタンスの [基本情報] ページで読み取り専用 RDS インスタンスを表示する
[ApsaraDB RDS コンソール] にログオンします。左側のナビゲーションウィンドウで、[インスタンス] をクリックします。上部のナビゲーションバーで、RDS インスタンスが存在するリージョンを選択します。
必要なプライマリ RDS インスタンスを見つけて、インスタンス ID をクリックします。
[基本情報] ページの [インスタンス配布] セクションで、ポインタを読み取り専用 RDS インスタンスの数の上に移動し、表示する読み取り専用 RDS インスタンスの ID をクリックします。
読み取り専用 RDS インスタンスを使用する
プライマリ RDS インスタンスの読み取り専用 RDS インスタンスを作成した後、プライマリ RDS インスタンスに接続するアプリケーションで読み書き分離を手動で構成するか、データベースプロキシ機能を有効にして自動読み書き分離を実装できます。詳細については、「データベースプロキシとは」、「読み書き分離とは」、および「データベースプロキシ機能を有効にする」をご参照ください。
データベースプロキシ機能を使用して読み取り専用 RDS インスタンスを気付かれずに削除する読み取り専用の RDS インスタンスを削除する
読み書き分離を実装するために、データベースシステムに 1 つのプライマリ RDS インスタンスと 2 つの読み取り専用 RDS インスタンスがプロビジョニングされているとします。プライマリ RDS インスタンスは rm-bp1n24g0g** です。読み取り専用 RDS インスタンスは rr-bp1k0v739**** と rr-bp191c9h**** です。rr-bp1k0v739**** 読み取り専用インスタンスを気付かれずに削除するには、次の手順を実行します。
[ApsaraDB RDS コンソール] にログオンします。左側のナビゲーションウィンドウで、[インスタンス] をクリックします。上部のナビゲーションバーで、読み取り専用 RDS インスタンスが存在するリージョンを選択します。
表示されるページで、読み取り専用 RDS インスタンスとインスタンス ID を見つけます。表示されるページで、[データベースプロキシ] をクリックします。
[データベースプロキシ] ページの [接続トポロジ管理] セクションで、必要なデータベースプロキシエンドポイントのカードにある [構成の変更] をクリックして、削除する rr-bp1k0v739**** 読み取り専用インスタンスの読み取り重みを 0 に変更します。

[監視とアラート] ページで、削除する読み取り専用インスタンスの [セッション] 監視項目の active_session メトリックの値を確認します。active_session メトリックの値が 0 に減少した場合、読み取り専用インスタンスはデータベースプロキシエンドポイントから削除されます。
説明
active_session メトリックの値が 0 かどうかのみを確認する必要があります。total_session メトリックの値が 0 でない場合は、セッションを終了する必要はありません。
FAQ
リクエストをプライマリ RDS インスタンスに強制的に送信するにはどうすればよいですか。
次のいずれかの方法を使用して、リクエストをプライマリ RDS インスタンスに強制的に送信できます。
プライマリ RDS インスタンスの内部エンドポイントまたはパブリックエンドポイントに接続して、システムがプライマリ RDS インスタンスにリクエストを送信するようにすることができます。
データベースプロキシ機能を有効にし、トランザクション分割機能を無効にした場合は、リクエストをトランザクションにカプセル化できます。デフォルトでは、トランザクションの操作はプライマリ RDS インスタンスに送信されます。
ヒントを使用して、リクエストをプライマリ RDS インスタンスに転送します。詳細については、「ヒントを実行する」をご参照ください。
読み取り専用 RDS インスタンスのデータ同期を完了するにはどれくらい時間がかかりますか。
通常のケースでは、データはリアルタイムで同期されます。大規模なトランザクションまたは DDL を実行する必要がある場合は、レプリケーションレイテンシが発生します。レプリケーションレイテンシの期間は、ビジネス要件によって異なります。
読み取り専用 RDS インスタンスには個別のエンドポイントが提供されますか。読み取り専用 RDS インスタンスのみに接続できますか。
読み取り専用 RDS インスタンスには個別のエンドポイントが提供されます。エンドポイントは、読み取り専用 RDS インスタンスの詳細ページの [基本情報] セクションで取得できます。
読み取り専用 RDS インスタンスを作成するときに、特定のゾーンを選択できないのはなぜですか。
選択したゾーンには使用可能なリソースがありません。この場合は、別のゾーンを選択してもう一度試すことをお勧めします。これは読み取り専用 RDS インスタンスには影響しません。
読み取り専用 RDS インスタンスを作成するときに、プライマリ RDS インスタンスの VPC とは異なる VPC を選択できますか。
読み取り専用 RDS インスタンスを作成すると、システムはセカンダリ RDS インスタンスから読み取り専用 RDS インスタンスにデータを複製します。これにより、プライマリ RDS インスタンスでのワークロードの中断を防ぎます。セカンダリ RDS インスタンスとは何ですか。
RDS High-availability Edition を使用している場合、データベースシステムはプライマリ RDS インスタンスとセカンダリ RDS インスタンスで構成されます。プライマリ RDS インスタンスに障害が発生した場合、データベースシステムはセカンダリ RDS インスタンスにフェイルオーバーします。
読み取り専用 RDS インスタンスが RDS High-availability Edition を実行している場合、プライマリおよびセカンダリ読み取り専用インスタンスのパラメータをどのように構成すればよいですか。
プライマリ読み取り専用インスタンスのパラメータのみ構成する必要があります。プライマリ読み取り専用インスタンスのパラメータ設定は、セカンダリ読み取り専用インスタンスに自動的に同期されます。セカンダリ読み取り専用インスタンスのパラメータを変更することはできません。
読み取り専用 RDS インスタンスを、ディザスタリカバリ RDS インスタンスなどの通常の RDS インスタンスに変換できますか。
いいえ、読み取り専用 RDS インスタンスを通常の RDS インスタンスに変換することはできません。
読み取り専用 RDS インスタンスのデータをバックアップできますか。ApsaraDB RDS は読み取り専用 RDS インスタンスの自動バックアップをサポートしていますか。
読み取り専用 RDS インスタンスをバックアップする必要はありません。バックアップはプライマリ RDS インスタンスで実行されます。スナップショットバックアップを使用する場合、プライマリ RDS インスタンスにパフォーマンスオーバーヘッドは発生しません。
ApsaraDB RDS は読み取り専用 RDS インスタンスの並列レプリケーションをサポートしていますか。
はい、ApsaraDB RDS は読み取り専用 RDS インスタンスの並列レプリケーションをサポートしています。
トランザクションログはどのようにクリアされますか。
RDS インスタンスのバイナリログファイルは、構成されたルールに基づいて自動または手動で削除できます。詳細については、「MySQL 用 ApsaraDB RDS インスタンスのバイナリログファイルを削除する」をご参照ください。
読み取り専用 RDS インスタンスのデータレプリケーションのレイテンシに基づいて、レプリケーションが正常かどうかをどのように判断すればよいですか。
ほとんどの場合、読み取り専用 RDS インスタンスのデータレプリケーションのレイテンシが 1 秒以下の場合、データレプリケーションは想定どおりに実装されています。読み取り専用 RDS インスタンスのデータレプリケーションのレイテンシが 1 秒を超える場合、データレプリケーションは異常です。極端なケースでは、切断によりデータレプリケーションが停止する場合があります。
プライマリ RDS インスタンスと読み取り専用 RDS インスタンス間のレプリケーションレイテンシの原因は何ですか。
プライマリ RDS インスタンスとその読み取り専用 RDS インスタンス間のデータレプリケーション中のレイテンシの原因と解決策の詳細については、「MySQL 用読み取り専用 ApsaraDB RDS インスタンスがプライマリインスタンスからレイテンシでデータを同期する場合はどうすればよいですか。」をご参照ください。
プライマリ RDS インスタンスの読み取り専用 RDS インスタンスを作成する場合、プライマリ RDS インスタンスは影響を受けますか。
プライマリ RDS インスタンスの読み取り専用 RDS インスタンスを作成する場合、プライマリ RDS インスタンスで仕様変更などの操作を実行することはできません。読み取り専用 RDS インスタンスが作成された後、プライマリ RDS インスタンスで操作を実行できます。プライマリ RDS インスタンスは、以下の場合に影響を受けません。
MySQL 用 ApsaraDB RDS は、ディスクスナップショットを使用して読み取り専用 RDS インスタンスを作成します。ディスクスナップショットはプライマリ RDS インスタンスに影響しません。
MySQL 用 ApsaraDB RDS は物理サーバーを使用して高可用性を実現し、読み取り専用 RDS インスタンスは既存のバックアップまたはセカンダリ RDS インスタンスから作成されたバックアップを使用して作成されます。これはプライマリ RDS インスタンスに影響しません。
RDS Basic Edition を実行する RDS インスタンスの読み取り専用 RDS インスタンスを作成して、読み書き分離を実装できますか。
いいえ、RDS Basic Edition を実行する RDS インスタンスの読み取り専用 RDS インスタンスを作成することはできません。RDS Basic Edition 上で MySQL 5.7 または MySQL 8.0 を実行する RDS インスタンスを RDS High-availability Edition にアップグレードし、読み取り専用 RDS インスタンスを作成してから、データベースプロキシ機能を有効にして構成することで、読み書き分離を実装できます。また、RDS インスタンスを RDS Basic Edition から RDS Cluster Edition にアップグレードすることもできます。これにより、RDS クラスタの読み取り可能なセカンダリノードを使用して読み書き分離を実装できます。RDS Cluster Edition を実行する RDS インスタンスは、RDS クラスタと呼ばれます。
読み取り専用 RDS インスタンスの課金方法を変更できますか。
はい、読み取り専用 RDS インスタンスの課金方法を変更できます。詳細については、「SQL Server 用 ApsaraDB RDS インスタンスを従量課金からサブスクリプションに切り替える」または「SQL Server 用 ApsaraDB RDS インスタンスをサブスクリプションから従量課金に切り替える」をご参照ください。
プライマリ RDS インスタンスの読み取り専用 RDS インスタンスで次の操作を実行した場合、プライマリ RDS インスタンスは影響を受けますか: 仕様の変更、インスタンスのリリース、または課金方法の変更。
いいえ、これらの操作を実行してもプライマリ RDS インスタンスは影響を受けません。
RDS High-availability Edition を実行する読み取り専用 RDS インスタンスを作成する場合、プライマリおよびセカンダリ読み取り専用 RDS インスタンスのゾーンを指定できますか。
プライマリ RDS インスタンスがクラウドディスクを使用し、20210430 以降のマイナーエンジンバージョンを実行している場合は、プライマリおよびセカンダリ RDS インスタンスのゾーンを指定できます。プライマリ RDS インスタンスがローカルディスクを使用し、20210430 以前のマイナーエンジンバージョンを実行している場合は、プライマリおよびセカンダリ RDS インスタンスのゾーンを指定できません。