アマゾンウェブサービスジャパンは10月31日から11月2日にかけて、目黒の新オフィスで、アプリケーションデベロッパーのためのテクノロジーカンファレンス「AWS Dev Day Tokyo 2018」を開催した。
同カンファレンスでは、クラウド上でのアプリ開発における最新のテクノロジーとトレンドについて、40本のテクニカルセッション、10コース以上のテクニカルハンズオンが用意されていた。
本稿では、60TBもの画像ファイルをオンプレミスからAWSに移行したファッション通販サイト「ZOZOTOWN」のセッションの模様を紹介する。プロジェクトを担当したZOZOテクノロジーズ ZOZOバックエンド部ネットワークブロックの柴田翔氏が、クラウドへの移行において発生した課題と解決法、AWS Lambda活用のポイントを説明した。
画像サーバが抱える課題を解決する「S3」
「ZOZOTOWN」に限らず、ファッション通販サイトにはさまざまな画像が使われている。「ZOZOTOWN」ではオリジナル画像から複数のリサイズ画像を生成しているが、その数は数億に上り、ファイル容量にして60TBに達する。柴田氏によると、オープンしてからほぼ全商品の画像を残しているそうだ。
これだけの画像ファイルを抱える中、「ファイルの格納先の容量不足」に加え、「監視をしたくない」「スケーラビリティが必要」といった課題が生じてきたことから、画像ファイルの保存システムの移行の検討が始まった。
「容量不足」を招いている要因としては、画像の容量が膨大であるうえに、「ZOZOUSED」の好調ぶりがあったそうだ。「ZOZOUSED」は古着の通販サービスであるため、同じ商品がなく、画像の数が多い。
「監視をしたくない」という背景には、「画像の保存先のディスクが逼迫する恐怖」「アップロードされる画像数にサーバが耐えられなくってきていた」「オンプレミスの保守期限」「夜間アラート」があった。夜間のアラートにおいては、その60%が画像サーバに関連したものだったという。
柴田氏は、画像サーバを移行する上で重視したポイントとして「運用コスト削減のため、なるべくマネージドを」「画像データの容量を気にしなくてよい」「短期間で移行するため、開発対象とテスト工数を抑えたい」の3点を挙げた。
そこで、移行先として決まったのがAWSのクラウドストレージ「S3」だ。柴田氏はS3を選んだ理由として「耐久性が高く、容量制限がない」「公開されているナレッジが多い」「AWSソリューションアーキテクトのサポートが手厚い」の3点を挙げた。言い換えれば、これらは、画像サーバが抱えていた課題を解決する要素と言える。
Snowballでは転送速度が遅すぎた、次の一手は?
次に、画像データをAWSのS3に移行する方法の検討が行われた。1つ目は、AWSのデータ転送を高速に行うためのストレージアプライアンス「AWS Snowball」を活用する方法だ。Snowballを用いると、オンプレミスのデータセンターとS3間でペタバイト級のデータを転送できる。
Snowballを使ってデータを転送してみた結果、転送速度が10MB/sしか出ないため、時間がかかりすぎることがわかった。60TBのデータ転送の速度を計算したところ、約72日かかることになった。その要因には、「暗号化」「データの出し入れによる2倍の処理」「オフライン同期のため差分同期が必要」などがあった。
そこで、2番目の方法として挙がったのが「全画像をネットワーク経由でS3に直接転送する」という方法だ。この方法による転送速度を計算したところ、約17日とSnowballを使った方法の約4分の1になることがわかった。Snowballを利用しないことで、その手配が不要になり、移行用クライアントの準備も簡単になったため、準備時間も短縮された。
さらに、転送速度を縮めるため、オリジナル画像のみを直接S3に転送するという方法を検討することになった。オリジナル画像の容量は約30TBということで、転送にかかる日数を半減することができるというわけだ。また、Lambdaにおいて非同期でリサイズすることで、転送する画像の容量を減らすことができるうえ、リサイズ用のオンプレミスのサーバもなくすことが可能になった。3番目の方法を実施したところ、夜間のアラートがほぼゼロになったそうだ。
ポイントはLambdaの利用
柴田氏は今回のプロジェクトの最大のポイントとして「Lambdaの利用」を挙げた。Lambdaの実装においては、前述したように画像のリサイズ処理に利用したことで、属人的な作業を排除できたことが大きなメリットだったという。ハードウェアの面では、前述したように、リサイズ用の画像サーバが不要になったうえ、冗長化を行う必要がなくなった。
また、柴田氏は「今回Lambdaを使ってみたことで、性能を実際に評価して、スケーラビリティを確認できた。移行後も、同じLambdaを利用している」と語った。
もともと、オンプレミスのシステムの運用管理を長年担当してきた柴田氏。今回初めてクラウドサービスを利用したということだが、「オンプレミスからクラウドに意識をシフトするには、とにかくクラウドサービスに触ってみることが大切」とアドバイスする。
Webサイトがますますリッチになる中、画像の運用に頭を悩ましている運用管理者は少なくないだろう。そんな運用管理者にとって、ZOZOTOWNの解決策は参考になるのではないだろうか。