Atlas Well-Architected フレームワークの信頼性の柱には、ダウンタイムを最小限に抑え、データ損失を防ぐ機能と戦略が含まれています。信頼性の高いワークロードには、障害を把握し、効率的に(多くの場合は自動で)アクションを実行して可用性を回復し、データ損失から復旧する機能が含まれています。
信頼性の基盤
信頼性が高く、回復力のある Atlas 配置を設計するための2つの基盤があります。
インフラストラクチャの障害が想定される状況でも高可用性を確保できるよう、構成オプションを備えた配置アーキテクチャを設計してください。
確立された RTO と RPO 内で障害シナリオから回復するためのベストプラクティスと手順を定義する障害復旧プランを作成します。このプランには、可用性戦略を補完するバックアップ ポリシーの構成や、データ損失や破損イベントに対する復旧オプションの提供が含まれる場合があります。
定義
リカバリ時間目的(RTO)は、アプリケーションが復旧し、トラフィックの処理を再開するまでに許容される最大の停止時間です。
リカバリポイント目的(RPO: Recovery Point Objective)は、停止時に失うことを許容できるデータ量の最大値を、時間単位で表したものです。
可用性は、システムが必要なときに、どの程度信頼性をもってアクセス可能で機能するかを測る指標です。通常、システムが一定期間に稼働している時間の割合を示すパーセンテージで表されます。例として、可用性のゴールドスタンダードは 99.999%、つまり「ファイブナイン」として引用されることが多く、これは年間で約 5 分 25 秒の潜在的なダウンタイムに相当します。
高可用性とは、個々のコンポーネントが故障した場合でも、システム全体がアクセス可能な状態を維持できる能力を指します。高可用性を目的として設計された配置アーキテクチャは、冗長性やフェイルオーバーの仕組みを活用し、フォールトトレランスを実現します。つまり、障害が検出された際に自動的に稼働中のコンポーネントへ切り替えることが可能です。
障害復旧とは、災害時に利用できるよう、ワークロードの個別コピーを作成・管理するための戦略を指します。包括的な障害復旧プランでは、指定された RTO 内にシステム操作を取り戻し、指定された RPO に従って障害発生時点のデータを復元するための手順を定義します。
Atlas の信頼性機能の概要
信頼性を最適化しつつコスト影響を抑えるためには、適切な高可用性アーキテクチャ、障害復旧プラン、バックアップ ポリシーを配置に組み合わせることが重要です。
MongoDB のデフォルトの配置アーキテクチャは、高可用性を実現するように設計されています。Atlas では、各クラスターをレプリカセットの一部として配置し、最低 3 つのデータベース インスタンス(ノードとも呼ばれる)が異なるアベイラビリティゾーンに自動的に分散されます。単一ゾーンで停止が発生した場合でも、インスタンス間のフェイルオーバーは完全に自動化されており、数秒以内にデータ損失なしで完了します。これには、障害発生時に進行中だったオペレーションも含まれます(再試行可能な書き込みが有効化されている場合)。最も重要なアプリケーションの可用性をさらに高めるために、ノード、リージョン、またはクラウドプロバイダーを追加することで、ゾーンやリージョン、プロバイダーの停止に対応できるよう配置をスケールさせることができます。
バックアップは、システムの信頼性にとっても重要です。高可用性を前提に設計されたシステムはデータ損失防止のためのバックアップへの依存度が低いものの、バックアップは依然としてインフラ停止以外の災害シナリオ(例: サイバー攻撃やコードエラーといった人的脅威)によるデータ損失や破損に対して最も有効な保護手段です。堅牢な障害復旧プランには、計算された RPO および RTO を満たすためにバックアップ・ポリシーが必要かどうかを判断することが含まれます。
Atlas での信頼性に関する機能や戦略についてさらに学ぶには、次の Atlas Architecture Center のリソースを参照してください。
高可用性
可用性のニーズを満たすクラスター構成を作成し、障害からの回復を迅速化します。
バックアップ
Atlas でデータベースバックアップオプションを構成し、クラスター全体のスナップショットを使用して RTO および RPO の要件を満たすための推奨事項を取得します。
障害復旧
停止時、プロビジョニングされたデータの削除など、 が発生した場合に実行する手順を含むDRプランを作成します 。