Internet of Thingsプラットフォームの概要
Oracle Cloud Infrastructure (OCI) Internet of Things Platformを使用して、デバイスおよびセンサーとの間でデータをOCIに転送します。
Internet of Things Platformは、ほぼすべてのデータ・シェイプとサイズを持つデバイスが、相互に他のシステムとリアルタイムで通信できるようにします。物理デバイスまたは外部システムとの間で送受信されるデータは、正規化されたテレメトリ・データとしてデータベースに保存されます。
Internet of Thingsの仕組み
構成の概要
管理者がポリシーおよび認証を構成した後、次のステップに従ってInternet of Thingsを設定できます。
- IoTドメイン・グループを作成します。これにより、データベースが自動的にプロビジョニングされます。
- ドメイン・グループ内にIoTドメインを作成すると、データベース・スキーマがデータベースに自動的にプロビジョニングされます。
- IoTドメインで、デジタル・ツイン・リソースのインスタンス、モデル、アダプタおよび関係を作成します。
- ターゲット・ホスト、エンドポイントおよび資格証明を使用して、IoTデバイスまたはサード・パーティのクラウド・デバイスを構成します。
- サードパーティ・クラウドのデバイスまたはサーバーは、WebSocketを介して、MQTT、HTTPまたはMQTTを介してOCI Internet of Thingsプラットフォームに接続します。IoTプラットフォームを使用して、コマンドをサブスクライブおよび受信するようにデバイスを構成できます。
- ORDSまたはAPEXを使用してデータベースからIoTデータにアクセスするか、TCPS接続文字列を使用してデータベース内で直接アクセスします。または、Oracle Analytics Cloudへの接続を作成できます。
デジタルツインシナリオのサンプルコード
テレメトリ・データを収集し、コマンドラインまたはプログラミング言語を使用して双方向メッセージを送信するようにデジタル・ツインを構成するコード・サンプルおよびシナリオは、GitHubを参照してください。
概念
次の主な概念では、Internet of Things (IoT)の使用方法について説明します。
IoTドメイン・グループ
IoTドメインのコレクションを含むコンパートメント内のリソース。IoTドメイン・グループを作成すると、一意のデータ・アクセス・エンドポイントからアクセスできるデータベースが自動的にプロビジョニングされます。ドメイン・グループを作成した後、ドメイン・グループの詳細を取得してデータ・ホストを表示できます。
data-host:<domain-group-short-id>.data.iot.<region>.oci.oraclecloud.com
IoTドメイン
デジタル・ツイン・モデル、アダプタ、インスタンスおよび関係を含むすべてのデジタル・ツイン・リソースを管理するために使用できるコンパートメント内のリソース。IoTドメインは、特定のコンパートメントにあり、ドメイン・グループに関連付けられている専用データベース・スキーマに接続する一意のデバイス・エンドポイント上のデータを受信します。IoTドメインを作成した後、IoTドメインの詳細を取得してデバイス・ホストを表示できます。
device-host:<domain-short-id>.device.iot.<region>.oci.oraclecloud.com

デジタルツインモデル
デジタル・ツイン・モデルは、デジタル・ツインのセマンティクスを定義し、DTDL v3仕様に基づいています。デジタル・ツインは、デジタル・ツイン・モデル識別子(DTMI)を一意の識別子として使用します。
たとえば: dtmi:com:yourcompany:iot:example;1
デジタル ツインのアダプター
デジタル・ツイン・アダプタは、物理デバイスまたは外部システムとの間のRAWデータ・ペイロードを解釈して、デジタル・ツイン・モデルに基づく正規化されたテレメトリ・データに変換することで、データ統合を容易にします。データは、データおよびマッピングを含むJSONオブジェクトとしてデジタル・ツイン・アダプタに渡されます。
デジタルツインインスタンス
デジタル・ツイン・インスタンスは、デジタル・ツイン・モデルに基づく物理エンティティのデジタル表現です。
デジタル・ツイン関係
デジタル・ツイン関係は、別のデジタル・ツイン・インスタンスへのリンクを説明し、他のデジタル・ツイン・インスタンスとの関係のグラフを作成できます。
RAWデータ
IoTデバイスから受信したRAWデータを含むレコードのコレクション。そのようなデータには、エンドポイント、受信時間、コンテンツ・タイプおよび実際のコンテンツが含まれます。
拒否データ
IoTデバイスから受信したRAWデータを含む拒否されたレコードのコレクション。そのようなデータには、拒否理由を含むコードと詳細メッセージが含まれます。
正規化されたデータ
デジタル・ツイン・アダプタで指定されたマッピングに従って正規化されたレコードのコレクション。各レコードには、デジタル・ツイン・インスタンスのコンテンツ・パスの値と、検出された特定のタイムスタンプが含まれます。
履歴化されたデータ
デジタル・ツイン・モデルのコンテンツが履歴化用にマークされている場合、デジタル・ツイン・インスタンスの時系列データがIoTドメインごとに収集されます。
スナップショット・データ
IoTドメイン内のデジタル・ツイン・インスタンスの最後の既知の値のスナップショットが含まれます。
rawコマンド・データ
RAWデータ・コマンドは、配信ステータスなどのレスポンス詳細とともに、IoTドメインのデジタル・ツイン・インスタンスに送信されます。
非構造化データ
データはIoTプラットフォームに対して不透明であり、正規化プロセスは実行されません。
構造化データ
データの形状は、IoTプラットフォームでは、データをデータ・スナップショットのデジタル・ツイン・モデルに変換し、構成されている場合は履歴データを取得するデジタル・ツイン・アダプタとして知られています。
データのフロー
IoTデバイスおよび外部アプリケーションは、ペイロード内の非構造化RAWまたは構造化テレメトリ・データをデータベースに送信します。次の図は、IoTプラットフォームとIoTデバイスの間で双方向のデータ・フローがどのように機能するかを示しています。
- IoTデバイスから受信したデータは、そのままキュー内のRAWデータにエンキューされます。
- キュー内のRAWデータからのデータはデキューされ、RAWデータ表に挿入され、構成された保存期間のために格納されます。RAWデータ、拒否データおよびRAWコマンド・データのデフォルト値は16日で、履歴データのデフォルト値は30日です。データ保持期間を更新して、日数を増やすことができます。
- デジタル・ツイン・アダプタのマッピングの説明に従って正規化できない場合は、キュー内のRAWデータのデータがデキューされ、拒否されたデータ・キューにエンキューされます。
- 拒否されたデータ・キューからのデータはデキューされ、拒否されたデータ表に挿入され、構成された保存期間のために格納されます。
- デジタル・ツイン・アダプタ・マッピングの説明に従ってデータを正規化できる場合、キュー内のRAWデータのデータはデキューされ、正規化されたデータ・キューにエンキューされます。
- 履歴化用に指定されたコンテンツを含むデジタル・ツイン・モデルの仕様を作成すると、正規化されたデータ・キューのデータがデキューされ、履歴化されたデータ表に挿入されます。
- 正規化されたデータ・キューからのデータはデキューされ、スナップショット・データ表で最後に更新された既知の値に対応します。
- ユーザーが起動したコマンドは、rawコマンドデータテーブルに挿入されます。
- rawコマンドデータテーブルのコマンドは、rawデータ出力キューにエンキューされます。
- rawコマンド・データ・キューのコマンドはデキューされ、サブスクライブされているターゲットIoTデバイスに送信されます。
- IoTデバイスからコマンド・レスポンスを受信すると、そのままキュー内のRAWデータにエンキューされます。
- キュー内のRAWデータからのコマンド・レスポンスはデキューされ、RAWデータ表に挿入され、構成された保存期間のために格納されます。
- rawコマンドデータキューからのコマンドは、デキューされ、コマンドレコードと関連付けられ、rawコマンドデータテーブルに格納されます。
- ユーザーは、rawコマンドデータテーブルにコマンドのステータスを照会し、存在する場合はコマンド応答を取得できます。
- ユーザーは、データベース内で直接、またはOracle REST Data Services (ORDS)を使用して、任意のデータ表を問い合せることができます。
詳細は、IoTドメイン・データベース・スキーマを参照してください。
Internet of Thingsの設定
IoTドメイン・グループおよびIoTドメインを作成した後、送信および受信するタイプ・データに応じて、次の例のデバイスを接続するシナリオを検討し、次の概念をユースケースに適用してInternet of Thingsを設定します。
データの消費
IoTプラットフォームは、デジタル・ツイン・アダプタで指定されたマッピングに従って、異なるデバイスから受信したデータを正規化します。次のいずれかのオプションを使用して、データを消費します。
- APEX: データを使用してAPEXアプリケーションを構築するには、APEXへのアクセスを構成します。
- ORDS: IoTデータAPIを使用してデータを取得するためのREST APIコールを行うか、IoTデータを使用してカスタムREST APIを構築し、ORDSへのアクセスを構成します。
- 直接データベース接続: IoTドメイン・スキーマに直接問い合せるには、直接データベース接続を構成します。
- アナリティクス・クラウド: Analytics Cloudに接続して、データAnalytics Cloudへのアクセスを構成してデータセットを作成します。
IoT APEXのデータ
IoTデータベースを使用してAPEXアプリケーションを構築するには、APEXに接続するためのIoTドメインを構成する必要があります。

- APEXワークスペースの初期パスワードを設定して、IoTドメインのデータ・アクセスを構成します。
https://<data-host-from-domain-group>/ords/apexを使用してブラウザのAPEXに移動し、同じユーザー名の<domain-short-id-from-device-host>__WKSPを使用してIoTワークスペースからAPEXにログインします。- APEXで、IoTドメインの2つのIoTデータベース・スキーマにアクセスします。2つのアンダースコアに注意してください。
- デバイス・データを含む
<domain-short-id-from-device-host>__IOTへの読取り専用アクセス。 - データを操作するための
<domain-short-id-from-device-host>__WKSPへの読取りおよび書込みアクセス権。
https://<domain-group-short-id-from-data-host>.data.iot.<region>.oci.oraclecloud.com/ords/apex - デバイス・データを含む
IoT Oracle REST Data Service (ORDS)のデータ
IoTデータAPIを使用するか、ORDSを使用してIoTデータでカスタムREST APIを構築するIoTデータベースからデータを取得するAPIコールを行うには、Oracle RESTデータ・サービス(ORDS)にアクセスするためのIoTドメインの構成が必要です。

- ユーザーは、アイデンティティ・ドメインに統合機密アプリケーションを作成し、プライマリ・オーディエンスを
<domain-group-short-id>に設定し、スコープをiot/<domain-short-id-from-device-host>に設定します。 - ユーザーは、アイデンティティ・ドメインのホスト情報を使用してIoTドメインへのデータ・アクセスを構成するため、データ・ホストはアクセス・トークンを検証して、IoTデータAPIへのORDSアクセスを提供できます。
- ユーザーは、クライアントIDを付与するパスワード、およびスコープが
‘<domain-group-short-id>/iot/<domain-short-id-from-device-host>’に設定されている資格証明を含む統合アプリケーションのシークレットを使用してアクセス・トークンを取得します - ユーザーは、前のステップのoAuthトークンを使用して、データ・ホスト上のORDSを使用してIoTデータAPIを起動します。
https://<domain-group-short-id>.data.iot.<region>.oci.oraclecloud.com/ords/20250531/<domain-short-id-from-device-host>Internet of ThingsデータAPIエンドポイント
GETをサポートして、デバイスまたはIDを持つ特定のデータからすべてのデータを取得します。 https://<iot-domain-group-short-id>.data.iot.<region>.oci.oraclecloud.com/ords/<iot-domain-short-id>/20250531IoTデータベース内のデータ
データベースでIoTデータを直接操作するには、データベースに直接アクセスするためのIoTドメインの構成が必要です。

前述の図とこれらのステップでは、直接データベース接続の構成の概要を説明します。
- ユーザーは、仮想クラウド・ネットワーク(VCN)のOCIDを取得して、データ・ホストへの直接データベース接続を許可リストに登録します。
- ユーザーは、データ・ホストへの直接データベース接続のためにVCN OCIDを許可リストするように、IoTドメイン・グループのデータ・アクセスを構成します。
- ユーザーは、IoTドメイン・データへのアクセスを許可するために必要なグループまたは動的グループを取得します。
- ユーザーは、IoTドメインのデータ・アクセスを構成して、グループまたは動的グループがIoTドメイン・データにアクセスできるようにします。
- 許可リストに登録されたVCNにある仮想マシンで実行されているユーザーとアプリケーションの両方が、
db-token-scopeを使用して、Identity and Access Management (IAM)サービスからdb-tokenを取得できます。 - ユーザーとアプリケーションの両方が、
db-connection-stringおよびOCIトークンを使用してIoTドメイン・データを問い合せることで、データ・ホストへの接続を確立できます。データベース・スキーマ:
<domain-short-id-from-device-host>__IOTデータ・エンドポイント
data-host:<domain-group-short-id>.data.iot.<region>.oci.oraclecloud.com
IoT Analytics Cloudのデータ
Oracle Cloud Analyticsを使用して、IoTデータに対して分析を実行します。これを行うには、Oracle Analytics CloudでIoTデータを表示するためのアクセス権を構成する必要があります。

前述の図に示すように、Analytics CloudのIoTデータへのアクセスを設定するステップの概要:
Oracle Analytics Cloudへの接続を構成するステップの完全なリストは、シナリオ: IoTデータのAnalytics Cloudへの接続を参照してください
- ユーザーは、VCNのOCIDを取得して、データ・ホストへの許可リスト直接データベース接続を行います。
- ユーザーは、データ・ホストへの直接データベース接続のためにVCN OCIDを許可リストするように、IoTドメイン・グループのデータ・アクセスを構成します。
- ユーザーは、IoTドメイン・データへのアクセスを許可するために必要なグループを取得します。
- ユーザーは、IoTドメインのデータ・アクセスを構成して、Oracle Analytics Cloudからのユーザー・ロギングのデータベース・パスワードの設定など、グループがIoTドメイン・データにアクセスできるようにします。
- ユーザーは、IoTデータ・ホストからデータを分析するためにOracle Analytics Cloudインスタンスを作成します。
- ユーザーは、プライベート・アクセス・チャネルと、パブリック・データ・ホスト名を指すDNSゾーン(許可リストされたVCN内のサブネット内の
adb.<region>oraclecloud.comなど)を使用してOracle Analytics Cloudインスタンスを構成します。 - ユーザーは、接続文字列を使用してOracle Analytics CloudインスタンスにAutonomous Transaction Processing (ATP)接続を作成します。
- ユーザーは、この接続を使用してOracle Analytics Cloudでデータセットを作成できるようになりました。
- Oracle Analytics Cloudは、サービス・ゲートウェイを介してプライベート・アクセス・チャネルを使用してデータ・ホストを問い合せます。
Oracle Cloud Infrastructureへのアクセス方法
Oracle Cloud Infrastructure (OCI)には、コンソール(ブラウザベースのインタフェース)、REST APIまたはOCI CLIを使用することによってアクセスできます。使用可能なSDKのリストについては、ソフトウェア開発キットとコマンドライン・インタフェースを参照してください。
このリリースのOCI IoTプラットフォームでは、コンソールを使用してIoTドメインおよびIoTドメイン・グループを操作し、すべてのリソースにAPIおよびCLIを使用できます。
コンソールの使用
- サポートされているブラウザを使用して、コンソールのサインイン・ページに移動します:
IoTプラットフォームは、次のリージョンで使用できます。https://cloud.oracle.comeu-frankfurt-1uk-london-1us-ashburn-1us-phoenix-1sp-saopaulo-1us-sanjose-1
- クラウド・テナント、ユーザー名およびパスワードを入力します。
- ナビゲーション・メニューを開き、「開発者サービス」を選択し、「Internet of Things」で「ドメイン」または「ドメイン・グループ」を選択します。
APIの使用
クラウド・シェルまたは別のツールを使用して、次のサポートされているリージョンでこれらのエンドポイントを使用してInternet of Things REST APIにアクセスします。詳細は、REST APIの使用を参照してください。
https://iot.eu-frankfurt-1.oci.oraclecloud.comhttps://iot.uk-london-1.oci.oraclecloud.comhttps://iot.us-ashburn-1.oci.oraclecloud.comhttps://iot.us-phoenix-1.oci.oraclecloud.comhttps://iot.sp-saopaulo-1.oci.oraclecloud.comhttps://iot.us-sanjose-1.oci.oraclecloud.com
CLIの使用
CLIを使用してInternet of Thingsプラットフォームにアクセスするには、Internet of Thingsコマンドライン・リファレンスを使用します。
デバイス・エンドポイント
デバイス・エンドポイントは、デバイスがデータを送受信するURLです。各エンドポイントは特定のリージョンにリンクされており、そのリージョンに固有のAPIキー、ボールト・シークレットまたは証明書を使用した認証が必要です。セキュリティのため、すべてのIoTリソースが同じリージョンに存在する必要があります。
IoTドメインを作成した後、IoTドメインの詳細を取得してデバイス・ホストを表示できます。
- メッセージの受信: IoTデバイスはイベントを生成します。イベントは、ハートビートやイベントがエラーを報告するなどの操作の通常の部分である可能性があります。
- メッセージの送信: デバイス・エンドポイントにコマンドを送信します。
device-host:<domain-short-id>.device.iot.<region>.oci.oraclecloud.com次の図およびステップは、IoTデバイス・アクセスおよび双方向フローがどのように機能するかを示しています。

- デバイス1は、MQTTおよび基本認証を使用して、IoTプラットフォームにテレメトリを公開します。
- サードパーティ・クラウドのデバイスまたはセンサーは、基本認証を使用して、HTTPを使用してテレメトリをIoTプラットフォームにポストできます。
- オンプレミスであるデバイス2は、プロキシを持つファイアウォールの背後で、mTLS認証に基づくクライアント証明書を使用して、WebSocket上のMQTTを使用してIoTプラットフォームにテレメトリを公開します。
- デバイス3は、IoTプラットフォームからコマンドを受信するトピックをサブスクライブします。
- ユーザーは、IoTプラットフォームに、リクエストを送信するデバイスと場所の詳細、および構成されている場合はデバイスからの応答を受信するタイミングと場所を指定してコマンドを送信します。
- IoTプラットフォームは、サブスクライブしているトピックのデバイス3にリクエストを公開します。
- デバイス3はオプションで、構成されている場合、IoTプラットフォームへのレスポンスを公開します。
前提条件
組織の管理者は、どのユーザーがどのタスク、リソース、およびどのアクセスのタイプにアクセスできるかを制御するグループ、コンパートメントおよびポリシーを設定する必要があります。詳細は、アイデンティティおよびアクセス管理の概要、アイデンティティ・ドメインの管理およびポリシーの作成を参照してください。
管理者の場合:
ユーザー・ポリシーは、新しいIoTドメイン、IoTドメイン・グループを作成できるユーザー、およびデジタル・ツイン・リソースを作成および管理できるユーザーを制御します。IoTポリシーの詳細は、Internet of Things (IoT)プラットフォームのポリシー詳細を参照してください。
たとえば、このポリシーにより、ユーザー・グループは特定のコンパートメント内のIoTリソースを管理できます:
Allow group <group-name> to manage iot-family in compartment <your-compartment-name>- IoTドメインを作成する場合、IoTドメインに関連付けるIoTドメイン・グループへの読取りアクセス権が必要です。
デバイス・データを収集するデジタル・ツイン・インスタンスを作成する場合、認証には証明書またはシークレットが必要です。IoTドメインと同じリージョンおよびデバイスに関連付けられたデジタル・ツイン・リソースに、シークレットを作成するか、証明書を作成します。
IoTプラットフォームがボールト・シークレットおよび証明書にアクセスしてIoTデバイスを認証できるようにするには、テナンシに次のポリシーを追加します。
<vault-OCID>を、デジタル・ツイン・インスタンス・シークレットのボールトOCIDに置き換えます。<compartment-name>値を、シークレットまたは証明書が存在するコンパートメント名またはテナンシに置き換えます。Allow any-user to {SECRET_BUNDLE_READ, SECRET_READ} in compartment <compartment-name> where ALL {request.principal.type = 'iotdomain', target.vault.id = '<vault-OCID>'} Allow any-user to {CERTIFICATE_BUNDLE_READ, CERTIFICATE_READ} in compartment <compartment-name> where request.principal.type = 'iotdomain' Allow any-user to {CERTIFICATE_AUTHORITY_BUNDLE_READ, CERTIFICATE_AUTHORITY_READ} in compartment <compartment-name> where request.principal.type = 'iotdomain' Allow any-user to {CABUNDLE_READ} in compartment <compartment-name> where request.principal.type = 'iotdomain'- IoTドメイン・グループのデータ・アクセスを構成する場合、ユーザーは、VCNまたはVCNsへの読取りアクセスを許可するようにこのポリシーを構成する必要があります。管理者は、この
request.principal.typeを使用してポリシーを作成し、IoTドメイン・グループで作業しているすべてのユーザーが、特定のコンパートメント内のVCNまたはVCNsへの読取りアクセスを許可する必要があります。このポリシーは、IoTドメイン・グループのデータ・アクセスを構成するために必要なアクセスを提供します。Allow any-user to {VCN_READ} in compartment <compartment-name> where request.principal.type = 'iotdomain'
ユーザーの場合: OCIリソースを使用する必要がある管理者以外のユーザーである場合は、管理者に連絡してユーザーIDを設定してください。管理者は、ユーザーが使用できるコンパートメントを確認できます。管理者がポリシーを構成した後、権限に応じてIoTリソースにアクセスして操作できます。
認証
- REST APIおよび署名リクエストを使用するには、API署名キーを設定して認証します。
- 開発者は、Internet of Things Platform APIおよびSDKを使用して、OCIサービスおよびリソースを操作および管理します。SDKsを使用するには、コンピュート・インスタンスにアクセスするようにインスタンスSSHキーを構成します。
- CLIコマンドを使用するには、Internet of Thingsコマンドライン・リファレンスを参照してください。
リソース識別子
ほとんどのタイプのOracle Cloud Infrastructureリソースには、Oracle Cloud ID (OCID)と呼ばれる、Oracleによって割り当てられた一意の識別子があります。OCIDのフォーマットおよびリソースを識別するその他の方法の詳細は、リソース識別子およびOracle Cloud Infrastructure IDの検索を参照してください、
IoTリソースの制限
次のIoTリソース制限はリージョナルです。
Oracleでは、各IoTドメイン・グループで最大2つのIoTドメインの作成が制限されています。IoTドメイン・グループの最大数は5で、IoTドメインの最大数はテナンシのリージョン当たり10です。
| リソース | 制限名 | Oracle Universal Credits | Pay As You Go |
|---|---|---|---|
| IoTドメイン・グループの最大数。 | iot-domain-group-count | 5 | 5 有料IoTドメイン・グループの制限を引き上げる特例をリクエストする場合は、お問合せください。 |
| IoTドメインの最大数。 | iot-domain-count | 10 | 10 有料IoTドメインの制限を引き上げます特例をリクエストする場合は、お問合せください。 |
該当する制限のリストおよび制限の引上げをリクエストする手順については、サービス制限を参照してください。
サービスの制限
次のサービス制限はリージョナルです。
| スコープ | 限度摘要 | 値 |
|---|---|---|
| IoTドメイン・グループ | 許可リストに登録されたVCNsの最大数。 | 5 VCN |
| IoTドメイン | 許可リストに登録されたアイデンティティ(IAM)ドメイン・グループ名の最大数。 | 5つのIAMドメイン・グループ名 |
| IoTドメイン | RAW、拒否、正規化およびコマンド・データの最小保存期間(日数)。 | 16日間 |
| デジタルツインアダプター | インバウンド・ルートの最大数。 | 128インバウンドルート |
| デバイスからIoTサービスに送信されるペイロードの最大サイズ。 | ポスト/パブ | 256 KB |
| IoTサービスからデバイスに送信されるペイロードの最大サイズ。 | RAWコマンド | 4 KB |
| パブリック・キューの最大保存期間。 | キュー | 24時間 |
Internet of Thingsの保護
通常、Oracleはクラウド・インフラストラクチャおよび操作のセキュリティ(クラウド・オペレータのアクセス制御やインフラストラクチャ・セキュリティ・パッチ適用など)を提供します。クラウド・リソースをセキュアに構成する責任はユーザーにあります。クラウドのセキュリティは、ユーザーとOracleの共同責任です。
- 物理的なセキュリティ: Oracleは、Oracle Cloud Infrastructureで提供されるすべてのサービスを実行するグローバル・インフラストラクチャを保護する責任を負います。このインフラストラクチャは、Oracle Cloud Infrastructureサービスを実行するハードウェア、ソフトウェア、ネットワーキングおよび設備で構成されます。
- アクセス制御: 権限を可能なかぎり制限します。ユーザーには、作業を実行するために必要なアクセス権のみを付与する必要があります。
- 物理セキュリティ: オンプレミスのInternet of Thingsデバイスへのアクセスを制限します。