Docs Menu
Docs Home
/ /
Atlas App Services
/

Atlas での Edge Server の管理 - プレビュー

項目一覧

  • 始める前に
  • Edge Server サービスの作成
  • Edge Server インスタンスを作成する
  • Edge Server インスタンスの一覧表示
  • Edge Server インスタンスの削除
  • Edge Server のデータモデルの更新
  • Edge Server インスタンスのトラブルシューティング
  • Edge Server の制限

Edge Server 互換サービスは、Edge Server インスタンスを作成、削除、または監視するための Atlas の宛先です。

Edge Server を使用できるようにするサービスは 2 種類あります。

  • Edge Server Service : クライアントを MongoDB ドライバーとツールを使用して Edge Server インスタンスに接続する場合は、このオプションを使用します。 挿入したドキュメントからスキーマを推論して更新し、MongoDB 開発者に慣れる このサービスは Atlas Device SDK と互換性がありません。受信 Atlas Device SDK 接続を拒否します。

  • Device Sync サービス(Edge Server と) : Atlas Device SDK と MongoDB ドライバーとツールを使用してクライアント アプリを開発する場合は、このオプションを使用します。 このオプションには、より厳密なスキーマ適用が含まれます。これを SDK は、デバイス間でオブジェクトを自動的に同期し、競合の解決を処理するために使用します。

選択したサービスのタイプに関係なく、Edge Server は Device Sync を使用して、Edge Server インスタンスと Atlas 間でデータを同期します。

重要

Edge Server サービスに後から Atlas Device SDK を追加することはできません

Edge Server は Device Sync サービスにいつでも追加できます。 ただし、Edge Server Service で Atlas Device SDK 接続を使用することはできません。

サービス間でユーザーは移植されません。 Edge Server Service で開始したが、後で Atlas Device SDK を使用してアプリを開発したい場合、Edge Service 内のすべてのユーザーを新しい Device Sync Service に転送する方法はありません。

Atlas UI で Edge Server を管理するには、次のものが必要です。

  • プロジェクト所有者の権限を持つ MongoDB Atlas アカウント。 無料アカウントの登録方法については、「 Atlasを使い始める 」を参照してください。

Admin API を使用して Edge Server を管理するには、次のものが必要です。

Data Services または App Services では、Edge Server 互換サービスを作成できます。

  • Edge Server または Device Sync と Edge Server を使用して構築を開始し、他の App Services が必要な場合は、 Data Services を選択することがあります。 Data Services から Edge Server サービスを作成できます。

  • 認証、関数、trigger、 HTTPS endpoints 、または Values と Secret でサービスをバンドルする場合は、App Services を選択できます。 App Services から Device Sync サービスを作成し、それに Edge Server を追加できます。

1

Atlas UI プロジェクト ダッシュボードでプロジェクトを選択すると、 Data Servicesタブがデフォルトで表示されます。

App ServicesまたはChartsを使用している場合は、 Data Servicesタブを選択します。

2

左側のサイドバーで、 Servicesセクションを参照します。 Device & Edge Syncを選択します。

3

作成するサービスの種類を選択し、プロンプトに従って Edge Server Service または Device Sync Service を作成します。

Edge Server Service を作成したら、すぐに Edge Server インスタンスを追加できます。

Device Sync サービスを作成する場合は、左側のナビゲーションにある [ Edge Server ] をクリックします。 これにより、Edge Server インスタンスを追加および表示できるリストが開きます。

[ Add a server ] ボタンをクリックし、プロンプトに従って新しい Edge Server インスタンスに名前を付けて作成します。

1

App Services Appの作成 に関するドキュメントを参照してください。

アプリの種類を選択するときは、 Device Syncを選択します。 Device Sync を構成した後に、Device Sync アプリに Edge Server を追加できます。

2

Device Sync サービスを表示しているときに、左側のナビゲーションにある [ Edge Server ] をクリックします。 これにより、Edge Server インスタンスを追加および表示できるリストが開きます。

[ Add a server ] ボタンをクリックし、プロンプトに従って新しい Edge Server インスタンスに名前を付けて作成します。

重要

必須 フィールド

Edge Server と同期するドキュメントには、サービスの種類に応じてタイプが異なる_idフィールドが含まれている必要があります。

  • Edge Server Service: タイプ ObjectId

  • Device Sync サービス: タイプObjectIdStringLongIntUUID

このフィールドがないドキュメントは Edge Server に同期できません。

Edge Server は認証プロバイダのサブセットをサポートしています。 サポートされている認証プロバイダは、Atlas Device SDK で接続しているか、MongoDB URI を使用して MongoDB ドライバーまたはツールに接続しているかによって異なります。

クライアントが Edge Server インスタンスに接続できるようにするには、これらのプロバイダーの少なくとも 1 つを有効にする必要があります。

Edge Server 互換サービスを作成したら、そのサービスに Edge Server を追加できます。 サービスは複数の Edge Server を処理できます。各 Edge Server には独自の登録キーがあります。

1

[ Add a serverをクリックします。 Edge Server に名前を付けるように求められます。

UI にはインストール スクリプトが用意されており、Edge Server コードをインストールするデバイスのターミナルにコピーして貼り付けることができます。 また、Edge Server インスタンスを構成するときに使用するトークンも取得されます。

2

インストール スクリプトをコピーして、Edge Server コードをインストールするデバイスのターミナルに貼り付けます。 詳細については、 「 Edge Server インスタンスのインストールと構成 」を参照してください。

Edge Server インスタンスを構成して起動すると、Edge Server ダッシュボード内のHealthステータスがPendingからActiveに変わります。

1

MongoDB Atlas API キー ペアを使用して、管理ユーザー認証エンドポイントを呼び出します。

curl -X POST \
https://services.cloud.mongodb.com/api/admin/v3.0/auth/providers/mongodb-cloud/login \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
"username": "<Public API Key>",
"apiKey": "<Private API Key>"
}'

認証に成功すると、レスポンス本文にはaccess_token値を持つ JSON オブジェクトが含まれます。

{
"access_token": "<access_token>",
"refresh_token": "<refresh_token>",
"user_id": "<user_id>",
"device_id": "<device_id>"
}

access_tokenは App Services Admin API へのアクセスを許可します。 すべての管理 API リクエストのAuthorizationヘッダーに Bearer トークンとして含める必要があります。

Tip

以下も参照してください。

2

管理 API 「Edge Server インスタンスの作成」エンドポイントを呼び出して、Edge Server インスタンスをサービスに追加します。

リクエストには、以下の内容が必要です。

curl -X POST \
https://services.cloud.mongodb.com/api/admin/v3.0/groups/{groupId}/apps/{appId}/edge \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <AccessToken>' \
-d '{
"name": "YOUR-EDGE-SERVER-INSTANCE-NAME"
}'

リクエストが成功すると、 201コードと、新しく作成された Edge Server インスタンスに関する情報を含む JSON オブジェクトが返されます。

{
"id": "6622b8f5118368b943d228a9",
"user_id": "6622b8f5118368b943d2288a",
"registration_key": "Qi4GgpvVduwwt4k1w77ZzaQ1n4SdTWC8rLBD9vyTib1w9G3CX2ta8WrJvt3giEK7"
}
  • id: Edge Server インスタンスの一意の識別子で、ObjectId 型(string)。 この識別子を使用して、Edge Server インスタンスを削除または更新できます。

  • user_id: Edge Server 自体はユーザーです。 これは、string としての ObjectId 型の Edge Server ユーザーの一意の識別子です。 この識別子は、権限を設定するときに使用できます。

  • registration_key: この情報を保存します。 ホストに Edge Server コードをインストールするときは、この登録トークンを入力します。 Edge Server は、Atlas で認証するために使用する API キーとこれを交換します。 この登録トークンは 1 回だけ使用できます。

3

インストール スクリプトをコピーして、Edge Server コードをインストールするデバイスのターミナルに貼り付けます。 詳細については、 「 Edge Server インスタンスのインストールと構成 」を参照してください。

Edge Server インスタンスのリストは、Atlas UI または Admin API から取得できます。

Edge Server ダッシュボードには、最後の接続の日時やそのステータスのスナップショットなど、各 Edge Server インスタンスの簡単な概要が表示されます。 オプションで、各インスタンスの詳細またはログを表示できます。

Edge Server ダッシュボードを表示するには、左側のナビゲーション サイドバーで [ Edge Server ] を選択します。

特定の Edge Server インスタンスの詳細を表示するには、その Edge Server インスタンスの [ View Details ] をクリックします。 または、 App Logsをクリックして、インスタンスに関連するログを表示します。

1

MongoDB Atlas API キー ペアを使用して、管理ユーザー認証エンドポイントを呼び出します。

curl -X POST \
https://services.cloud.mongodb.com/api/admin/v3.0/auth/providers/mongodb-cloud/login \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
"username": "<Public API Key>",
"apiKey": "<Private API Key>"
}'

認証に成功すると、レスポンス本文にはaccess_token値を持つ JSON オブジェクトが含まれます。

{
"access_token": "<access_token>",
"refresh_token": "<refresh_token>",
"user_id": "<user_id>",
"device_id": "<device_id>"
}

access_tokenは App Services Admin API へのアクセスを許可します。 すべての管理 API リクエストのAuthorizationヘッダーに Bearer トークンとして含める必要があります。

Tip

以下も参照してください。

2

すべての Edge Server インスタンスのリストを取得するには、 Admin API List Edge Serverエンドポイントを呼び出します。

Authorizationリクエストには、管理 API アクセス トークンが Bearer トークン として返される ヘッダーが含まれている必要があります。

curl -X GET \
https://services.cloud.mongodb.com/api/admin/v3.0/groups/{groupId}/apps/{appId}/edge \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <AccessToken>'

リクエストが成功すると、 200コードと、 appIdに関連付けられた各 Edge Server インスタンスの概要の詳細を含むオブジェクトの配列であるedge_serversキーが返されます。

{
"edge_servers": [
{
"id": "6622b8f5118368b943d228a9",
"created": "2024-04-19T08:51:00Z",
"name": "Edge-Store-42",
"user_id": "6622b8f5118368b943d2288a",
"status": "active",
"hostname": "ec2-13-58-70-88.us-east-2.compute.amazonaws.com",
"last_connection": "2024-04-19T09:51:00Z"
}
]
}

詳しくは、詳細を表示するインスタンスのidを見つけます。

3

Edge Server インスタンスに関する詳細情報を取得するには、 「Admin API Get Edge Server 情報エンドポイント」を呼び出します。

Authorizationリクエストには、管理 API アクセス トークンが Bearer トークン として返される ヘッダーが含まれている必要があります。

curl -X GET \
https://services.cloud.mongodb.com/api/admin/v3.0/groups/{groupId}/apps/{appId}/edge/{edgeServerId} \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <AccessToken>'

リクエストが成功すると、 200コードと、Edge Server インスタンスに関する詳細情報を含む JSON オブジェクトが返されます。

{
"id": "6622b8f5118368b943d228a9",
"created": "2024-04-19T08:51:00Z",
"name": "Edge-Store-42",
"user_id": "6622b8f5118368b943d2288a",
"status": "active",
"hostname": "ec2-13-58-70-88.us-east-2.compute.amazonaws.com",
"last_connection": "2024-04-19T09:51:00Z",
"query": {
"Item": "(store_id == \"641cb3d99e425c794ef69315\")"
},
"package_version": "v0.21.2",
"latest_package_version": "v0.22.2",
"metrics": [
{
"key": "edge_host_memory_percent",
"name": "Memory Usage",
"category": "host",
"detail": "Percentage of memory used by the edge container",
"value": 15,
"unit": "%"
},
...additional Edge Server metrics...
]
}

このレスポンス本体の詳細については、 API 仕様 を参照してください。

Edge Server の詳細で利用できる情報は、Edge Server が構成済みで Atlas に接続されているかどうか、または構成と接続がまだ保留中かどうかによって異なります。

Edge Server インスタンスがまだ Atlas に初めて接続していない場合、インスタンスのHealthステータスはPendingです。

Edge Server インスタンスがPending状態では、詳細ビューから次のアクションを実行できます。

  • インスタンスの名前を変更します。

  • インスタンスのステータスに関するアラートを確認します。

  • インスタンス ID を取得します。 これを使用して、この特定のインスタンスの権限を設定できます。

  • Edge Server コードをインストールするには、ターミナルで使用できる [ インストール ] コマンドを表示します。

  • 登録トークンを再生成します。

  • Edge Server インスタンスを削除します。

Edge Server インスタンスを正常に構成して接続すると、詳細ビューが変更され、追加情報が提供されます。

Edge Server インスタンスを Atlas に初めて接続すると、インスタンスのHealthステータスがActiveに変わります。

Edge Server インスタンスで致命的なエラーが発生した場合、そのHealthステータスはFailedに変わります。

アクティブな インスタンスまたは失敗した インスタンスに対して次のアクションを実行できます。

  • インスタンスの名前を変更します。

  • インスタンスのステータスに関するアラートを確認します。

  • 最後の接続の日時を表示します。

  • インスタンス ID を取得します。 これを使用して、この特定のインスタンスの権限を設定できます。

  • インスタンス クエリを表示します。 これにより、インスタンスと Atlas 間で同期されるデータと、クライアントがインスタンスに書込むデータが決まります。 クライアントは、権限インスタンスのクエリ内にあるデータのみを書込むことができます。 詳細については、「 Edge Server のクエリを指定する 」を参照してください。

  • Edge Server インスタンスに関するメトリクスを表示します。 詳細については、 「 Edge Server メトリクス 」を参照してください。

  • インスタンス ログを表示します。 詳細については、 「 Edge Server ログ 」を参照してください。

  • バージョン情報を表示します。 このページには、現在のバージョンと使用可能な最新バージョンが一覧表示されています。 インスタンスが利用可能な最新バージョンより 1 つ以上遅れている場合、インスタンスはFailed状態になり、アップグレードされるまで Atlas と同期できません。 詳細については、「 Edge Server バージョンのアップグレード 」を参照してください。

  • Edge Server コードをインストールするには、ターミナルで使用できる [ インストール ] コマンドを表示します。

  • 登録トークンを再生成します。

  • Edge Server インスタンスを削除します。

Atlas から個々の Edge Server インスタンスを削除できます。

1

左側のナビゲーション サイドバーでEdge Server ] オプションをクリックして、Edge Server ダッシュボードを開きます。

2

リストで削除する Edge Server インスタンスを見つけ、 View Detailsボタンをクリックします。

3

Edge Server の詳細ビューの下部にあるDeleteボタンをクリックします。

削除を確認するプロンプトが表示されます。 プロンプトに従って、Edge Server を削除するかどうかを確認します。

1

MongoDB Atlas API キー ペアを使用して、管理ユーザー認証エンドポイントを呼び出します。

curl -X POST \
https://services.cloud.mongodb.com/api/admin/v3.0/auth/providers/mongodb-cloud/login \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
"username": "<Public API Key>",
"apiKey": "<Private API Key>"
}'

認証に成功すると、レスポンス本文にはaccess_token値を持つ JSON オブジェクトが含まれます。

{
"access_token": "<access_token>",
"refresh_token": "<refresh_token>",
"user_id": "<user_id>",
"device_id": "<device_id>"
}

access_tokenは App Services Admin API へのアクセスを許可します。 すべての管理 API リクエストのAuthorizationヘッダーに Bearer トークンとして含める必要があります。

Tip

以下も参照してください。

2

すべての Edge Server インスタンスのリストを取得するには、 Admin API List Edge Serverエンドポイントを呼び出します。

Authorizationリクエストには、管理 API アクセス トークンが Bearer トークン として返される ヘッダーが含まれている必要があります。

curl -X GET \
https://services.cloud.mongodb.com/api/admin/v3.0/groups/{groupId}/apps/{appId}/edge \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <AccessToken>'

リクエストが成功すると、 200コードと、 appIdに関連付けられた各 Edge Server インスタンスの概要の詳細を含むオブジェクトの配列であるedge_serversキーが返されます。

{
"edge_servers": [
{
"id": "6622b8f5118368b943d228a9",
"created": "2024-04-19T08:51:00Z",
"name": "Edge-Store-42",
"user_id": "6622b8f5118368b943d2288a",
"status": "active",
"hostname": "ec2-13-58-70-88.us-east-2.compute.amazonaws.com",
"last_connection": "2024-04-19T09:51:00Z"
}
]
}

配列で削除する Edge Server インスタンスのidを見つけます。

3

削除する EdgeAPI インスタンスのEdge Server を指定して、 Delete をID 呼び出します。Edge Server

Authorizationリクエストには、管理 API アクセス トークンが Bearer トークン として返される ヘッダーが含まれている必要があります。

curl -X DELETE \
https://services.cloud.mongodb.com/api/admin/v3.0/groups/{groupId}/apps/{appId}/edge/{edgeServerId} \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <AccessToken>'

リクエストが成功すると、 200コードが返されます。

データモデルを更新するプロセスは、 Edge Server Service を使用しているか、Edge Server 付きの Device Sync Service を使用しているかによって異なります。

Edge Server Service を使用している場合、同期するドキュメントに変更を加えると、サービスによってスキーマ内のフィールドが自動的に更新されます。

UI を使用して手動でスキーマを更新し、それらのスキーマの変更によってスキーマ バージョンの変更がtriggerされると、古いスキーマを含むEdge Serverインスタンスが再起動し、自分自身をクリーンアップします。

以前に同期したことがない新しいコレクションを追加する場合は、新しい スキーマ を定義する必要があります。

Edge Server Service にコレクションを追加する場合は、次の内容を含むスキーマを追加する必要があります。

  • コレクション名。

  • ObjectID型である_idフィールド。

Edge Server Service は、同期するドキュメントまたはコレクション内のドキュメントの形状から他のフィールドを自動的に推論します。

スキーマを追加する方法の詳細については、「 スキーマの定義および強制 」を参照してください。

コレクションを追加した後、Edge Server インスタンスを停止して起動し、新しいコレクションの詳細を取得する必要があります。 詳細については、「 Edge Server の起動と停止 」を参照してください。

Edge Server Service を使用してドキュメント内のフィールドを変更すると、サービスによって自動的にスキーマが変更され、新しいフィールドが追加されます。

UI から行える一部の変更は、スキーマの「重大な変更」と見なされます。 「重大な」スキーマ変更が発生すると、古いスキーマを持つ Edge Server インスタンスが再起動し、自分自身を消去します。 ワイヤ プロセスにより、同期されていないデータがすべて削除されます。

重要

インスタンスを消去して再起動すると、インスタンス上のすべてのローカルの未同期データが消去されます。

そのデータが Atlas Device SDK クライアントによって書き込まれた場合、クライアント自体がデータリカバリを処理できます。 これにより、クライアントによって書き込まれたローカルの同期されていないデータが、最終的に Atlas に提供されるようになります。

MongoDB ドライバーまたは ツールによって ワイヤプロトコル を使用してデータが書き込まれた場合、同期されていないデータは回復できません。

Edge Server がパブリック プレビューから一般提供に移行する前に、このエラーが発生したときにローカル データを回復するオプションが提供されます。

どの変更のタイプが「重大」な変更と見なされるかについて詳しくは、「 重大な変更と重大でない変更のクイック リファレンス 」を参照してください。

Device Sync Service で実行されている Edge Server は、データモデルを更新するために Device Sync ルールを使用します。

「重大な」スキーマ変更が発生すると、古いスキーマを持つ Edge Server インスタンスが再起動し、自分自身を消去します。

重要

インスタンスを消去して再起動すると、インスタンス上のすべてのローカルの未同期データが消去されます。

そのデータが Atlas Device SDK クライアントによって書き込まれた場合、クライアント自体がデータリカバリを処理できます。 これにより、クライアントによって書き込まれたローカルの同期されていないデータが、最終的に Atlas に提供されるようになります。

MongoDB ドライバーまたは ツールによって ワイヤプロトコル を使用してデータが書き込まれた場合、同期されていないデータは回復できません。

Edge Server がパブリック プレビューから一般提供に移行する前に、このエラーが発生したときにローカル データを回復するオプションが提供されます。

詳しくは、 「 データモデルを更新する 」を参照してください。

いくつかの条件により、Edge Server インスタンスはFailed状態になる可能性があります。

Edge Server は Device Sync を使用して、Edge Server インスタンスと Atlas 間でデータを同期します。 Device Sync にはクライアント最大オフライン時間設定があります。

この設定はデフォルトで有効になっています。 履歴を削除して、バッキング Atlas クラスターに必要なストレージの量を減らします。 クライアントの最大オフライン時間が長いほど、同期をサポートする履歴レコードを保持するために Atlas が必要とするストレージも大きくなります。

Edge Server インスタンスがこの設定よりも長時間オフラインになると、回復不能なエラーが発生します。 インスタンスを消去して再起動する必要があります。 あるいは、 インスタンスをオンラインに戻すと、自動的に消去され再起動されます。

重要

インスタンスを消去して再起動すると、インスタンス上のすべてのローカルの未同期データが消去されます。

そのデータが Atlas Device SDK クライアントによって書き込まれた場合、クライアント自体がデータリカバリを処理できます。 これにより、クライアントによって書き込まれたローカルの同期されていないデータが、最終的に Atlas に提供されるようになります。

MongoDB ドライバーまたは ツールによって ワイヤプロトコル を使用してデータが書き込まれた場合、同期されていないデータは回復できません。

Edge Server がパブリック プレビューから一般提供に移行する前に、このエラーが発生したときにローカル データを回復するオプションが提供されます。

同期設定 でクライアントの最大オフライン時間の長さを変更できます。

重要

Edge Server オフライン制限は60日

Edge Server インスタンスは、クライアントの最大オフライン時間に設定した設定に関係なく、 60日より長くオフラインになることはできません。 設定が未設定であるか、または60日を超えている場合、Edge Server のオフライン制限は60日です。

Edge Server は、現在の最新バージョンより 1 つ以上前のメジャー バージョンより前のインスタンスをサポートしていません。 Edge Server インスタンスのバージョンがさらに遅れている場合は、 Failed状態を解決するためにインスタンスをアップグレードする必要があります。

Edge Server インスタンスのアップグレードの詳細については、「 Edge Server バージョンのアップグレード 」を参照してください。

Edge Server インスタンス トークンが再生成され、インスタンス自体の API キーを更新しない場合は、 Failed状態になる可能性があります。

Edge Server トークンの再生成後に Edge Server インスタンスの API キーを更新する方法の詳細については、「 Edge Server API キーのサイクル 」を参照してください。

Edge Server はパブリック プレビュー段階ですが、MongoDB および Atlas Device SDK の機能の全範囲はまだサポートされていません。

Edge Server は現在、時系列コレクションをサポートしていません。

Edge Server サービスを作成すると、リンクされたデータベース内のすべてのコレクションのスキーマが自動的に作成されます。 時系列コレクションを含むデータベースで Edge Server を使用しようとすると、エラーがスローされます。

このエラーを解決するには、時系列コレクションのスキーマを手動で削除する必要があります。 スキーマを削除する方法の詳細については、「 スキーマの削除 」を参照してください。

Edge Server は現在、MongoDB の集計と CRUD 操作のサブセットのみをサポートしています。 サポートされている操作のリストについては、 「Edge Server MongoDB API サポート - プレビュー」 を参照してください。

Edge Server は現在、 Data Ingest をサポートしていません。

戻る

Edge Server - Preview