Suche senden
Hochladen
イマドキ!ユースケース別に見るAWS IoT への接続パターン
•
1 gefällt mir
•
2,230 views
S
seiichi arai
Folgen
Developers.IO 2019 の発表資料
Weniger lesen
Mehr lesen
Ingenieurwesen
Melden
Teilen
Melden
Teilen
1 von 117
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Toru Makabe
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
Amazon Web Services Japan
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Amazon Web Services Japan
AWS Black Belt Online Seminar 2017 Amazon DynamoDB
AWS Black Belt Online Seminar 2017 Amazon DynamoDB
Amazon Web Services Japan
Kinesis Firehoseを使ってみた
Kinesis Firehoseを使ってみた
dcubeio
SageMakerでもAUTOMATIC1111したい
SageMakerでもAUTOMATIC1111したい
真吾 吉田
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
Masahito Zembutsu
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
Empfohlen
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Toru Makabe
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
Amazon Web Services Japan
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Amazon Web Services Japan
AWS Black Belt Online Seminar 2017 Amazon DynamoDB
AWS Black Belt Online Seminar 2017 Amazon DynamoDB
Amazon Web Services Japan
Kinesis Firehoseを使ってみた
Kinesis Firehoseを使ってみた
dcubeio
SageMakerでもAUTOMATIC1111したい
SageMakerでもAUTOMATIC1111したい
真吾 吉田
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
Masahito Zembutsu
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
JustSystems Corporation
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
NTT DATA OSS Professional Services
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
Amazon Web Services Japan
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
Amazon Web Services Japan
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
NTT DATA Technology & Innovation
とにかく分かりづらいTwelve-Factor Appの解説を試みる
とにかく分かりづらいTwelve-Factor Appの解説を試みる
Masatoshi Tada
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
Amazon Web Services Japan
分散トレーシングAWS:X-Rayとの上手い付き合い方
分散トレーシングAWS:X-Rayとの上手い付き合い方
Recruit Lifestyle Co., Ltd.
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
NTT Communications Technology Development
Keycloak拡張入門
Keycloak拡張入門
Hiroyuki Wada
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Shin Ohno
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
NTT DATA Technology & Innovation
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
Yahoo!デベロッパーネットワーク
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
Amazon Web Services Japan
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
Akihiro Kuwano
Apache Kafka 0.11 の Exactly Once Semantics
Apache Kafka 0.11 の Exactly Once Semantics
Yoshiyasu SAEKI
20191029 AWS Black Belt Online Seminar Elastic Load Balancing (ELB)
20191029 AWS Black Belt Online Seminar Elastic Load Balancing (ELB)
Amazon Web Services Japan
AWS Black Belt Online Seminar 2017 Amazon Kinesis
AWS Black Belt Online Seminar 2017 Amazon Kinesis
Amazon Web Services Japan
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!
Tetsutaro Watanabe
IoT@Loft - IoT開発を成功させるためのPoCの進め方と実践
IoT@Loft - IoT開発を成功させるためのPoCの進め方と実践
Amazon Web Services Japan
Rspberry PI + AWS IOT検証
Rspberry PI + AWS IOT検証
シイエヌエス
Weitere ähnliche Inhalte
Was ist angesagt?
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
JustSystems Corporation
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
NTT DATA OSS Professional Services
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
Amazon Web Services Japan
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
Amazon Web Services Japan
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
NTT DATA Technology & Innovation
とにかく分かりづらいTwelve-Factor Appの解説を試みる
とにかく分かりづらいTwelve-Factor Appの解説を試みる
Masatoshi Tada
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
Amazon Web Services Japan
分散トレーシングAWS:X-Rayとの上手い付き合い方
分散トレーシングAWS:X-Rayとの上手い付き合い方
Recruit Lifestyle Co., Ltd.
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
NTT Communications Technology Development
Keycloak拡張入門
Keycloak拡張入門
Hiroyuki Wada
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Shin Ohno
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
NTT DATA Technology & Innovation
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
Yahoo!デベロッパーネットワーク
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
Amazon Web Services Japan
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
Akihiro Kuwano
Apache Kafka 0.11 の Exactly Once Semantics
Apache Kafka 0.11 の Exactly Once Semantics
Yoshiyasu SAEKI
20191029 AWS Black Belt Online Seminar Elastic Load Balancing (ELB)
20191029 AWS Black Belt Online Seminar Elastic Load Balancing (ELB)
Amazon Web Services Japan
AWS Black Belt Online Seminar 2017 Amazon Kinesis
AWS Black Belt Online Seminar 2017 Amazon Kinesis
Amazon Web Services Japan
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!
Tetsutaro Watanabe
Was ist angesagt?
(20)
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
とにかく分かりづらいTwelve-Factor Appの解説を試みる
とにかく分かりづらいTwelve-Factor Appの解説を試みる
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
分散トレーシングAWS:X-Rayとの上手い付き合い方
分散トレーシングAWS:X-Rayとの上手い付き合い方
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
Keycloak拡張入門
Keycloak拡張入門
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
Apache Kafka 0.11 の Exactly Once Semantics
Apache Kafka 0.11 の Exactly Once Semantics
20191029 AWS Black Belt Online Seminar Elastic Load Balancing (ELB)
20191029 AWS Black Belt Online Seminar Elastic Load Balancing (ELB)
AWS Black Belt Online Seminar 2017 Amazon Kinesis
AWS Black Belt Online Seminar 2017 Amazon Kinesis
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!
Ähnlich wie イマドキ!ユースケース別に見るAWS IoT への接続パターン
IoT@Loft - IoT開発を成功させるためのPoCの進め方と実践
IoT@Loft - IoT開発を成功させるためのPoCの進め方と実践
Amazon Web Services Japan
Rspberry PI + AWS IOT検証
Rspberry PI + AWS IOT検証
シイエヌエス
ビットバンクにおける少人数で支えるインフラチームの戦略
ビットバンクにおける少人数で支えるインフラチームの戦略
bitbank, Inc. Tokyo, Japan
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
Masanori Ishigami
Azure Api Management 俺的マニュアル 2020年3月版
Azure Api Management 俺的マニュアル 2020年3月版
貴志 上坂
Elastic on Azure Integration & Building React UI Based Search App Using Azure...
Elastic on Azure Integration & Building React UI Based Search App Using Azure...
Shotaro Suzuki
AWS Black Belt Online Seminar 2016 AWS IoT
AWS Black Belt Online Seminar 2016 AWS IoT
Amazon Web Services Japan
2021/03/19 パブリッククラウドを活かす運用プロセス自動化
2021/03/19 パブリッククラウドを活かす運用プロセス自動化
Issei Hiraoka
AWS の IoT 向けサービス
AWS の IoT 向けサービス
Amazon Web Services Japan
【AWS Night in ITHD】AWSとのSoftLayerで仮想ネットワークオーバーレイ
【AWS Night in ITHD】AWSとのSoftLayerで仮想ネットワークオーバーレイ
Nobuyuki Matsui
Ansibleではじめるサーバー・ネットワークの自動化(2019/04版)
Ansibleではじめるサーバー・ネットワークの自動化(2019/04版)
akira6592
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Shotaro Suzuki
Aws io tで証明書を自動登録してデータをアップするまでのお話し
Aws io tで証明書を自動登録してデータをアップするまでのお話し
Yuji Chino
Power BI をアプリに埋め込みたい? ならば Power BI Embedded だ!
Power BI をアプリに埋め込みたい? ならば Power BI Embedded だ!
Teruchika Yamada
AWSオンリーで実現するIoTクラウド基盤
AWSオンリーで実現するIoTクラウド基盤
Godai Nakamura
Node.jsアプリの開発をモダン化するために取り組んできたこと
Node.jsアプリの開発をモダン化するために取り組んできたこと
bitbank, Inc. Tokyo, Japan
AWS IoT アップデート 2016.02.16
AWS IoT アップデート 2016.02.16
Amazon Web Services Japan
マイクロソフトの AI プラットフォーム & Cognitive Services 概要 ~ Ignite 2020 Recap
マイクロソフトの AI プラットフォーム & Cognitive Services 概要 ~ Ignite 2020 Recap
Ayako Omori
開発者におくる Power BI を使う時に考えるべきアーキテクチャ ~ データを溜めるのは誰だ? ~
開発者におくる Power BI を使う時に考えるべきアーキテクチャ ~ データを溜めるのは誰だ? ~
Yugo Shimizu
AWSによるサーバーレスアーキテクチャ
AWSによるサーバーレスアーキテクチャ
真吾 吉田
Ähnlich wie イマドキ!ユースケース別に見るAWS IoT への接続パターン
(20)
IoT@Loft - IoT開発を成功させるためのPoCの進め方と実践
IoT@Loft - IoT開発を成功させるためのPoCの進め方と実践
Rspberry PI + AWS IOT検証
Rspberry PI + AWS IOT検証
ビットバンクにおける少人数で支えるインフラチームの戦略
ビットバンクにおける少人数で支えるインフラチームの戦略
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
Azure Api Management 俺的マニュアル 2020年3月版
Azure Api Management 俺的マニュアル 2020年3月版
Elastic on Azure Integration & Building React UI Based Search App Using Azure...
Elastic on Azure Integration & Building React UI Based Search App Using Azure...
AWS Black Belt Online Seminar 2016 AWS IoT
AWS Black Belt Online Seminar 2016 AWS IoT
2021/03/19 パブリッククラウドを活かす運用プロセス自動化
2021/03/19 パブリッククラウドを活かす運用プロセス自動化
AWS の IoT 向けサービス
AWS の IoT 向けサービス
【AWS Night in ITHD】AWSとのSoftLayerで仮想ネットワークオーバーレイ
【AWS Night in ITHD】AWSとのSoftLayerで仮想ネットワークオーバーレイ
Ansibleではじめるサーバー・ネットワークの自動化(2019/04版)
Ansibleではじめるサーバー・ネットワークの自動化(2019/04版)
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Aws io tで証明書を自動登録してデータをアップするまでのお話し
Aws io tで証明書を自動登録してデータをアップするまでのお話し
Power BI をアプリに埋め込みたい? ならば Power BI Embedded だ!
Power BI をアプリに埋め込みたい? ならば Power BI Embedded だ!
AWSオンリーで実現するIoTクラウド基盤
AWSオンリーで実現するIoTクラウド基盤
Node.jsアプリの開発をモダン化するために取り組んできたこと
Node.jsアプリの開発をモダン化するために取り組んできたこと
AWS IoT アップデート 2016.02.16
AWS IoT アップデート 2016.02.16
マイクロソフトの AI プラットフォーム & Cognitive Services 概要 ~ Ignite 2020 Recap
マイクロソフトの AI プラットフォーム & Cognitive Services 概要 ~ Ignite 2020 Recap
開発者におくる Power BI を使う時に考えるべきアーキテクチャ ~ データを溜めるのは誰だ? ~
開発者におくる Power BI を使う時に考えるべきアーキテクチャ ~ データを溜めるのは誰だ? ~
AWSによるサーバーレスアーキテクチャ
AWSによるサーバーレスアーキテクチャ
イマドキ!ユースケース別に見るAWS IoT への接続パターン
1.
イマドキ!ユースケース別に見る AWS IoT への接続パターン CX事業本部
新井成一
2.
2自己紹介 新井 成一(あらい せいいち) •
社歴 (1年半) • 2018年4月にサーバーレス開発部にJoin • これまで携わった案件 • APIのバックエンド開発: 2件 • IoTのバックエンド開発: 6件 • 好きなAWSサービス • Amazon API Gateway, AWS IoT など
3.
3 IoT案件開始するとき、 いつも思うことがあります
4.
4 「AWS IoT使いたいんですが、 どうやって接続するんですか?」
5.
5 答えるのが難しい…
6.
6IoT案件でよく思うこと Q「AWS IoTにどうやって接続 するのか?」 開発者 (クラウド側担当) お客様 接続方法っていろいろな パターンがあるからな…
7.
7IoT案件でよく思うこと とりあえずつ ないでみたい MQTTで位置情 報収集と遠隔操 作がしたい Q「AWS IoTにどうやって接続 するのか?」 開発者 (クラウド側担当) お客様 接続方法っていろいろな パターンがあるからな…
8.
8IoT案件でよく思うこと A「ユースケースがわからない と答えられません!!」 とりあえずつ ないでみたい MQTTで位置情 報収集と遠隔操 作がしたい Q「AWS IoTにどうやって接続 するのか?」 開発者 (クラウド側担当) お客様 接続方法っていろいろな パターンがあるからな…
9.
9IoT案件でよく思うこと A「ユースケースがわからない と答えられません!!」 とりあえずつ ないでみたい MQTTで位置情 報収集と遠隔操 作がしたい Q「AWS IoTにどうやって接続 するのか?」 開発者 (クラウド側担当) お客様 接続方法っていろいろな パターンがあるからな…
10.
10 ユースケース別に 接続パターンをまとめてみました
11.
11今回する/しない話 今回する話 • AWS IoTの仕様の話 •
どこにつなげれるのか? (WHERE) • どうやってつなぐのか? (HOW) • 仕様を踏まえた上での接続パターンの紹介 今回しない話 • エッジサイドの話 • 他のクラウドベンダーの話 • AWS IoT以外のサービスとの接続パターン
12.
12対象者 IoTやAWSをなんとなく知っている アカウント持ってるけどAWS IoTまだ使ったことない AWS IoT使っているけど接続パターンを整理したい
13.
13INDEX • AWS IoTへの接続に関する話(仕様) •
エンドポイント ← WHERE • 通信プロトコル ← HOW • 認証・認可 ← HOW • ユースケース別に接続パターンを紹介 • まとめ
14.
14AWS IoTのサービス全体像
15.
15AWS IoTのサービス全体像 エッジサイド向 け クラウド側でのデ バイス管理など データ収集後の 分析向け
16.
16AWS IoTのサービス全体像 接続に関する 機能はココ
17.
17AWS IoT Core
is 何? AWS IoT Core は、インターネットに接続されたデ バイスから、クラウドアプリケーションやその他のデ バイスに簡単かつ安全に通信するためのマネージド型 クラウドサービスです。
18.
18AWS IoT Coreのいろいろな機能
19.
19AWS IoT Coreのいろいろな機能 今回お話する 機能はココ
20.
20INDEX • AWS IoTへの接続に関する話(仕様) •
エンドポイント • 通信プロトコル • 認証・認可 • ユースケース別に接続パターンを紹介 • まとめ
21.
21エンドポイント アカウント・リージョンごとに1つ 東京リージョンを含むアジア、米国、欧州などの全13 リージョンで利用可能
22.
22コンソールから簡単に確認できます
23.
23忘れがちだけど大事なこと グローバルに展開するIoTシステム • 全デバイスが同一リージョンにアクセスする必要はない • 近場のリージョンに接続するパターンを考える 複数環境(本番・開発)を持ちたい場合 •
1アカウント内の同じエンドポイントを共有するとアクセ スログの混在する • アカウント毎のエンドポイントに接続するパターンを考 える
24.
24INDEX • AWS IoTへの接続に関する話(仕様) •
エンドポイント • 通信プロトコル • 認証・認可 • ユースケース別に接続パターンを紹介 • まとめ
25.
25通信プロトコル MQTT MQTT over WebSocket HTTPS
26.
26MQTTとは? Pub/Sub型のメッセージングモデルによる双方向通信 • ネットワークが不安定な場所でも動作しやすいように設計され ているので、軽量かつシンプル Publisher: メッセージの送信者 Subscriber:
メッセージの受信者 Topic: メッセージの送受信先 Broker: メッセージを仕分けする仲介者
27.
27HTTPSとは? クライアント・サーバー間のリクエスト/レスポンス型 通信 • クライアントがサーバーに要求(HTTPリクエスト)を送信 • サーバが応答(HTTPレスポンス)を返却
28.
28MQTT vs HTTPS •
サーバーからデバイスへの命令(遠隔操作) • MQTT • 一度コネクションを確立すれば、サーバーが任意のタイミングでデバ イスに対してメッセージの通知が可能 • HTTPS • クライアントがサーバーに対し、「定期的なポーリング」もしくは 「ロングポーリング」を行う必要がある • データ通信量や命令の即時性に影響
29.
29AWS IoTのMQTTでは QoS2と Retain がサポートされていないので注意 ※その他は基本的にMQTTv3.1.1に準拠
30.
30INDEX • AWS IoTへの接続に関する話(仕様) •
エンドポイント • 通信プロトコル • 認証・認可 • ユースケース別に接続パターンを紹介 • まとめ
31.
31認証と認可について 認証とは? • 相手が誰(何)であるかを確認すること 認可とは? • 相手に特定の権限を与えること
32.
32認証方法と認証情報 X.509 クライアント 証明書 TLSクライ アント認証 AWSアクセスキー (クレデンシャル) で作成する署名 (SigV4) SigV4認証 ベアラートークン カスタム認 証
33.
33TLSクライアント認証の例
34.
34TLSクライアント認証の例 AWSコンソールからワンクリックで発行できます!
35.
35TLSクライアント認証の例
36.
36TLSクライアント認証の例 接続を要求
37.
37TLSクライアント認証の例 サーバー証明書 ください クライアント証明書 ください ① ②
38.
38TLSクライアント認証の例 TLSのセッション確立 サーバー証明書 ください ① ② クライアント証明書 ください
39.
39SigV4認証の例 後ほど紹介します。
40.
40カスタム認証の例 後ほど紹介します。
41.
41認可はIoT Policyでおこなう IoT Policyは… •
クライアント証明書にアタッチすることで権限を付与 • AWS IoT Coreへの細かい接続制限が可能
42.
42IoT Policyの例 { "Statement": [ { "Effect":
"Allow", "Action": [ "iot:Connect" ], "Resource": [ "arn:aws:iot:ap-northeast-1:123456789012:client/${iot:Connection.Thing.ThingName}” ] }, { ”Effect”: ”Allow”, ”Action”: [ ”iot:Subscribe” ], ”Resource”: [ ”arn:aws:iot:ap-northeast- 1:123456789012:topicfilter/devio/${iot:Connection.Thing.ThingName}/location" ] …以下省略
43.
43IoT Policyの例 { "Statement": [ { "Effect":
"Allow", "Action": [ "iot:Connect" ], "Resource": [ "arn:aws:iot:ap-northeast-1:123456789012:client/${iot:Connection.Thing.ThingName}” ] }, { ”Effect”: ”Allow”, ”Action”: [ ”iot:Subscribe” ], ”Resource”: [ ”arn:aws:iot:ap-northeast- 1:123456789012:topicfilter/devio/${iot:Connection.Thing.ThingName}/location" ] …以下省略
44.
44ここまでのまとめ エンドポイント シングルリージョン マルチリージョン 通信プロトコル MQTT MQTT over WebSocket HTTPS 認証・認可 TLSクライアント認証 SigV4認証 カスタム認証 ※分解したが無理な組み合わせもあるので注意
45.
45INDEX • AWS IoTへの接続に関する話(仕様) •
エンドポイント • 通信プロトコル • 認証・認可 • ユースケース別に接続パターンを紹介 • まとめ
46.
46代表的な接続パターン ① デバイス TSLクライアント認証 MQTT/HTTPS シングルリージョン ② ユーザー SigV4認証 MQTT over WebSocket/HTTPS シングルリージョン ③ ユーザー カスタム認証 MQTT over WebSocket/HTTPS シングルリージョン
47.
47おしらせ 接続パターンを洗い出してみて わかったこと
48.
48おしらせ 認証情報を いつ?どうやって? 払い出すのかが重要だった
49.
49代表的な接続パターン Before ① デバイス TSLクライアント認証 MQTT/HTTPS シングルリージョン ② ユーザー SigV4認証 MQTT over WebSocket/HTTPS シングルリージョン ③ ユーザー カスタム認証 MQTT
over WebSocket/HTTPS シングルリージョン
50.
50代表的な接続パターン After ①-A デバイス ? TSLクライアント認証 MQTT/HTTPS シングルリージョン ①-B デバイス ? TSLクライアント認証 MQTT/HTTPS シングルリージョン ①-C デバイス ? TSLクライアント認証 MQTT/HTTPS シングルリージョン ② ユーザー ? SigV4認証 MQTT over WebSocket/HTTPS シングルリージョン ③ ユーザー ? カスタム認証 MQTT
over WebSocket/HTTPS シングルリージョン
51.
51注意事項 あくまでパターンで ベストプラクティスではないです 分かりやすさ重視のため 細かな手順は省いています
52.
52凡例
53.
53 とりあえず デバイスをAWS IoTへ接続したい場合 (※主観ですが一番シンプル)
54.
54①-A: キッティング登録 ①-A デバイス AWS IoTからデバイス毎に発行したクライアント証明書 TLSクライアント認証 MQTT/HTTPS シングルリージョン
55.
55①-A: キッティング登録 事前準備 初回起動
56.
56①-A: キッティング登録 事前準備 初回起動 各デバイス固有のクライアント証明 書・秘密鍵(以下、認証情報)を発行 ①
57.
57①-A: キッティング登録 事前準備 初回起動 各デバイス固有のクライアント証明 書・秘密鍵(以下、認証情報)を発行 ① クライアント証明書へIoT Policy(権限)をアタッチ②
58.
58①-A: キッティング登録 事前準備 初回起動 デバイス毎に固有の 認証情報を埋め込み③ クライアント証明書へIoT Policy(権限)をアタッチ② 各デバイス固有のクライアント証明 書・秘密鍵(以下、認証情報)を発行 ①
59.
59①-A: キッティング登録 事前準備 初回起動 エンドポイントに対し てTLS接続を開始 ① MQTT/HTTPS
60.
60①-A: キッティング登録 事前準備 初回起動 MQTT/HTTPS TLSクライアント認証② エンドポイントに対し てTLS接続を開始 ①
61.
61①-A: キッティング登録 事前準備 初回起動 IoT
Policyによって アクセス制御 MQTT/HTTPS ③ エンドポイントに対し てTLS接続を開始 ① TLSクライアント認証②
62.
62Tips クラウド側は楽
63.
63Tips 生産現場でいろいろやることがある
64.
64①-A: キッティング登録 事前準備 初回起動 各デバイス固有のクライアント証明 書・秘密鍵(以下、認証情報)を発行 クライアント証明書へ IoT
Policyをアタッチ ① ②デバイス毎に固有の 認証情報を埋め込み ③
65.
65①-A: キッティング登録 事前準備 初回起動 各デバイス固有のクライアント証明 書・秘密鍵(以下、認証情報)を発行 クライアント証明書へ IoT
Policyをアタッチ ① ②デバイス毎に固有の 認証情報を埋め込み ③
66.
66①-A: キッティング登録 事前準備 初回起動 各デバイス固有のクライアント証明 書・秘密鍵(以下、認証情報)を発行 クライアント証明書へ IoT
Policyをアタッチ ① ②デバイス毎に固有の 認証情報を埋め込み ③
67.
67Tips インターネット接続 証明書を個別に発行&埋め込み作業 生産ラインを専用に用意
68.
68 生産現場でデバイス毎の認証情報を 払い出すのが難しい場合
69.
69①-B: Bootstrap ①-B デバイス 初回起動時にMQTTで取得したクライアント証明書 TLSクライアント認証 MQTT(must)/HTTPS シングルリージョン
70.
70①-B: Bootstrap 事前準備 初回起動 デバイス初期登録用トピックのPub/Sub のみ行える認証情報を事前に発行
71.
71①-B: Bootstrap 事前準備 初回起動 共通の認証情報を埋め込む
72.
72①-B: Bootstrap 事前準備 初回起動 デバイス初期登録トピックで起動し、新 規認証情報を発行するLambdaを用意
73.
73①-B: Bootstrap 事前準備 初回起動 デバイス初期登録用 トピックへのPublish ①
74.
74①-B: Bootstrap 事前準備 初回起動 トピックへのメッ セージでLambda起動② デバイス初期登録用 トピックへのPublish ①
75.
75①-B: Bootstrap 事前準備 初回起動 ③ 新規認証情報の発行処理 ポリシーのアタッチ デバイス初期登録用 トピックへのPublish ① トピックへのメッ セージでLambda起動②
76.
76①-B: Bootstrap 事前準備 初回起動 新規認証情報を送信④ デバイス初期登録用 トピックへのPublish ① トピックへのメッ セージでLambda起動② ③ 新規認証情報の発行処理 ポリシーのアタッチ
77.
77①-B: Bootstrap 事前準備 初回起動 新規認証情報 で接続開始⑤ デバイス初期登録用 トピックへのPublish ① トピックへのメッ セージでLambda起動② 新規認証情報を送信④ ③ 新規認証情報の発行処理 ポリシーのアタッチ
78.
78Tips 全デバイスに共通の情報なので 生産現場での作業は簡易化
79.
79Tips 共通の認証情報が漏洩が全デバイスに影響 デバイス・クラウドともに実装が追加 初回起動時の動作確認を入念にやる必要ある
80.
80 生産現場でインターネットにはつなげない 社内ネットワークにはつなげる & 自前の認証局を用意できる場合
81.
81①-C: JITR (Just
in Time Registration) ①-C デバイス 自前の認証局からデバイス毎に発行したクライアント証明書 TLSクライアント認証 MQTT/HTTPS シングルリージョン
82.
82①-C: JITR (Just
in Time Registration) 事前準備 初回起動 自前の認証局のCA証明書 を事前登録
83.
83①-C: JITR (Just
in Time Registration) 事前準備 初回起動 各デバイスに固有の認証 情報の発行と埋め込み
84.
84①-C: JITR (Just
in Time Registration) 事前準備 初回起動 JITR登録完了通知で起 動するLambdaを用意
85.
85①-C: JITR (Just
in Time Registration) 事前準備 初回起動 エンドポイントに対して TLS接続を開始①
86.
86①-C: JITR (Just
in Time Registration) 事前準備 初回起動 ② 登録済みのCAから発行され た証明書かチェックする エンドポイントに対して TLS接続を開始①
87.
87①-C: JITR (Just
in Time Registration) 事前準備 初回起動 検証が通れば、クラウド 側に証明書が登録される③ ② 登録済みのCAから発行され た証明書かチェックする エンドポイントに対して TLS接続を開始①
88.
88①-C: JITR (Just
in Time Registration) 事前準備 初回起動 検証が通れば、クラウド 側に証明書が登録される③ ② 登録済みのCAから発行され た証明書かチェックする エンドポイントに対して TLS接続を開始① IoT Policyをアタッチし て権限を付与④
89.
89①-C: JITR (Just
in Time Registration) 事前準備 初回起動 ⑤ そのうち接続が 確立できる IoT Policyをアタッチし て権限を付与④ 検証が通れば、クラウド 側に証明書が登録される③ ② 登録済みのCAから発行され た証明書かチェックする エンドポイントに対して TLS接続を開始①
90.
90Tips 生産現場での作業は簡易化
91.
91Tips 自社管理のCAなら維持費が発生 デバイス・クラウドともに実装が追加 初回起動時の動作確認を入念にやる必要ある
92.
92 ユーザーがモバイルやウェブアプリから AWS IoT Coreにつなぎたい場合
93.
93②: Amazon Cognito
Identities ② ユーザー Cognito Identity Poolsから取得した一時クレデンシャル SigV4認証 MQTT over WebSocket/HTTPS シングルリージョン
94.
94②: Amazon Cognito
Identities IdPsのクライアントIDを登録 事前準備 初回 MQTT over WebSocket / HTTPS
95.
95②: Amazon Cognito
Identities MQTT over WebSocket / HTTPS 事前準備 初回 ① ログイン
96.
96②: Amazon Cognito
Identities MQTT over WebSocket / HTTPS 事前準備 初回 アクセストークンを送信し、 一時クレデンシャルに変換② ① ログイン
97.
97②: Amazon Cognito
Identities MQTT over WebSocket / HTTPS 事前準備 初回 署名(SigV4)をリクエスト に追加して接続開始③ アクセストークンを送信し、 一時クレデンシャルに変換② ① ログイン
98.
98②: Amazon Cognito
Identities MQTT over WebSocket / HTTPS 事前準備 初回 ④ アクセス可否 アクセストークンを送信し、 一時クレデンシャルに変換② ① ログイン 署名(SigV4)をリクエスト に追加して接続開始③
99.
99Tips ユーザーがメッセージブローカ経由で デバイスにメッセージが送れる 一時クレデンシャルを利用して 他のAWSサービスにも接続できる
100.
100Tips APIを設けるパターンと比べて メッセージのバリデーションはできない
101.
101 独自の認証・認可戦略を行いたい場合
102.
102③: カスタム認証 ③ ユーザー 認証基盤から払い出したJWT(Json Web
Token) カスタム認証 MQTT over WebSocket/HTTPS シングルリージョン
103.
103③: カスタム認証 キーペアの公開鍵 を登録 事前準備 初回 独自の認可 処理を実装 MQTT
over WebSocket/HTTPS
104.
104③: カスタム認証 事前準備 初回 MQTT
over WebSocket/HTTPS ログイン ①
105.
105③: カスタム認証 事前準備 初回 JWTをリクエスト に追加して送信 ② MQTT
over WebSocket/HTTPS ログイン ①
106.
106③: カスタム認証 事前準備 初回 JWTをリクエスト に追加して送信 ③
公開鍵で署名検証 ② MQTT over WebSocket/HTTPS ログイン ①
107.
107③: カスタム認証 事前準備 初回 ④ JWTをリクエスト に追加して送信 ペイロードの内容から 独自の処理を実行③
公開鍵で署名検証 ② MQTT over WebSocket/HTTPS ログイン ①
108.
108③: カスタム認証 事前準備 初回 ④ JWTをリクエスト に追加して送信 ペイロードの内容から 独自の処理を実行③
公開鍵で署名検証 ② MQTT over WebSocket/HTTPS ログイン ① ポリシーを返却⑤
109.
109③: カスタム認証 アクセス可否 事前準備 初回 ④ JWTをリクエスト に追加して送信 ペイロードの内容から 独自の処理を実行③
公開鍵で署名検証 ② MQTT over WebSocket/HTTPS ログイン ① ⑥ ポリシーを返却⑤
110.
110Tips Lambda関数を利用して独自の認可処理を プログラマブルに組める アクセス制御の自由度は高め
111.
111 その他 紹介しきれなかった接続パターンたち
112.
112紹介しきれなかった接続パターン マルチリージョンでの接続パターン • 自前CAを各リージョンに事前登録しておくことで、1つ のクライアント証明書でマルチリージョン接続が可能 Soracom SIMを利用する際の接続パターン •
証明書の発行を代行するサービス(Krypton)が利用可能 • 証明書なしでもAWS IoT Coreへメッセージを転送して くれるサービス(Funnel)が利用可能
113.
113まとめ 今回は下記3つの仕様を考慮した接続パターンをいくつ か紹介しました • エンドポイント • シングルリージョン/マルチリージョン •
通信プロトコル • MQTT/MQTT over WebSocket/HTTPS • 認証・認可 • TLSクライアント認証/Sigv4認証/カスタム認証
114.
114まとめ ユースケース別に 接続パターンを洗い出してみた!
115.
115まとめ デバイスへ認証情報を 発行するタイミングが重要だった…
116.
116まとめ AWS IoTを利用する際の 参考になれば幸いです
117.
117 ご清聴ありがとうございました
Jetzt herunterladen