Device Sync 本番チェックリスト
Atlas Device Sync、Atlas Edge Server、Data API、HTTPS endpoints は非推奨です。 詳細 については、 の廃止ページを参照してください。
最適なパフォーマンスとスムーズなユーザー エクスペリエンスを確保するために、これらのベスト プラクティスに従うことをお勧めします。
サービスの制限に関する関連情報については、「 サービスの制限 」を参照してください。
Atlas クラスター構成
- 専用の Atlas クラスターを使用
本番アプリでは、少なくとも
M10
の専有クラスターを使用する必要があります。 ユースケースによっては、最適なパフォーマンスを得るために上位階層にアップグレードする必要がある場合があります。M0
、M2
、M5
などの共有クラスターを使用すると、リソースが限られたり、他のユーザーと競合したりするためにパフォーマンスの問題が発生する可能性があります。 本番環境に移行した後に共有階層から専用階層にアップグレードする場合は、Go を終了Device Sync し、すべてのクライアント アプリケーションをリセットまたは再インストールする必要があり 。- Atlas oplog
- Device Sync では、同期されたクラスターの時間ベースの oplogにアクセスする必要があります。 すべての新しい Atlas クラスターは、これをデフォルトで提供します。 最良の結果を得るには、Device Sync を使用しているクラスターの oplog を48時間維持します。
- MongoDB バージョン
- 可能な場合は、MongoDB の最新バージョンを使用してください。 一部の Device Sync 最適化では、新しい MongoDB バージョンの機能と機能の強化が使用されます。
- NVMe の最小 MongoDB バージョン
- クラスターがNVMe ストレージを使用するハードウェアで実行されている場合は、Device Sync 本番アプリケーションに MongoDB バージョン6.0以降を使用する必要があります。
- 組み込みのスキーマ検証を無効化または管理する
App Services のスキーマは MongoDB に組み込まれているスキーマ検証 と 同一ではありません 。Device Sync は、組み込みスキーマと互換性のない方法でクラスターと対話する場合があります。
クラスターでスキーマ検証を使用する場合は、App Services スキーマを優先してそれを無効にするか、2 つのスキーマ検証レイヤーを互換性があるように管理する必要があります。 詳細については、「 App Services Schema と組み込みスキーマ検証の比較 」を参照してください。
App Services の構成
- 配置モデルとリージョン
- Device Sync アプリケーションを構築するときは、ローカル配置モデルを使用します。 アプリと MongoDB データソースを同じ地理的リージョンとクラウドプロバイダー内で実行するように構成します。
- クライアントの最大オフライン時間を定義する
- App Services バックエンドは、基礎となるデータに対する変更履歴を使用してクライアントを同期します。 アプリによって保存される履歴の日数を制御するには、クライアントの最大オフライン時間を設定します。 その日数を超えて同期されなかったクライアントは、次回バックエンドに接続するときにクライアント リセットを実行する必要があります。
クライアント アプリケーション コード
- クライアント リセット ハンドラーを定義する
- クライアントとサーバーの履歴が異なる重大なエラー状態から回復するには、同期された各 Realm を SDK で開くときにクライアント リセットハンドラーを定義する必要があります。
データモデルとスキーマ
- 重大な変更を避ける
- 同期を有効にすると、データモデルを変更する方法が制限されます。 具体的には、特定のプロパティのタイプの変更など、オブジェクトタイプに対する重大な変更はサポートされていません。 重大な変更を行う場合は、更新されたデータモデルとの同期を終了して再度有効にする必要があります。
- App Services スキーマ データの整合性
- mongosh shellや MongoDB Compass などの別のツールを使用して Device Sync ドキュメントを作成または変更する場合は、コレクションの App Services スキーマに対してドキュメントが検証されていることを確認してください。 詳細については、「 同期されていないドキュメント 」を参照してください。
パフォーマンスのベストプラクティス
- 本番負荷テスト
- Sync 本番負荷テスト で、スケールアップされた本番環境のパフォーマンスを測定し、スケールアップされた本番環境の問題を特定します。
- 書込みトランザクションサイズ
- 大量のデータを書き込む場合は、大規模なトランザクションを 1 つ利用するのではなく、複数の小規模な書込みトランザクション(write transaction)を使用することを検討してください。 Atlas クラスターのバージョンと構成によっては、16 MB を超える書込みトランザクションが MongoDB によって拒否され、同期操作が失敗する可能性があります。