全2185文字
PR

 年間約1000万人が衣料品などを買うZOZOTOWN。そのシステムの一部はオンプレミス環境からMicrosoft Azure、AzureからAmazon Web Services(AWS)という2段階の移行ステップを経てクラウドへ移行した。福袋の販売時などのアクセス集中にも耐えられる電子商取引(EC)システムへと刷新を進める。

 ZOZOTOWNは2004年にサービスを開始して以来、データベース(DB)サーバーのスケールアップで利用者の増加をしのいできた。ただスケールアップにも限界があると判断し、クラウド移行によってスケーラビリティーを担保する方針を決め、システム刷新プロジェクトを2017年に立ち上げた。

 翌2018年4月に発表した中期経営計画でZOZO(当時はスタートトゥデイ)は、2020年3月期の商品取扱高を5080億円にする目標を掲げた。2018年3月期の商品取扱高は2705億円であり、その約2倍だ。

 システムはこうしたビジネスの急激な成長に耐えられる必要があったわけだ。プロジェクト立ち上げから約5年、現在はオンプレミス環境とクラウドを併用したハイブリッド型のシステムを運用している。

現在のZOZOTOWNのシステムアーキテクチャー
現在のZOZOTOWNのシステムアーキテクチャー
(出所:ZOZO)
[画像のクリックで拡大表示]

 2004年にオンプレミス環境で構築したECシステムは、米Microsoft(マイクロソフト)製品を中心に構築した。アプリケーションサーバーにInternet Information Services(IIS)を、DBサーバーにMicrosoft SQL Serverをそれぞれ採用。サーバー仮想化ソフトは米VMware(ヴイエムウェア)のVMware vSphereである。

 アプリケーションは主に、DBサーバー上に一連の業務ロジックを登録して実行する「ストアドプロシージャー」として実装した。ストアドプロシージャーを採用した理由は2つある。

 1つは、2004年当時は社内ネットワークの帯域が今ほど広くなく、アプリケーションサーバーとDBサーバーの通信量を減らしたかったため。もう1つは、DBサーバーに業務ロジックを集約することで、「DBサーバーをパワーアップすることでシステムの性能向上が図れる」(ZOZOの瀬尾直利技術本部本部長兼VPoE)ためだ。操作画面の描画といった処理が軽いアプリケーションは、IIS上にスクリプト言語のVBScriptで開発していた。

 クラウドを選定するに当たって、ZOZOはマイクロソフト製品との親和性の高さからAzureに決めた。オンプレミス環境の仮想マシンはAzureのコンテナに移し、コンテナはAzureのKubernetesマネージドサービスであるAzure Kubernetes Service(AKS)で管理することとした。

 Azureへの移行に際し、ZOZOはまずアプリケーションを参照系と準更新系、更新系の3種類に分けた。このうち参照系から移行に着手し、ストアドプロシージャーをJavaに書き換え、Azure上のコンテナに移行する作業を進めた。「量が膨大であり、旧システムを構築した際のテストコードが失われていたため、移行作業は難航した」(瀬尾本部長兼VPoE)。旧システムと新システムに同じテストデータを入力して、処理結果が同じか確認する「現新比較」で移行を進めた。