AWS Summit Tokyo 2016
・会社事業紹介 ・AWSを利用した タクシー配車Webサイトの動態情報
AWSを使った、 ボイスパケットトランシーバー(デバイス)の
動態情報について
Z16LD1478号
AWS Summit Tokyo 2016
ビッグデータ
https://twitter.com/nhk_seikatsu/status/724195504431616001
twitter画面のサムネール
twitterへのURLのQR
twitter URL:
AWS Summit Tokyo 2016
ビッグデータ
https://twitter.com/nhk_seikatsu/status/724195504431616001
twitter画面のサムネール
twitterへのURLのQR
twitter URL:
・情報性、スピード感、 そして組織を超えた連携
ビッグデータ
AWS Summit Tokyo 2016
閉域網の必要性
デバイス
データセンター
ボイスパケットトランシーバー
配車システム[新視令]
閉域網
Amazon VPC
Z16LD1478号
システムの構成
AWS Summit Tokyo 2016
構成について
AWS Elastic Beanstalk
Web
AWS Elastic BeanstalkWebSocket
Amazon DynamoDB
REST
Amazon RDS
Amazon ElastiCache
Amazon Route 53
AWS Elastic Beanstalk
Amazon VPC
Amazon S3
Amazon EC2
デバイス
データセンター
ボイスパケットトランシーバー
配車システム[新視令]
システムの構成
AWS Summit Tokyo 2016
動態の位置情報保存
Amazon DynamoDB デ
バイス
データセンター
ボイスパケットトランシーバー
配車システム[新視令]
Amazon EC2
zone A
動態情報の保存
AWS Summit Tokyo 2016
動態の位置情報保存
デバイス
データセンター
ボイスパケットトランシーバー
配車システム[新視令]
Amazon DynamoDB
動態情報の保存
Amazon EC2
zone A
・スモールスタート・急な動態の追加に対応できる事・保存性能の劣化が無い事
AWS Summit Tokyo 2016
保存情報
項目 値Primary partition key 会社識別子Primary sort key 号車番号位置情報緯度 位置情報緯度位置情報軽度 位置情報軽度付加情報 その他の情報・・・・・・
以下のようなシンプルな構造を選択しています。
動態情報の保存
AWS Summit Tokyo 2016
動態の位置情報保存
デバイス
データセンター
ボイスパケットトランシーバー
配車システム[新視令]
Amazon DynamoDB
動態情報の保存
Amazon EC2
zone C
AmazonEC2
zone A アクティブ
スタンバイ
AWS Summit Tokyo 2016
動態の位置情報保存
デバイス
データセンター
ボイスパケットトランシーバー
配車システム[新視令]
Amazon DynamoDB
アクティブ
スタンバイ
動態情報の保存
Amazon EC2
zone C
AmazonEC2
zone A問題発生
自動で 切り替えたい
同じ仕組みを オンプレでも 使いたい。
AWS Summit Tokyo 2016
処理チケット
デバイス
データセンター
ボイスパケットトランシーバー
配車システム[新視令]
Amazon EC2
zone C
AmazonEC2
zone A
Amazon DynamoDB
Amazon DynamoDB
チケット
アクティブ
スタンバイ
処理チケット
AWS Summit Tokyo 2016
処理チケットのデータ構造
項目 値
システム名 例:リアルタイム
プロセス識別情報 例:プロセス識別情報
更新時間 例:2016/06/03 17:15:00
Amazon DynamoDBを使った簡易チケットの概要
処理チケット
AWS Summit Tokyo 2016
Aサービス(所有している)
所有者が自分の場合は、更新を行い。 アプリの処理を継続する。
アクティブプロセス
項目 値
システム名 XXX会社動態情報サービス
プロセス識別情報 Aサービス
更新時間 2016/06/03 17:30:00
処理チケット
更新する
AWS Summit Tokyo 2016
スタンバイプロセスBサービス(所有してない)
所有者が異なる。更新が行われている。 処理終わり
項目 値
システム名 XXX会社動態情報サービス
プロセス識別情報 Aサービス
更新時間 2016/06/03 17:30:00
処理チケット
Bサービスではない
更新されている
AWS Summit Tokyo 2016
スタンバイからアクティブプロセス
※本来は、同時に処理を実行しないようにもう少し制御が必要です。 また、DynamoDBへアクセスできない場合は、前回の状態を継続します。
Bサービス(所有してない)
所有者が異なる。更新が行われていない。 自分に切り替える。
項目 値
システム名 XXX会社動態情報サービス
プロセス識別情報 Bサービス
更新時間 2016/06/03 17:35:00
処理チケット
Bサービスに変更
更新する
AWS Summit Tokyo 2016
Amazon DynamoDBのリザーブドキャパシティー費用算出
リザーブドキャパシティー 前払い費用
リザーブドキャパシティー 期間の時間単価合計
+ =前払い 費用
サポート
月々リザーブ費用
サポートAmazon DynamoDB 費用Storage 費用
10%固定
予想最大料金 ※アウトバウンドを除く
ビジネスサポート最大 10%固定
Amazon DynamoDB
期間の時間単価 x 1ヶ月
AWS Summit Tokyo 2016
nヶ月後のデータ削除
他の動態システムで、Amazon DynamoDBに保存した 履歴の削除が必要でしたが、 削除時の考慮不足により、問題が発生しました。
Amazon DynamoDB
AWS Summit Tokyo 2016
nヶ月後のデータ削除
Amazon DynamoDBより、データを削除する場合も キャパシティー ユニットを消費する為、 書き込みと同じだけ、 削除にキャパシティーユニットを消費します。
Amazon DynamoDB
AWS Summit Tokyo 2016
0時 24時12時
キャパシティーに空きが有る時間を利用して、 削除を行うように調整しました。
12時 24時
キャパシティー
削除 削除削除
Amazon DynamoDB
削除
削除
AWS Summit Tokyo 2016
Amazon DynamoDB
Amazon DynamoDB
Amazon DynamoDBは、通常のデータベースとは違い、 すこし、コツが必要ですが、上手に使えば、便利で性能が高いので、 ぜひ、Amazon DynamoDBを学んで、ご利用ください。
AWS Summit Tokyo 2016
Amazon Route53
デバイス
データセンター
Amazon EC2
zone C
Amazon EC2
zone A
Amazon EC2
zone A
Amazon EC2
zone C
BIND
BIND
通信
DNS サーバーに設定
Amazon Route53
Amazon Route53
AWS Summit Tokyo 2016
WebSocketでの動態情報配布
Amazon EC2
WebSocket Scale
Amazon EC2
Amazon EC2
Amazon EC2
動態情報の配布
Z16LD1478号
AWS Summit Tokyo 2016
WebSocket サーバーへの動態情報通知
Amazon EC2
zone A
動態位置情報 Amazon
DynamoDB
チケット Amazon
DynamoDB
Amazon EC2
Amazon EC2
EC2
デバイス
データセンター
ボイスパケットトランシーバー
配車システム[新視令]
動態情報の配布
WebSocket サーバー
AWS Summit Tokyo 2016
WebSocketサーバーへの動態情報通知
EC2 zoon A
動態位置情報 DynamoDB
チケット DynamoDB
EC2
EC2
EC2
デバイス
データセンター
ボイスパケットトランシーバー
配車システム[新視令]
AWS Elastic Beanstalk
AWS Elastic Beanstalkより Elastic Load Balancingの情報取得
Elastic Load Balancingより Amazon EC2の情報取得
取得が成功した場合は 情報を更新 Amazon
EC2の情報# 取得に失敗した場合は、 情報を更新しない。
動態情報の配布
AWS Summit Tokyo 2016
WebSocketサーバーへの動態情報通知
EC2 zoon A
動態位置情報 DynamoDB
チケット DynamoDB
EC2
EC2
EC2
デバイス
データセンター
ボイスパケットトランシーバー
配車システム[新視令]
動態情報の配布
Elastic Load Balancingで、WebSocketを利用する場合の設定
Load Balancer Protocol Instance Protocol
HTTP(80) TCP
HTTPS(443) SSL
TCP
TCP
HTTP
HTTP
例:
補足socket.ioを利用されており、EC2インスタンスを、複数台に変更し接続できない場合は、 接続パラメータのupgradeをfalseにし、transportsを [‘websocket’]固定にして確認ください。
AWS Summit Tokyo 2016
WebSocket サーバーへの動態情報通知
表示する 位置情報 を通知
Z16LD1478号
セッション情報の保持方式については、初めの段階で設計を行ってください。
※絶対にAmazon EC2にセッションを持たない。
動態情報の配布
AWS Summit Tokyo 2016
WebSocket サーバーへの動態情報通知
表示する 位置情報 を通知
動態位置情報 Amazon
DynamoDB
位置からnKm以内で 動態を抽出し 返却
範囲内の 動態情報
Z16LD1478号
動態情報の配布
AWS Summit Tokyo 2016
WebSocket サーバーへの動態情報通知
表示する 位置情報 を通知
最新情報を送信 送信がないときは、 アイドルパケットを送信
動態位置情報 Amazon
DynamoDB
位置からnKm以内の 動態を抽出し 返却
範囲内の 動態情報
範囲内の動態の 更新情報
Z16LD1478号
動態情報の配布
AWS Summit Tokyo 2016
動態情報のまとめ・システムの構成
・動態情報の保存
・動態情報の配布
IoTデバイスは、閉域網での運用を検討してください。
Amazon DynamoDBを、理解して使用してください。 履歴情報の削除には、十分な設計を行ってください。
動態情報は、WebSocketを使用して必要な情報のみを 送信するようにしてください。
まとめ