ZOZOSUITを用いた計測システムの裏側

指原卓也氏(以下、指原):こんばんは。僕からは「ZOZOSUIT計測システムの裏側について」をお話させていただきます。

最初に簡単な自己紹介です。

ZOZOテクノロジーズでSREチームのリーダーやっている指原と申します。2011年に入社し、ファッション通販サイト「ZOZOTOWN」の開発に2年ほど携わった後、ファッションコーディネートアプリ「WEAR」の立ち上げをやっていました。。

2015年に1度退職しておりまして、その後2018年にもう1度入社して出戻りとなっております。出戻りしてからはGlobalECと計測システム担当のSREをやり、現在は主に計測システムの担当をしています。

本日のアジェンダですが、まず簡単にZOZOSUITとプライベートブランド「ZOZO」について説明させていただきます。その後、去年取り上げられたニュースを追いながらZOZOSUITリリースまでを振り返ってみたいと思います。

最後に、計測システムに関する技術的なお話をいくつかしたいと思います。

まず、ZOZOSUITとプライベートブランドについてです。

初代ZOZOSUIT。こちらは着用するだけでスーツに搭載された伸縮センサーによって全身の細かい体型データを計測することができ、BluetoothによってZOZOTOWNのアプリにデータを送ることができるというものです。

ZOZOTOWNのアプリ上では、計測した体型データの細かい数値と、そこから作成される3Dのモデルを確認することができ、さらにそれを360度回して体型をチェックすることができるというプロダクトでした。

次に新型のZOZOSUITです。こちらは全身に施されたドットのマーカーをスマートフォンのカメラで撮影することによって体型のデータを計測することができるものです。こちらも同じようにZOZOTOWNのアプリ上にデータを送って、そこで全身の細かい体型のデータと、3Dのモデルで体型チェックができるようになっています。

プライベートブランド「ZOZO」について

ZOZOSUITが世間的には話題になりましたが、われわれがもともとやりたかったものは「プライベートブランドの服を作る」ということでした。実は僕が今日着てる上下ともにZOZOの服なのですが、ZOZOSUITで計測した体型のデータをもとに、一人ひとりの体型に合ったぴったりサイズの商品を提供できるというコンセプトのブランドになっています。

ファッションECサイトでは試着をすることができないので、商品を選びづらいという課題があります。「ぴったりサイズの商品なら試着が必要ないので、新しいマーケットが作り出せるはずだ」という仮説をわれわれは信じてやってきています。

実際にこのプライベートブランドの商品はけっこう売れてまして、この「スリムテーパードデニム」が約21万本、「ベーシックTシャツ」は約7万枚(2019年3月時点)販売しています。 ここで弊社が持っているデータについて説明させていただきますと、ZOZOTOWNでは1億件以上の購買データを持っていて、WEARでは1千万枚以上のコーディネート画像データを持っていますが、ここにZOZOSUITとプライベートブランドが加わることによって、体型データや多サイズ展開の服作りのノウハウが揃い、今後のビジネス展開の幅を広げていくことができるようになったと思っています。

例えば先日発表したMSP事業というものがあります。

MSPとはマルチサイズプラットフォーム事業の略で、ZOZOSUITで得た体型データを活用して出店ブランドが企画する商品を多サイズ展開し販売するプロジェクトです。

1商品20サイズから50サイズぐらいの展開で、この秋には様々なブランド様と一緒に服作りを始めようとしています。

ニュースで振り返るZOZOSUIT

次にZOZOSUITと計測システムに関連するニュースを振り返ります。

2017年11月にZOZOSUITとプライベートブランドの構想を発表しました。こちらは非常に大きな反響を呼び、100万件以上の予約注文が入りました。この時点で計測システムに関してはリリースも実施しています。 その次の月2017年12月にはZOZOSUITの大量生産の体制にトラブルがあり、発送の延期を発表したことがニュースになりました。

そして2018年1月、ZOZOSUITの生産体制の改良を重ねた結果、発送を開始したということで、こちらもニュースになっています。

2018年2月、ZOZOSUITを超える計測のアイデアをスタートトゥデイ研究所(現 「ZOZO研究所(ZOZO RESEARCH)」)が3億円で買い取るという発表を行いました。こちらもニュースで大きく報じられました。

そして、わずかその2ヵ月後の2018年4月に新型のZOZOSUITを発表しまして、発表と同時に初日に4,000枚を発送、そこから順次発送を開始しています。このときに新しいZOZOSUITに合わせて計測システムのリプレイスも行っています。

以上のように、ほぼ毎月ZOZOSUITに関する出来事がニュースになっていましたが、新型のZOZOSUITのアイデアを買い取ると発表したのが2018年2月で、その後2018年4月までのわずか2ヵ月の間に新型ZOZOSUITを大量生産し、クライアントアプリの開発、サーバサイドの開発、インフラの構築、販売サイドではサイトデザインやフロントエンドの開発も当然行っていて、非常にスピード感のあるローンチだったと思っています。

このスピード感が弊社の面白いところと強みだと思っています。

計測システムで起きたいくつかの問題

次に、計測システムに関する技術的なお話をいくつかしたいと思います。

まず、初代ZOZOSUITの計測システムの構成図です。

こちらはAWSのバージニアリージョンで構築しています。

なぜバージニアリージョンなのかというと、GlobalECを同時にリリースしていまして、世界展開を72ヵ国で同時に始めたので、レイテンシーのことを考えても東京リージョンでやる必然性があまりなかったので、バージニアリージョンを選択していました。

もう1つ、AWSの新しいサービスがバージニアリージョンからリリースされることが多いので、こちらも選定理由の1つになりました。

アーキテクチャに関してはサーバレスのシンプルな構成になっていて、API Gateway、Lambda、ElastiCache(Redis)_、DynamoDBといった王道のサーバレス構成になってます。サーバレスなので当然オートスケールしてくれるところだったり、可用性が高いみたいなところでインフラのプロビジョニングが不要になるので、短いスパンでのローンチ要求に応えることができた1つの要因かなと思っています。

Lambdaのコールドスタート問題

そんな計測システムですが、開発運用していく中でいくつか技術的な問題もあったので、それを紹介していきたいと思います。

まず1つ目、Lambdaのコールドスタート問題がありました。

Lambdaはサーバレスですが実際にはここで書いている1から6みたいなことを初回の実行時に行っていて、2回目からは2で作ったコンテナを再利用して実行しています。

ただし利用可能なコンテナがない場合、すなわちコードを変更デプロイした初回起動時だったり、しばらくリクエストがなかった場合は1から6を毎回やり直すことになってしまって、その場合にレイテンシが高くなってしまうという問題をコールドスタート問題と呼んでいます。

この問題は、安定したリクエストがある場合には発生しづらいですが、初代ZOZOSUITの配送数が少なく、貴重な初期ユーザの体験が損なわれてしまうのではないかという懸念がありました。

この問題があったので、新型ZOZOSUITのリプレイスのリリースのときには、Lambdaのコールドスタート問題に関しては、アプリケーションの実行環境をLambdaからElastic BeanstalkでDockerコンテナを動かす方式に変更してリリースを行っています。

商品サイズ管理におけるRDB

次に、これは問題ではありませんが、プライベートブランドのサービスの特性上非常に多くの商品サイズに関するマスターデータを持っていて、その管理方法をどうするかというところで当初RDBも検討していました。

プライベートブランドなので、あらゆる体型に合わせてぴったりサイズを実現するため、商品の各パーツのサイズにかなりの幅が存在します。どういうことかというと、例えばTシャツでは首周り、身幅、袖丈みたいなところがあるんですけど、こういった各商品の固有のパーツの組み合わせが非常にたくさんあって、その掛け合わせによって1つの商品サイズが決定するので、最大で1つの商品で数千万パターンの組合せがあり、登録するデータが膨大になるという特徴がありました。

これをRDBのスキーマで管理しようと思うと、構造が非常に複雑になってしまいます。また将来、商品の仕様が変わったりして必要な計測のパーツが増えたりすると非常に対応しづらいだろうなということが予想されました。

これがNoSQL、つまりAWSの場合ならDynamoDBになりますが、スキーマレスになるので商品仕様の変更にも柔軟に対応できて、管理もしやすいといったところがありました。

また、サイズのマスターデータもそうですが、身体の計測データに関しても、サービスの成長に比例してどんどん増加していきます。そういった大量のデータを扱うというところと、この計測システム自体の基本ワークロードが作成と読み込み機能であったので、こういったいくつかの点がNoSQLと相性が良く、DynamoDBを採用しています。

SREエンジニアを募集中

以上、簡単ですが、ZOZOSUIT計測システムについて発表させていただきました。

最後に、弊社ではSREエンジニアを積極的に募集しています。まだ話せないたくさんのプロジェクトがたくさん進行中です。

自分が関わっているサービスや自分の仕事が毎月のようにニュースになるようなことはあんまりないかなと思うんですが、そういったニュースになるような世界へ向けた大きいチャレンジをしながら、エキサイティングな日々が送れる環境が整っています。

AWSを使ってわくわくするような挑戦をしたいSREエンジニアを絶賛募集中ですので、よろしくお願いします!

ありがとうございました。

(会場拍手)