2016の18日分(だったはずのもの)です。遅れてクリスマス投稿になりました。Funnelは、ソラコムのサービスの中では「アプリケーション連携サービス」の「クラウドリソースアダプタ」と位置付けられています。Funnelをまだご存じない方も、公式サイトの以下の図を見れば一目瞭然でしょう。Funnel)要するに、軽めのプロトコルでFunnelエンドポイントに投げると、良い感じにパブリッククラウドのストリーム処理に投げ込んでくれるというもので、そしてそのために必要なつらい処理を全部やってくれるというものです。重要なのはこの後半部分です。「とりあえずクラウドに投げるだけ」なら猿でもできるわけですが、じゃあクラウド側に投げるときの端末識別や認証どうするの、とかクラウド側が落ちてるときの再送処理どうするの、とか真面目に運用を考えたときに色々実装や運用が面倒くさい部分がたくさんあるわけです。FunnelはMVNOの出口近くに、そういった面倒なことを全てやってくれるエンドポイントを出してくれているわけです。実行例こんな感じで投げます。Stremsであれば、以下のように届きます。Identity)がSIM毎に付けられたIDですので、これを見て通信元を判断できます。いうライブラリがあるので、そこに流し込んであげればよいです。}));};こんな感じで書いてあげるだけで、機器の識別はできていますし、lambdaが追いつかない場合の再送なども全部SORACOMとクラウドにお任せしてしまうことができ、実装したい処理内容に注力することができます。SORACOMとセキュリティIoTと言えばセキュリティが課題、と言われています。組み込み機器自体の脆弱性もさることながら、それらのデータを適切にクラウドに上げることもまた重要です。ver1.0が策定されました。ネットワーク上での対策を考える」としてネットワーク接続まわりでのセキュリティ対策がまとめられています。そのデータから得られた分析結果によって組み込み機器にフィードバックを行い、実世界側に対して働きかけを行うCPS(サイバーフィジカルシステム)の時代が来ています。誤ったセンサーデータを送りつけるだけで、下手をすれば人間が傷付けられる可能性もあるわけです。それには、ネットワークの先にある機器をただしく識別・認証する必要があります。機器をインターネットに接続する場合、「自分が誰か」ということを自分自身で相手に証明する必要があります。ここで複数の機器を個別に識別できていないと、たとえば盗難された機器を悪用されたときの被害が大きくなるわけです。そのため、一台ずつ個別の認証情報を配布、管理する必要があります。SORACOMはMVNO事業者ですし、3G/4Gの通信路は暗号学的に適切な手法を用いて、全てのSIMを識別・認証し、その上の通信も暗号化されています。あれば、この識別の枠組みをそのまま使って、機器とクラウドの間の認証にも利用できれば嬉しいわけです。機器には設置時に個別にどうせSIMを挿すわけで、機器自体には個別の情報を持たせる必要が無くなり「1を0にする」ことが実現します。製造段階での個別作業がゼロになるということは、機器ベンダにとって大きなメリットです。SORACOMとサーバレスIoTはその性質から、たくさんの機器からの情報をクラウド側で集約することが求められます。これを全て自前でやろうとすると、自前でMQTTサーバ等を建てたりしないといけないですし、そのMQTTサーバのサイジングや冗長化なども課題となります。いうわけで、クラウド時代なのでクラウド事業者が提供してくれているメッセージキューを使うのが良いとされます。どちらもビッグデータ向けのストリーム処理と銘打っているため、秒間数万件以上のレコードを(お金さえ払えば)処理できるようになっています。これだけの規模になると、旧来のアプリのように「いったんデータベースに入れてから集計する」というバッチ処理だけでは間に合わない部分が出てきます。Architecture」のように、リアルタイムでストリーム処理のまま集計処理を行う必要があります。Hubsも、どちらもそのための枠組みを持っています。Analyticsといったストリーム処理エンジンです。前者は散々議論されているので割愛しますが、後者のストリーム処理は来年たくさんの事例が出てくると思われます。ストリーム処理は、一般的にSQLっぽい感じのクエリを設定しておくとリアルタイムでそれを適用し、直近N秒(ウインドウ)やN秒ごとに集計を継続して出力できるといったものです。WAFを利用して、サーバレスでリアルタイムな侵入防止システムを作ってみた」などの記事も出ています。膨大に上がってくるデータに対して、まず一次集計を行ってからRDBMSに投入すると言ったことが容易にできます。場合によっては、ストリーム処理だけで最終データまで落とし込める場合も多々あるため、積極的に使っていきたいところです。数年前にNorikraが登場したことをきっかけに、日本国内でもちらほら身近な事例が出てくるようになっています。このあたりをキーワードに検索すると情報が探しやすいです。Funnelを使うと、エンドポイントにTCP/UDPやHTTPでJSONぶん投げるだけでこのようなストリーム処理に対してデータを投入できるので楽しいです。SORACOMと開発者SORACOMの真価は「開発や運用のコストをオフロードできる」点に尽きると考えています。言われるような通信費が安いという事だけであれば、ここまでSORACOMが注目を浴びることはなかったでしょう。このような「世界観」をうまく提示したことが、SORACOMが現状で他の追従を許していない理由です。セキュリティにしろ、ストリーム処理にしろ、自前で全てを実装することももちろん可能です。ところが、それを運用まできっちり回そうとすると、最初に述べたように地獄の産みの苦しみがあります。見簡単そうに見えても実際には難しく手間が掛かるという事が往々にして存在するわけです。IoTデバイスを作っている人にとってはそこで勝負をしたいわけではないわけです。サーバレス界隈の方でも「餅は餅屋」と言い続けていますが、自分のビジネスにとって本丸では無い部分に手間やお金を掛けるのは無駄なことであり、でも誰もやってくれないからみんな自分でやっていたわけです。そこに颯爽と現れたのがSORACOMです。#ssmjp」でも主張したとおり、通信費の安さだとか、中身がクラウドネイティブでスケールするなんてことはぶっちゃけどうでもいいんです。重要なことは、自分が今一番作る手間を掛けたいことに注力し、それ以外を楽に済ませるか、ということなんです。そこに対して、SORACOMの世界観はよく考えられています。Funnelは画期的です。MVNOのすぐ向こう側というほとんどダウンタイムを考えないで良い場所に、全てを安心して任せられる基盤があるのです。使わなければ損というものでしょう。Funnelはいいぞ」。Funnelはいいぞ関連記事2018-08-08コミックマーケット94に参加しますコミックマーケット94の1日目(8/10)に「めもおきば」として参加...2018-04-21技術書典4に参加します明日4月22日の技術書典4に「めもおきば」として参加します。再受賞(2019)Slack情報収集のためのチートシートデザインテーマ変えてみましたもっと見る月別アーカイブ検索はてなブログをはじめよう!nekoruriさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。