東急ハンズを支える技術
TRANSCRIPT
Copyright © HANDS LAB INC. All rights reserved.
2015年6月3日
AWS Summit Tokyo 2015 デベロッパーカンファレンス Dev-07: Mobile 東急ハンズを支える技術 - iOSとAWSでPOSを作ってみた –
ハンズラボ株式会社
1
自己紹介
名前 今井 智明 所属 ハンズラボ株式会社 2013年4月より東急ハンズのIT部門を子会社化 担当 AWSでのインフラ構築、運用、 iOSアプリケーション開発、運用
2
本日お話すること
1. POSを自社開発化する背景
2. iOSとAWSを使う理由
3. AWSのマネージドサービス活用例
3
現在のAWS利用範囲
店舗システム (自社予定)
POS (自社)
外商(自社予定)
本部MDシステム (自社予定)
新勘定系システム (自社)
会計 (Super Stream)
人事 (OBIC7)
統合顧客情報 +ポイント管理 (自社)
メール/ スケジュール管理
(Google-Apps)
経費清算 (自社予定)
売上管理
買掛管理
在庫
受払
棚卸
…etc
勤怠 管理 (アマノ)
(自社)
自動発注
WEB-EDI発注
FAX発注
マスタ管理
仕入
返品
店間移動
棚卸
値札発行
手入力発注
売上検索
店舗/顧客接点系 本部基幹業務系 本部バックオフィス系 OA系、その他
グーグル AWS オンプレ
一般会計
債権・債務管理
資産管理
支払・納金管理
ファイルサーバ
人事管理
給与管理
給与 計算
PDA (自社)
PC (自社)
Tablet (自社)
ハンズネット (EC) (自社)
社内ポータル (自社)
ADサーバ
今後の自社開発化検討機能
POSサーバ
クラウド化と完全自社開発化
4
一般的なPOSレジスタ
画面
カスタマーディスプレイ
バーコードリーダ ドロアー・自動釣銭機
レシートプリンタ
キーボード
5
POSレジスタの主要機能
l お客様が購入するものから売上金額を計算する ► 基本的に四則演算 ► 税金や割引の計算で切り上げ、切り捨て、四捨五入
売上登録
決済 l 売上金額とお預かり金額から決済してお釣りを返す ► 現金、クレジットカード、電子マネー、金券、etc
情報提供 l 売上高計算や在庫更新のための販売情報を提供する ► 売上金額を集約して売上高計算 ► 販売商品の在庫消込
l レジをお客様とのコミュニケーションの場にする l シンプルで使いやすいPOSにする
l 新規出店や繁忙期に簡単に対応する
6
POSを自社開発化する理由
7
本日お話すること
1. POSを自社開発化する背景
2. iOSとAWSを使う理由
3. AWSのマネージドサービス活用例
8
iOSを使う理由
見栄え
保守性
操作性
l 単純にかっこいい l Apple製品が好き(特に長谷川が)
l 一般的なPOSと比較すると安価で購入できる l 価格比ほど故障しない l 壊れたら新しいものを買って交換できる
l 考えられたユーザインタフェース l 日本人の70%の人が使ったことがある
9
AWSを使う理由
柔軟性
可用性 堅牢性
低コスト
l 多様なサービスがある l フルマネージドサービスを使えば自動でスケールする
l 落ちない・無くならない仕組みが組み込まれている
l 使った分だけ支払う l 勝手に値下げしてくれる l 工夫次第で大規模なシステムを安価に運用できる
SDK l iOS用SDKがある l 継続して機能追加と改善がされている
10
シンガポール店のPOSシステム(基本数値)
売上高
店舗数
レジ台数
商品件数
l 年間8億円(見込み)
l 2015年6月現在2店舗 l 2014年9月ジュロンイースト店開業 l 2014年11月オーチャード店開業
l 2店舗で合計6台
l 30,000件
11
シンガポール店のPOSシステム(お客様側)
12
シンガポール店のPOSシステム(店員側)
13
シンガポール店のPOSシステム(iOS)
ハードウェア
OS 開発言語
機能
l レジ = iPad Air l カスタマーディスプレイ = iPad mini 2
l iOS8.3 l Objective-C
l マスタダウンロード&保持 l 売上&返品登録、データ連携 l 取引内容のカスタマーディスプレイ表示 l バーコードスキャナ、レシートプリンタ、ドロアー連携
14
シンガポール店のPOSシステム(iOS)
ローカルDB
データ連携
iOS間通信
l CoreData l マスタデータや取引データのCRUDで利用
l AWS Mobile SDK v1 l マスタや取引データの連携でS3を利用
l Multipeer Connectivity Framework l レジからカスタマーディスプレイに表示内容を連携
15
シンガポール店のPOSシステム(AWS)
店舗
S3 EC2
PC POS
16
シンガポール店POSシステムのAWS利用例1
マスタダウンロード
l EC2でマスタを生成してS3にアップロード l POSからS3をポーリングして検知 l S3からマスタデータをダウンロード l ローカルDBに保存
店舗
S3 EC2
17
シンガポール店POSシステムのAWS利用例2
取引データ連携
l POSで取引が発生したらローカルDBに保存 l 未送信の取引データをS3にアップロード l EC2からS3をポーリングして取引データを取得 l EC2で取引データから売上集計や在庫引当を実施
店舗
S3 EC2
18
東急ハンズの新POSシステム(基本数値)
売上高
店舗数
レジ台数
l 年間800億円
l 全店で800台(ハンズメッセ時900台) l ハンズメッセピーク時取引発生数 450件/分
商品件数 l 100万件
l 2015年6月現在60店舗 l 今後も継続出店
19
東急ハンズの新POSシステム(開発中)
20
東急ハンズの新POSシステム(iOS)
ハードウェア
OS 開発言語
l レジ = iPad Air 2 l カスタマーディスプレイ = iPad Air 2
l iOS8.3(常に最新に対応の指令) l Swift
機能
l マスタダウンロード&保持 l 売上&返品登録、データ連携 l 取引内容のカスタマーディスプレイ表示 l ハンズクラブカード連携 l バーコードスキャナ、レシートプリンタ、自動釣銭機連携 l 決済処理連携(クレジットカード、電子マネー、etc)
21
東急ハンズの新POSシステム(iOS)
ローカルDB
データ連携
iOS間通信
l Realm l マスタデータや取引データのCRUDで利用
l AWS Mobile SDK v2 l データによって各種サービスを使い分け l S3、SNS、DynamoDB、Lambdaなど
l Multipeer Connectivity Framework l レジからカスタマーディスプレイに表示内容を連携
22
東急ハンズの新POSシステム(AWS)
l 東急ハンズの規模に対応するために、フルマネージドサービスを積極的に活用
l さらに、東急ハンズの規模ではなく、数兆円規模に対応できるようにする
23
本日お話すること
1. POSを自社開発化する背景
2. iOSとAWSを使う理由
3. AWSのマネージドサービス活用例
24
登場人物
Cognito: 認証サービス
S3: オンラインストレージサービス
SNS: メッセージ配信サービス
DynamoDB: NoSQLデータベースサービス
Lambda: イベントドリブンコンピュートサービス
25
マネージドサービス活用例1・マスタダウンロード
AWS cloud
店舗
①マスタ生成
ASG
26
マネージドサービス活用例1・マスタダウンロード
AWS cloud
店舗
ASG
②マスタ配信リスト作成
27
マネージドサービス活用例1・マスタダウンロード
AWS cloud
店舗
③マスタ配信通知
ASG
28
マネージドサービス活用例1・マスタダウンロード
AWS cloud
店舗
ASG
④マスタ取得と更新
29
マネージドサービス活用例1・マスタダウンロード
AWS cloud
店舗
ASG
⑤マスタ更新完了通知
30
マネージドサービス活用例1・マスタダウンロード
AWS cloud
店舗
ASG
⑥マスタ配信リスト消込
31
マネージドサービス活用例1の課題と対応
l Push通知からのバックグラウンドダウンロード処理が動かない ► S3TransferManagerではなく、Pre-Signed URLとNSURLSessionを使って取得する
► https://github.com/aws/aws-sdk-ios/issues/25 ► ドキュメントにも書いてあった ► http://amzn.to/1LZnwmQ
32
マネージドサービス活用例2・取引データ連携(現状)
AWS cloud 店舗
FTPd 売上テーブル
在庫テーブル
S3 SQS Worker
SNS SQS
SQS Worker
Worker
店舗 アプリサーバ
POS
PC
PDA
SNS
33
マネージドサービス活用例2・取引データ連携(新POS対応)
AWS cloud 店舗
FTPd 売上テーブル
在庫テーブル
S3 SQS Worker
SQS
SQS Worker
Worker
店舗 アプリサーバ
POS
PC
PDA
新POS SNS Lambda
Lambda S3
売上・在庫更新
リクエスト 保存 Glacier
SNS
SNS
34
マネージドサービス活用例2・取引データ連携(最終形)
AWS cloud 店舗
売上テーブル
在庫テーブル
店舗 アプリサーバ
PC
PDA
新POS SNS
Lambda
Lambda S3
在庫更新
リクエスト 保存 Glacier
売上更新 Lambda
35
まとめ
l ハンズラボはiOSとAWSをとことん使い倒します! l iOSからAWSのリソースを直接制御することで、サーバレスでクラウドネイティブを実現できる!
l フルマネージドサービスを活用しようして、スケールするシステムを速く、安く作れる!
求む! ・AWSエンジニア ・iOSエンジニア ・Webエンジニア ハンズラボは積極的に技術者採用中です。
Let's work together!
Copyright © HANDS LAB INC. All rights reserved.
御清聴ありがとうございました。