新しいDataStore V2 APIへの移行について

sakura.ioのサービス開始時から提供していたデータストア機能がバージョンアップし、「DataStore API」はリニューアルして「DataStore V2 API」となります。旧バージョンのDataStore APIは段階的に廃止されるので、利用されている方はお手数ですがソフトウェアの書き換えを行って頂く必要があります。料金形態・API仕様にも大きな変更がありますので、この記事で紹介させていただきます。

変更の概要

新しい「DataStore V2 API」は、以下の部分を主に変更しています。

  • JSON一括ダウンロード
  • CSVダウンロード機能
  • メッセージ閲覧対象
  • API変更
  • クエリ速度改善
  • 料金

JSON一括ダウンロード機能の追加

ブラウザ・curlコマンド等で以下のようなURLにアクセスすると、ZIPファイルがダウンロード出来ます。ZIPファイルを解凍すると1つのテキストファイルが保存されており、1行につき1つのJSONメッセージが記述されていることが確認できます。

https://api.sakura.io/datastore/v2/messages-bulk?limit=100&encoding=FILE_ZIP&token=********-****-****-****-************

(トークン部分を自身のものに置き換えてアクセスを行ってください)

この機能の追加により、低頻度なバッチ処理・バックアップ用途にご利用いただきやすくなりました。

ZIPの他に、gzipなどでの取得も可能です。詳しくは、こちらのAPIリファレンスをご覧ください。 DataStore V2 APIリファレンス

CSVダウンロード機能

「DataStore V2 API」では、コントロールパネル上でCSVをダウンロードする機能が追加されました。JSON等のメッセージを扱うのが難しかったExcel等のソフトでも読み込みしやすくなりました。

サービス連携設定を追加した後に、サービス連携設定の詳細画面に移動し、ボタンをクリックすることで本機能が利用可能です。対象のモジュール・期間・件数・チャンネル番号等を指定してダウンロードが可能となっています。速度は環境や負荷状況に大きく依存しますが、10万件あたり10~20秒程度で取得が可能であることを確認しています。

なお、この機能は古いWebブラウザ(Internet Explorer等)では利用できませんのでご了承ください。

メッセージ閲覧対象の変更

旧機能の「DataStore API」は、新しく有償プランを契約した時点で、過去のメッセージも全て閲覧が可能でした。また、モジュールの譲渡・モジュールの所属プロジェクトの変更を行うと、過去のメッセージも全て新しい所有者・プロジェクトに移動していました。

新機能の「DataStore V2 API」では、プランの契約を行った時点からメッセージの保存が始まるように変更されました。また、モジュールの譲渡・モジュールの所属プロジェクトの変更を行ってもそれまでのメッセージは移動せず、メッセージがsakura.ioに届いた時点での参加プロジェクトに保存されます。

この変更によって、製造のフェーズによってモジュールの所有者が変わるようなケースでの使い勝手が良くなりました。例えば、製品の製造・テスト・エンドユーザで会員ID/所属プロジェクトが異なるような場合は、それぞれ過去のメッセージが見えることが無くより直感的になりました。

新しい仕様では、プロジェクトを削除すると過去のメッセージも削除され閲覧できなくなりますので十分にご注意ください。

APIの変更

利用状況・理解しやすさ等を考え、以下のように複数の仕様が変更されています。

パラメータの変更

新機能の「DataStore V2 API」では、今までと同様にメッセージの単位で取得する /messages チャンネルの単位で取得する /channels の2つのAPIを用意しています。ですが、パラメータの意味・指定する値が変更されています。

機能概要 対象API V1パラメータ名 V2パラメータ名 変更点
認証・プロジェクトの選択 全て token token 変更なし
対象モジュールの指定 全て module module V2では1つのみ指定可能。指定しなかった場合はプロジェクト内の全てのモジュールを対象に。
対象のメッセージの種別の指定 /messages type V2では廃止。
対象のチャンネル番号の指定 /channels channel V2では1つのみ指定可能。
1リクエストで取得する最大数 全て size limit 名称変更。
メッセージのソート順の指定 全て order order V2では大文字の ASC DESC のみ指定可能。
取得メッセージの開始日時の指定 全て after after V2では厳密なRFC3339形式 2020-03-02T12:00:00.000+09:00 のみ受付。
取得メッセージの終了日時の指定 全て before before V2では厳密なRFC3339形式 2020-03-02T12:00:00.000+09:00 のみ受付。
複数回に分けたリクエストに利用 /messages,/channels cursor cursor 変更なし
レスポンスの変更

旧機能「DataStore API」で提供されていた meta.count meta.match フィールドは廃止されました。新機能「DataStore V2 API」では、新たに meta.has_next フィールドを追加しました。カーソルを使用して再帰的に取得する際、全てのメッセージの取得が完了したことは meta.has_next のBoolean値が false で有ることを検証してください。

クエリ速度の改善

旧機能の「DataStore API」は、内部システムの都合で若干クエリ速度に時間がかかっていました。大量にメッセージを取得する際は、大きなボトルネックになることが有りました。新機能の「DataStore V2 API」では、機能を絞ってサービスを提供する事で大幅にクエリ時間が短くなりました。

旧 DataStore API 新 DataStore V2 API
1回あたりの処理時間 745.15ms 312.60ms

※最新1件のメッセージ取得を繰り返して20回行った際の平均レスポンス時間です。他のお客様からのアクセス状況・内部システムの負荷・お客様のネットワーク環境等、様々な要因でばらつきがありますので参考値としてお考えください。

料金の変更

旧機能「DataStore API」では、閲覧期間に応じて「フリー」「ライト」「スタンダード」が提供されていました。新機能「DataStore V2 API」ではよりきめ細かく閲覧期間の設定が可能になりました。

なお、DataStore V2 APIは2020年8月11日までβ版として提供します。期間中は上記のプランを全て無償で提供します。

メッセージはプロジェクトごとのメッセージ保存上限数に達するか、保存期間を経過すると旧いメッセージから順次削除される可能性があります。

移行スケジュール

本日から新機能「DataStore V2 API」はβ提供として無償でご利用いただけます。旧機能「DataStore API」はサービス終了まで無償利用が可能となります。

日付 項目
2020年5月12日 旧機能DataStore APIの無償化・新機能DataStore V2 APIの無償提供開始
2020年8月11日 新機能DataStore V2 APIの課金開始
2022年5月30日 旧機能DataStore APIの提供を終了

最後に

今回は新しい機能の紹介をさせていただきました。
今後も既存機能の改善などを行っていく予定です。

今後とも、sakura.io をよろしくお願いします。

Continue Reading

【セキュアモバイルコネクト】cat.M1のLTEモジュール(Quectel BG96)でドコモ回線に接続できることを確認しました

IoTチームの矢野です。

2月の記事でcat.M1対応LTEモジュールにセキュアモバイルコネクトを挿して通信できることをご紹介しました。当時はドコモ回線による接続を確認することができませんでしたが、現在は接続及び通信が行えるようになっています。
動作確認済デバイス一覧にもBG96を追加済です。

検証LTEモジュール:Quectel社 BG96MA-128-SGN
検証ファームウェアバージョン:BG96MAR03A04M1G_01.003.01.003

検証方法は過去の記事をご覧ください。

AT+COPSコマンドで基地局への接続状況を確認します。PLMN番号”44010″はドコモです。

AT+COPS=1,2,"44010"
OK

AT+COPS?
+COPS: 1,2,"44010",8

 

AT+QNWINFOコマンドで現在の接続状況をさらに詳しく確認できます。
実行結果から、cat.M1でオンライン、PLMNは44010(ドコモ)、バンド19で基地局に接続していることがわかります。

//ドコモの場合
AT+QNWINFO
+QNWINFO: "CAT-M1","44010","LTE BAND 19",6100

 

PINGで疎通確認をします。

//PING確認
AT+QPING=1,"google.com",1,10
OK
+QPING: 0,"216.58.197.206",32,472,255
+QPING: 0,"216.58.197.206",32,479,255
+QPING: 0,"216.58.197.206",32,523,255
+QPING: 0,"216.58.197.206",32,524,255
+QPING: 0,"216.58.197.206",32,484,255
+QPING: 0,"216.58.197.206",32,480,255
+QPING: 0,"216.58.197.206",32,469,255
+QPING: 0,"216.58.197.206",32,486,255
+QPING: 0,"216.58.197.206",32,475,255
+QPING: 0,"216.58.197.206",32,490,255
+QPING: 0,10,10,0,469,524,486

 

Continue Reading

sakura.ioモジュールファームウェア”Version1.4.4″公開のお知らせ

本日、sakura.ioモジュールファームウェアのVersion 1.4.4を公開しましたのでお知らせします。

Version 1.4.3までのファームウェアにおいて高頻度(数十ミリ秒間隔)で送受信を行った場合、稀に通信処理が継続できなくなる現象が確認されました。

対策として、送受信処理を監視し処理継続不能な状態に陥った場合にsakura.ioモジュールを再起動し復帰させる機能を追加しました。

今までのバージョン履歴はリリースノートをご参照ください。

sakura.ioをより便利により快適にご利用いただけるよう努めてまいりますので、今後ともよろしくお願いいたします。

Continue Reading

【セキュアモバイルコネクト】cat.M1のLTEモジュールで通信できることを確認しました

IoTチームの矢野です。
今話題のcat.M1対応LTEモジュールに、セキュアモバイルコネクトのSIMカードを挿して通信できることを確認しました。
検証時の設定と確認方法を紹介させていただきます。

cat.M1とは

LTE(4G)で通信するデバイスにはUEカテゴリという端末の通信性能を示す指標があります。この中でもcat.M1は特に電力消費量が少なく、LPWA(Low Power Wide Area)の通信方式として注目されています。通信速度を必要とせず、電池で動作するIoT機器に最適です。
cat.4 下り150Mbps/上り50Mbps
cat.3 下り100Mbps/上り50Mbps
cat.1 下り10Mbps/上り5Mbps 電力消費が少ない (sakura.io LTEモジュールなど)
cat.M1 下り0.375Mbps/上り0.375Mbps 電力消費が極めて少ない(BG96,SIM7000など)

動作を確認したLTEモジュール

どちらのモジュールも日本国内の技術基準適合証明及び技術基準適合認定を取得済みです。
・Quectel社 BG96MATEA-128-SGN 公式評価ボード(以下BG96)
→BG96のメーカーサイト
・SIMCOM社 SIM7000JC 公式評価ボード(以下SIM7000)
→SIM7000JCの国内代理店

検証方法

・PING疎通確認
・TCP折り返し通信
LTEモジュールとPCをUSBで接続し、ATコマンドポートをTeraTermで開いて手動でコマンド入力します。
検証はさくらインターネット東京支社(西新宿)で行いました。
セキュアモバイルコネクトを経由して、ソフトバンク回線及びKDDI回線で通信できることを確認しています。(セキュアモバイルコネクトは1枚のSIMで国内3つのキャリアの提供エリアおよびバンドに対応しています)

LTEモジュール毎の設定方法と通信の確認方法

セキュアモバイルコネクトのAPN名、ID、パスワードは次の通りです。
APN名:sakura
ユーザー名:なし
パスワード:なし

Quectel BG96の場合

モジュールの設定方法

AT+CGDCONTコマンドで通信方式を設定します。PDPタイプはIP、APN名はsakuraです。

AT+CGDCONT=1,"IP","sakura"
OK

 

AT+QICSGPコマンドでAPN名、ID、パスワードを設定します。APN名はsakura、ユーザー名とパスワードはなしです。

AT+QICSGP=1,1,"sakura"
OK

 

AT+COPSコマンドで接続可能な基地局をサーチします。
なおAT+COPSコマンドは、[=?]で基地局サーチ、[?]で接続状況の確認、[=]で基地局のセットを行うことができます。

AT+COPS=?
+COPS: (3,"KDDI","KDDI","44050",8),(2,"NTT DOCOMO","DOCOMO","44010",8),(1,"SoftBank","SoftBank","44020",8),(1,"KDDI","KDDI","44051",8),(1,"440 52","440 52","44052",8),,(0,1,2,3,4),(0,1,2)
OK

 

AT+COPSコマンドで接続したいキャリアを指定して接続します。オートモードに設定するとどこにも接続できないので、必ずマニュアルモードで接続先PLMN番号を指定する必要があります。モードは1(PLMNをマニュアル選択)、フォーマットは2(数字でPLMN番号を指定)、オペレータはPLMN番号を指定します。接続が成功してOKが表示されるまでEnterを押さないでください。(押すとCOPSコマンドがキャンセルされます)

AT+COPS=1,2,"44020"
OK

 

1回目のAT+COPSでエラーとなることが良くあります。2回目はほぼ成功します。(モジュール側の問題です)

AT+COPS=1,2,"44020"
+CME ERROR: 30

 

AT+COPSコマンドで基地局への接続状況を確認します。PLMN番号”44020″はソフトバンクです。
接続が成功していれば、COPSの結果に接続先のPLMN番号が表示されます。

AT+COPS?
+COPS: 1,2,"44020",8

 

AT+COPS?の結果が1になる場合は接続に失敗しています。SIMカードが正しく刺さっているか、セキュアモバイルコネクトのコントロールパネルで接続先のキャリアを許可しているかを確認してください。

AT+COPS?
+COPS: 1

 

AT+QNWINFOコマンドで現在の接続状況をさらに詳しく確認できます。
実行結果から、cat.M1でオンライン、PLMNは44020(ソフトバンク)、バンド1で基地局に接続していることがわかります。

//ソフトバンクの場合
AT+QNWINFO
+QNWINFO: "CAT-M1","44020","LTE BAND 1",475

//KDDIの場合
AT+QNWINFO
+QNWINFO: "CAT-M1","44051","LTE BAND 18",5900

 

PING疎通確認

AT+QPINGコマンドでPINGを打つことができます。この実行結果からDNSでIPアドレスが引けて、PINGが返ってきてることが確認できます。

AT+QPING=1,"google.com",1,10
OK
+QPING: 0,"172.217.27.78",32,93,255
+QPING: 0,"172.217.27.78",32,73,255
+QPING: 0,"172.217.27.78",32,79,255
+QPING: 0,"172.217.27.78",32,85,255
+QPING: 0,"172.217.27.78",32,75,255
+QPING: 0,"172.217.27.78",32,79,255
+QPING: 0,"172.217.27.78",32,79,255
+QPING: 0,"172.217.27.78",32,81,255
+QPING: 0,"172.217.27.78",32,79,255
+QPING: 0,"172.217.27.78",32,79,255
+QPING: 0,10,10,0,73,93,79

 

TCP折り返し通信

受信した文字列を返信するだけのサーバに文字列”SAKURA Internet”を送信して、同じ文字列が返ってくることを確認します。

AT+QIOPENコマンドで折り返し通信サーバーへ接続します。

AT+QIOPEN=1,0,"TCP","***.***.***.***",54321,0,1
OK
+QIOPEN: 0,0

 

AT+QISTATEコマンドでTCPコネクションを確認します。

AT+QISTATE=1,0
+QISTATE: 0,"TCP","***.***.***.***",54321,30356,2,1,0,1,"usbmodem"

 

AT+QISENDコマンドでサーバーに文字列を送信します。今回は”SAKURA Internet”で15文字送信しました。送信後に同じ文字列を受信したことを確かめます。

AT+QISEND=0,15
> SAKURA Internet
SEND OK

+QIURC: "recv",0,15
SAKURA Internet

 

AT+QICLOSEコマンドでTCPコネクションをクローズします。

AT+QICLOSE
OK

BG96の設定及び検証方法は以上になります。

 

SIMCOM SIM7000の場合

モジュールの設定方法

AT+CGDCONTコマンドで通信方式を設定します。PDPタイプはIP、APN名はsakuraです。

AT+CGDCONT=1,"IP","sakura"
OK

 

AT+CSTTコマンドでAPN名、ID、パスワードを設定します。APN名はsakura、ユーザー名とパスワードはなしです。

AT+CSTT="sakura"
OK

 

AT+COPSコマンドで接続可能な基地局をサーチします。
なおAT+COPSコマンドは、[=?]で基地局サーチ、[?]で接続状況の確認、[=]で基地局のセットを行うことができます。

AT+COPS=?
+COPS: (1,"440 10","440 10","44010",7),(2,"440 20","440 20","44020",7),(1,"440 51","440 51","44051",7),(1,"440 52","440 52","44052",7),(3,"440 50","440 50","44050",7),,(0,1,2,3,4),(0,1,2)
OK

 

AT+COPSコマンドで接続したいキャリアを指定して接続します。オートモードに設定するとどこにも接続できないので、必ずマニュアルモードで接続先PLMN番号を指定する必要があります。モードは1(PLMNをマニュアル選択)、フォーマットは2(数字でPLMN番号を指定)、オペレータはPLMN番号を指定します。接続が成功してOKが表示されるまでEnterを押さないでください。(押すとCOPSコマンドがキャンセルされます)

AT+COPS=1,2,"44020"
OK

 

1回目のAT+COPSでエラーとなることが良くあります。2回目はほぼ成功します。(モジュール側の問題です)

AT+COPS=1,2,"44020"
ERROR

 

AT+COPSコマンドで基地局への接続状況を確認します。PLMN番号”44020″はソフトバンクです。
接続が成功していれば、COPSの結果に接続先のPLMN番号が表示されます。

AT+COPS?
+COPS: 1,0,"440 20 SAKURA Internet",7

 

AT+COPS?の結果が1になる場合は接続に失敗しています。SIMカードが正しく刺さっているか、セキュアモバイルコネクトのコントロールパネルで接続先のキャリアを許可しているかを確認してください。

AT+COPS?
+COPS: 1

 

AT+CPSIコマンドで現在の接続状況をさらに詳しく確認できます。
実行結果から、cat.M1でオンライン、PLMNは44020(ソフトバンク)、バンド1で基地局に接続していることがわかります。

//ソフトバンクの場合
AT+CPSI?
+CPSI: LTE CAT-M1,Online,440-20,0x183C,10555906,372,EUTRAN-BAND1,475,4,4,-5,-79,-58,14

//KDDIの場合
AT+CPSI?
+CPSI: LTE CAT-M1,Online,440-51,0x1079,33909762,342,EUTRAN-BAND18,5900,3,3,-4,-55,-34,24

 

AT+CIICRコマンドで無線通信を有効化します。

AT+CIICR
OK

 

AT+CIFSRコマンドでIPアドレスを確認します。

AT+CIFSR
10.20.30.7

 

PING疎通確認

AT+CIPPINGコマンドでPINGを打つことができます。この実行結果からDNSでIPアドレスが引けて、PINGが返ってきてることが確認できます。

AT+CIPPING="google.com",10
+CIPPING: 1,"172.217.31.142",91,54
+CIPPING: 2,"172.217.31.142",68,54
+CIPPING: 3,"172.217.31.142",79,54
+CIPPING: 4,"172.217.31.142",79,54
+CIPPING: 5,"172.217.31.142",79,54
+CIPPING: 6,"172.217.31.142",79,54
+CIPPING: 7,"172.217.31.142",79,54
+CIPPING: 8,"172.217.31.142",79,54
+CIPPING: 9,"172.217.31.142",79,54
+CIPPING: 10,"172.217.31.142",79,54
OK

 

TCP折り返し通信

受信した文字列を返信するだけのサーバに文字列”SAKURA Internet”を送信して、同じ文字列が返ってくることを確認します。

AT+CIPSTARTコマンドで折り返し通信サーバーへ接続します。

AT+CIPSTART="TCP","***.***.***.***","54321"
OK

CONNECT OK

 

AT+CIPSENDコマンドでサーバーに文字列を送信します。今回は”SAKURA Internet”で15文字送信しました。送信後に同じ文字列を受信したことを確かめます。

AT+CIPSEND
> SAKURA Internet
SEND OK
SAKURA Internet

 

AT+QICLOSEコマンドでTCPコネクションをクローズします。

AT+CIPCLOSE
CLOSE OK

SIM7000の設定及び検証方法は以上になります。

最後まで読んで頂きありがとうございました。

Continue Reading

QRコードでの通信モジュール登録

こんにちは、sakura.io プラットフォーム開発を担当しています、潘です。

本投稿ではコントロールパネルでsakura.ioモジュールを一括登録する機能について、ご紹介したいと思います。

なぜ一括登録が必要なのか

購入した通信モジュールを登録する事で、初めてIoTプラットフォームとデータ通信できる様になります。これまでの登録フォームは、以下の様になっていました。

見たと通り、登録に必要な情報を都度入力し、一回の登録で一つのモジュールしか登録できません。
それでは大量のモジュールを登録する時は大変手間になるので、一括で登録できる様に機能追加を行いました。

一括登録する方法

こちらは機能追加したモジュールを一括登録するフォームです。

登録に必要な情報はすべて SER:Serial,ID:ModuleId,PASS:Password の様な文字列でモジュールに載せていますので、こちらを登録する際に使います。この文字列は、通信モジュールにあるQRコードをスキャンすることで、同じ文字列が取得できます。

  1. 最初は、モジュールの追加ページにある 一括 タブを選ぶと、一括登録のフォームが表示されます。
  2. そして、モジュールのQRコードから取得したデータを QRコードデータ 項目に一行ずつ記入します。
  3. 最後に、合計金額が モジュール一括追加の際の注意点 へ表示されます。よろしければ 追加 ボタンをクリックして完了します。

なお、一括登録にかかる時間は 100モジュール につき、おおよそ 5秒間 ほどです。

最後に

今回はモジュールの一括登録機能に関する背景・使用方法を説明しました。
これから、モジュールを大量にご購入のお客様は、より簡単に利用開始できるのではないかと思います。

今後とも、sakura.io をよろしくお願いします。

Continue Reading

【セキュアモバイルコネクト】SIMルート機能をリリースしました

IoTチームの川畑です。セキュアモバイルコネクトにて新機能をリリースしましたので、その概要から使い方・利用例をご紹介します。

SIMルートで実現できること

SIMルート機能では、SIMカードのICCID(固有識別番号)をNext-Hopとした静的IPルーティングができるようになりました。利用感覚はルータに静的IPルートを設定する事と同じように、CIDR表記の宛先ネットワークアドレス(e.g. 192.168.0.0/24)と、そのNext-HopになるSIMカードをコントロールパネル上から投入するだけで簡単に利用可能です。

使い所

昨今のLTEデバイスでは、EthernetやWiFi(IEEE802.11)の機能も持つような製品がリリースされ、携帯電話のみならず様々な場面でLTEネットワークを活用できるようになっています。

所謂M2MルータやIoTゲートウェイと呼ばれるこれらの製品は、特徴としてEthernet/LTE間のL3ルーティング機能が挙げられ、Ethernetポートに設定されたネットワークと、その先のLTEネットワークをNAPTを噛まずに直接接続可能です。一般的なポケットWiFiや携帯電話のテザリング機能でも、LTEデバイス自身の配下の端末をモバイルネットワークに接続することができますが、その多くはNAPTで実現されています。ここで問題なのは、そのLTEデバイス配下の端末にLTE外の通常ネットワークから直接アクセスできないことが挙げられるでしょう。

通常のインターネット専用MVNOと違い、我々のサービスはクラウドとモバイル端末を完全に閉域で相互接続できることにあります。インターネット専用MVNOではセキュリティ上懸念されていた LTEデバイスがPort LISTENしてサーバとして動作する ような構成が安全に取れるようになるのはもちろんの事、今回のSIMルート機能では更にその配下の端末がサーバとして動作しても安全に接続できるようになりました。

モバイルネットワークの利用形態

MNOやMVNOとの契約によって、利用可能な構成が全く異なります。弊社のセキュアモバイルコネクトを使った場合も含め、SIMが入っているデバイスへのアクセスを大きく4パータンにまとめてみました。(クリックで拡大)

パターン1: 通常のMNO/MVNO

一般的に契約可能なMNOやMVNOのLTEネットワークの構成です。LTEデバイスにはプライベートIPアドレスが割り当てられ、端末からインターネットにアクセスしようとすると2段でNAPTがかかります。通常のブラウジングのような動作には全く問題無い構成ですが、LTEデバイスやその配下の端末に直接アクセスしたい場合には不向きな構成です。

パターン2: グローバルIPオプションのついたMNO/MVNO

オプション料金を支払えば、グローバルIPアドレスがLTEデバイスに割り当てられるサービスです。直接グローバルIPアドレスが付くので、LTEデバイスがPort ForwardingやDMZに対応しているものであれば、配下の端末へのアクセスはある程度可能そうです。ですが、インターネットに直接晒されているため、直接DoS攻撃に遭うなど安全性に欠ける面が多く見られます。(DoSに遭ったとき、そのまま下り通信として計算された時には大変なことに…)

パターン3: 閉域網接続可能なMNO/MVNO

コンシューマ向けではなく、法人契約をターゲットにしたプランを打ち出しているMNOやMNVOが存在します。モバイル端末をお客様のネットワーク(データセンタやオフィス)まで直接閉域網で安全にデータ通信ができる仕組みで、インターネットからのリーチや他のお客様からの攻撃を受けることはありません。この場合ですと、 NAPTだけではなくL3 Routingできるデバイスでも使えるのでは? と思いがちですが、LTE網にデバイスをアタッチしたときに割り当てられるプライベートIPアドレスは、基本的に動的です。加えて、通常はパケットの宛先がLTEデバイスに付与したIPアドレスのときのみに通信が成立するようになっており、それ以外(ここではデバイス配下のネットワーク)の宛先のパケットは捨てられてしまいます。

パターン4: セキュアモバイルコネクト


弊社のサービスですが、上記3パターンの問題を解消しています。モバイルゲートウェイ(お客様のLTEデバイスを収容するアプライアンス)をキャリアと同じ感覚でお客様に操作して頂けるように作っており、端末に割り当てるIPアドレスをSIMカード毎に好きな値に固定できますし、インターネット接続も任意(デフォルトはOFF)に可能です。 今回リリースしたSIMルート機能についても、IPアドレスではなくICCIDをNext-Hopとすることで、端末(SIM)に割り当てるIPアドレスが変更されても、必ずそのSIMカードの先にStatic Routeが設定された状態が担保されます。

まとめ

SIMへのアクセスを観点に、簡単に表にまとめてみました

パターン メリット デメリット
パターン1 安価でキャリア選択肢が豊富 キャリア側でNAPTされる
SSH Reverse TunnelもしくはIPsecが必要
パターン2 安価でキャリア選択肢が豊富
デバイスに直接アクセス可能
インターネットからの攻撃に巻き込まれやすい
IPアドレスが変動する可能性が高い
パターン3 インターネットからの攻撃に巻き込まれない
デバイスに直接アクセス可能
IPアドレスが変動する可能性が高い
パターン4 IMSIとIPアドレスの1:1対応が可能
デバイスに直接アクセス可能
デバイスを超えてのルーティング設定が可能
特になし

最後に

今回リリースしたSIMルート機能の概要と、その使い方やモバイルネットワークの特徴・利用例をお伝えしました。SIMルートについては、その独自性について特許出願中です!本機能の具体的な設定方法については公式ドキュメントに掲載しておりますので、SIMルートドキュメントを御覧ください。今後とも、sakura.ioならびにセキュアモバイルコネクトを宜しくおねがいします!

Continue Reading

sakura.ioモジュールファームウェア”Version1.4.2″公開のお知らせ

sakura.ioモジュールのファームウェア開発を担当しています奥原です。
本日、sakura.ioモジュールファームウェアのVersion 1.4.2を公開しましたのでお知らせします。

Version 1.4.0から1.4.1が動作しているモジュールでSPIの推奨クロックである350kHzを超える設定で使用した際にパリティエラー等が発生し通信が不安定になっていました。
本バージョンでは1MHz以上のクロックで動作させた際のSPI通信の安定性が改善しました。

Version 1.4系でSPIをご利用されている場合は更新をお勧めいたします。

あわせてArduinoライブラリの更新を行いVersion 1.1.4になっておりますので更新をお勧めいたします。

sakura.ioをより便利により快適にご利用いただけるよう努めてまいりますので、今後ともよろしくお願いいたします。

Continue Reading

通信量の可視化機能をリリースしました

こんにちは、 sakura.io のプラットフォーム開発を担当しています、上條です。

コントロールパネルのリニューアルによって、モジュールの通信量が分かりやすく表示されるようになりました。通信量を確認するページは、モジュールごと・アカウント全体の2種類用意されています。

アカウントの使用通信量

アカウント毎の通信量を確認するためには、ヘッダの アカウントの使用通信量 リンクをクリックします。 アカウントの使用通信量 のページでは、アカウントに登録されているモジュールの通信量を合算して確認することが出来ます。

モジュールの使用通信量

モジュールごとの通信量を確認するためには、モジュールが登録されているプロジェクトの詳細画面から、グラフボタンをクリックします。 モジュールの使用通信量 のページでは、月毎・日毎の通信量が確認できます。

最後に

今回のリリースによって、通信量・ポイントの消費がより直感的に分かるようになったのではないかと思います。
また、大量のモジュールをお使いのお客様は、APIをご利用いただくことで同様の情報が取得可能です。
今後とも、sakura.ioをよろしくおねがいします。

Continue Reading

sakura.io のコントロールパネルが新しくなりました

こんにちは、 sakura.io のプラットフォーム開発を担当しています、藤原です。
本投稿では、sakura.io コントロールパネルのリニューアルについてお知らせいたします。
以下が新しいコントロールパネルです。

何故リニューアルを行ったのか?

理由としては「表示が遅くなる場合があるから」 です。
旧コントロールパネルは、仮に特定のプロジェクトに 5万個モジュールなどの大量のデータが登録されていた場合に、全てのモジュールを取得するようになっておりました。

新コントロールパネルでは、同様の条件で 分割して モジュールの情報を返すように変更されました。
一般的に言われる「ページネーション」の適用になります。

ページネーションにより

  1. サーバサイド側の SQL の削減、オブジェクト生成
  2. クライアントサイドのオブジェクトの生成

が、削減され体感描画速度が向上しました。

ページネーションによる管理 API の利用方法

ページネーションの導入により、管理 API の v2 を今回開発しました。
もちろん、以前の 管理 API v1 は今後もご利用いただけます。
これから管理 API v2 の実際の利用方法について示します。
管理 API 呼び出しに際する API Token と API Secret の取得は、管理API 利用ガイド を参考にしてください。
今回はモジュールのリストを取得してみることにします。

管理 API v1

$ curl -XGET  --header 'Accept: application/json' --user '{api token}:{api secret}'   'https://api.sakura.io/v1/modules/'

このようなリクエストを送ると、下記のようなレスポンスデータが返却されます。

[
{
"id": "1",
"name": "",
"project": 1,
"is_online": false,
"serl_number": "*********",
"model": "test-model"
},
{
"id": "2",
"name": "",
"project": 1,
"is_online": false,
"serial_number": "*********",
"model": "test-model"
},
...
]

管理 API v2

次に、ページネーションを用いた場合のデータの取得方法について解説します。
変更点としては、下記になります。

  1. アクセスする URL
  2. cursor を用いてリクエストを送信

アクセスする URL

アクセスする URL は下記のように変更になります。

https://api.sakura.io/v1/modules/ => https://api.sakura.io/v2/modules/

cursor を用いてリクエストを送信

こちらは実例を交えながら後述します。
それでは実際にアクセスして情報を取得してみましょう。

$ curl -XGET  --header 'Accept: application/json' --user '{api token}:{api secret}'   'https://api.sakura.io/v2/modules/'

このとき、以下のような結果が表示されます。

{
"meta": {
"per_page": 100,
"links": {
"next": "https://api.sakura.io/v2/modules/?cursor=bbbbbbbbbb",
"previous": null
}
},
"results": [
{
"id": "1",
"name": "",
"project": 1,
"is_online": false,
"serial_number": "*********",
"model": "test-model"
},
...
]
}

このとき、 1 ~ 100件目が表示されました。
101 件目以降を表示したい場合には、 先程前述した 「cursor を用いてリクエストを送信」 を利用します。
レスポンスの next の URL にリクエストを投げます。

$ curl  -XGET --header 'Accept: application/json' --user '{token}:{secret}' "https://api .sakura.io/v2/modules/?cursor=bbbbbbbbbb"

実際に投げると、下記のようにレスポンスが帰ってきて、101 件目以降が表示されました。

{
"meta": {
"per_page": 100,
"links": {
"next": "https://api.sakura.io/v2/modules/?cursor=aaaaaaaaaaa",
"previous": "https://api.sakura.io/v2/modules/?evcursor=ccccccccc"
}
},
"results": [
{
"id": "101",
"name": "",
"project": 1,
"is_online": false,
"serial_number": "********",
"model": "test-model"
},
...
]
}

cursor を用いてリクエストを送信」を繰り返しますと、最終ページにたどり着きます。
最終的に next が null になると、最終ページとなります。
具体的には下記のようなレスポンスが帰ってきた場合です。

{
"meta": {
"per_page": 100,
"links": {
"next": null,
"previous": "https://api.sakura.io/v2/modules/?cursor=yyyyyyyyyyy"
}
},
"results": [
{
"id": "50000",
"name": "",
"project": 1,
"is_online": false,
"serial_number": "********",
"model": "test-model"
},
...
]
}

 

最後に

コントロールパネルのリニューアルとその背景について解説させていただきました。
今回のリニューアルにより、大量のモジュールやプロジェクトをご利用のお客様も安心してご利用いただけます。
今後とも sakura.io をよろしくお願いいたします。

Continue Reading

sakura.ioモジュール(LTE)の省電力機能

sakura.ioモジュールのファームウェア開発を担当しています奥原です。
5/7にリリースしましたファームウェアversion 1.4.0にて、実装予定機能となっていました『省電力管理機能』を追加いたしました。
既存の電力モードに『省電力管理機能』が加わり省電力機能の関係が少々複雑になりましたので、改めてsakura.ioモジュールの省電力機能についてご紹介いたします。
また、省電力機能を使用した際の実測値もご紹介いたします。

sakura.ioモジュールの電力モード

sakura.ioモジュールの電力モードは以下の図のようになります・
sakura.ioモジュール電源モード
sakura.ioモジュールには、ActiveモードとDeepSleepモードがあります。
ActiveモードとDeepSleepモードは外部のマイコンからWAKE_IN端子を制御することで切り替えます。

モード名 WAKE_IN端子 説明
Active Hi 動作状態です。
LTE経由でsakura.ioプラットフォームと接続します。
不意の切断があった場合を接続状態を維持するために自動的に再接続を行います。
データの送受信などモジュールの機能が使用できる状態です。
DeepSleep Lo 停止状態です。
消費電力は最小にするため、WAKE_IN端子の監視以外の機能を停止します。
sakura.ioプラットフォームとの接続が切断されていますので送受信は一切行えません。

さらにファームウェアのVersion 1.4.0ではSCM-LTE-01を対象にActiveモード時の待機消費電力を制御する省電力管理機能を追加しました。
省電力管理機能には

  • 省電力制御を行わない『省電力制御無効モード』
  • 無通信時にLTEモデムのスリープ機能を有効にする『自動スリープモード』

の2つのモードがあります。
モジュールの電源投入後は『省電力制御無効モード』になります。
追加された『省電力モード設定コマンド』でモードを選択します。

省電力モード名 設定値 説明
省電力機能無効 0x00 省電力制御を行いません。
従来のファームウェアと同等の振る舞いとなります。
オートスリープ 0x01 無通信時にLTEモデムをスリープさせます。

省電力機能の使い方

Arduino、python、mbedの各ライブラリに『省電力モード設定コマンド』と『省電力モード取得コマンド』を追加しました。

最新版のライブラリをご使用ください。
また、実例としてsakura.io評価基板で動作するmbedのサンプルプログラムを作成しました。
省電力機能をご使用の際のご参考になさってください。

消費電流の計測

SCM-LTE-01の電流計測
開発バージョンのsakura.io評価ボードを電流計測用に改造し、SCM-LTE-01に流れる電流を以下の機材で計測しました。

デジタルマルチメータ
KEYSIGHT 34465A
安定化電源
KIKUSUI PAK20-18A

計測の都合上、安定化電源のフィードバックを有効にしていません。
そのため、電源電圧の変化があり厳密な電流値とはなっていません。
参考値として見ていただければと思います。

DeepSleepモード

待機状態

平均電流は約10μAです。

Activeモード復帰から送信

実際の利用を想定して、DeepSleepモード→Activeモード→接続→データ送信→DeepSleepモードと遷移させたときの消費電流のグラフを以下に示します。
DeepSleepモードの電流グラフ
Activeモードに復帰してから128Byteのデータ送信を終えDeepSleepに入るまで約57秒かかっています。
この間の平均電流は約117.1mAです。
57秒のうち接続待ちが約55秒データ送信に約2秒かかっています。
Activeモードとは違い接続を維持していませんので、電源投入時と同様にLTE接続とsakura.ioプラットフォームへの接続の時間がかかります。

Activeモード(省電力制御無効)

電源投入から待機状態

モジュールの電源投入から待機状態で30分経過するまでの電流値のグラフです。
省電力制御無効モード30分待受
平均電流は71.5mA、最大電流は408.6mAです。
グラフの10分および20分周辺の消費電流の増加は、10分間隔でsakura.ioプラットフォームに送信している死活監視パケットの送信によるものです。
省電力制御無効 定常
死活監視パケット送信間の定常状態の平均電流は68.2mA、最大電流は119.0mAです。

送信

データ送信開始から定常状態に戻るまでのグラフです。
省電力管理無効 送信
約10.3秒かかっており、平均電流は131.8mA、最大電流は285.0mAです。

受信

受信開始から定常状態に戻るまでのグラフです。
省電力制御無効 受信
約10.4秒かかっており、平均電流は129.6mA、最大電流は366.2mAです。

Activeモード(オートスリープ)

電源投入から待機状態

モジュールの電源投入から待受状態で30分経過するまでの電流値のグラフです。
自動スリープモード30分待受
平均電流は14.1mA、最大電流は399.2mAでした。
オートスリープ 定常
死活監視パケット送信間の定常状態の平均電流は9.6mA、最大電流は95.0mA消費しています。

送信

送信開始から定常状態へ戻るまでのグラフです。
オートスリープ 送信
約11.2秒かかっており、平均電流は100.0mA、最大電流は375.3mAです。

受信

受信開始から定常状態へ戻るまでのグラフです。
自動スリープ 受信
約11.4秒かかっており、平均電流は106.1mA、最大電流は407.0mAです。

さいごに

sakura.ioのリリース時より、将来実装機能としていた『省電力管理機能』をお届けすることができました。
今後もより便利で使いやすいプラットフォームになるように機能追加、機能改善を続けて参りますのでよろしくお願いいたします。

Continue Reading
  • 1
  • 2
Close Menu