Download - Serverless で位置情報を活用する
で位置情報を活用するServerless
2016年03月29日 株式会社ヴァル研究所
内田 学 AWSで動かしているサービスの裏側を覗いてみる会@八王子
2ご注意‣ 2016年03月28日現在の情報です
‣ 資料内の表現や文言は変更される可能性があります
‣ 個人での発表用なので今後会社から出る正式版と異なる場合があります
‣ 正式版との差異があった場合正式版が基準となりますのでご了承ください
‣ ご意見やご質問がありましたらお気軽にお問い合わせください
3自己紹介内田 学(うちだ まなぶ)
uchimanajet7
Spot Instances AWS SDK for Go
Support API Gateway
5製品・サービス紹介
で位置情報を活用する“SkyBrain”
8What is SkyBrain ?‣ 位置情報の活用を目的として作成中の IoT 向けサービ
ス
‣ 通信プラットフォームは SORACOM Air を利用
‣ 機器はスマートフォンを利用してプロトタイピング中 ‣ クラウド環境は AWS を利用し柔軟かつ安価で構築
‣ S3、Lambda、API Gateway といった AWS のフルマ
ネージドサービスを積極的に利用し Serverless に
‣ 構築時間の短縮と構築後の運用負担軽減を考えてフルマネージドサービスを利用
9事例紹介
http://www.slideshare.net/SORACOM/connectedt2soracom-beam-iot/
10Why is SkyBrain ?‣ IoT 向けとは言っても Things は持っていない
‣ 列車やバスなどの輸送に関する情報は多少持っている
‣ Train(列車)や Transport(輸送)なら近い領域
‣ この領域であればこれまでの知見や資産を生かした活用ができそう
‣ 手軽に使えて手軽にやめられるクラウドの高いアジリティやその他の良さをそのままサービスに活かしたい
‣ 得意領域での強みとクラウド・ソフトウェアの強みで既存のサービスとの差別化を図りたい
‣ 地図上にマッピングすることや位置補正を行える技術を獲得していきたい
11SkyBrain
Cognito
JavaScript SDK
Kinesis
Lambda
S3 API Gateway Users
SORACOM Air
SORACOM Funnel
Lambda
12SkyBrain‣ 位置情報データの蓄積は SORACOM Funnel or Amazon
Kinesis で行う
‣ 位置情報データの活用については Amazon API Gateway を
利用して API 経由で行う
‣ データの蓄積と活用が簡単かつ安全・安価に行える ‣ ほぼリアルタイムなデータを活用できるようになる
‣ リアルタイムなデータが加わることで既存のデータや API
が新たな価値を持つ ‣ ユーザーに対して新たな価値を提供することができるようになる
13SkyBrain
Cognito
JavaScript SDK
Kinesis
Lambda
S3 API Gateway Users
SORACOM Air
SORACOM Funnel
Lambda
蓄積
14SkyBrain‣ 蓄積には当初 AWS IoT を利用していた
‣ 特徴的なDevice Shadows やPub/Sub のSub を利用する
可能性が低い
‣ Amazon Kinesis で用件も性能も必要十分そうだった
‣ 足りない部分は AWS Lambdaで補完すれば問題なさそう
‣ SORACOM から Funnel という便利な機能がリリースさ
れたことも大きい
‣ SORACOM Funnel 経由であれば認証部分をお任せできる
ので気にせずに送信することができる
15SkyBrain
16SkyBrain‣ 位置情報の取得には HTML+JavaScript を利用
‣ Geolocation.watchPosition() を利用している
‣ このため Amazon S3 の静的ウェブサイトのホスティングだけで
サービスを提供することが可能
‣ Amazon Kinesis Streams に AWS Lambda 関数を機能・用途別に
複数個追加してある
‣ 新しい機能や用途が追加になってもこの構成だと必要に応じて
AWS Lambda 関数を追加すれば良い
‣ AWS Lambda 関数のリトライやデータの保持に関しても Amazon
Kinesis+AWS Lambda 側が規定の範囲でカバーしてくれる
17SkyBrain
Cognito
JavaScript SDK
Kinesis
Lambda
S3 API Gateway Users
SORACOM Air
SORACOM Funnel
Lambda
活用
18SkyBrain‣ 当初は Amazon API Gateway のタイムアウト制限により利
用できる範囲が限定的だった
‣ 先日のアップデートによりタイムアウト制限が29秒まで伸
びたので利用できる範囲が広がった
‣ Amazon S3 にデータを蓄積する段階で活用する側を意識し
た構造で蓄積するようにしている
‣ Amazon API Gateway を利用することによりキャッシュの
有効化やスロットリングなどの機能が利用できる
‣ 必要なデータがある場合は AWS Lambda 関数を追加するこ
とで対応することができる
19SkyBrain
20SkyBrain‣ 位置情報の活用・表示には HTML+JavaScript を利用
‣ Amazon API Gateway 経由で取得したJSONを地図サービ
ス上に表示
‣ Amazon API Gateway 経由で AWS Lambda 関数を機能・
用途別に複数個追加してある ‣ 新しい機能や用途が追加になってもこの構成だと必要に応じて AWS Lambda 関数を追加すれば良い
‣ API の管理部分に関しては Amazon API Gateway の機能で
担保されるため AWS Lambda 関数の動作に注力すればよい
まとめ
22まとめ‣ SkyBrain を展開していくことでリアルタイムデータを
取得・蓄積して API で活用できるようにしていく
‣ リアルタイムデータにより既存の API やデータに新たな
価値や利用用途が増える可能性を模索する
‣ Serverless な構成にしたことで作ったサービスや機能に
もクラウドの良いところがそのまま活かせている ‣ AWS Lambda を活用する際にはプラガブルになるよう
に Amazon Kinesis や Amazon API Gateway などの
サービスを意識して利用した方が良い
23まとめ‣ 現状はデプロイや監視周りが実装されていない状態
‣ Amazon Kinesis のキャパシティに関しても最低限の考慮
しかしていない状態 ‣ 実際にサービスとしてリリースする際には重要な部分
‣ IoT サービス向けにプロトタイピング中なので変化には柔
軟に対応していく ‣ 変化への対応は可能なところから素早くカイゼンしていく
‣ 知見やノウハウが無いことも多くあるのでとにかく Try&
Error を繰り返していく
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/
26Appendix‣ 株式会社ヴァル研究所
- http://www.val.co.jp/
‣ 駅すぱあとワールド
- https://ekiworld.net/
‣ 駅すぱあと - YouTube
- https://www.youtube.com/channel/
UChsdHb4qHO5eFmSOhl0Udsw
‣ 「駅すぱあと」のあたらしい路線図
- http://rosenzu.strikingly.com/
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