serverless で位置情報を活用する

27
位置情報を活用する Serverless 2016年03月29日 株式会社ヴァル研究所 内田 学 AWSで動かしているサービスの裏側を覗いてみる会@八王子

Upload: uchimanajet7

Post on 08-Jan-2017

153 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Serverless で位置情報を活用する

で位置情報を活用するServerless

2016年03月29日 株式会社ヴァル研究所

内田 学 AWSで動かしているサービスの裏側を覗いてみる会@八王子

Page 2: Serverless で位置情報を活用する

2ご注意‣ 2016年03月28日現在の情報です

‣ 資料内の表現や文言は変更される可能性があります

‣ 個人での発表用なので今後会社から出る正式版と異なる場合があります

‣ 正式版との差異があった場合正式版が基準となりますのでご了承ください

‣ ご意見やご質問がありましたらお気軽にお問い合わせください

Page 3: Serverless で位置情報を活用する

3自己紹介内田 学(うちだ まなぶ)

uchimanajet7

Spot Instances AWS SDK for Go

Support API Gateway

Page 4: Serverless で位置情報を活用する

4会社紹介

東京都杉並区高円寺北2−3−171976年(昭和51年)7月26日155名(2015年10月1日現在)

Page 5: Serverless で位置情報を活用する

5製品・サービス紹介

Page 6: Serverless で位置情報を活用する

6VAL Innovation Camp

https://youtu.be/VXHB3tLeYl8

Page 7: Serverless で位置情報を活用する

で位置情報を活用する“SkyBrain”

Page 8: Serverless で位置情報を活用する

8What is SkyBrain ?‣ 位置情報の活用を目的として作成中の IoT 向けサービ

‣ 通信プラットフォームは SORACOM Air を利用

‣ 機器はスマートフォンを利用してプロトタイピング中 ‣ クラウド環境は AWS を利用し柔軟かつ安価で構築

‣ S3、Lambda、API Gateway といった AWS のフルマ

ネージドサービスを積極的に利用し Serverless に

‣ 構築時間の短縮と構築後の運用負担軽減を考えてフルマネージドサービスを利用

Page 9: Serverless で位置情報を活用する

9事例紹介

http://www.slideshare.net/SORACOM/connectedt2soracom-beam-iot/

Page 10: Serverless で位置情報を活用する

10Why is SkyBrain ?‣ IoT 向けとは言っても Things は持っていない

‣ 列車やバスなどの輸送に関する情報は多少持っている

‣ Train(列車)や Transport(輸送)なら近い領域

‣ この領域であればこれまでの知見や資産を生かした活用ができそう

‣ 手軽に使えて手軽にやめられるクラウドの高いアジリティやその他の良さをそのままサービスに活かしたい

‣ 得意領域での強みとクラウド・ソフトウェアの強みで既存のサービスとの差別化を図りたい

‣ 地図上にマッピングすることや位置補正を行える技術を獲得していきたい

Page 11: Serverless で位置情報を活用する

11SkyBrain

Cognito

JavaScript SDK

Kinesis

Lambda

S3 API Gateway Users

SORACOM Air

SORACOM Funnel

Lambda

Page 12: Serverless で位置情報を活用する

12SkyBrain‣ 位置情報データの蓄積は SORACOM Funnel or Amazon

Kinesis で行う

‣ 位置情報データの活用については Amazon API Gateway を

利用して API 経由で行う

‣ データの蓄積と活用が簡単かつ安全・安価に行える ‣ ほぼリアルタイムなデータを活用できるようになる

‣ リアルタイムなデータが加わることで既存のデータや API

が新たな価値を持つ ‣ ユーザーに対して新たな価値を提供することができるようになる

Page 13: Serverless で位置情報を活用する

13SkyBrain

Cognito

JavaScript SDK

Kinesis

Lambda

S3 API Gateway Users

SORACOM Air

SORACOM Funnel

Lambda

蓄積

Page 14: Serverless で位置情報を活用する

14SkyBrain‣ 蓄積には当初 AWS IoT を利用していた

‣ 特徴的なDevice Shadows やPub/Sub のSub を利用する

可能性が低い

‣ Amazon Kinesis で用件も性能も必要十分そうだった

‣ 足りない部分は AWS Lambdaで補完すれば問題なさそう

‣ SORACOM から Funnel という便利な機能がリリースさ

れたことも大きい

‣ SORACOM Funnel 経由であれば認証部分をお任せできる

ので気にせずに送信することができる

Page 15: Serverless で位置情報を活用する

15SkyBrain

Page 16: Serverless で位置情報を活用する

16SkyBrain‣ 位置情報の取得には HTML+JavaScript を利用

‣ Geolocation.watchPosition() を利用している

‣ このため Amazon S3 の静的ウェブサイトのホスティングだけで

サービスを提供することが可能

‣ Amazon Kinesis Streams に AWS Lambda 関数を機能・用途別に

複数個追加してある

‣ 新しい機能や用途が追加になってもこの構成だと必要に応じて

AWS Lambda 関数を追加すれば良い

‣ AWS Lambda 関数のリトライやデータの保持に関しても Amazon

Kinesis+AWS Lambda 側が規定の範囲でカバーしてくれる

Page 17: Serverless で位置情報を活用する

17SkyBrain

Cognito

JavaScript SDK

Kinesis

Lambda

S3 API Gateway Users

SORACOM Air

SORACOM Funnel

Lambda

活用

Page 18: Serverless で位置情報を活用する

18SkyBrain‣ 当初は Amazon API Gateway のタイムアウト制限により利

用できる範囲が限定的だった

‣ 先日のアップデートによりタイムアウト制限が29秒まで伸

びたので利用できる範囲が広がった

‣ Amazon S3 にデータを蓄積する段階で活用する側を意識し

た構造で蓄積するようにしている

‣ Amazon API Gateway を利用することによりキャッシュの

有効化やスロットリングなどの機能が利用できる

‣ 必要なデータがある場合は AWS Lambda 関数を追加するこ

とで対応することができる

Page 19: Serverless で位置情報を活用する

19SkyBrain

Page 20: Serverless で位置情報を活用する

20SkyBrain‣ 位置情報の活用・表示には HTML+JavaScript を利用

‣ Amazon API Gateway 経由で取得したJSONを地図サービ

ス上に表示

‣ Amazon API Gateway 経由で AWS Lambda 関数を機能・

用途別に複数個追加してある ‣ 新しい機能や用途が追加になってもこの構成だと必要に応じて AWS Lambda 関数を追加すれば良い

‣ API の管理部分に関しては Amazon API Gateway の機能で

担保されるため AWS Lambda 関数の動作に注力すればよい

Page 21: Serverless で位置情報を活用する

まとめ

Page 22: Serverless で位置情報を活用する

22まとめ‣ SkyBrain を展開していくことでリアルタイムデータを

取得・蓄積して API で活用できるようにしていく

‣ リアルタイムデータにより既存の API やデータに新たな

価値や利用用途が増える可能性を模索する

‣ Serverless な構成にしたことで作ったサービスや機能に

もクラウドの良いところがそのまま活かせている ‣ AWS Lambda を活用する際にはプラガブルになるよう

に Amazon Kinesis や Amazon API Gateway などの

サービスを意識して利用した方が良い

Page 23: Serverless で位置情報を活用する

23まとめ‣ 現状はデプロイや監視周りが実装されていない状態

‣ Amazon Kinesis のキャパシティに関しても最低限の考慮

しかしていない状態 ‣ 実際にサービスとしてリリースする際には重要な部分

‣ IoT サービス向けにプロトタイピング中なので変化には柔

軟に対応していく ‣ 変化への対応は可能なところから素早くカイゼンしていく

‣ 知見やノウハウが無いことも多くあるのでとにかく Try&

Error を繰り返していく

Page 24: Serverless で位置情報を活用する

24お問い合わせ

http://www.val.co.jp/contact/

Page 25: Serverless で位置情報を活用する

25Appendix‣ 株式会社ソラコム

- https://soracom.jp/

‣ Cloudcraft - Draw AWS diagrams

- https://cloudcraft.co/

‣ AWS Lambda / Amazon API Gateway Deep Dive

- http://www.slideshare.net/keisuke69/aws-lambda-

amazon-api-gateway-deep-dive

‣ アイコン素材ダウンロードサイト「icooon-mono」

- http://icooon-mono.com/

Page 26: Serverless で位置情報を活用する

26Appendix‣ 株式会社ヴァル研究所

- http://www.val.co.jp/

‣ 駅すぱあとワールド

- https://ekiworld.net/

‣ 駅すぱあと - YouTube

- https://www.youtube.com/channel/

UChsdHb4qHO5eFmSOhl0Udsw

‣ 「駅すぱあと」のあたらしい路線図

- http://rosenzu.strikingly.com/

Page 27: Serverless で位置情報を活用する

27Appendix‣ JAWS-UG 中央線

- http://jaws-ug.jp/bc/chuoline/

‣ JAWS-UG 京王線

- https://jawsug-keioline.doorkeeper.jp/

‣ uchimanajet7 - Pixelhub.me

- http://pixelhub.me/pixelhub1/index.php?

user=uchimanajet7