sql >> データベース >  >> RDS >> MariaDB

MaxscaleからProxySQLロードバランサーへの移行

    データベースロードバランサー(プロキシ)は、アプリケーション層とデータベース層の間のミドルウェアサービスです。アプリケーションはデータベースプロキシに接続し、プロキシは接続をデータベースに転送します。データベースプロキシを使用すると、いくつかの利点があります。たとえば、読み取りと書き込みのクエリの分割、クエリのキャッシュ、ルーティングアルゴリズムに基づくクエリの分散、クエリの書き換え、読み取り専用ワークロードのスケーリングなどです。データベースプロキシは、アプリケーション層のデータベーストポロジ(および変更)も抽象化するため、アプリケーションは1つのエンドポイントに接続するだけで済みます。

    商用からオープンソースオプションまで、さまざまなデータベースプロキシがあります。たとえば、HAProxy、Nginx、ProxySQL、Maxscaleなどです。このブログでは、データベースプロキシをMaxscaleからProxySQLに移行する方法について説明します。 ClusterControlの助けを借りて。

    Maxscaleを使用した現在のアーキテクチャ

    Galeraクラスター内の3つのノードと、その上に、データベースプロキシの高可用性のための2つのMaxscaleおよびKeepalivedサービスで構成される高可用性データベースアーキテクチャを検討してください。 Galera Clusterは「仮想的に」同期レプリケーションであり、レプリケーションに基づく認証を使用して、すべてのノードでデータを利用できるようにします。現在のアーキテクチャを以下に示します:

    Maxscaleは、アプリケーション間のミドルウェアとして機能するMariaDBCorporationのデータベースプロキシです。およびデータベース。

    ClusterControlのGaleraClusterおよびMaxscaleロードバランサーのトポロジアーキテクチャは次のとおりです。これらすべてをClusterControlから直接デプロイすることも、既存のデータベースとプロキシノードをClusterControlにインポートすることもできます。データベーストポロジは[トポロジ]タブで確認できます。

    ProxySQLとキープアライブをデプロイ

    ProxySQLは、ProxySQLの別のデータベースプロキシであり、クエリキャッシュ、クエリの書き換え、クエリパターンに基づいて書き込みと読み取りのために分割されたクエリなどの機能を提供します。 ClusterControlにProxySQLをデプロイするには、クラスター内の[管理]->[ロードバランサー]に移動する必要があります。 ClusterControlは、いくつかの異なるデータベースプロキシをサポートしています。 HAProxy、ProxySQL、MaxScale。

    ProxySQLを選択すると、以下のページが表示されます:

    ProxySQLをインストールするサーバーアドレスを選択する必要があります。既存のノードにインストールするか、ProxySQL専用のノードが必要な場合は、リストにIPアドレスを入力するだけです。管理および監視ユーザーのパスワードを入力するか、アプリケーションユーザーをProxySQLに追加するか、後で構成できます。データベースサーバーをProxySQLの負荷分散セットに含めることができるようにします。 [ProxySQLのデプロイ]ボタンをクリックします。高可用性を実現するには、少なくとも2つのProxySQLが必要です。

    セットアップ中にデータベースユーザーをProxySQLに追加するのを忘れた場合は、以下に示すように、[ProxySQLユーザー]タブで構成できます。

    ProxySQLでは、データベースユーザーもProxySQLで構成する必要があります。

    >

    ProxySQLがデプロイされた後、引き続き各ProxySQLホストでKeepalivedを構成します。キープアライブサービスは、ProxySQLインスタンス全体でマスター/バックアップの役割として機能します。 KeepalivedサービスはVIP(仮想IPアドレス)を使用するため、アプリケーションはマスターロールの仮想IPアドレスに接続し、接続をローカルProxySQLに転送します。サービスが失敗した場合、VIPは自動的に別のノードにフロートされます。

    ClusterControlでのkeepalivedのデプロイは、データベースプロキシと同じページで実行されます。必要なのは、[Keepalived]タブを選択することだけです。ロードバランサのタイプであるProxySQLを選択してから、Keepalived1およびKeepalived2の現在のProxySQLを追加します。仮想IPアドレスとネットワークインターフェイスを入力します。最後に、[キープアライブの展開]ボタンをクリックします。

    Keepalivedサービスで2つのProxySQLを実行すると、高可用性プロキシレイヤーが提供されます。 ClusterControlでは、以下のトポロジビューに表示されます。

    切り替え

    トラフィックの切り替えは非常に簡単です。アプリケーション層のIPアドレス接続を変更してProxySQLの仮想IPアドレスを使用し、ProxySQLを介してトラフィックを監視する必要があります。


    1. MySQLでのLCASE()関数のしくみ

    2. WindowsにMySQLをインストールするためのステップバイステップガイド

    3. INNER JOINは、EXISTSよりも優れたパフォーマンスを提供できますか

    4. MySQLでn番目の行を見つける方法