[レポート] Key for Businessを支える技術 #AMZ305 #reinvent

2019.12.12

CX事業本部の熊膳です。 「AMZ305 - Building a virtual fob with Amazon Key for Business and AWS IoT」のセッションに参加しましたので、レポートします。

Key for Businessとは、許可された建物であれば、スマホで解錠することで、建物の中まで配達できるサービスのことです。ラスト1マイルを埋めるためのサービスになります。

概要

In this session, learn how Amazon Key for Business is enabling efficient deliveries of Amazon packages by using AWS IoT. Learn how the team created the hardware, got it up and running with Amazon FreeRTOS, connected it to the AWS IoT Core, and linked it to existing access systems so that no disruptions occurred. This allows drivers to gain temporary entry to access-controlled buildings to make that final drop-off and ensure we continue to delight our customers!

このセッションでは、AWS IoTを使用してAmazon Key for BusinessがAmazonパッケージの効率的な配達を可能にする方法を学びます。チームがどのようにハードウェアを作成し、Amazon FreeRTOSで起動して実行し、AWS IoT Coreに接続し、既存のアクセスシステムにリンクして中断が発生しないようにする方法を学びます。これにより、ドライバーはアクセス制御された建物に一時的に入場し、最終的な配達を可能にし、お客様を喜ばせ続けることができます!

スピーカー

  • Frank Li (Sr Embedded SDE)
  • Rudy Chetty (Senior Solutions Architect, Amazon Web Services)
  • Taru Roy (Firmware Engineer, Amazon Web Services)

セッション

3部構成で行われました。

Amazon FreeRTOS refresher

Amazon FreeRTOSについてのおさらい。基本的な話が中心でした。

  • モジュラー構成になっている
    • MQTT agent
    • Shadowライブラリ
    • AWS IoT Device Defenderライブラリ
    • AWS IoT Greengrass discovery
    • Wi-Fiマネージメントライブラリ
    • BLEマネージメントライブラリ
    • OTA agent
  • モバイル用のSDK(iOS, Androd)も用意されている
  • クラウド接続ライブラリ
    • AWS IoT core
    • MQTT
      • topicを使ったpub/sub
    • シャドウ
      • Thingの状態情報を保持する
  • Security connectivity libraries
    • 証明書を用いた認証
    • CLIの例
      • aws iot create-keys-and-certificate --certificate-pem-outfile "Certiainly.cert.pem" --public-key-outfile "Certainly.public.key" --private-key-outfile "Certainly.private.key"
  • Over-the-air updates
    • グループのデバイスに対して実行可能
    • ファームウェアイメージを選択し署名する
    • MQTTストリームを用いる
    • APIを使用してインストール、再起動を行える
  • Updates to groups
  • AWS IoT Device Defenderライブラリ
    • 異常動作の検出およびセキュリティリスクの軽減
    • Audit and monitor
    • Device-side metrics
    • Alerts

Amazon Key for Business

  • vWho? What? Where?
    • Amazonなどで購入したアイテムを配送する場合、通常はサードパーティ配送会社(FedEx, UPS)を使うが、より顧客に寄り添ってより近くまで配送することができないか。
  • Prototyping
    • ドライバーがデバイスを用いてビルの中まで配達する仕組み
    • Amazon FreeRTOS
    • 携帯回線
    • Bluetooth
    • ビルへのアクセスコントロール

Hardware deep dive

ハードウェアについての深堀り。

  • Key for Businness
    • Key for Businessとは?
      • ビル内に配達するためのスマートなアクセス方法
    • Our customers
      • 最終的に配達するアマゾンデリバリーサービスの人
    • The problem
      • 即時に届けられない
      • 無駄な時間となってしまう
      • 再配達が必要で余計なコストがかかる
  • これを解決するためにKey for Businessのハードウェアチームは仮想フォブを作った
    • Amazon FreeRTOS
    • AWS IoT core
  • Primary challenge in connecting buildings
  • AWS IoT Core (features)
    • デバイスとクラウドの相互認証
    • MQTTブローカーを用いた通信
    • ポリシー
    • デバイス管理
    • 分析
    • IoTルール
  • AWS IoT Core (IoT rule action)
    • ルールエンジン
      • メッセージの処理と他のAWSサービスとの統合
      • Amazon S3、DynamoDB、AWS Lambdaなどにデータを送信できる
      • メッセージブローカーを用いて他のサブスクライバーにメッセージを再パブリッシュできる
  • Amazon FreeRTOS - 使用する理由は?
    • デバイス要件が低い、コストが低い
      • 25MHz CPU, 64KB RAM, 128KB Flash
    • 早くリリースできる
      • デバイス管理, セキュリティ, OTA
  • Amazon FreeRTOS - OTA
    • S3にファームウェアを配置
    • デジタル署名し、暗号化
    • アプリケーションへのOTAエージェントの統合
    • FWイメージをダウンロード、リセット後、ブートローダーが最新のイメージをテストモードで起動する
    • テストに失敗した場合は自動的にリセットされる
  • Key for Cellular
    • Key for Business + Amazon FreeRTOS
    • ATコマンドを発行してModem + TCP/IP使用

Software deep dive

ソフトウェアの深堀り(スマホアプリ、データ同期など)

  • Send MQTT messages
    • 3step
      • メッセージ作成
      • IoTデータクライアントへメッセージ送信(IoTトピック)
      • 結果を確認
  • アカウントの委譲
    • Concept
      • Trusting account
        • Trusting IAM role
        • AWS IoT Core
  • API Gateway authorization

  • DynamoDBからAmazon Redshiftへの同期

    • Amazon Redshift COPYコマンド使用
    • AWS Data PipelineとLambdaを使用
  • Amazon Redshiftへのメッセージ
    • IoTルールエンジンとKinesis Data Firehoseを利用
  • Demo

感想

現在、私はLIXIL様のスマートエクステリア(スマート宅配ボックス)のプロジェクトに関わっています。再配達を削減する方法の一つとしてスマート宅配ボックスを用いたクラウドサービスを作っています。

Key for Bussinessも同様の課題に対しての別アプローチとして興味を持っていました。今回、ハードウェア、ソフトウェア面の情報を得ることができました。 内部の話がメインでしたので、実際の運用上の課題などが聞けると良かったです。

セッション内で取り上げられているAWS IoT関連に関しては、弊社ブログでもいろいろ解説がありますので、参考にしていただければと思います。

参照