年 9 月2024 日現在、Device Services は 非推奨 です。App Services Appの移行に使用できるサードパーティ サービスは多数あります。このページでは、 Amazon Web Services AppSync を使用する際のガイダンスを提供します。
Amazon Web Services AppSync とは
AWS AppSync は、 GraphQLと Pub/Sub API を通じてデバイス間でデータを同期し続けるために使用できるサーバーレス プラットフォームです。バックエンドデータストアとしてMongoDB Atlasと組み合わせると、 Device Syncの利点の多くが維持されます。
システム アーキテクチャ
デバイスの同期
以下は、一般的なDevice Syncアーキテクチャの図です。

このアーキテクチャでは、アプリはAtlas Device Sync API を使用して Atlas App Services と直接通信し、 Atlas App Services は データストレージ、同期、競合の解決を処理します。
データフローは次のとおりです。
データは各デバイスのローカル邦土 db に保存されます。
ユーザーがデバイスに変更を加えます。
Device Sync API は変更を Atlas App Services に送信します。
Atlas App Services は、必要な競合の解決を実行し、変更を Atlas に保存し、他のデバイスに変更を同期します。
Device Sync API は、各デバイスの ローカル邦土内のデータを更新します。
Amazon Web Services App Services
Device SyncからAmazon Web Services AppSync に移行する場合は、アーキテクチャを次の変更を行う必要があります。
Amazon Web Services AppSync を使用したデータ同期の処理
Amazon Web Services Lambdaリゾルバ を使用して、 MongoDBドライバー SDK 経由で Atlas にデータを送信します
Amazon Web Services Event Bridge を使用して、Atlas からのイベントトリガーをリッスン
Atlas へのデータベーストリガーの追加
また、クライアントコードで以下も変更する必要があります。
AppSync はGraphQL を使用するため、アプリケーションからGraphQLエンドポイントにアクセスするにはAmazon Web Services AppSync API を使用する必要があります。
ローカル データストアをRealmデータベースからデバイス上のデフォルトのデータストア(通常は SQLite)、または選択した別のデータストアに変更します。
次の図は、新しいアーキテクチャの一般的な例を示しています。

移行ステップ
次のセクションでは、既存のDevice SyncアーキテクチャをAmazon Web Services AppSync に移行するために実行する必要がある高レベルのタスクについて説明します。
MongoDB Atlas
必要に応じて、データベースのセキュリティとネットワーク アクセスを更新します。
データベースまたはコレクション内のデータが変更されるたびにイベントを起動する データベーストリガーを作成します 。
Amazon Web Services
EventBridge
提携するソースとして Atlas を設定します。
Amazon Web Services AppSync をターゲットとして設定します。
イベント本文のフィールドから AppSync のGraphQLエンドポイントへのマッピングを作成
セキュリティを設定する
Amazon Web Services Lambda Resolver
テンプレートに基づいてLambdaリゾルバを作成します。このプロセスの詳細については、 MongoDB- API GitHub
MongoDB-DataAPI
リポジトリ の Readme を参照してください。IAM 経由でLambda認可を構成する
Amazon Web Services AppSync
IAM 権限の構成
Lambda認可を使用して、 Lambdaリゾルバにリンクします。
データのGraphQLスキーマを作成します。
アプリケーション コード
バックエンドアーキテクチャを移行したら、クライアントアプリにいくつかの変更を加える必要があります。
Realm SDK を コードに置き換えて、AppSync GraphQLエンドポイントを呼び出します。 既存のプラットフォームを適切なAmazon Web Services SDK とともに使用することも、 Amazon Web Servicesサービスへの接続のためのネイティブサポートを提供するAmazon Web Services Amplify を使用することもできます。
デバイスのデータストアから書込みおよび読み取りを行うためのドライバーを追加します。 デフォルトのデータストアはiOSと Android 環境の両方で SQLite ですが、ニーズに合ったデータベースを使用してください。