와탭랩스 블로그 오픈 이벤트 😃
자세히 보기
Tech
2023-08-25
データベース拡張構成、クラスタリングとレプリケーションの違い
Untitled.png

データベースの構成方法

データベースは、基本的にデータベースサーバーとデータベースが格納されるストレージが1:1で構成されています。

ただし、サービスを運営していると、DBサーバーがトランザクションを受け入れない場合や、DBストレージに保存されているデータが破損する場合があります。クラスタリングとレプリケーションは、これらの問題を解決するために設計されたDBサーバー - DBストレージの構成方法です。

今回のポストでは、非開発者や開発勉強を始めた入門者のレベルに合わせてクラスタリングとレプリケーションについてご説明します。

 

複数のサーバーを1つにまとめて運用するクラスタリング

 

データベースの中でクラスタリングは、複数のDBサーバーが1つのストレージを分割して処理する方法です。データベースのクラスタリングは、Active - ActiveActive - Standby構成に分けられます。

Active - Active構成のメリットは、あるDBサーバーが中断しても別のDBサーバーが作動することです。また、サーバーが2つあるため、DBサーバーのCPU、メモリなどが2倍になり、可用性の面も2倍以上のパフォーマンスが発揮できます。ただし、Active-Active構成は1つのストレージを共有するため、ボトルネックが発生する可能性があります。また、両方のサーバを同時に運用するため、費用負担が生じる場合があります。

cluster1.jpg
cluster2.jpg

 

Active - Standby構成は、 1 つの DB サーバーは Active(動作) 状態に、残りの DB サーバーは Stand by(待機)状態のままにすることです。ActiveなDBサーバーに問題が発生した場合は、Stand byサーバーをActiveサーバーとして機能させる方法です。Active - Standbyのメリットは、運用費用の削減です。

Standbyサーバーは通常は機能しないため、Active状態のDBサーバー費用を費やすだけです。一方、実際にはStand byサーバーは通常は機能しないため、Activeサーバーに切り替えるまでに時間が数十秒から数十分かかります。

 

データベースストレージを複製するレプリケーション

 

レプリケーションは、さまざまな問題でデータの損失が発生した場合に備えてストレージまで複製することで、データの損失を最小限に抑えるためです。レプリケーションは、Source(Master)とReplica(Slave)という垂直構造で構築します。レプリケーションを構築する目的は大きく4つです。

 

  • スケールアウト:急増するトラフィックの負荷を軽減するためにサーバーを増やしてパフォーマンスを向上させることです。
  • バックアップ:バックアップ中にクエリ破損が発生する可能性があり、Sourceデータに影響を与えずにReplicaでデータバックアップを実行できます。
  • データ分析:Masterサーバーのパフォーマンスに影響を与えずにSlaveでデータ分析を実行できます。
  • データの地理的分散:Sourceサーバーとの物理的な距離がある場合でも、Replicaサーバーを介して応答を受け取ることができ、速度も向上します。

 

単純バックアップは、2つ以上のデータベースサーバーとストレージをSource(Master)とReplica(Slave)に分割して同じデータを保存する方法です。分散方式はSlave DBをバックアップ用に活用するのではなく、Slave dbは負荷分散を行う方法で使用します。

Slaveをバックアップ目的に活用する方法は、2 つ以上のデータベースサーバーとストレージを MasterとSlave に分けて同じデータを同期して保存する方法です。Slaveを読み込み目的で利用する方法は、Masterの負荷を減らすためにSelect操作をSlaveで行うように設定する方法です。Select 操作に時間がかかるため、他の作業をするのが難しいため、Slaveを介して分散処理を行うことができ、パフォーマンスの向上に役立ちます。

 

Replica1.jpg
Replica2.jpg

 

レプリケーションのデメリットとして、Master、Slaveは異なるサーバーを運用しているため、別々のバージョン管理を行う必要があります。このときMasterとSlaveのデータベースも同じように合わせなければなりません。また、データの精度を保証することはできません。SlaveがMasterのデータ処理速度に追いついていない場合、2つのデータが一致しない可能性があります。最後に、レプリケーション方式で構成してもパフォーマンスの向上を体感できない場合があります。

 

サービスに合わせて計画を立ててデータベースを拡張してください

 

クラスタリングとレプリケーションは、状況に応じたデータベース拡張方式であり、計画なしにデータベースを拡張することはお控えください。各自のサービスに合わせてデータベース拡張計画を立てれば、お客様により良い品質のサービスを提供することができます。

 


와탭 모니터링을 무료로 체험해보세요!