リードレプリカ

[更新: 2019年5月28日]

概要

「リードレプリカ」は、アプライアンス「データベース」をマスターとする読み込み専用のデータベースサーバを作成する機能です。
SQLクライアント側では読み込みに特化し高速で参照可能なリードレプリカを接続先とすることで、データ解析や分析など大量のデータを複雑なクエリで扱う処理においても、マスター側のデータベースに負荷をかけることなく実行することが可能となります。

database-readreplica-01.png

仕様

リードレプリカ機能の仕様は以下の通りです。

マスター側対応DBエンジン PostgreSQL 10以降, MariaDB 10.2以降
マスター1台あたりに作成可能なリードレプリカ数 最大3台
マスターへの昇格機能 ×
リードレプリカのバックアップ ×
リソースモニタ マスターとの同期遅延時間が確認可能
同期方式 非同期レプリケーション
※マスター側のデータ更新から数秒~数十秒程度の同期遅延が発生します

注釈

マスター側のデータベースはデータベースアプライアンスで作成したデータベースのみとなります。お客様ご自身で構築したデータベースサーバをマスターとして設定することはできません。

料金

提供価格は通常のデータベースアプライアンスと同様です(プランは自動的に接続先データベースアプライアンスと同様のものが選択されます)。詳細は さくらのクラウド データベースアプライアンス を参照ください。

利用手順

マスター側データベースの確認と設定

リードレプリカを作成する前に、マスター側となるデータベースアプライアンスにおいてレプリケーションを許可する設定が有効であるかどうかを確認します。

確認したいデータベースを選択し、「設定情報」タブを選択します。「レプリケーション」の項目に「有効」が表示されていれば特に設定を変更することなくリードレプリカのマスターとして利用可能です。「無効」の場合は画面右上の「データベースの変更」をクリックすることで有効状態に変更する必要があります。

database-readreplica-02.png

注釈

データベース設定情報の変更はデータベースが停止している状態でのみ行うことができます。起動している場合は電源操作メニューからシャットダウンを行ってください。
また、設定変更前にデータベースのバックアップを取得することを推奨します。

「データベースの変更」画面では「レプリケーション」の項目にある「有効にする」のチェックボックスをチェック、「レプリカユーザパスワード」にリードレプリカデータベースが接続する際に使用するパスワードを入力し、右下の「更新」ボタンをクリックします。

database-readreplica-03.png

注釈

レプリケーションを行わない構成に変更した場合など、レプリケーションを無効にするとレプリケーション用のユーザが削除され、リードレプリカデータベースから接続できない状態となります。

リードレプリカデータベースの作成

リードレプリカとして作成する場合も通常のデータベースアプライアンスと同じ作成画面で行います。リードレプリカの場合は以下の項目を選択・入力します。

database-readreplica-04.png
  • 「レプリケーション」の項目で「有効にする」のチェックを入れます。
  • 役割選択のラジオボタンで「リードレプリカ」を選択します。
  • 「マスターDB」のポップアップメニューで、マスターに設定したいデータベースアプライアンスを選択します(マスター側のリードレプリカが無効状態の場合は選択メニューに表示されません。前項の手順で有効状態に変更してください)。
  • 選択したマスター側のデータベースのスペックに従い、「データベースプラン」の項目に表示されるプランやデータベースが自動的に表示されます。リードレプリカはマスター側と同様のスペックが必要となるため、この項目を変更することはできません。
  • ユーザ設定の項目にある「レプリカユーザパスワード」にマスター側に接続する際のパスワードを入力します。マスター側でレプリケーションの有効設定を行った際に「レプリカユーザパスワード」に指定したパスワードと同じものを入力します。
  • 「ネットワーク」の項目でも通常のデータベースアプライアンス作成時と同様、接続したいスイッチの選択やデータベースサーバに付与するIPアドレス等を設定します(ポート番号は選択したリードレプリカで設定されているポート番号が自動的に入力され、任意のものに変更することはできません)。
  • 「送信元ネットワーク」では、「送信元ネットワークを制限する」にチェックを入れると入力フォームが表示され、任意のIPアドレスやIPアドレスブロックを入力することでデータベースへのアクセスを許可する送信元ネットワークを設定することができます。

マスター側では「リードレプリカ」タブより接続中のリードレプリカを確認することができます。

database-readreplica-06.png

リードレプリカの利用方法

リードレプリカの作成後はリードレプリカを起動することでマスター側との同期が自動的に行われます。

注意

任意のタイミングで手動で再同期することはできません。同様に、マスター側をシャットダウンしたり、ネットワーク障害やディスク容量不足によるデータ書き込み不可状態などにより一度同期が行えない状態となった場合も自動的に再同期は行われません。この場合はリードレプリカ側の停止および起動の操作により再同期が実行されます。
また、リードレプリカの同期時にマスターが停止状態の場合、リードレプリカ側のステータスが正常状態にならない場合があります。その際はマスターの電源を投入した後、リードレプリカ側の停止→起動操作を行ってください。

起動後のマスター側とのレプリケーション状況は以下の情報より確認可能です。

ログ

「ログ」タブより、アプライアンス内で動作するサービスデーモンの起動状態などのログを確認することが可能です。

注意

レプリケーション動作によりマスター側データベースのログもコピーされるため、リードレプリカ作成日時以前のマスター側のログが表示される場合があります。

アクティビティグラフ

アクティビティグラフでは、通常のデータベースアプライアンスに表示されるネットワークトラフィックやディスク使用量のほか、マスター側との同期遅延時間を確認することができます。

database-readreplica-05.png

なお、リードレプリカ機能利用時はマスター側にレプリケーション用の予約領域(binlog)が必要となります。この領域の使用量はディスクサイズのアクティビティグラフより確認が可能です。

database-readreplica-07.png

警告

MariaDBでは最低約1GB、それを越えた場合はデータベース領域の40%程度のサイズのbinlogが必要となります。ディスク内にbinlogを確保可能な領域がない場合は動作が不安定になる可能性がありますのでご注意ください。

「データベースの変更」ボタン

画面上部に表示される「データベースの変更」ボタンでは、レプリカユーザパスワードおよび送信元ネットワークの制限設定を変更することが可能です。

database-readreplica-08.png

送信元ネットワークについては現在の設定値を「設定情報」タブより確認することができます。

database-readreplica-09.png

レプリカユーザパスワードの変更について

レプリケーションに使用するユーザ replica のパスワード変更は、マスター側・リードレプリカ側ともに「データベースの変更」ボタンより再設定することが可能です。変更時は以下の点にご注意ください。

  • マスター側・リードレプリカ側のいずれかのパスワードを変更した場合でも、接続中のレプリケーションは維持されます。
  • ただし、障害などによる突発的な再起動が発生し、マスター/リードレプリカでパスワードの不整合が発生した場合はレプリケーションが動作しなくなるため、レプリケーション関係にあるデータベースは全て同一のパスワードに設定してください。
  • 意図しないリードレプリカへのレプリケーションを解除する場合など、新たなパスワードでのレプリケーションをすぐに有効化したい場合はパスワード変更後にデータベースの再起動を行ってください。

注意事項

  • マスター側のデータベースアプライアンスにリードレプリカが接続されている状態となっている場合、レプリケーションの設定解除やデータベースの削除をすることはできません。すべてのリードレプリカの接続解除後に実施ください。
  • マスター側のレプリケーション設定の有効化により、ユーザ「replica」と設定したパスワードを使用することで、アプライアンスとして作成したリードレプリカ以外からも接続が可能となります。セキュリティにご注意の上ご利用ください。
  • リードレプリカは同一ゾーン内でのみ作成できます。ブリッジ接続などを利用した他のゾーンのデータベース(アプライアンス)を対象に作成することはできません。