高可用性サービスは、検出、修復、および通知モジュールなどで構成されています。 これらのモジュールが組み合わさって働くことで、データリンクサービスの可用性が保証され、内部データベースの例外処理が行われます。
さらに、マルチゾーンインスタンスに対応しているリージョンにインスタンスを移行し、適切な高可用性ポリシーを採用することによって、RDS の高可用性サービスのパフォーマンスを改善できます。
検出
検出モジュールは、データベースエンジンのマスターノードとスレーブノードが正常にサービスを提供しているかどうかを確認します。 HA ノードは、8〜10 秒間隔で取得されるハートビート情報を使用して、マスターノードのヘルス状態を判断します。 この情報を、スレーブノードのヘルス状態および他の HA ノードからのハートビート情報と組み合わせることで、ネットワークジッタなど例外に起因する誤判定のリスクを排除できます。 その結果、フェイルオーバーは 30 秒以内に完了することができます。
修復
修復モジュールは、データベースエンジンのマスターノードとスレーブノード間のレプリケーション関係を維持します。 ノードで発生するエラーも修復できます。
例:
- 予期せぬ切断が発生した場合のマスター/スレーブプリケーションの自動復元
- ノードのテーブルレベルの損傷の自動修復
- クラッシュが発生した場合のオンサイト保存と自動修復
通知
通知モジュールは、 SLB またはプロキシにマスターノードとスレーブノードへのステータス変更を通知し、常に正しいノードにアクセスすることを保証します。
たとえば、検出モジュールはマスターノードに例外があることを検出し、それを修復するよう修復モジュールに指示します。 修復モジュールが問題の解決に失敗した場合は、通知モジュールにこの情報が通知されます。 通知モジュールは SLB またはプロキシモジュールにフェイルオーバー要求を送り、SLB またはプロキシモジュールはすべてのトラフィックをスレーブノードに転送し始めます。 同時に、修復モジュールは別の物理サーバー上に新しいスレーブノードを作成し、この変更を検出モジュールに同期します。 検出モジュールはインスタンスのヘルス状態の再確認を開始します。
マルチゾーン
マルチゾーンは、同じリージョン内の複数の個々のゾーンを組み合わせることによって形成される物理区域です。 マルチゾーンの RDS インスタンスは、シングルゾーンよりも高いレベルの災害に耐えることができます。 たとえば、シングルゾーンの RDS インスタンスはサーバーとラックの障害に耐えることができますが、マルチゾーンの RDS インスタンスは機器室全体の障害に耐えることができます。
現在、マルチゾーン RDS インスタンスに対する追加料金は発生しません。 マルチゾーンが有効になっているリージョンのユーザーは、マルチゾーン RDS インスタンスを直接購入することも、ゾーン間移行を使用してシングルゾーン RDS インスタンスをマルチゾーンインスタンスに変換することもできます。