Soracom

Users

ドキュメント
Home ドキュメント SORACOM Funnel はじめに

SORACOM Funnel の特徴

Funnel は、デバイスから SORACOM (具体的には、Unified Endpoint や Funnel のエントリポイント) に送信されたリクエストを、エントリポイントの設定 に従って、主要なクラウドベンダーのサービスや SORACOM パートナースペースの認定済パートナー が提供する各種ソリューション (以下、転送先サービス) に転送するサービスです。

アダプター

クラウドサービスにデータを送信する場合、クラウドサービス専用の SDK などをデバイスにインストールして利用することがあります。Funnel を利用すると、転送先サービスにあわせた複雑な処理は、Funnel のアダプターで行われます。SDK などをデバイスにインストールしたり、デバイスで転送先サービスにあわせた実装を行う必要はありません。

アダプターは、デバイスが TCP や UDP、HTTP などのプロトコルでデータを送信した際、転送先サービスの仕様にあわせて認証などの複雑な処理を担当します。

たとえば、AWS IoT Core を利用する際は、Funnel を使わない場合はデバイスごとに証明書を発行・管理して MQTTS によるクライアント認証を行います。

一方で、Funnel の AWS IoT アダプターを利用すると、Funnel が対応するプロトコルで Funnel のエントリポイント または Unified Endpoint にデータを送信するだけで、AWS IoT Core にデータを転送できます。

Funnel のアダプターは、大きく 2 種類に分類できます。

種類説明
Soracom Hosted Adapter

ソラコムが開発しているアダプターです。各種パブリッククラウドへデータを転送できます。主に、同じパブリッククラウドの別のサービスにデータを転送する用途で利用されます。

利用できるアダプターは以下のとおりです。

項目説明
Amazon Kinesis Data StreamsAmazon Kinesis Data Streams にデータを転送できます。Amazon Kinesis Data Streams は、フルマネージドでスケーラブルなリアルタイムデータ処理基盤であり、大規模なデータを扱う IoT システムには欠かせません。デバイスが送信したデータは、Amazon EC2 などで動作するアプリケーションで処理したり、AWS Lambda で処理したりできます。
Amazon Data Firehose

Amazon Data Firehose にデータを転送できます。Amazon Data Firehose を利用すると、デバイスが送信したデータを Amazon S3Amazon RedshiftAmazon OpenSearch Service などに保存できます。また、AWS Lambda を組み合わせると、センサーデータに対して何らかの処理をしてから保存することもできます。

詳しくは、Amazon Data Firehose アダプターを使用する を参照してください。

AWS IoTAWS IoT Core にデータを転送できます。AWS IoT Core を利用すると、デバイスが送信したデータを AWS の IoT 関連サービスの核となるメッセージブローカーへパブリッシュできます。AWS IoT Core から先は、ルールエンジンを使って Amazon SNSAWS LambdaAmazon DynamoDB など、さまざまなサービスに転送できます。Funnel から AWS IoT Core に転送する際は、アクセスキー認証による HTTPS 通信を利用します。
Microsoft Azure Event HubsMicrosoft Azure の Event Hubs にデータを転送できます。Event Hubs によって収集されたデータを、Azure Stream AnalyticsAzure Databricks などで処理する、リアルタイムデータパイプラインを構成できます。
Google Cloud Pub/SubGoogle Cloud の Pub/Sub に、データをメッセージとして転送できます。転送されたメッセージは、Compute EngineCloud Dataflow など Google Cloud の各種サービスと連携し、BigQuery でのデータ解析などが行えます。
デバイス宛の通信 (下り通信) が必要な場合は Beam を利用してください

Funnel はデータをパブリッククラウドにアップロードする機能に特化しており、デバイス宛の通信 (下り通信) には対応していません。たとえば、AWS IoT の Thing Shadow 機能を使う場合には、Beam を利用して AWS IoT と接続 してください。また、送信されたデータの処理結果をすぐに知りたい場合や、デバイス自体が再送を行いたい場合にも、同様に Beam を利用してください。

Partner Hosted AdapterSORACOM パートナースペース (SPS) の認定パートナー各社が開発しているアダプターです。主に、認定パートナーが提供するサービスにデータを転送する用途で利用されます。詳細は、認定パートナー各社にお問い合わせください。

Funnel の主な特徴

特徴説明Beam、Funk、Funnel の主な違い
想定される転送先

主要なクラウドベンダーのサービスや SORACOM パートナースペースの認定済パートナー が提供する各種ソリューションに転送できます。

また、1 つのグループ設定には転送先を 1 つだけ設定できます。

  • Beam は、任意のサーバーを指定できます。また、1 つのグループ設定に複数の転送先を設定できます。
  • Funk は、関数 (Function) を指定できます。また、1 つのグループ設定には転送先を 1 つだけ設定できます。
  • Funnel は、アダプターが用意された転送先サービスに転送できます。また、1 つのグループ設定には転送先を 1 つだけ設定できます。
Funnel を利用できるデバイス

以下のサービスを利用したデバイスから利用できます。

  • SORACOM Air for セルラー (IoT SIM)
  • SORACOM Arc (バーチャル SIM/Subscriber)
  • SORACOM Air for LoRaWAN
  • SORACOM Air for Sigfox
  • SORACOM Inventory
なし
通信経路の暗号化
  • デバイスと Funnel のエントリポイントの間の通信経路は、通信キャリアの閉域網でデータが送信されるため、暗号化されていない HTTP などを利用しても安全です。
  • デバイスから転送先のサービスに安全にデータを送信する場合、Funnel で TLS 暗号化処理を行えば、デバイスでの TLS 暗号化処理が省略できます。
    • 暗号化のための認証情報は、デバイスではなく 認証情報ストア で保管できます。
Funnel を利用しない方法や Funnel で TLS 暗号化処理を行わない場合はデバイスで TLS 暗号化処理を行う必要があります

デバイスで TLS 暗号化処理を行うには、認証情報 (クライアント証明書など) も、あらかじめデバイスに保管する必要があります。

Funnel が対応する TLS バージョンは 1.2 です

クラウドサービスでは、TLS 1.2 に対応するように設定してください。たとえば、AWS IoT Core に送信する場合は、AWS IoT Core の [セキュリティポリシーを選択] では、TLS 1.2 に対応するセキュリティポリシーを選択してください。たとえば、「IoTSecurityPolicy_TLS13_1_2_2022_10」は TLS 1.2 に対応しています。

なし
プロトコル変換転送先サービスにあわせてデータを送信できないデバイスからの通信を、転送先サービスの仕様にあわせて送信できます。たとえば、TCP や UDP から、HTTPS に変換できます。
  • Beam と Funk は、SORACOM でプロトコル変換を行います。
  • Funnel は、アダプターがプロトコル変換を行います。
接続先の切り替え

PoC フェーズと Production フェーズで、処理結果の送信先が異なる場合でも、デバイスの設定を変更する必要はありません。

デバイスからは、Funnel のエントリポイント または Unified Endpoint にデータを送信します。転送先サービスや認証情報、転送時のパラメータは、デバイスが手元になくても SORACOM ユーザーコンソールや SORACOM CLI / SORACOM API でいつでも変更できます。

なし
データ通信量と消費電力の削減デバイスから Funnel までの暗号化処理が省略でき、さらにデータ通信の手続きが簡素なプロトコルを利用できるため、データ通信量も消費電力も削減できます。また、バイナリパーサー を利用すると、さらにデータ通信量と消費電力を削減できます。なし
同期 / 非同期

非同期。

クラウドサービスでの処理結果はすぐに受け取れません

Funnel はその設計ポリシーとしてスケーラビリティを最重要視しており、デバイスからの各リクエストは一旦 SORACOM でバッファリングされ、非同期に各サービスへ転送されます。そのため、クラウドサービスからのレスポンスを受け取ることはできず、データ処理が成功したか、失敗したかをデバイスが直接知ることはできません。

送信されたデータの処理結果をすぐに知りたい場合や、デバイス自体が再送を行いたい場合には、Beam を利用してください。

データ処理が失敗した場合は、エラーログ が記録されます。

  • Beam と Funk は、同期で処理されます。転送先サーバーからのレスポンスを受け取れます。
  • Funnel は、非同期で処理されます。転送先サーバーからのレスポンスを受け取れません。
対応プロトコル (デバイス - Funnel 間)
  • TCP
  • UDP
  • HTTP (POST のみ)
  • SMS
  • USSD
  • LPWA (Sigfox、LoRaWAN)
  • Inventory (データ更新イベント)

詳しくは、エントリポイント一覧 を参照してください。

Junction のインスペクション機能でサマリーされたパケット統計情報もデータソースとして利用できます。

  • Beam は、任意の HTTP メソッド (GET、POST、PUT など) を利用できます。また、MQTT を利用できます。
  • Funk と Funnel は、HTTP で送信する場合は POST のみ利用できます。なお、MQTT は利用できません。
送信間隔Funnel を使って短い間隔 (1 秒に 1 リクエスト等) でデータ送信することを検討されているお客様は、セールスチーム にお問い合わせください。なし
Funnel からのアクセスであることを確認するにはアダプターごとに異なる方法で確認します。
  • Beam は、署名を検証して確認します。
  • Funk は、トークンを検証して確認します。<
  • Funnel は、転送先サービスが確認します。
HTTP/TCP/UDP セッションは切断されることがあります

SORACOM のメンテナンスに伴い、任意のタイミングで HTTP/TCP/UDP セッションが切断される場合があります。

なお、メンテナンスに伴うセッション切断は、SORACOM Status Dashboard などで告知されません。ご了承ください。

AWS STS エンドポイントをアクティブ化してください

Funnel の以下のアダプターを使用する場合は、AWS が提供する AWS STS エンドポイントをアクティブ化してください。

  • AWS IoT アダプター
  • Amazon Data Firehose アダプター
  • Amazon Kinesis Data Streams アダプター

なお、アクティブ化する AWS STS エンドポイントは、Funnel のカバレッジタイプによって異なります。

SORACOM のカバレッジタイプAWS リージョンAWS STS エンドポイント
グローバルカバレッジ欧州 (フランクフルト) eu-central-1sts.eu-central-1.amazonaws.com
日本カバレッジアジアパシフィック (東京) ap-northeast-1sts.ap-northeast-1.amazonaws.com

たとえば、日本カバレッジで Funnel の AWS IoT アダプターを利用する場合は、sts.ap-northeast-1.amazonaws.com をアクティブ化します。

AWS STS エンドポイントのアクティブ化について詳しくは、AWS リージョン での AWS STS のアクティブ化と非アクティブ化 を参照してください。

整数データへ変換される制限は無くなりました

2021 年 8 月 3 日以降、小数点以下がすべて 0 のデータ (例: {"temperature": 20.0}) をクラウドサービスに送信するときに、小数点 1 桁目の 0 が維持されるようになりました。 たとえば、{"temperature": 20.0} をデバイスから送信すると、SORACOM Funnel で整数データに変換されることなく、{"temperature": 20.0} のままクラウドサービスに送信されます。

ただし、{"temperature": 20.00} を送信すると、小数点 1 桁目の 0 のみが維持され、{"temperature": 20.0} が送信されます。

データ送信サイズ

最大データ送信サイズは以下のとおりです。

  • HTTP: 約 780 KB (800000 バイト)
  • TCP: 64 KB (64 KB のデータを送信するには、SORACOM Binary Format v1 の利用が必要です)
  • UDP: 1 つの UDP データグラムで送信できるペイロード長

そのほかのサービスを併用する

Funnel は、Beam と同様に SORACOM のほかのサービスと組み合わせて利用できます。詳しくは、そのほかのサービスを併用する を参照してください。