Category: AWS IoT


アナウンス Amazon FreeRTOS – 何十億ものデバイスがクラウドから安全に利益を得ることを可能にする

私は最近ReadWrite.comの記事であるIoTデバイスは前進し、2021年までに200%増加するを読み、記事がこの成長によるお客様と産業の利点を記す一方で、記事内の2つのことが私を行き詰まらせました。一つは”研究者は、IoTの急増が新しい課題を作るだろう。特にエンドユーザと提供する側においてIoTのデプロイメントが面倒を引き起こす。”という文章でした。その文章は正しいだけでなく、このエキサイティングな新しい技術領域のソリューションとデプロイメントを構築するという課題のいくつかに実際に対応していました。二つ目はセキュリティの課題が増えてくるということでした。

その記事は私に、コスト効率の良いマイクロコントローラに簡単にクラウドに接続することができるセキュアなOSを持たせることでクールなIoTのソリューションを作れないかと考えさせました。 幸運なことに、AWSからエキサイティングな新しいオープンソースを提供するという方法でその答えはでてきました。私は今日(2017/11/29 PST)すべてをアナウンスできて嬉しいです。一緒にAmazon FreeRTOSを歓迎しましょう。

(more…)

発表 AWS IoT Analytics:従来よりスケールがあり速いIoTアナリティクスの提供

私が徹底的に楽しむ技術分野として、Internet Of Things(IoT)があります。私が子供のときに両親が私のために購入してくれたおもちゃを分解し、仕組みを見て、どうやって元に戻すかを見てきました。どういうわけか、私は、厳しく刻々と変化する技術を終わらせる運命にあったようです。
したがって、私がIoTのデバイスやテクノロジの学習や調整を本当に楽しんでいることは間違いありません。私の開発とソフトウェアエンジニアリングへの愛と電気工学分野の回路、コントローラ、およびその他に関する私の好奇心を結びつけています。 私が電気工学者であると主張することはできませんが。

IoTデバイスとソリューションの導入によって収集された情報にもかかわらず、私は正直言って、異常発生の検索、大量データのクエリが必要となるケースに直面するまでデータの解析、検索、処理について考えた事がありませんでした。もちろん、組織の方向性を高めるために企業が正確な意思決定と予測を行うための分析の重要性を理解していました。しかし、アナリティクスがIoTの初期ソリューションに不可欠なパーツであるかは私には思い浮かびませんでした。

AWS IoT Analyticsこんにちは!。AWS IoT Analyticsはデバイスからのデータ収集に高度なデータ解析機能を提供するAWS IoTの新しい機能です。AWS IoT Anlyticsサービスは、メッセージの処理、大量のデバイスデータの収集と保管、データに対するクエリの発行ができます。そして、可視化としてAmazon Quicksightと連携し、Jupyter Notebooksと連携し機械学習を持ち込むこともできます。

(more…)

AWS IoT Device Management

AWS IoTAWS GreenGrassは、IoTデバイスとアプリケーションのための強固な基盤とプログラミング環境を提供します

IoTの本質として、数千または数千の場所に配置された数千万のデバイスが何百万が包含されたイベントの規模のデバイス展開が頻繁に発生します。スケールの観点から、個々のデバイスを個別に扱うことは不可能です。さまざまな展開構成、デバイスモデルなどに対応する柔軟性を保持しながら、一括してデバイスをセットアップ、監視、更新、および最終的にリタイアする必要があります。

AWS IoT Device Management

本日(2017/11/29 PST)、この課題に取り組むためのAWS IoT Device Managementをローンチします。デバイスの製造からリタイヤまでのライフサイクルの各フェーズの手助けとなるでしょう。
あなたが手に入れるものは:

(more…)

AWS Greengrassが、アジアパシフィック (東京)リージョンで利用可能になりました。

AWS Greengrassが、アジアパシフィック (東京)リージョンで利用可能になりました。AWS Greengrassが、Java 8、Node.JS 6.10 Lambdaランタイムに対応しました。また、AWS Greengrassで、Lambda関数、サブスクリプション、設定を削除することで、デプロイ済みのGreengrassグループをリセットできるようになりました。

AWS Greengrassは、接続されたデバイスでのローカル・コンピューティング、メッセージング、データと状態の同期を安全な方法で実行できるようにするソフトウェアです。AWS Greengrassによって、接続されたデバイスは、AWS Lambda関数を実行することが可能になります。現在、Python 2.7、Node.JS 6.10、Java 8が利用可能で、開発者に、より適切な言語を選択する柔軟性と、クラウド上のLambda関数との一貫性を提供します。Greengrass上でAWS Lambda関数を実行することによって、IoTデバイスによるローカルイベントへの高速な応答や、不安定なネットワーク環境下での動作を保障します。また、IoTデータのクラウドへの送信コストを最小限に抑えることができます。デプロイ機能のリセットがサポートされ、使用されなくなったGreengrassグループを削除することで、クラウドリソースをクリーンアップでるようになりました。Greengrass Coreをクリーンアップして、デプロイ前の状態に戻すこともできます。この機能によって、Greengrass Coreデバイスからデータを簡単に削除し、それに関連するデータをクラウドから削除することが簡単にできるようになりました。

サポートされているリージョンの一覧は、こちらをご覧ください。

AWS Greengrassの詳細については:
• 製品ページ
• ドキュメント

FAQ

Q: AWS Greengrassサービスは、どのAWSリージョンで利用できますか?

AWS Greengrassは、現在、下記のAWSリージョンで利用可能です。

・ 米国東部(バージニア北部)

・ 米国西部 (オレゴン)

・ 欧州 (フランクフルト)

・ アジアパシフィック (シドニー)

・ アジアパシフィック (東京)

 

AWS Greengrassは、上記のAWSリージョンのいずれかにアクセス可能であれば、ご使用の地域に関係なく利用可能です。

Q: どのLambda用言語をGreengrassにデプロイできますか?

Python 2.7、Node.JS 6.10、またはJava 8 Lambdaランタイムを使用するLambda関数は、Greengrass Coreにデプロイ可能です。GreengrassにデプロイされるLambda関数は、Greengrass Core SDKと一緒にパッケージ化する必要があります。 更に、DynamoDBなどのAWSサービスと簡単にやり取りするために、AWS SDKをLambda関数のパッケージに追加することもできます。

注:Greengrass Coreがオフライン状態の場合、Lambda関数が使用している一部のクラウドサービス(例えば DynamoDB)は、Lambda関数で使用できなくなります。オフライン状態では、これらのサービスへのAPIコールは失敗します。更に、Lambda関数のパッケージにGreengrass Core SDKとAWS SDKの両方を含める場合、各SDKで適切な名前空間を使用する必要があります。

Q: 全てのLambdaランタイム言語をインストールする必要がありますか?

Greengrass Coreで使用する言語のみをインストールする必要があります。

Q: Greengrass Coreを実行するために必要な技術的依存関係は何ですか?

AWS Greengrass Coreは、最小限のハードウェア要件を満たすデバイス上で、幅広いCPUアーキテクチャおよび、オペレーティングシステム上で動作するように設計されています。下記は、Greengrass Coreの実行に必要な依存関係です。

必要なソフトウェアパッケージと構成

  • SQLite – バージョン3以上
  • Python – バージョン2.7以上、 Node.JS 6.10 または、Java 8
  • Glibcライブラリ – バージョン 2.14
  • Linuxカーネル – OverlayFSを有効にしたカーネル・バージョン 4.4.11 以上
  • boto3(最新版)
  • botocore(最新版)
  • OpenSSL – バージョン 1.0.2 以上
  • libseccomp
  • bash

価格
最新情報については、このメールアドレスから、お問い合わせ下さい。AWSIoTSales@amazon.com
デバイス数が1万台を超える場合は、別途、お問い合わせ下さい。

リージョン別の料金設定:3〜10,000台のデバイス
AWS Greengrass には以下の 2 つの料金オプションがあります。 従量制または 22% の割引を受けられる年間契約。

製品およびサービス一覧 (https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/)

 

大阪Cloud Road Showが開幕します。

いよいよ、AWS Cloud Roadshow 2017 powered by Intel®が始まります。

AWS Cloud Roadshow 2017 powered by Intel® は、広島、大阪、名古屋、福岡の 4 都市を巡る無料クラウドカンファレンスです。

明日第二弾大阪を開催いたします。

本イベントでは、各地域で活躍を拡げる著名企業様によるクラウド導入事例セッションや AWS クラウドの最新テクノロジートレンドをご紹介するテクニカルセッションなどを通して、AWS が提供する様々なサービスのベストプラクティスを知ることができます。

見どころのセッションをご紹介します。まずは、基調講演と導入事例トラックの2つです。

基調講演ではIoT GreengrassのServiceTeamよりSatyen Yadavが今後のロードマップについて発表をさせていただきます。

AWSのイベントは学習型イベントであることをかかげていますが、その中でもお客様から直接AWSを使った感想をお話いただくことを重視しています。そのセッションの中でも

2017/9/21 16:20 ~ 17:00 導入事例トラック
【パネルセッション】関西企業事例に学ぶ AWS で実現するデータベースマイグレーション」

は実際にAWSへデータベースをマイグレーションいただいたお客様にご登壇いただくパネルディスカッションとなっています。弊社西日本担当の柳生がモデレータを務めさせていただきます。

AWSでは多くのマイグレーション系のツールをご準備しています。その纏めのスライドを以下に転載しますので合わせて読んでみていただくとより理解が深ると思います。

なぜマイグレーション系のツールが必要となるのでしょうか。システムは立ち上げ当初はそのすべてが管理者により正しく管理され、全てが把握されています。しかし、時間の経過とともに、パッチが適応され、アプリケーションはバージョンアップを繰り返します。システムマイグレーションでは、まず最初のステップとしてシステムの全容の把握が必須となりますが、これがかなり大変な作業となります。AWSの各マイグレーション系のツールはこれらの作業をより簡便にするための機能を備えています。

例えばDMS(Database Migration Service)では、機械的に移設可能なデータベースのテーブルやスキーマなどを洗い出し、手作業が必要な部分を洗い出してくれます。また異なるデータベースエンジン間の移行をサポートすることにより、たとえば商用データベースからクラウド上のOSSベースのデータベースへの移設プロジェクトや同データベースエンジンにおける異なるバージョン間の移設プロジェクトをサポートします。

SMS(Server Migration Service)は2種類の使い方が可能となっています。メインのサーバ移行を行う場合と、AWS上にDRを構築する場合です。メインサーバの移設であれば、vCenter経由で仮想化されたサーバの移設が機械的に可能です。一方DR用途でマイグレーションを行う場合、日々変動するデータなどの差分移行が必要となります。従来のVM Import/Exportツールと異なり、差分移行をサポートしているのがSMSの大きな特徴です。

それらの使い勝手などお客様の声を是非直接聞いてみてください。

またサーバレスを中心としたお客様事例もあります。

そして最後はJAWS UG Nightがあります。今年は600名を超えるお申し込みをいただき、300名を超える規模で開催されます。秋の大運動会として、JAWS 初の大型ライブコーディング競技が開催される予定です。また、競技中に併設してAWSの最新アップデート纏めのセッションも予定されいます。

当日申し込みもできますので是非お越しください。

それではみなさんにお会いできることをAWSチーム一同おまちしております。

– プロダクトマーケティングエバンジェリスト 亀田 治伸

AWS Greengrass – AWS Lambdaをネットワーク接続性のあるデバイス上で動かす

私が最初に AWS Greengrassについて投稿したのは、re:Invent期間中でした。(AWS Greengrass -ユビキタス, 現実世界におけるコンピューティング)
我々は、ご興味をお持ちいただいたお客様を招待制という限定プレビューのかたちでローンチさせていただきました。
そのときに私がお知らせしたように、多くのAWSの顧客は、接続が遅く、時には断続的、信頼できない場合がある、現場でデータを収集して処理したいと考えています。Greengrassでは、AWSプログラミングモデルを小型で簡単なフィールドベースのデバイスに拡張することができます。 AWS IoTAWS Lambdaをベースに構築されており、AWS Cloudで利用可能な多様なサービスへのアクセスをサポートしています。

一般利用可能

今日、Greengrassは米国東部(バージニア)と米国西部(オレゴン)のリージョンで一般利用可能になっています。プレビュー中、AWSのお客様はGreengrassでの実践的な体験を得て、その周辺のアプリケーションやビジネスの構築を開始できました。これらの初期の成功のいくつかをこの記事の後半で共有します。

(more…)

ローカルのMosquitto MQTT BrokerをブリッジにAWS IoTを使う

AWS SDKまたはAWS IoT Device SDKを使用して、数百万のオブジェクトをAWS IoTに安全に接続できます。
製造業におけるIoTの場合、オブジェクトは複数の理由でゲートウェイに接続されます。
センサーは非常に制約され、クラウドに直接接続できないことや、センサーはプロトコルとしてMQTTが使えないまたは、 ゲートウェイ上でローカルに分析と処理を実行する必要があります。

ローカルMQTTブローカーの1つの機能は「ブリッジ」と呼ばれ、MQTTメッセージを交換できるように、ローカルMQTTブローカーをAWS IoTに接続することができます。 これにより、オブジェクトがAWS IoTと双方向で通信し、AWSクラウドの恩恵を受けることができます。

この記事では、この機能が非常に便利で、実装方法を示すユースケースについて説明します。

 

MQTTブローカーをAWS IoTにブリッジする理由

IoTではセキュリティが最も重要であり、AWS IoTブローカーには、クライアント証明書付きのTLS 1.2などに基づいてデバイスを認証および認可する高度なセキュリティビルトインが組み込まれています。

従来のIoTデプロイメントを使用している場合は、MQTTブローカーにユーザー名やパスワードなどの他の認証メカニズムを使用してオブジェクトをすでに接続している可能性があります。 MQTTブローカーは、センサーがデプロイされる非常に近い場所(ローカルMQTTブローカー)もしくはクラウドの中に構築されています。

現在のセキュリティ標準をAWS IoTのものに合わせてアップグレードする予定で、AWS IoTのスケーラビリティとルールエンジンの恩恵を受けるには、従来のMQTTブローカーをAWS IoTにブリッジすることができます。これは、現在のシステムのアップグレードを待たずにすばやく導入できる簡単な一時的なソリューションです。単一のブローカーを超えるスケーリングはこの記事の範囲には含まれていませんが、Mosquitto MQTT Brokerのブリッジ機能に焦点を当てます。

MosquittoのようなオープンソースのMQTTブローカーは、Linuxのような多くのオペレーティングシステムにインストールすることができます。ローカルデバイスにMosquittoをインストールすると、Mosquitto bokerの機能(ローカルでのメッセージの永続化、ローカルでのログのアクティビティ)をローカルで有効にするだけでなく、ローカルデバイスにMosquittoをインストールすることで、AWS IoTにデータを送信するための特別なコードを開発する必要がありません。

(more…)

AWS IoT Button Enterprise Program のご紹介

AWS IoT ボタンは 2015 年 10 月 に AWS re:Invent の AWS IoT サービスの発表で初めて IoT シーンに登場しました。その年の re:Invent の全参加者は、AWS IoT を実践する機会を提供する AWS IoT ボタンを受け取りました。その時以来、AWS IoT ボタンは、クリック可能な IoT デバイスに興味のあるすべての人に広く利用可能になりました。最近開かれた AWS re:Invent 2016 カンファレンスでは、AWS IoT Button Enterprise Program により企業向けの AWS IoT ボタンが公開されました。このプログラムは、物理的なボタンをクリックすることにより新しいサービスを提供したり、既存の製品を改善できるように企業を助けるためのものです。AWS IoT Button Enterprise Program では、企業はプログラム可能な AWS IoT ボタンを使用して、顧客エンゲージメントを高め、アプリケーションを拡張し、ユーザーエクスペリエンスを簡素化して、顧客に新しいイノベーションを提供することができます。IoT の力を活用することにより、企業は製品やサービスに対する顧客の需要にリアルタイムで対応することができ、シンプルなデバイスを通じて顧客に直接的なコミュニケーションを提供することができます。

 

AWS IoT Button Enterprise Program
新しい AWS IoT Button Enterprise Program がどのように機能するかについて説明します。企業は、まず AWS IoT ボタンを一括して配置し、カスタムラベルを付けてボタンをブランド化します。Amazon は AWS IoT へのアクセスを許可し AWS クラウドとの安全な通信を確保するために、各ボタンに個別の証明書と一意のプライベートキーを与えることにより、ボタンを製造し IoT ボタンデバイスを事前にプロビジョニングします。これにより、設定が容易になり、IoT ボタンデバイスのプログラミングをより簡単に開始できます。企業は、ボタンデバイスの使用とデバイスコンパニオンアプリケーションの作成により、IoT ソリューションを設計して構築します。AWS IoT Button Enterprise Program は、デプロイを確実に成功させるために、企業に AWS からの無料の支援を直接提供します。デプロイされたデバイスを機能させるためには、ユーザーのロケーションにおいて Wi-Fi で設定する必要があります。

エンタープライズにとって、IoT ボタンソリューションの実装の恩恵を受けるいくつかのユースケースがあります。いくつかのアイデアを以下に示します。

  • ピザや医療用品などのサービスやカスタム製品の再発注
  • カスタマーサービスエージェントからコールバックを要求する
  • 店舗やレストランでの支援呼び出しボタンなどの小売業務
  • 棚卸しのために製品の数を取得する在庫システム
  • 身体障がい者や高齢者向けのアラートや通知システムなどの医療アプリケーション
  • 外灯を消したり、ガレージのドアを開けるなど、デバイスのオンとオフを切り替えるスマートホームシステムのインターフェイス
  • ゲストのチェックイン/チェックアウトシステム

AWS IoT ボタン
AWS IoT Button Enterprise Program の中心となる AWS IoT ボタン。AWS IoT ボタンは、シングルクリック、ダブルクリック、および長押しの 3 種類のクリックタイプを備えた 2.4GHz Wi-Fi WPA2-PSK 対応デバイスです。ボタンを 1.5 秒以上押すと、長押しのクリックタイプが送信されます。IoT ボタンには小さな LED ライトがあり、IoT ボタンのステータスのカラーパターンが表示されます。点滅している白いライトは、IoT ボタンが Wi-Fi に接続して IP アドレスを取得していることを示します。青色の点滅は、ボタンがワイヤレスアクセスポイント (AP) モードであることを示します。押されたときにデバイスから送信されるデータペイロードには、デバイスシリアル番号、バッテリ電圧、およびクリックタイプが含まれています。現在、AWS IoT ボタンソリューションを構築するには 3 つの方法があります。最初の方法は、AWS IoT ボタンコンパニオンモバイルアプリケーションを使用することです。モバイルアプリケーションは、TLS 1.2 証明書の作成、および AWS Lambda に関連付けられた AWS IoT ルールの作成を含む、必要な AWS IoT リソースを作成します。さらに、AWS IoT を介した IoT ボタンデバイスを、Lambda 設計図から選択した新しい AWS Lambda 関数を呼び出すイベントソースにすることができます。以下より前述の Android および iOS 向けのモバイルアプリケーションをダウンロードできます。

2 番目の方法は、AWS IoT ボタンを使い始める簡単な方法として、AWS Lambda 設計図ウィザードを使用することです。モバイルアプリケーションと同様に、ウィザードは必要な AWS IoT リソースを作成し、新しい Lambda 関数を呼び出すイベントソースをボタンに追加します。3 番目の方法は、AWS IoT 入門ガイドのステップバイステップチュートリアルに従うことです。AWS IoT コンソールを活用してこれらのリソースを手動で作成します。前述の入門ガイドのいずれかを使用して、IoT ボタンを正しく構成し、簡単なワンクリックソリューションを作成したら、独自のカスタム IoT ボタンソリューションの構築を開始する準備ができているはずです。ボタンをクリックするだけで、企業は、顧客のために新しいサービスを構築し、既存のサービスの新機能を提供し、ビジネスプロセスを自動化してより効率的に運用することができます。AWS IoT ボタンソリューションの基本的な技術フローは次のとおりです。

  • ボタンがクリックされ、TLS 1.2 を使用した AWS IoT との安全な接続が確立されます
  • ボタンのデータペイロードが、AWS IoT デバイスゲートウェイに送信されます
  • ルールエンジンは、AWS IoT にパブリッシュされた受信メッセージ (JSON) を評価し、定義されたビジネスルールに基づいてアクションを実行または AWS のサービスをトリガーします。
  • トリガーされた AWS のサービスが実行されるか、アクションが実行されます。
  • デバイスの状態は、デバイスシャドウで読み取ったり、保存したり、設定したりすることができます
  • モバイルアプリやウェブアプリは、アクションに基づいてデータを受信および更新できます

AWS IoT ボタンについての一般的な知識を習得したので、AWS IoT ボタンソリューションを構築する技術的なチュートリアルに移ります。

AWS IoT ボタンソリューションのチュートリアル
ワンクリックカスタマーサービスのオプションを企業に提供するためのユースケースの簡単な例を紹介して、AWS IoT ボタンソリューションの構築にもっと深く取り組んでいきます。開始するには、AWS IoT コンソールに移動し、IoT ボタンをモノとして登録し、モノのタイプを作成します。コンソールでは、コンソールメニューでレジストリモノオプションの順に選択します。

この例の IoT モノの名前は、TEW-AWSIoTButton です。IoT モノを分類する場合は、モノのタイプを作成し、同様の IoT 「モノ」にタイプを割り当てることができます。IoT モノの TEW-AWSIoTButtonOne-click-device 属性キーの IoTButton モノのタイプとして分類し、モノの作成ボタンを選択します。

AWS IoT ボタンデバイス TEW-AWSIoTButtonThing Registry に登録されたら、次に必要な X.509 証明書とキーを取得します。AWS IoT でこのデバイスの証明書を生成させますが、このサービスでは独自の証明書を使用することができます。X.509 証明書による接続の認証は、デバイスと AWS IoT サービス間のデータ交換を保護するのに役立ちます。

証明書が AWS IoT で生成される場合は、ダウンロードページを終了した後にパブリックキーとプライベートキーが使用できなくなるため、作成されたすべてのファイルをダウンロードして保存することが重要です。さらに、生成された証明書を含むページのリンクから AWS IoT のルート CA をダウンロードすることを忘れないでください。新しく作成された証明書は非アクティブであるため、使用前に証明書をアクティブ化することが重要になります。AWS IoT は TLS プロトコルを使用して TLS プロトコルのクライアント認証モードを使用した証明書を認証します。証明書では、非対称キーをデバイスで使用でき、AWS IoT サービスにより、証明書のレジストリに対して証明書のステータスと AWS アカウントをリクエストし、検証します。サービスは、証明書に含まれるパブリックキーに対応するプライベートキーの所有権の証明にチャレンジを送ります。IoT ボタンへの AWS IoT 接続を確保する最終ステップは、承認用の IAM ポリシーを作成またはアタッチ (またはその両方) することです。

[Attach a policy] ボタンを選択してから、IoT ボタンの特定のポリシーを作成するために [Create a Policy] オプションを選択します。新しい IoT ポリシーの [Name] フィールドで、この新しいポリシーの名前の IoTButtonPolicy を入力します。AWS IoT ボタンデバイスはボタンプレスのみをサポートするため、AWS IoT ボタンポリシーは発行許可を追加するだけで済みます。そのため、このポリシーは iot:Publish アクションのみを許可します。  IoT ポリシーの Resource ARN では、AWS IoT ボタンは通常 arn: aws: iot: TheRegion: AWSAccountNumber: topic/ iotbutton /ButtonSerialNumber の形式パターンに従います。つまり、この IoT ボタンポリシーの Resource ARN は次のようになります。

AWS IoT ボタンでない IoT デバイス用の IAM ポリシーを作成している場合、Resource ARN 形式パターンは次のようになることに注意してください。arn: aws: iot: TheRegion: AWSAccountNumber: topic/ YourTopic/ OptionalSubTopic/ AWS IoT ボタン用に作成したポリシー、IoTButtonPolicy は以下のようになります。

次のステップで AWS IoT コンソールダッシュボードに戻ります。[Security] を選択してから、[Certificates] メニューオプションを選択します。前述のステップで作成された証明書を選択します。

それから、選択した証明書ページで、右上隅の [Actions] ドロップダウンを選択します。証明書に IoTButtonPolicy IAM ポリシーを追加するために、[Attach policy] オプションをクリックします。

上記の手順すべてを繰り返しますが、今回は [Attach thing] オプションを選択して [TEW-AWSIoTButton] モノを追加します。

あとは、物理的な AWS IoT ボタンに証明書とプライベートキーを追加して、IoT ボタンが完全に機能するように AWS IoT ボタンを Wi-Fi に接続します。

重要な注意点 AWS IoT Button Enterprise Program に参加をサインアップした企業に関しては、前述のすべての手順、ボタンロゴのブランド化、AWS IoT モノ作成、証明書の入手とキーの作成、ボタンへの証明書の追加は、Amazon および AWS によって完了しています。これもまた、企業が必要な AWS IoT ボタンソリューションの開発を全力で素早く実行するのに役立ちます。ここで、例で使用された AWS IoT ボタン に戻り、LED が青色に点滅するまでボタンを押して、ボタンを Wi-Fi に接続します。つまり、デバイスがワイヤレスアクセスポイント (AP) モードに入ったということです。

IoT ボタンにインターネット接続を提供し、AWS IoT へのデバイスの接続の設定を開始するために、Button ConfigureMe で始まるボタンの Wi-Fi ネットワークに接続します。ボタンの Wi-Fi に初めて接続する際には、パスワードが求められます。物理 AWS IoT ボタンデバイスの背面に示されている、デバイスシリアルナンバーの末尾 8 文字を入力します。

これで、AWS IoT ボタンの設定が完了し、システムを構築できるようになりました。次のステップは、IoT ボタンを押したときに実行されるアクションの追加です。ここで、AWS IoT ルールエンジンが出てきます。MQTT トピックストリームや Device Shadow からの IoT デバイスのデータペイロードを分析するのに使用し、AWS のサービスのアクションをトリガーします。異なるタイプのボタンを押したことが検出されたときに、さまざまなアクションを実行するためのルールを設定します。この AWS IoT ボタンソリューションはシンプルです。IoT ボタンのクリック、および AWS IoT へのボタンのペイロードの送信に応じて、2 つの AWS IoT ルールを設定します。このシナリオでは、ボタンの 1 回のクリックは、顧客からのリクエストが架空の企業のカスタマーサービスエージェントへ送信されていることを表します。しかし、ダブルクリックは顧客の架空のアカウントの現在のステータスを含むテキストが送信されることを表します。最初に作成された AWS IoT ルールは IoT ボタンのペイロードを受信し、ボタンのクリックの種類が SINGLE であるというルールの条件が満たされる場合のみ、E メールを送信するため直接 Amazon SNS へ接続します。2 番目に作成された AWS IoT ルールは、ボタンのクリックの種類が DOUBLE であるというルールの条件が満たされる場合のみ、顧客のアカウントステータスを含むテキストメッセージを送信する Lambda 関数を呼び出します。

カスタマーサービスエージェントの助けをリクエストする E メールを SNS トピックのサブスクライバーへ送信する AWS IoT ルールを作成するために、[Amazon SNS] へ進み、SNS トピックを作成します。

サブスクライブしている架空のカスタマーサービス E メール、このケースでは私の E メールアドレスを使って、トピックの E メールサブスクリプションを作成します。当然、カスタマーサポートをリクエストする E メールを受け取るためにトピックにサブスクライブしているカスタマーサービス担当者は複数いることもありえます。

AWS IoT コンソールに戻って、[Rules] メニューから [Create rule] オプションを選択します。まず、名前とルールの説明を入力します。

次に、AWS IoT ルールエンジンに使用する SQL バージョンを選択します。ここでは最新の SQL バージョンを選択しますが、バージョンを設定するよう選択しなければ、デフォルトのバージョン 2015-10-08 が使用されます。ルールエンジンは SQL に似た構文と SELECT 句、FROM 句、WHERE 句を含むステートメントを使用します。ここでは、メッセージに対して、IoT ボタンのデータペイロードの一部ではないリテラル文字列を返したいと思います。また、ペイロードの一部ではない、ボタンのシリアルナンバーをアカウント番号として返したいと思います。最新のバージョン 2016-03-23 はリテラルオブジェクトをサポートしているので、Amazon SNS にカスタムペイロードを送信できます。

ルールが作成できたので、あとは、ルールが分析されたときに実行されるルールアクションを追加するだけです。前に説明したように、IoT ボタンが 1 回押されてこのルールがトリガーされたら、カスタマーサービス担当者に E メールを送信する必要があります。そのため、この場合、私が作成した SNS トピックへ、架空のカスタマーサービス担当者、たとえば私に E メールを送信するように SNS プッシュ通知としてメッセージを送信するというルールアクションになります。SNS リソースへのアクセスを提供するには、IAM ロールを使用する必要があります。コンソールを使用している場合、適切なアクセス権限を提供するために新しいロールを作成する、または既存のロールを更新するというオプションがあります。また、ここではカスタムメッセージと SNS プッシュを行おうとしているので、[Message format] タイプは RAW を選択します。

ルールが作成できたので、最後に、AWS IoT ボタンが 1 回押されたとき、つまり、データペイロードのクリックの種類が SINGLE のときに、E メールが正常に送信されるかをテストします。

AWS IoT ボタンが 1 回押されると、SNS トピックにカスタムメッセージが発行され、以下に示す E メールが、サブスクライブしているカスタマーサービス担当者、この場合は私の E メールアドレスに送信されました。

IoT ボタンを 2 回押したときに顧客がアカウントステータスをリクエストするというシナリオで、Lambda を通してテキストを送信する AWS IoT ルールと SNS トピックを作成するには。まず、AWS Lambda アクションで AWS IoT ルールを作成します。この IoT ルールを作成するには、まず Lambda 関数、および SNS テキストベースのサブスクリプションのある SNS トピックを作成する必要があります。最初に、Amazon SNS コンソールに進み、SNS トピックを作成します。トピックが作成できたら、SNS トピックの SNS テキストサブスクリプションを作成し、テキストメッセージを受信する数を追加します。次に、Lambda 関数で使用する SNS トピックの ARN をコピーします。SNS での SMS の送信をサポートしているリージョンを使用するため、以前に SNS トピックを作成したのとは異なるリージョンで SNS トピックを作成していることに注意してください。Lambda 関数では、SNS オブジェクトのコンストラクタのパラメーターとしてリージョンを含めることにより、SNS トピックのための適切なリージョンを使用していることを確認する必要があります。作成した SNS トピック、aws-iot-button-topic-text を以下に示します。

次に、AWS Lambda コンソールへ進み、AWS IoT トリガーで、IoT ボタンとしての [IoT Type] のある Lambda 関数を作成します。要求される [Device Serial Number] は AWS IoT ボタンの裏側にあるシリアルナンバーです。AWS IoT ボタンは AWS IoT との安全な通信のために証明書とキーで設定済みであるため、この段階で証明書とキーを生成する必要はありません。

次に、IoT ボタンのデータペイロードを受信し Amazon SNS へ発行するメッセージを作成するための以下のコードで、Lambda 関数、IoTNotifyByText を作成します。

'use strict';

console.log('Loading function');
var AWS = require("aws-sdk");
var sns = new AWS.SNS({region: 'us-east-1'});

exports.handler = (event, context, callback) => {
    // Load the message as JSON object 
    var iotPayload = JSON.stringify(event, null, 2);
    
    // Create a text message from IoT Payload 
    var snsMessage = "Attention: Customer Info for Account #: " + event.accountnum + " Account Status: In Good Standing " + 
    "Balance is: 1234.56"
    
    // Log payload and SNS message string to the console and for CloudWatch Logs 
    console.log("Received AWS IoT payload:", iotPayload);
    console.log("Message to send: " + snsMessage);
    
    // Create params for SNS publish using SNS Topic created for AWS IoT button
    // Populate the parameters for the publish operation using required JSON format
    // - Message : message text 
    // - TopicArn : the ARN of the Amazon SNS topic  
    var params = {
        Message: snsMessage,
        TopicArn: "arn:aws:sns:us-east-1:xxxxxxxxxxxx:aws-iot-button-topic-text"
     };
     
     sns.publish(params, context.done);
};

あとは、AWS IoT トリガーで Lambda 関数を作成したときに自動的に作成された AWS IoT ルールを変更するだけです。それで、AWS IoT コンソールへ進み、[Rules] メニューオプションを選択します。Lambda によって作成された IoT ボタンのルールがあるので、それを選択します。通常、IoT ボタンのデバイスシリアルナンバーと同じサフィックスのある名前になっています。

ルールを選択したら、[Rule query statement] オプションの横にある [Edit] オプションを選択します。

Select ステートメントを、アカウントナンバーとしてシリアルナンバーを返すように変更したら、[Update] ボタンをクリックして AWS IoT ルールへの変更を保存します。

テストタイムIoT ボタンを 2 回クリックし、接続が成功して AWS IoT にメッセージが発行されたことを確認する緑の LED ライトが表示されるのを待ちます。数秒後、私の電話が架空のカスタマーアカウント情報のあるテキストメッセージを受信します。

これは、ビジネスで顧客のためのビジネスソリューションを構築するために AWS IoT ボタン を活用するシンプルな例です。企業が AWS IoT ボタンの量を取得する上で助けとなる新しい AWS IoT Button Enterprise Program により、また、AWS IoT サービスの事前プロビジョニングとデプロイのサポートにより、企業は独自にカスタマイズされた IoT ソリューションの構築を簡単に始められるようになりました。

今すぐご利用可能
オリジナルな第 1 世代の AWS IoT ボタンは現在 Amazon.com で入手できます。また、第 2 世代の AWS IoT ボタンは 2 月に一般公開されます。これらの IoT ボタンの主な違いは、バッテリー寿命やボタンのクリック可能回数です。オリジナルの AWS IoT ボタンを今すぐ購入されると、登録時に 20 USD の AWS クレジットが受け取れます。

企業の皆様は、現在限定プレビュー期間中の AWS IoT Button Enterprise Program に今すぐサインアップしていただけます。このプログラムは、クラウドと IoT ボタンデバイスにより、企業が既存のアプリケーションを拡張し、または新しい IoT 機能を構築できるように設計されています。

AWS IoT ボタン の詳細について、また、プログラム可能な IoT ボタンでのソリューションの構築の詳細については、「AWS IoT ボタン製品ページ」を参照してください。また、AWS IoT サービス の詳細については、AWS IoT 「開発者ガイド」、AWS IoT Device SDK ドキュメント、AWS Internet of Things ブログを参照してください。

Tara

改善されたAWS IoT Buttonデベロッパーエクスペリエンスの発表

5月には、正式にAWS IoT Buttonを開始し、開発者コミュニティから提供されたボタンのサポートに圧倒されました。 私たちは皆様の提案に耳を傾け、AWS IoT Buttonの改良された開発者体験を発表することを喜ばしく思います。

今日から、iOSとAndroid用の新しいモバイルアプリでAWS IoT Buttonを設定できます。 モバイルアプリケーションは、ボタンの登録、設定、およびプログラミングのプロセスを簡素化します。 あらかじめ設定されたAWS Lambdaのブループリントを使用して、このボタンをクリックするとSMSや電子メールを送信するボタンを素早くプログラムすることができます。 または、あなたが選択した機能のための独自のLambdaコードを書くことができます。

さらに、新しいバージョンのAWS IoT Buttonは、バッテリー寿命を2倍に設計しました。 amazon.comで今予約注文することができます。 それまで待ちたくない場合は、元のAWS IoTボタンは引き続き使用でき、AWSアカウントごとに20ドルのAWSクレジットを提供します。

AWS IoT Buttonの詳細については、製品ページをご覧ください。

 

原文: Announcing an Improved AWS IoT Button Developer Experience (翻訳: SA福井)

AWS IoT のジャストインタイム登録をリリース

去年 12 月、re:Invent (概要は AWS IoT – Cloud Services for Connected Devices をご覧ください) にて、 AWS IoT一般公開しました。
そして今年の始めには、私の同僚 Olawale OladehinUse Your Own Certificate with AWS IoT という記事で、自分の証明書を AWS IoT で使用する方法をご紹介しました。また、それ以前にも John RenshawPredictive Maintenance with AWS IoT and Amazon Machine Learning という記事で、AWS IoT の予測メンテナンスと Amazon Machine Learning について解説しています。

ジャストインタイム方式で登録
AWS IoT の柔軟性をさらに高めるため、本日よりデバイス証明書でジャストインタイム方式による登録が可能になりました。これにより Olawale が解説していた機能の拡張が実現し、何百万とある接続済みのデバイスを活用するシステム構築のプロセスを簡素化できるようになりました。証明書や関連デバイスをトラックするために別のデータベースを構築する必要がなく、デバイスと AWS IoT 間における初回通信時の一部として、新しい証明書を自動登録するように設定することが可能になりました。これを活用するには、まず各デバイスの証明書に署名する際に使用する認証機関 (CA) から始めます (これはデジタル証明書の使用において基本的なトラストチェーン型の良い例です)。この新機能を使い始めることは簡単ですが、その際はいくつかの重要な詳細事項に留意し、実行してください。主な手順は以下のとおりです。

  1. 他の証明書を署名する CA の証明書を登録しアクティベートします。
  2. その証明書を使用して各デバイスの証明書を生成し署名します。
  3. AWS IoT の証明書に対するデバイスを用意しアクティベートします。

AWS Lambda 関数を使用して最後の手順を実行することができます。この関数は AWS IoT Rule Engine Action を使用し、指定した MQTT トピックでリッスンします。新しい証明書が AWS IoT に渡されるたびに、そのトピックに通知が送信されます。その後、この関数がデバイスの証明書をアクティベートし、お客様のアプリケーションが必要とするその他の初期化もしくは登録に対処できるようになります。

詳細
この重要な新機能の詳細および必要な手順詳細を確認するには The Internet of Things on AWS BlogJust in Time Registration of Device Certificates on AWS IoT をご覧ください。

Jeff