高可用性サービスは、検出、修復、および通知モジュールなどで構成されています。 これらのモジュールが組み合わさって働くことで、データリンクサービスの可用性が保証され、内部データベースの例外処理が行われます。

さらに、マルチゾーンインスタンスに対応しているリージョンにインスタンスを移行し、適切な高可用性ポリシーを採用することによって、RDS の高可用性サービスのパフォーマンスを改善できます。

検出

検出モジュールは、データベースエンジンのマスターノードとスレーブノードが正常にサービスを提供しているかどうかを確認します。 HA ノードは、8〜10 秒間隔で取得されるハートビート情報を使用して、マスターノードのヘルス状態を判断します。 この情報を、スレーブノードのヘルス状態および他の HA ノードからのハートビート情報と組み合わせることで、ネットワークジッタなど例外に起因する誤判定のリスクを排除できます。 その結果、フェイルオーバーは 30 秒以内に完了することができます。

修復

修復モジュールは、データベースエンジンのマスターノードとスレーブノード間のレプリケーション関係を維持します。 ノードで発生するエラーも修復できます。

例:

  • 予期せぬ切断が発生した場合のマスター/スレーブプリケーションの自動復元
  • ノードのテーブルレベルの損傷の自動修復
  • クラッシュが発生した場合のオンサイト保存と自動修復

通知

通知モジュールは、 SLB またはプロキシにマスターノードとスレーブノードへのステータス変更を通知し、常に正しいノードにアクセスすることを保証します。

たとえば、検出モジュールはマスターノードに例外があることを検出し、それを修復するよう修復モジュールに指示します。 修復モジュールが問題の解決に失敗した場合は、通知モジュールにこの情報が通知されます。 通知モジュールは SLB またはプロキシモジュールにフェイルオーバー要求を送り、SLB またはプロキシモジュールはすべてのトラフィックをスレーブノードに転送し始めます。 同時に、修復モジュールは別の物理サーバー上に新しいスレーブノードを作成し、この変更を検出モジュールに同期します。 検出モジュールはインスタンスのヘルス状態の再確認を開始します。

マルチゾーン

マルチゾーンは、同じリージョン内の複数の個々のゾーンを組み合わせることによって形成される物理区域です。 マルチゾーンの RDS インスタンスは、シングルゾーンよりも高いレベルの災害に耐えることができます。 たとえば、シングルゾーンの RDS インスタンスはサーバーとラックの障害に耐えることができますが、マルチゾーンの RDS インスタンスは機器室全体の障害に耐えることができます。

現在、マルチゾーン RDS インスタンスに対する追加料金は発生しません。 マルチゾーンが有効になっているリージョンのユーザーは、マルチゾーン RDS インスタンスを直接購入することも、ゾーン間移行を使用してシングルゾーン RDS インスタンスをマルチゾーンインスタンスに変換することもできます。

複数のゾーンの間でネットワーク遅延が発生している場合があります。 その結果、マルチゾーン RDS インスタンスが準同期データ複製ソリューションを使用すると、個々の更新に対する応答時間がシングルゾーンインスタンスの応答時間より長くなる可能性があります。 この場合、全体的なスループットを向上させる最善の方法は、同時実行性を高めることです。