「Amazon RedshiftとAWS Lambda に、使って初めて分かる落とし穴があった」。東急ハンズのIT子会社、ハンズラボの小林亮介氏(イノベーショングループ シニアエンジニア)は、リーダーとして2015年12月に完了したポイントシステムの刷新プロジェクトをこう振り返る。

 ポイントシステムは、東急ハンズの店舗やECサイト、スマートフォンアプリに共通する会員制ポイントサービス「ハンズクラブ」の中核を担うもの(図1)。店舗のPOSシステムやECサイトのシステムと連携し、会員顧客ごとの基本情報、ポイント残高、ポイント履歴、購買履歴を追加・更新する。データウエアハウス(DWH)に蓄積したデータは、ポイント追加・更新履歴が1億2000万件、購買履歴が2億3000万件に上る。

図1 新ポイントシステムの概要
図1 新ポイントシステムの概要
[画像のクリックで拡大表示]

 小林氏らは、オンプレミス(自社所有)環境で稼働させていた従来のポイントシステムを、Amazon Web Services(AWS)向けに刷新するプロジェクトを担当した。東急ハンズは、全システムのAWS移行を進行中で、その一環である。

 小林氏らは、システム開発方針として、技術的な制約を課せられた。

 まず、リレーショナルデータベース(RDB)ではなくNoSQLデータベース「Amazon DynamoDB」を使う必要があった。DynamoDBは、ポイント追加・更新の処理途中で障害が発生したときデータの整合を取る仕組みを備えていない。小林氏らは独自に作らなければならなかった(図2)。

図2 新システム構築の流れと乗り越えた障壁
図2 新システム構築の流れと乗り越えた障壁
[画像のクリックで拡大表示]

 運用に手間が掛かる仮想マシンは使わない、という制約もあった。そのため、ポイントシステム内部でのDWHへのデータ連携用に、仮想マシン「Amazon EC2」ではなく、イベント駆動のプログラム実行環境AWS Lambdaを採用した。これに起因して、思わぬ障壁にぶつかり、2 度にわたってアーキテクチャーを見直すことになる。

 さらに移行フェーズでは、従来システム上の3億5000万件以上のデータを変換してAWS上の新システムへ移す、という壁に直面する。

 これらの障壁を、小林氏らはアーキテクチャーを繰り返し見直すことで乗り越えた。プロジェクトの始まりから、具体的な経緯を見ていこう。