kotakのひまじめ日記スマートフォン用の表示で見るkotakのひまじめ日記この広告は、90日以上更新していないブログに表示しています。IPアドレスしか割り振られないことでしょう。IPアドレスが割り振られるSIMであれば、SIMをさしたデバイス自身がサーバー(WebサーバーやSSHサーバー)になれるので、リモートから簡単にアクセスすることができます*3。IPアドレスしか割り振られないSIMを使用している場合は、一工夫が必要となります。SSHによりリモートログインをしたいという場合、SSHの"踏み台サーバー"を立てて、それを経由してログインする方法が公開されています。Developers.IOこれらのブログに書いてある通りにやってみたところ、微妙に上手くいかなかったので、それを回避するTIPSを紹介します。G1で使用されている3GモジュールはSierraWireless社のMC8090というものです。LAN経由は問題ないけど、3G経由だと上手くいかない前述のブログに記載してある手順通りに、ゲートウェイ側では下記コマンドを実行しました。G1は、標準ではSSHサーバーが起動していないので、事前にSSHサーバーを起動させておいてください。server>そして、サーバーから下記コマンドで接続を試みてみましたが、上手くいきません。SIMを使った3G回線の時はうまくいかないようでした。してデバッグメッセージを表示しながらやってみると、下記の部分で止まっているようです。address>ワークアラウンド今回は、ゲートウェイのネットワークインターフェースのMTUを小さくすることで回避しました。576パケットフラグメンテーションを回避することで、症状が緩和されるようです。Questions問題は回避できましたが、これで正しい対処なのか、イマイチ自身がありません。実はネットワークの深い仕組みをよく知らないという、自分自身の課題が浮き彫りになった形です。SIMが刺さったデバイスに送り込むというネタをやるつもりでした、そこでもネットワークの課題が解決できずに没になったのでした。フルスケールエンジニアへの道は険しいですね。enebular自身も日々進化しているので、次回は是非リベンジしたいと思います。IPアドレスが割り振られることがデメリットとも言い難いのですが。3G接続できるデバイスのおおよその現在地を調べる方法です。精度は全くありませんが、GPS不要で3Gの接続さえ生きていれば使える方法なので、デバイスの盗難対策などには重宝するのではないかと思います。書いていて思ったのが、「セキュリティの観点からするとイケてない」ということです。あるデバイスで共通のAPIキーを使っていた場合、一つのデバイスがハックされてキーが流出したら、キーを更新するために全てのデバイスのファームを書き換えなくてはならなくなるという問題に繋がります。いって、デバイスごとに個別のAPIキーを割り振ろうと思うと、キーの管理やデバイスの出荷作業などの手間が掛かって、コストに跳ね返ってきます。単純に証明書をインストールすれば、回避できます。(会社ブログでは説明する分量を省くために、あえてスルーしました。)ただ、こちらも実運用を考えると証明書の更新という問題が出てきます。Beamを使うとキレイに解決できるということに、改めて気づきました。APIを叩いて、結果を取得していました。Beam経由で叩くようにします。APIはHTTPSのPOSTメソッドを使い、パラメータはbodyにJSON形式で渡すようになっています。APIキーはクエリストリングとして渡します。Beamの設定は、下記のようにしました。指定なし現在位置を調べるスクリプトは下記のようになります*1。URLがbeam.soracom.ioになり、API_KEYがスクリプトから消えています。"$URL"効果APIキーをデバイス側で持っておく必要が無くなるこれにより、全デバイスが共通のスクリプトで動作できる=運用が楽になるということと、APIキーの流出リスクを減らすことができるという二つのメリットを、同時に享受できます。APIキーというものは、APIへのアクセスコントロールのために存在するのだと思います。それが、デバイスにAPIキーを持たせた場合には、デバイス認証という意味合いを持ってしまうため、「デバイスごとに個別のAPIキーを発行」などという設計になりがちなのかもしれません。Beamを使うと、指定したグループのSIMからのリクエストしか転送しませんので、それがデバイス認証としての役割を果たします。「デバイスの認証はSIMで、APIのアクセスコントロールはAPIキーで」というように役割をきっちりと分けて考えることができるので、システム全体としての設計もシンプルになります。証明書の更新が不要になるデバイスからBeamへのリクエストはHTTPで行いますので、CAの証明書をデバイス側は持つ必要が無くなります。当然ながら、更新も不要ですのでデバイスの管理が楽になります。それでいながら、デバイスからBeamのエントリポイントまでは、なりすまし不可かつ盗聴不可な経路を通りますので、安全性が損なわれるわけではありません。Beamというのは便利だと思いました*2。IoTの世界はコンセプトフェーズから実践フェーズに入ってきた感があるので、これからはセキュリティや運用といった面がクローズアップされてくるでしょう。AWS)というのは、良い解なのではないかと思います。*1:3g-celllocationの中身などは、会社ブログの方を参照してください。*2:書いている内容は二番煎じじゃないかというツッコミはご容赦ください。各所で話題騒然となっていますが、2015年9月30日に株式会社ソラコムの"IoTプラットフォーム"が公開され、一般への提供が開始されています。ソラコムのサービスは下記の2つから構成されます。IoT連携機能の追加を発表するなど、すさまじいスピードでどんどんと成長していくようで、今後が楽しみです。そんなソラコム社のサービスですが、既報のニュースなどを見ていると、少し誤解されているところがあるように思えます。下記の日経新聞の記事。www.nikkei.com"格安スマホと比べても8割以上安い通信料で提供する"とされていますが、比較対象が違いますよね。比較するなら、これまでのIoT/M2M向けのデータ通信プランとすべきでしょう。IoT/M2M向けの通信プランは、現状では、各社から500円~1,000円を切るぐらいの価格が定価として出てくるのが相場観のようです(あくまで、個人の主観では)。安いところでは、月額400円を切るプランを提示するところ*1や、月額290円というプラン*2もあります。各社と個別に交渉すれば、条件次第ではより安い価格を引き出すこともできるでしょう。通信量に応じた従量課金"ですので、確かに安くはあるのですが、最安というわけではありません。それでも、実運用を考えると、非常に大きなメリットがあると感じています。以下、その理由について書いてみます。Airの費用はオープンになっており、Webページから参照できるようになっています。