Atlas は、プロジェクト内のすべてのクラスターでデータの不一致を事前検出するために、データ検証を自動的に実行します。データ検証は、アプリケーションに影響が出る前に、目に見えないデータ破損を識別するのに役立ちます。
エラーや警告をトリガーせずにレプリカセットのノード間でデータが異なる場合、サイレントデータ破損が発生します。これは、ハードウェアの障害、ネットワークの問題、またはその他のシステムレベルの問題によって発生する可能性があります。例としては、次のようなものがあります。
ドキュメントの不足: ドキュメントは一部のノードには存在しますが、他のノードには存在しません。
コンテンツの違い: すべてのノードにドキュメントが存在しますが、ノード間でコンテンツが異なります。
インデックスの不一:インデックスエントリがノード間で異なります。
検証がない場合、これらの不一致は検出されずに残り、アプリケーションエラー、データ損失、または不正なクエリ結果を引き起こします。
データ検証の仕組み
Atlas は、レプリカセットのノード間でデータを比較することで、レプリカセットのノード間のデータを検証し、サイレントなデータ破損を検出します。
検証プロセスには以下のステップが含まれます。
クラスターと同じクラウドプロバイダーとリージョンに一時的な検証インスタンスを作成します。
ノードのスナップショットを検証インスタンスに復元します。
ノードのスナップショット間でデータを比較し、不一致を検出します。
不一致が検出された場合、検証結果を Atlas システム (Amazon Web
us-east-1Services) に保存します。
データ検証は、プロジェクト内のすべてのクラスターで自動的に実行されます。必要に応じて、プロジェクトレベルで検証を無効にできます。
データアクセスとストレージ
検証中、Atlas はデータベースとコレクションデータを読み取り、ハッシュを計算して不一致を検出します。Atlas はクラスターデータを変更したり、復号化されたドキュメントのコンテンツを保存したりしません。復号化されたデータは検証プロセス中にのみ一時的に存在し、永続的に保存されることはありません。
検証で不一致が検出されると、Atlas は次のメタデータのみを保存します。
データ型 | 保持期間 | 説明 |
|---|---|---|
メタデータを実行する | 3 年 | 検証の実行状況、タイムスタンプ、データベース、コレクション、不一致の種類ごとのカウントを含む不一致の概要。 |
一貫性のない詳細 | 90 日間 | 検証に失敗したドキュメントのデータベース名、コレクション名、ドキュメント ID、および不一致の種類。 |
検証ログ | 90 日間 | S3 に保存された詳細な検証出力。トラブルシューティングのために Atlas UI を通じて利用できます。 |
ドリルダウン結果 | 21 日間 | 検証プロセス中に使用されるハッシュされた結果。 |
Atlas は分析とトラブルシューティングのために不一致のメタデータのみを保持します。
保管時の暗号化によるデータ検証
カスタマーマネージド キーを使用した保管時の暗号化を行っているクラスターの場合、検証には KMS への追加アクセスが必要です。
検証インスタンスは、カスタマーマネージドキーを使用してデータを複号化し、検証チェックを実行する必要があります。これにより、KMS API リクエストとそれに付随するコストが増加します。
KMS の使用方法、コスト、セキュリティの考慮事項、IP アローリストの構成要件の詳細については、「データ検証 KMS の使用方法」を参照してください。
データ検証の無効化
プロジェクト内のすべてのクラスターでデータ検証を無効にできます。
重要
データ検証を無効にすると、Atlas はクラスター内のデータの不整合を事前に検出できません。検証の実行を阻止する特定の要件がある場合にのみ検証を無効にします。
Atlas で、Project Settings ページに移動します。
まだ表示されていない場合は、希望するプロジェクトを含む組織を選択しますナビゲーション バーのOrganizationsメニュー
まだ表示されていない場合は、ナビゲーション バーのProjectsメニューから目的のプロジェクトを選択します。
サイドバーで、 アイコンを Project Overview の横にあるをクリックします。
[ Project Settings ]ページが表示されます。