[レポート][Dev-07:Mobile] 東急ハンズを支える技術 – iOSとAWSでPOSを作ってみた – #AWSSummit

106件のシェア(ちょっぴり話題の記事)

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは!おおはしりきたけです!
今回は、ハンズラボさんのiOSとAWSのPOSを作ってみたというお話になります

セッション情報

  • セッション名:東急ハンズを支える技術- iOSとAWSでPOSを作ってみた -
  • スピーカー:ハンズラボ株式会社 今井智昭氏

 

POSを自社開発化する背景

現在のAWS利用範囲

dev07m-1

一般的なPOSレジスタ

dev07m-2

以下の6つの構成

  • カスタマーディスプレイ
  • 画面
  • レシートプリンタ
  • キーボード
  • ドロアー・自動釣銭機
  • バーコードリー

売上登録

  •  お客様が購入するものから売上金額を計算する
    • 基本的に四則演算
    • 税金や割引の計算で切り上げ、切り捨て、四捨五入

決済

  • 売上金額とお預かり金額決済してお釣りを返す
  • 支払い方法は現金、クレジットカード金券などある

情報適用

  • 売上高計算や在庫更新のための販売情報を提供する

POSを自社開発化する理由

  • レジをお客様とのコミュニケーションの場にする
  • シンプルで使いやすいPOSにする
  • 新規出店や繁忙期に簡単に対応する

iOSを使う理由

見栄え

  • 単純にかっこいい
  • Apple製品が好き(代表の長谷川さんが)

操作性

  • 考えられたUI
  • 日本人の70%の人が使ったことがある

保守性

  • 一般的なPOSと比較すると安価
  • 価格比ほど故障しない
  • 壊れたら新しいものを買って交換できる

AWSを使う理由

柔軟性

  • 多様なサービスが有るフルマネージドサービスを使えば自動でスケールする

可用性・堅牢性

  • 落ちない・なくならない仕組みが組み込まれている

低コスト

  • 使った分だけ支払う
  • 勝手に値下げしてくれる
  • 工夫次第で大規模なシステムを安価に運用できる

SDK

  • iOS用のSDKがある
  • 継続して機能追加と改善がされている

シンガポール店のPOSシステム

  • 売上:年間8億(予定)
  • 店舗数:現在2店舗
  • レジ台数:2店舗で合計6台
  • 商品件数:30,000件

シンガポール店のPOSシステム(iOS)

  • ハードウェア:
    • レジ:iPad Air
    • カスタマーディスプレイ:iPad mini2
  • OS:iOS8.3
  • 言語OB:objective-C
  • データ連携:MobileSDK v1
  • ローカルDB:CoreData
  • iOS間通信:Multipeer Connectivity Framework

AWS利用例1:マスタダウンロード

  • EC2でマスタを生成してS3にアップロード
  • POSからS3をポーリングして検知
  • S3からマスタデータをダウンロード
  • ローカルDBに保存

AWS利用事例2:取引データ連携

  • POSで取引が発生したらローカルDBに保存
  • 未送信の取引データをS3にアップ
  • EC2からS3をポーリングして取引データを取得
  • EC2で取引データから売上集計や在庫引当を実施

東急ハンズの新POSシステム

  • 売上:年間800億
  • 店舗:60店舗
  • レジ台数:全店800台、ハンズメッセピーク時の取引発生数は450/分
  • 商品数:100万件

東急ハンズの規模に対応するために、フルマネージドサービスを積極的に活用

 

東急ハンズの新POSシステム(iOS)

  • ハードウェア:
    • レジ:iPad Air
    • カスタマーディスプレイ:iPad mini2
  • OS:iOS8.3
  • 言語OB:Swift
  • データ連携:MobileSDK v2
  • ローカルDB:Realm
  • iOS間通信:Multipeer Connectivity Framework

太字が新しく採用されたもの

AWSマネージドサービス活用例

登場人物

  • Cognito:認証
  • S3:オンラインストレージ
  • SNS:メッセージ配信
  • DynamoDB:NoSQLデータベース
  • Lambda:イベントドリブンコンピュート

マネージドサービス活用例:マスタダウンロード

  • DynamoDBへマスタ配信リスト作成
  • SNSへマスタ配信通知
  • S3にマスタ取得と更新
  • レジからSNSにマスタ更新完了通知
  • Lambdaマスタ配信リスト消込

マネージドサービス活用例2:取引データ連携

現状

dev07m-3

新POS対応

dev07m-4

S3を使うとパフォーマンスがでないので、SNSを使ってIOPSを上げることにした。S3だと100IOPSだったものがSNSを使うことで3000IOPSへ

最終形

dev07m-5

 

感想

新POSシステムは2Tierアーキテクチャが採用されており、今日のキーノートの発表でもありましたがCognito、Lambdaが東京リージョンに来ることで益々モバイルに特化したクラウドネイティブアーキテクチャという構成が増えていくと思います。