MySQLには、地理的レプリケーションにおいて長い伝統があります。クラスターをリモートデータセンターに分散すると、データをユーザーに近づけることで地理的な遅延の影響を軽減できます。また、災害復旧機能も提供します。別のサイトでハードウェアを複製するのはかなりのコストがかかるため、これまで多くの企業がそれを購入することができませんでした。もう1つのコストは、高度な複数のデータセンター環境を設計、実装、および保守できる熟練したスタッフです。
クラウドとDevOpsの自動化革命により、データセンターを分散させることで、大衆がこれまで以上にアクセスしやすくなりました。クラウドプロバイダーは、より良い価格で提供するサービスの範囲を拡大しています。データが世界中に分散しているクロスクラウドのハイブリッド環境を構築できます。柔軟でスケーラブルなDR計画を立てて、さまざまな混乱のシナリオに取り組むことができます。場合によっては、それはオフサイトに保存されたバックアップである可能性があります。それ以外の場合は、別の場所で実行されている本番環境の1対1のコピーである可能性があります。
このブログでは、これらのケースのいくつかを見て、一般的なシナリオに対処します。
バックアップをクラウドに保存する
DR計画は、組織が使用する中断されたITシステムやその他の重要な資産を復旧するプロセスを表す一般的な用語です。バックアップは、これを実現するための主要な方法です。バックアップが本番サーバーと同じデータセンターにある場合、そのデータセンターを紛失した場合にすべてのデータが消去されるリスクがあります。これを回避するには、別の物理的な場所にコピーを作成するポリシーが必要です。復元に必要な時間を短縮するために、バックアップをディスクに保持することは依然として良い習慣です。ほとんどの場合、プライマリバックアップを同じデータセンターに保持しますが(復元時間を最小限に抑えるため)、プライマリデータセンターがダウンしたときにビジネス手順を復元するために使用できるバックアップも必要です。


ClusterControlを使用すると、データベース環境とクラウドをシームレスに統合できます。データをクラウドに移行するためのオプションを提供します。アマゾンウェブサービス(AWS)、Google Cloud Services、またはMicrosoftAzureのデータベースバックアップの完全な組み合わせを提供します。バックアップは、選択したクラウドプロバイダーから直接実行、スケジュール、ダウンロード、および復元できるようになりました。この機能により、冗長性が向上し、ディザスタリカバリのオプションが向上し、パフォーマンスとコストの両方が節約されます。

「データセンターの障害-プルーフバックアップ」を設定するための最初のステップは、クラウドオペレーターに資格情報を提供することです。ここでは、複数のベンダーから選択できます。最も人気のあるクラウドオペレーターであるAWS用に設定されたプロセスを見てみましょう。

必要なのは、AWSキーIDとバックアップを保存するリージョンのシークレットだけです。これはAWSコンソールから取得できます。いくつかの手順に従って入手できます。
- AWSアカウントのメールアドレスとパスワードを使用して、AWSアカウントのrootユーザーとしてAWSマネジメントコンソールにサインインします。
- [IAMダッシュボード]ページで、ナビゲーションバーでアカウント名を選択し、[マイセキュリティクレデンシャル]を選択します。 。
- AWSアカウントのセキュリティクレデンシャルへのアクセスに関する警告が表示された場合は、セキュリティクレデンシャルに進むを選択してください。 。
- アクセスキー(アクセスキーIDとシークレットアクセスキー)セクションを展開します。
- 新しいアクセスキーの作成を選択します 。次に、キーファイルのダウンロードを選択します アクセスキーIDとシークレットアクセスキーをコンピューター上のファイルに保存します。ダイアログボックスを閉じると、この秘密のアクセスキーを再度取得することはできなくなります。

すべてが設定されたら、バックアップスケジュールを調整し、クラウドへのバックアップオプションを有効にすることができます。ネットワークトラフィックを減らすには、必ずデータ圧縮を有効にしてください。バックアップを小さくし、アップロードに必要な時間を最小限に抑えます。もう1つの良い方法は、バックアップを暗号化することです。 ClusterControlはキーを自動的に作成し、復元する場合はそれを使用します。高度なバックアップポリシーでは、同じデータセンター内のサーバーに保存されているバックアップと、別の物理的な場所に保存されているバックアップの保存時間を変える必要があります。復元の可能性はバックアップの存続期間とともに低下するため、クラウドベースのバックアップにはより長い保存期間を設定し、本番環境の近くに保存されたバックアップにはより短い期間を設定する必要があります。

非同期レプリケーションでクラスターを拡張する
非同期レプリケーションを備えたGaleraは、リモートデータセンターにアクティブなDRノードを構築するための優れたソリューションになります。非同期スレーブをGaleraクラスターに接続する理由はいくつかあります。 Galeraノードで長時間実行されるOLAPタイプのクエリは、クラスター全体の速度を低下させる可能性があります。遅延適用オプションを使用すると、遅延レプリケーションにより人的エラーを回避できるため、これらのゴールデンエントリがすべてバックアップノードにすぐに適用されることはありません。


ClusterControlでは、非同期レプリケーションを使用したGaleraノードグループの拡張は、単一ページのウィザードで実行されます。将来または既存のスレーブサーバーに関する必要な情報を提供する必要があります。スレーブは、既存のバックアップ、またはマスターからスレーブに新たにストリーミングされたXtraBackupからセットアップされます。
マルチデータセンターのロードバランサー
ロードバランサーは、MySQLおよびMariaDBデータベースの高可用性における重要なコンポーネントです。複数のデータセンターにまたがるクラスターを持つだけでは不十分です。それらにアクセスするには、まだサービスが必要です。 1つのデータセンターで利用可能なロードバランサーに障害が発生すると、環境全体に到達できなくなります。

データベース層の複雑さをアプリケーションから隠すための一般的な方法の1つは、プロキシを使用することです。プロキシはデータベースへのエントリポイントとして機能し、データベースノードの状態を追跡し、常に使用可能なノードのみにトラフィックを転送する必要があります。 ClusterControlを使用すると、ポイントアンドクリックのグラフィカルインターフェイスを使用して、ProxySQL、HAProxyなど、MySQLおよびMariaDB用のいくつかの異なる負荷分散テクノロジーを簡単に展開および構成できます。

また、その上にキープアライブを追加することにより、このコンポーネントを冗長にすることもできます。ロードバランサーが単一障害点になるのを防ぐために、2つの同一の(1つはアクティブでもう1つはスタンバイとして異なるDCにある)HAProxy、ProxySQL、またはMariaDB Maxscaleインスタンスをセットアップし、Keepalivedを使用して仮想ルーター冗長プロトコル(VRRP)を実行します。彼ら。 VRRPは、アクティブなロードバランサーに仮想IPアドレスを提供し、障害が発生した場合に仮想IPをスタンバイHAProxyに転送します。 2つのプロキシインスタンスは共有状態を必要としないため、シームレスです。
もちろん、データベースをデータセンターの障害の影響を受けないようにするために考慮すべきことがたくさんあります。
適切な計画と自動化により、データベースは機能します。ハッピークラスタリング!