以前のバージョンのパブリックインスタンスでは、リソース仕様のスペックアップはサポートされなくなりました。この問題を解決するために、IoT Platform はインスタンス移行機能を提供しています。この機能を使用すると、以前のバージョンのパブリックインスタンスから、同じアカウントに属し、同じリージョンにある 標準 Enterprise Edition インスタンスに、メッセージ転送機能のプロダクト、デバイス、およびデータを移行できます。これにより、移行の影響とシステム変換コストを削減できます。このトピックでは、インスタンス移行機能の使用方法と関連する使用上の注意について説明します。
制限
以前のバージョンのパブリックインスタンスから 標準 Enterprise Edition インスタンスにのみデータを移行できます。詳細については、「概要」をご参照ください。
項目 | 説明 | 制限 |
デバイス分散および移行タスクの最大同時実行数 | 同時に実行できるデバイス分散および移行タスクの最大数。 説明 IoT Platform では、デバイス分散機能が有効になっているデバイスを Enterprise Edition インスタンスに移行できます。詳細については、「デバイスを分散する」をご参照ください。 | 5 |
オンラインデバイスの最小数 | オンラインで、移行先 Enterprise Edition インスタンスに接続されているデバイスの最小数。 | この項目の値は、移行するデバイスの数よりも大きい必要があります。 |
移行先 Enterprise Edition インスタンス |
| 1 |
デバイスの最大数 | プロダクトから移行できるデバイスの最大数。 説明 ビジネス要件に基づいて制限を増やす場合は、チケットを送信するしてください。 | 500,000 |
移行に関する注意事項
パブリックインスタンスのデータを移行する前に、以下の項目に注意してください。これは、移行がビジネスに及ぼす可能性のある影響を評価するのに役立ちます。
移行されるデータ
パブリックインスタンスのデータを移行すると、IoT Platform はパブリックインスタンスのプロダクト、デバイス、およびメッセージ転送データを自動的に同期します。次の表は、移行されるデータについて説明しています。
項目
移行されるデータ
使用上の注意
プロダクト
プロダクト情報:ProductKey、プロダクト名、ノードタイプ、およびカテゴリ。
機能:プロパティ、サービス、イベント、TSL (Thing Specification Language) モデル拡張機能、および TSL モデルのドラフト。
スクリプト:データ解析スクリプトとデータ解析スクリプトのドラフト。
デバイスごとの一意の証明書検証方法と、事前登録されたプロダクトごとの一意の証明書検証方法をサポートするプロダクトとデバイスを移行できます。
サブデバイスを移行する場合、サブデバイスと関連ゲートウェイ間のトポロジ関係は変更されません。サブデバイスを移行した後、サブデバイスは想定どおりに IoT Platform に接続できます。ゲートウェイまたは接続されているサブデバイスを移行する場合は、ゲートウェイとサブデバイスを同時に Enterprise Edition インスタンスに移行する必要があります。
承認済みプロダクトとデバイスは移行できません。承認機能は、Enterprise Edition インスタンスのプロダクトとデバイスでは使用できません。
データサービスがアクティブになっているプロダクトとデバイスは移行できません。
LinkVisual がアクティブになっているプロダクトとデバイスは移行できません。
Link IoT Edge と IoT Platform for Daily Life に同時に接続されているプロダクトとデバイスは移行できません。
移行後、プロダクト TSL 検証タイプは変更されません。
移行後、システムは以前のバージョンのパブリックインスタンスの元のデータを保持します。誤操作によるデータ損失を防ぐために、インスタンス移行タスクが完了し、ビジネスが想定どおりに実行された後に、元のデータを削除することをお勧めします。
デバイス
デバイス情報:デバイス証明書情報。各デバイス証明書がグローバルに一意であることを確認してください。
デバイスデータ:TSL プロパティ、イベント、およびサービスのデータ。
重要インスタンスの分散デバイスは移行できません。
移行するデバイスでは、再接続機能を有効にする必要があります。関連する Link SDK を構成してデバイスを IoT Platform に接続し、デバイスが IoT Platform と想定どおりに通信できることを確認する必要があります。
説明IoT Platform が提供する Link SDK を使用してデバイスを開発する場合、デバイスは Enterprise Edition インスタンスに自動的に接続されます。デバイスのエンドポイントを変更する必要はありません。Link SDK の詳細については、「Link SDK を使用したデバイス接続」をご参照ください。
IoT Platform が提供する Link SDK を使用しない場合は、デバイスのエンドポイントを変更し、デバイスの再接続ロジックを開発する必要があります。
移行中にデバイスが IoT Platform に接続されている場合、デバイスは IoT Platform から強制的に切断されます。
移行後、システムは移行されたデバイスを以前のバージョンのパブリックインスタンスから削除します。関連する Link SDK を変更する必要はありません。デバイスは、移行先の Enterprise Edition インスタンスに接続し、想定どおりにインスタンスと通信できます。
ホワイトリストに登録されているユーザーのみが、IoT デバイス ID を使用して検証されたデバイスを移行できます。チケットを送信するして、ホワイトリスト権限を申請できます。IoT デバイス ID の詳細については、「IoT デバイス ID を使用してデバイスを検証する」をご参照ください。
デバイスの TSL データを移行する場合は、次の項目に注意してください。
デフォルトでは、データ同期機能は無効になっています。移行タスクを作成した後、データ同期機能を有効にします。これにより、移行中にビジネスが影響を受けないようにします。
データ同期機能を有効にすると、システムは、移行対象プロダクトのデバイスから送信されたデータを、1 分以内にパブリックインスタンスから移行先の Enterprise Edition に同期します。データ同期は、最長 30 日間有効です。
デバイスのデータ同期機能を有効または無効にすることができます。データ同期機能を有効にした場合、システムは機能を有効にしてから 30 日後に自動的に機能を無効にします。データ同期機能を無効にする前に、インスタンスの移行が完了していることを確認してください。これにより、ビジネスへの影響を防ぎます。
システムは一方向のデータ同期を実行します。移行するプロダクトのデバイスから送信されたデータは、パブリックインスタンスから移行先の Enterprise Edition にのみ同期されます。
データ同期機能が有効になっているときに、Enterprise Edition インスタンスからパブリックインスタンスにデバイスをロールバックする場合、デバイスデータはロールバックされません。デバイスを Enterprise Edition インスタンスに再移行する場合は、Enterprise Edition のデータが完全であることを確認してください。パブリックインスタンスのデータは完全ではない可能性があります。
メッセージ転送
サーバー側サブスクリプション:AMQP (Advanced Message Queuing Protocol) および MNS (Message Service) サーバー側サブスクリプションとサブスクリプション関係の構成。
データ転送:SQL 文、データソース、データの宛先、およびデータ解析スクリプトを含むデータ転送ルール。データの宛先は、ApsaraMQ for RocketMQ、時系列データベース、ApsaraDB RDS、および Function Compute にすることができます。
コンシューマーグループ:コンシューマーグループ情報。移行後、システムはコンシューマーグループを作成し、コンシューマーグループの新しい ID を生成します。
移行後、システムは以前のバージョンのパブリックインスタンスの元のデータを保持します。誤操作によるデータ損失を防ぐために、インスタンス移行タスクが完了し、ビジネスが想定どおりに実行された後に、元のデータを削除することをお勧めします。
AMQP サーバー側サブスクリプションが構成されているか、データが AMQP コンシューマーグループに転送される場合は、2 つの AMQP クライアントを起動する必要があります。AMQP クライアントは、パブリックインスタンスと Enterprise Edition インスタンスから同時にデータを受信できます。これにより、データ損失を防ぐことができます。
クライアントは、HTTP/2 サブスクリプションを使用して Enterprise Edition インスタンスにアクセスできません。移行タスクが完了したら、ソースパブリックインスタンスの HTTP/2 サーバー側サブスクリプションを AMQP サーバー側サブスクリプションに変更することをお勧めします。
機能:
デバイスが Enterprise Edition インスタンスに移行された後、想定どおりにデバイスの構成を使用できます。より多くの機能を使用する場合は、Enterprise Edition インスタンスで機能を構成できます。機能の使用方法の詳細については、「移行後の機能の使用上の注意」をご参照ください。
課金:
デバイスが Enterprise Edition インスタンスに移行された後、メッセージング、接続時間、および OTA (Over-The-Air) アップデートに対して課金されなくなります。
始める前に
上記の移行に関する注意事項を読んだ後、インスタンスを移行する前に、ビジネスへの影響を評価し、業務システムを変換する必要があります。これにより、移行されたデバイスが IoT Platform と想定どおりに通信できるようになります。
項目 | 評価と処理 | 参照 |
プロダクトとデバイス | 移行するプロダクトとデバイスが移行要件を満たしているかどうかを確認します。プロダクトとデバイスの移行に関する注意事項については、このトピックの移行に関する注意事項セクションの 使用上の注意 列の内容を参照してください。移行に関する注意事項 | なし |
AMQP サーバー側サブスクリプション | AMQP サーバー側サブスクリプションが構成されているか、データが AMQP コンシューマーグループに転送されるかどうかを確認します。 パブリックインスタンスで AMQP サーバー側サブスクリプションが構成されているか、データが AMQP コンシューマーグループに転送される場合は、Enterprise Edition インスタンスの ID と移行後のエンドポイントをコピーし、新しい AMQP クライアントを構成してから、SDK を使用して新しいクライアントを IoT Platform に接続する必要があります。段階的移行が完了したら、新しいコンシューマーグループ ID をコピーし、新しい AMQP クライアントを起動する必要があります。 | |
データ転送 | パブリックインスタンスのデータ転送ルールを構成します。
| |
OTA アップデート | 移行するプロダクトのデバイスで OTA アップデートタスクが実行されているかどうかを確認します。 OTA アップデートタスクが実行されている場合は、OTA アップデートタスクを停止します。OTA アップデートタスクを停止しないと、インスタンスの移行中に OTA アップデートタスクが失敗し、OTA アップデートタスクに対して継続的に課金される可能性があります。 | |
IoT Platform API 操作の呼び出し | 移行されたデバイスが IoT Platform API 操作を呼び出すように構成されているかどうかを確認します。 移行されたデバイスが IoT Platform API 操作を呼び出すことができる場合は、操作のリクエストパラメータを変更して、Enterprise Edition インスタンスの ID を指定する必要があります。 ビジネス要件に基づいてアプリケーションを開発するか、サーバーを構成する必要があります。IoT Platform API 操作を呼び出す前に、データベースのすべてのテーブルをクエリして、Enterprise Edition インスタンスの ID を取得する必要があります。次に、IotInstanceId パラメータを Enterprise Edition インスタンスの ID に設定し、API 操作を呼び出します。 サービスの構成方法の詳細については、「インスタンス移行に関連するサーバーの構成例」をご参照ください。 |
インスタンス移行プロセス

インスタンス移行プロセスは、前の図に示されている 4 つのステップで構成されています。
ステップ | 説明 |
ビジネスを評価する | インスタンスを移行する前に、ビジネスへの影響を評価する必要があります。詳細については、このトピックの 移行に関する注意事項 セクションを参照してください。 |
システムを変換する | ビジネス評価の結果に基づいてシステムを変換します。これにより、パブリックインスタンスと Enterprise Edition インスタンスのデバイスに関連するビジネスが想定どおりに実行されるようになります。ビジネスには、次の項目が含まれます。
警告
詳細については、このトピックの 始める前に セクションを参照してください。 |
インスタンスのデータを移行する | IoT Platform コンソールで、特定のプロダクトのデータを移行するための移行タスクを作成します。詳細については、このトピックの 移行手順 セクションを参照してください。 |
IoT Platform API 操作の対象オブジェクトを変更する | 完全移行が完了したら、ビジネスのステータスと移行結果を確認します。呼び出したい IoT Platform API 操作が、移行先の Enterprise Edition インスタンスで有効になっていることを確認してください。 移行対象デバイスの転送データのサブスクライブをお勧めします。デバイスの移行後、システムは、デバイスが属するインスタンスの ID を、システムデータベースの対応するテーブルにある Enterprise Edition インスタンスの ID に変更します。IoT Platform API 操作を呼び出すと、システムはテーブルをクエリして Enterprise Edition インスタンスの ID を取得し、IotInstanceId パラメーターを Enterprise Edition インスタンスの ID に設定してから、操作を呼び出します。 |
移行手順
ステップ 1:移行タスクを作成する: 特定のプロダクトの移行タスクを作成します。
重要インスタンスの移行中にビジネスへの影響がないように、移行タスクの作成後にデータ同期機能を有効にすることができます。この方法では、移行元のプロダクトのデバイスから送信されたデータがパブリックインスタンスから移行先の Enterprise Edition に同期されます。詳細については、「プロシージャ」トピックのオプション: データ同期を有効にするセクションをご参照ください。
ステップ 2:段階的な移行を実行する: プロダクトとメッセージ転送機能のデータが順番にコピーされ、デバイスデータが段階的に移行されます。
警告AMQP サーバー側サブスクリプションが設定されている場合、またはデータが AMQP 使用者グループに転送される場合は、新しい使用者グループ ID をコピーし、SDK を使用して新しい AMQP クライアントを IoT Platform に接続して、段階的な移行後にデータを受信する必要があります。
完全移行を実行する前に、移行タスクがビジネスに影響を与えないことを確認してください。
ステップ 3:完全移行を実行する: プロダクトのすべてのデータをクエリし、すべてのデバイスのデータを移行します。
警告システムが変換され、リリースされていることを確認してください。たとえば、呼び出す IoT Platform API 操作のリクエストパラメータの値として Enterprise Edition インスタンスの ID を指定し、AMQP クライアントの接続に使用する SDK の使用者グループ ID を更新する必要があります。詳細については、このトピックの始める前にセクションをご参照ください。
完全移行が完了したら、ビジネスのステータスと移行結果を確認します。呼び出す IoT Platform API 操作が有効になるオブジェクトが Enterprise Edition インスタンスに変更されていることを確認してください。
オプション: 移行タスクをロールバックする: 移行タスクが失敗した場合、またはエラーが発生した場合は、デバイス証明書情報と TSL データを含むすべてのデバイスデータをパブリックインスタンスにロールバックできます。これにより、デバイスは想定どおりに動作できます。この手順では、移行されたサーバー側サブスクリプションと、移行先の Enterprise Edition インスタンス上のメッセージ転送機能のデータは削除されません。
参考資料
FAQ
移行前
旧バージョンのパブリックインスタンスを Enterprise Edition インスタンスに移行する際に注意すべき点はありますか?
Enterprise Edition インスタンスに移行された旧バージョンのパブリックインスタンスは、Enterprise Edition インスタンスの仕様を占有しますか?
旧バージョンの IoT Platform パブリックインスタンスを、アカウントを跨いで Enterprise Edition インスタンスに移行できますか?
旧バージョンの IoT Platform パブリックインスタンスを Enterprise Edition インスタンスに移行する際に、OTA アップデートパッケージを移行できますか?
旧バージョンのパブリックインスタンスから Enterprise Edition インスタンスに、承認済みのプロダクトとデバイスを移行できますか?
旧バージョンのパブリックインスタンスを、任意のタイプの Enterprise Edition インスタンスに移行できますか?
旧バージョンのパブリックインスタンスを、リージョンとアカウントを跨いで Enterprise Edition インスタンスに移行できますか?