Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
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.5k
images-object-zozo
sho
November 05, 2018
Tweet
Share
Other Decks in Technology
See All in Technology
コードや知識を組み込む / Incorporating Codes and Knowledge
ks91
PRO
0
170
Azure Maps Visual in PowerBIで分析しよう
nakasho
0
210
AndroidアプリエンジニアもMCPを触ろう
kgmyshin
2
650
AIにおけるソフトウェアテスト_ver1.00
fumisuke
1
370
20 Years of Domain-Driven Design: What I’ve Learned About DDD
ewolff
1
310
Simplify! 10 ways to reduce complexity in software development
ufried
2
240
問 1:以下のコンパイラを証明せよ(予告編) #kernelvm / Kernel VM Study Kansai 11th
ytaka23
3
480
非root化Androidスマホでも動く仮想マシンアプリを試してみた
arkw
0
120
猫でもわかるS3 Tables【Apache Iceberg編】
kentapapa
2
180
Compose におけるパスワード自動入力とパスワード保存
tonionagauzzi
0
210
Next.jsと状態管理のプラクティス
uhyo
3
1.3k
AOAI で AI アプリを開発する時にまず考えたいこと
mappie_kochi
1
650
Featured
See All Featured
[RailsConf 2023] Rails as a piece of cake
palkan
54
5.5k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
Git: the NoSQL Database
bkeepers
PRO
430
65k
Agile that works and the tools we love
rasmusluckow
329
21k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.2k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
30
2.3k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
47
2.7k
Why Our Code Smells
bkeepers
PRO
336
57k
Making the Leap to Tech Lead
cromwellryan
133
9.3k
4 Signs Your Business is Dying
shpigford
183
22k
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.