Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
images-object-zozo
Search
sho
November 05, 2018
Technology
1
6.4k
images-object-zozo
sho
November 05, 2018
Tweet
Share
Other Decks in Technology
See All in Technology
共創するアーキテクチャ ~チーム全体で築く持続可能な開発エコシステム~ / Co-Creating Architecture - A Sustainable Development Ecosystem Built by the Entire Team
bitkey
PRO
1
3.6k
LINEヤフーにおけるPrerender技術の導入とその効果
narirou
3
3.6k
Engineer Recruting Deck
siva_official
PRO
1
3.1k
ゆるSRE勉強会 #8 組織的にSREが始まる中で意識したこと
abnoumaru
0
630
偶有的複雑性と戦うためのアーキテクチャとチームトポロジー
knih
7
5.6k
RAMP2024
takeyukitamura
3
220
ヤプリのデータカタログ整備 1年間の歩み / Progress of Building a Data Catalog at Yappli
yamamotoyuta
3
540
GAS × Discord bot × Gemini で作ったさいきょーの情報収集ツール
ysknsid25
1
220
GeminiとUnityで実現するインタラクティブアート
hokkey621
0
150
静的解析で実現した効率的なi18n対応の仕組みづくり
minako__ph
2
2.3k
Windows Server 2025 Pay as you Go ライセンスを試す
murachiakira
0
180
クルマのサブスクを Next.jsで内製化した経験とその1年後
kintotechdev
2
370
Featured
See All Featured
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
250
21k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
31
2.7k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
28
2k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Statistics for Hackers
jakevdp
796
220k
The Pragmatic Product Professional
lauravandoore
31
6.3k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Site-Speed That Sticks
csswizardry
0
77
A designer walks into a library…
pauljervisheath
204
24k
Being A Developer After 40
akosma
87
590k
What's new in Ruby 2.0
geeforr
343
31k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
Transcript
Copyright © ZOZO Technologies, Inc. All Right Reserved. 株式会社ZOZOテクノロジーズ 開発部
柴田翔 ZOZOTOWN の膨大な画像ファイルを 移行したときの過程の話 (オンプレミスからクラウドへ)
自己紹介 ・スタートトゥデイ(現(株)ZOZO)に 2010 年に新卒入社 ・入社当初は社内・倉庫インフラ ・現在は(株)ZOZOテクノロジーズ所属。 ZOZOTOWN、WEARのインフラ構築・運用 ・オンプレミス一本(クラウド歴数ヶ月) ZOZOテクノロジーズ 開発部
柴田 翔 Copyright © ZOZO Technologies, Inc. All Right Reserved.
◦ 日本最大級のファッションショッピングサイト/アプリ ◦ 1,100以上のショップ、6,800以上のブランドの取り扱い ◦ 常時65万点以上の商品アイテム数と毎日平均3,100点以上の新着商 品を掲載 ◦ 即日配送サービス /
ギフトラッピングサービス / ツケ払い など http://zozo.jp/ Copyright © ZOZO Technologies, Inc. All Right Reserved.
◦ 日本最大級のファッションコーディネートアプリ ◦ 1,100万ダウンロード突破、コーディネート投稿総数は800万件 ◦ 全世界(App Store / Google playが利用可能な全ての国)でダウ
ンロードが可能 ◦ 10万人以上のフォロワーを持つユーザー(WEARISTA)も誕生 https://wear.jp/ Copyright © ZOZO Technologies, Inc. All Right Reserved.
◦ 当社が独自に開発した採寸用ボディースーツ ◦ 全体に施されたドットマーカーをスマートフォンカメラで360度撮 影することで、体型データを計測 ◦ 計測した体型データは、瞬時に3Dモデル化され、ZOZOTOWNア プリに保存。3Dモデルはあらゆる角度に動かすことができ、体型を 360度チェックすることが可能 http://zozo.jp/zozosuit/
Copyright © ZOZO Technologies, Inc. All Right Reserved.
◦「ZOZOSUIT」で計測した体型データをもとに、一人ひとりの体型 に合った「あなたサイズ」のアイテム ◦「究極のフィット感」を実現したベーシックアイテムを提供 ◦ グローバルサイト「ZOZO.com」で海外展開 ◦ アイテム : Tシャツ、デニムパンツ、シャツ、ビジネススーツ、 ネクタイ、ボーダーTシャツ、長袖クルーネックTシャツ
など http://zozo.jp/pb/ Copyright © ZOZO Technologies, Inc. All Right Reserved.
お話したいこと ZOZOTOWNは、数億ファイルの画像を、オンプレミスからクラウドへ移行 しました。 短期間で、画像移行から本番稼働まで進めた過程のお話と、その中で、 LambdaやS3を利用して、感じたことをお話します。 Copyright © ZOZO Technologies, Inc.
All Right Reserved.
ZOZOTOWNの画像の種類 Copyright © ZOZO Technologies, Inc. All Right Reserved. リサイズ画像
オリジナル画像 リサイズ画像 リサイズ画像
目次 ・移行前のシステム構成 ・オンプレミスからクラウドへの移行背景 ・移行する上で重要視したポイント ・検討した移行パターン①~③ ・Lambda使用の大きなポイント①~② ・移行後のシステム構成 ・移行過程で発生した課題と解決方法 ・教訓 ・まとめ
Copyright © ZOZO Technologies, Inc. All Right Reserved.
目次 ・移行前のシステム構成 ・オンプレミスからクラウドへの移行背景 ・移行する上で重要視したポイント ・検討した移行パターン①~③ ・Lambda使用の大きなポイント①~② ・移行後のシステム構成 ・移行過程で発生した課題と解決方法 ・教訓 ・まとめ
Copyright © ZOZO Technologies, Inc. All Right Reserved.
移行前のシステム構成(移行前:オンプレ) Copyright © ZOZO Technologies, Inc. All Right Reserved. SPOOL
リサイズ SPOOL SPOOL オリジナル リサイズ リサイズ 画像変換 画像PUT 画像変換 画像変換 SPOOL SPOOL
移行前のZOZOTOWNからの参照方法 (移行前:オンプレ) Copyright © ZOZO Technologies, Inc. All Right Reserved.
リサイズ SPOOL SPOOL オリジナル リサイズ リサイズ 画像キャッシュ
目次 ・移行前のシステム構成 ・オンプレミスからクラウドへの移行背景 ・移行する上で重要視したポイント ・検討した移行パターン①~③ ・移行後のシステム構成 ・Lambda使用の大きなポイント①~② ・移行過程で発生した課題と解決方法 ・教訓 ・まとめ
Copyright © ZOZO Technologies, Inc. All Right Reserved.
オンプレミスからクラウドへの移行背景 ①容量不足(早急な移行が必要) ②監視したくない ③スケーラビリティが必要 Copyright © ZOZO Technologies, Inc. All
Right Reserved.
①容量不足(早急な移行が必要) ・ZOZOTOWNの新ショップ追加 ⇒商品画像が増える Copyright © ZOZO Technologies, Inc. All Right
Reserved. 0 200 400 600 800 1000 1200 2015 2016 2017 2018 ショップ数 ※2018年度6月現在
①容量不足(早急な移行が必要) ・ZOZOUSEDのサービス好調 ⇒買い取り→販売=同じ商品がない(1点もの) ・数億画像 約60TB(オリジナル画像+ リサイズ画像) ⇒ZOZOTOWNがオープンしてからほぼ全商品の画像を残している Copyright © ZOZO
Technologies, Inc. All Right Reserved.
②監視したくない ・逼迫の恐怖 ⇒ディスク逼迫 ・画像アップロードの量が多い ⇒オンプレミス画像サーバが耐えられない ・オンプレミスの保守 ⇒保守期限 ・夜間アラート ⇒夜間帯のアラートの60%が画像サーバ関連 Copyright
© ZOZO Technologies, Inc. All Right Reserved.
③スケーラビリティが必要 ・サービス拡大による、画像アップロード数の増加 ⇒対応できるインフラの準備 ・なぜS3なのか ⇒高い耐久性・容量制限がない ⇒公開ナレッジが多い ⇒AWS SAの手厚い技術的サポート Copyright ©
ZOZO Technologies, Inc. All Right Reserved.
目次 ・移行前のシステム構成 ・オンプレミスからクラウドへの移行背景 ・移行する上で重要視したポイント ・検討した移行パターン①~③ ・移行後のシステム構成 ・Lambda使用の大きなポイント①~② ・移行過程で発生した課題と解決方法 ・教訓 ・まとめ
Copyright © ZOZO Technologies, Inc. All Right Reserved.
移行する上で重要視したポイント ・運用コスト削減のため、なるべくマネージド ・画像データの容量を気にしなくていい ・短期間での移行のため、開発対象を少なくし、 テスト工数も削減したい
目次 ・移行前のシステム構成 ・オンプレミスからクラウドへの移行背景 ・移行する上で重要視したポイント ・検討した移行パターン①~③ ・移行後のシステム構成 ・Lambda使用の大きなポイント①~② ・移行過程で発生した課題と解決方法 ・教訓 ・まとめ
Copyright © ZOZO Technologies, Inc. All Right Reserved.
画像移行パターン① Snowballでの移行 Copyright © ZOZO Technologies, Inc. All Right Reserved.
SnowBallとは ・アプライアンスの特徴 ⇒ 50TB(US Only)/80TBのデータ容量 ・アプライアンスのセキュリティ ⇒ データは専用ツールで暗号化される ・利用のポイント ⇒
データの移行先はS3 ⇒ オフライン転送(転送中の差分は別途移行が必要) ⇒ ネットワーク移行とSnowball移行の比較(同期処理の作成) Copyright © ZOZO Technologies, Inc. All Right Reserved.
パターン①:Snowball ・転送速度を計算 ⇒ 約60TB(オリジナル画像+リサイズ画像) ⇒ 平均オブジェクトサイズ128KB ⇒ 転送速度10MB/s 60TB *
1024 * 1024(MB換算) / 10MB / 86400秒(一日) 72.8 days Copyright © ZOZO Technologies, Inc. All Right Reserved.
パターン① :Snowball⇒結果 ・時間が掛かりすぎる ⇒暗号化に時間がかかる ⇒Snowballの手配 ⇒出す入れるで2倍 ⇒移行用クライアントが必要 ⇒オフライン同期の為、差分同期が面倒 移行時間の短縮はできないか・・・ Copyright
© ZOZO Technologies, Inc. All Right Reserved.
画像移行パターン② S3へ直接PUTすることで移行 (全画像) Copyright © ZOZO Technologies, Inc. All Right
Reserved.
パターン②:直接S3へ全画像をPUT ・転送速度を計算 ⇒ 約60TB(オリジナル画像+リサイズ画像) ⇒ 平均オブジェクトサイズ128KB ⇒ 転送速度42MB/s(バッチ3並列の実測値) 60TB *
1024 * 1024(MB換算) / 42MB / 86400秒(一日) ≒ 17.3 days Copyright © ZOZO Technologies, Inc. All Right Reserved. ¼
パターン②:直接S3へ全画像をPUT⇒結果 Copyright © ZOZO Technologies, Inc. All Right Reserved. ・転送速度の向上
⇒転送速度4倍 ⇒入れるだけ ・準備時間短縮 ⇒Snowballの手配が不要に ⇒移行用クライアントの準備が簡単 サーバ+専用ツール<S3直PUTコマンド ・更に転送速度の改善へ・・・
画像移行パターン③ オリジン画像のみS3直接PUTでの移行 リサイズはLambda Copyright © ZOZO Technologies, Inc. All Right
Reserved.
パターン3:直接S3へオリジナル画像のみPUT ・転送速度を計算 ⇒ 約30TB(オリジナル画像) ⇒ 平均オブジェクトサイズ128KB ⇒ 転送速度42MB/s(バッチ3並列の実測値) ・ポイント ⇒
オリジナル画像のみをS3へ ⇒ Lambdaで非同期でリサイズ処理 30TB * 1024 * 1024(MB換算) / 42MB/ 86400秒(1日) ≒ 8.6 days Copyright © ZOZO Technologies, Inc. All Right Reserved. 更に 1/2
採用 直接S3へオリジナル画像のみPUT ・転送速度の向上 ⇒Snowballの8倍 全画像PUTの2倍 ・リサイズ用オンプレミスサーバ不要 ⇒Lambdaでのリサイズ処理 ・Lambdaの実績 ⇒Lambdaの性能評価ができた Copyright
© ZOZO Technologies, Inc. All Right Reserved. 夜間 アラートほぼ0!
目次 ・移行前のシステム構成 ・オンプレミスからクラウドへの移行背景 ・移行する上で重要視したポイント ・検討した移行パターン①~③ ・移行後のシステム構成 ・Lambda使用の大きなポイント①~② ・移行過程で発生した課題と解決方法 ・教訓 ・まとめ
Copyright © ZOZO Technologies, Inc. All Right Reserved.
移行後のシステム構成(移行後:クラウド) ・ Lambdaで非同期でリサイズ画像を作成 ⇒オリジナル画像をリサイズ Copyright © ZOZO Technologies, Inc. All
Right Reserved. 一次受け bucket Lambda オリジナル画像 リサイズ画像 画像PUT
移行後のZOZOTOWNからの参照方法 (移行後:クラウド) Copyright © ZOZO Technologies, Inc. All Right Reserved.
画像キャッシュ オリジナル画像 リサイズ画像
目次 ・移行前のシステム構成 ・オンプレミスからクラウドへの移行背景 ・移行する上で重要視したポイント ・検討した移行パターン①~③ ・移行後のシステム構成 ・Lambda使用の大きなポイント①~② ・移行過程で発生した課題と解決方法 ・教訓 ・まとめ
Copyright © ZOZO Technologies, Inc. All Right Reserved.
大きなポイント① ・Lambda実装でのポイント ・Lambdaの修正の楽さ ⇒既存リサイズ処理→属人化の排除 ・公開ナレッジ量の多さ ・画像変換用サーバが不要 Copyright © ZOZO Technologies,
Inc. All Right Reserved.
大きなポイント② ・移行後も同じLambdaを使用 ・Lambdaの実績 ・スケーラビリティーが確認できた ⇒結果としてものすごい量のlambda発火量 Copyright © ZOZO Technologies, Inc.
All Right Reserved.
目次 ・オンプレミスからクラウドへの移行背景 ・移行する上で重要視したポイント ・移行前と移行後のシステム構成 ・検討した移行パターン①~③ ・Lambda使用の大きなポイント①~② ・移行過程で発生した課題と解決方法 ・教訓 ・まとめ Copyright
© ZOZO Technologies, Inc. All Right Reserved.
問題 S3のバケット作成(S3の各種制限) ・S3GET制限とPrefix S3原則バケット毎 800GET/secの制限 現サーバへのリクエスト数(オリジナル画像+リサイズ画像) 795GET/sec AWS SAへ相談・・・ Copyright
© ZOZO Technologies, Inc. All Right Reserved.
解決 S3のバケット作成(S3の各種制限) ・バケット構成を分ける オリジナル画像バケット255GET/sec リサイズ画像バケット540GET/sec ⇒結果△ 朗報・・S3GET/PUTのパフォーマンス向上 5,500 GET/sec, 3,500
PUT/POST/DELETE/sec ⇒結果◎ 制限ぎりぎりだったGET制限もクリア Copyright © ZOZO Technologies, Inc. All Right Reserved.
目次 ・オンプレミスからクラウドへの移行背景 ・移行する上で重要視したポイント ・移行前と移行後のシステム構成 ・検討した移行パターン①~③ ・Lambda使用の大きなポイント①~② ・移行過程で発生した課題と解決方法 ・教訓 ・まとめ Copyright
© ZOZO Technologies, Inc. All Right Reserved.
教訓 ・実際に触ってみる オンプレミスからクラウドへの意識付け ・フロントエンジニアとバックエンドエンジニア との密なコミュニケーション 移行後のプログラム修正 ・AWS SAとの連携 SAの親身な問題解決への意識の高さとレスの速さ Copyright
© ZOZO Technologies, Inc. All Right Reserved.
目次 ・オンプレミスからクラウドへの移行背景 ・移行する上で重要視したポイント ・移行前と移行後のシステム構成 ・検討した移行パターン①~③ ・Lambda使用の大きなポイント①~② ・移行過程で発生した課題と解決方法 ・教訓 ・まとめ Copyright
© ZOZO Technologies, Inc. All Right Reserved.
まとめ ・Lambda採用のメリット ⇒Lambdaでリサイズ処理することにより画像変換、 管理のための物理サーバが不要 ⇒冗長化不要 ⇒コードの管理のみ ・S3採用(オリジナル画像)のメリット ⇒容量を気にしない、耐障害性の向上 ⇒データセンター作業の廃止 ⇒保守・セキュリティパッチ・バックアップサーバの廃止
Copyright © ZOZO Technologies, Inc. All Right Reserved.
その他 ・Serverlessのメリットを実感 ⇒サービスに関わらずServerless化の検討 Copyright © ZOZO Technologies, Inc. All Right
Reserved.
エンジニア募集・・・ 一緒に 70億人のファッションを 技術の力で変えていきましょう! https://tech.zozo.com/recruit/zozo-revolution/ Copyright © ZOZO Technologies, Inc.
All Right Reserved.
ご静聴ありがとうございました Copyright © ZOZO Technologies, Inc. All Right Reserved.