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
データベースの移行方式を検討した話
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
makoto-horiguchi
October 03, 2023
Technology
940
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
データベースの移行方式を検討した話
makoto-horiguchi
October 03, 2023
More Decks by makoto-horiguchi
See All by makoto-horiguchi
ZOZOTOWNにおけるクラウドDB運用の課題と展望
makoto8048
1
1.3k
Other Decks in Technology
See All in Technology
手塩にかけりゃいいってもんじゃない
ming_ayami
0
240
価格.comをAI駆動で全面刷新する ー 30年分の技術的負債を返し、次の30年の土台をつくる ー / AI Engineering Summit Tokyo 2026
tkyowa
53
59k
How Timee Delivers Day 1 Production Ready LLM Features
tomoyks
0
110
AI-DLCを活用した高品質・安全なAI駆動開発実践 / AI Driven Development with AI-DLC
yoshidashingo
0
170
新しいVibe Codingと”自走”について
watany
5
290
AI駆動開発を通して感じた、 AI時代のデザイナーの役割変化
whisaiyo
0
190
2026TECHFRESH畢業分享會 - Lightning Talk - E起 See See : 電商推薦讀心術? 數據說了算
line_developers_tw
PRO
0
710
エンジニアリング戦略の作り方 / Crafting Engineering Strategy
iwashi86
19
6.4k
AI駆動開発が変える、大規模開発の前提 ーHuman in the Loop から Human on the Loop へ / AIE2026
visional_engineering_and_design
30
24k
On-behalf-of Token exchange with AgentCore Identity
hironobuiga
2
140
Bucharest Tech Week 2026 - Reinventing testing practices in the AI era
edeandrea
PRO
1
140
AAIFに入ってみた ~内から見えるコミュニティ動向~
sato4
0
140
Featured
See All Featured
The Cult of Friendly URLs
andyhume
79
6.9k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4k
Into the Great Unknown - MozCon
thekraken
41
2.6k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
280
The Illustrated Children's Guide to Kubernetes
chrisshort
51
52k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
450
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
390
Building an army of robots
kneath
306
46k
GitHub's CSS Performance
jonrohan
1033
470k
How Software Deployment tools have changed in the past 20 years
geshan
0
34k
Crafting Experiences
bethany
1
170
Transcript
データベースの移行方式を 検討した話 株式会社ZOZO SRE部 / ZOZOSREブロック 堀口 真 Copyright ©
ZOZO, Inc. 1
© ZOZO, Inc. 株式会社ZOZO SRE部 ZOZOSREブロック 堀口 真 2018年旧ZOZOテクノロジーズ(現ZOZO)入社。
参照系機能のクラウド移行に従事。 現在はZOZOTOWN SREとDBREを兼務し、オンプレ基盤のリ プレイス案件やZOZOTOWNの基幹DBの運用・保守を担当。 ゴルフ好き 2
© ZOZO, Inc. https://zozo.jp/ 3 • ファッションEC • 1,500以上のショップ、8,900以上のブランドの取り扱い
• 常時95万点以上の商品アイテム数と毎日平均2,900点以上の新着 商品 を掲載(2023年6月末時点) • ブランド古着のファッションゾーン「ZOZOUSED」や コスメ専門モール「ZOZOCOSME」、靴の専門モール 「ZOZOSHOES」、ラグジュアリー&デザイナーズゾーン 「ZOZOVILLA」を展開 • 即日配送サービス • ギフトラッピングサービス • ツケ払い など
© ZOZO, Inc. 4 基幹データベースのリプレイス
© ZOZO, Inc. 5 基幹データベースのリプレイス HW保守期限が終了すること、およびSQL Server 2012がEOLを迎えることか ら、HWの更改、OSバージョンアップ、SQLserverのバージョンアップを実施し ました。
※詳しくはこちらのテックブログをご覧ください https://techblog.zozo.com/entry/replace-zozo-databases
© ZOZO, Inc. 6 基幹データベースとは
© ZOZO, Inc. 7 基幹データベースとは 基幹データベース(以下基幹DB)とは、ZOZOTOWNのサービスの中核をなす マスターDB群であり、数百台のWEBサーバから直接Read/Writeのアクセスを 受け付けます。 格納されるデータ種別によって6種類のデータベースに分割されており、各デー タベースのワークロードは全く異なるものとなります。
© ZOZO, Inc. 8 基幹データベースとは DB 格納されるデータ FrontDB セール情報 ショップニュース
会員情報 クーポン情報 ファッションまとめ 注文情報 メンバー情報 ポイント履歴 在庫情報 BackDB 商品系情報 ショップ、ブランド系情報 拠点情報 メルマガ ReportDB 分析系情報 BatchDB 人気順情報 検索系 コーディネイト系 ReadonlyDB 商品詳細情報 DmsDB データ連携中継用 EtcDB 上記以外のデータ
© ZOZO, Inc. 9 基幹データベースとは 基幹DBはオンプレミスなサーバ上のSQL Serverで稼働しています。 各データベース間のデータ連携は、SQL Serverのトランザクションレプリケーション 機能により実現しており、網の目のような連携ルートが存在します。
BackDB FrontDB EtcDB BatchDB DmsDB CartDB ReportDB
© ZOZO, Inc. 10 移行方式の検討
© ZOZO, Inc. 11 移行方式の検討 基幹DBをリプレイスするにあたってまず初めに考えたことは、移行方式でし た。 最初に移行方式から考えた理由はいくつかありますが一番の理由は ZOZOTOWNを何時間止めるのか を決めるためでした。
© ZOZO, Inc. 12 移行方式の検討 移行方式によってサービス停止の有無・その時間が決まってきます。 • オンライン移行はできないか? • 最小の停止時間で行うためには?
• 失敗時のリスクが最も少ないのは? 上記3点を最初に検討しました。
© ZOZO, Inc. 13 オンライン移行はできないか?
© ZOZO, Inc. 14 オンライン移行はできないか? オンライン移行を可能とするためには以下を満たす必要があります。 • クライアントサーバからの接続切替が瞬時にできること • データにロストや矛盾が発生しないこと
© ZOZO, Inc. 15 オンライン移行はできないか? クライアントサーバは数百台が稼働しており、トラフィックの合間を縫って同じタ イミングで接続を切り替えることは不可能でした。 旧DB更新するクライアントがいれば、新DBを更新するクライアントが両立して しまうのは避けられません。 案としてクライアントサーバ側で新旧DBにダブルライトするよう修正を入れるこ
とも考えましたが、DBアクセス箇所が膨大で断念しました。
© ZOZO, Inc. 16 オンライン移行はできないか? 一瞬でも新旧のDBを交互に更新してしまう状況が発生してしまう以上、オンラ インでの移行は諦めざるを得ず、サービスを停止することにより一時的にDBへ のアクセスをゼロにするための静止点を作る必要がありました。
© ZOZO, Inc. 17 最小の停止時間で行うためには?
© ZOZO, Inc. 18 最小の停止時間で行うためには? 静止点を設けるためサービス停止は行うとして、今度は停止時間を最小化する ためにはどうしたらよいか?を検討しました。 サービス停止時間=旧DBと新DBでデータを一致させるための作業時間
© ZOZO, Inc. 19 最小の停止時間で行うためには? データ同期の方法について、いくつか案を出し最善のものを選定するという作 業に入りました。検討した案は以下となります。 案 時間 メリット
デメリット SQL Serverのbcp機能による export/import 長い 作業が分かりやすく、トラブル 発生時の中断・リトライ作業が 容易 テーブル数が多いため並列で作 業しても時間かかる。Indexの drop/createなど作業が多い SQL Serverの機能によるバックアップ/リ ストア 普通 DB単位で全てリストアされる ためストアドやシノニムなども 最新化され安全 レプリケーションの整合性が取 れなくなるためリストア後にレプ リケーションを再作成する必要 がある SQL Serverのレプリケーションによるリア ルタイム同期 短い 旧DBの更新がリアルタイムで 新DBに連携されるためデータ 移行作業自体が不要 旧DBから見ると2倍のレプリ ケーションルートが作成されるた め現行環境のシステム負荷が不 安
© ZOZO, Inc. 20 最小の停止時間で行うためには? それぞれのメリット・デメリットの比較を行い、検討した結果、SQL Serverの機 能によるバックアップ/リストア でデータ移行を行うことに決定しました。
© ZOZO, Inc. 21 最小の停止時間で行うためには? また移行当日の作業時間を極小化するため、一番時間のかかるフルリストア は2日前に作業を実施し、その後移行当日までに更新された差分データについ てはトランザクションログを細かく適用していくことで、新旧DBのデータ同期を 行いました。 トランザクションログの適用はジョブを作成することで自動化しました。
© ZOZO, Inc. 22 最小の停止時間で行うためには? リストアの仕組み
© ZOZO, Inc. 23 失敗時のリスクを 少なくするためには?
© ZOZO, Inc. 24 失敗時のリスクを少なくするためには? リスクとして考えていたのは大きく以下の2点でした。 • 作業中のトラブルによりサービス停止時間が長引くこと • サービス開始後に大量のリクエストを捌ききれずにDBがダウンすること
© ZOZO, Inc. 25 失敗時のリスクを少なくするためには? この2つを同時に解決するために取った方法は、2段階リリースでした。 DBを2つのグループに分割し移行日を分けることで、問題が発生した際の影響 範囲を縮小しました。
© ZOZO, Inc. 26 失敗時のリスクを少なくするためには?
© ZOZO, Inc. 27 失敗時のリスクを少なくするためには?
© ZOZO, Inc. 28 失敗時のリスクを少なくするためには? 2段階リリース方式を取ることにより、それぞれのサービス停止時間を短縮する ことが可能となり、ZOZOTOWNのアクセスが少ない夜間帯に作業を完了させ ることができました。
© ZOZO, Inc. 29 失敗時のリスクを少なくするためには? ただし2段階リリースにもデメリットがありました。 • システム構成に影響 • 切替作業にあたる大勢のメンバーの負担増
© ZOZO, Inc. 30 失敗時のリスクを少なくするためには? 先に述べた通り、各DB間のデータ連携はSQL Serverのトランザクションレプリ ケーションにより実現してます。 フェーズ1では新DBと旧DB間でレプリケーションを張ることになります。 これがSQL
Serverのバージョン互換性に抵触したため、データ中継用に一時 的な中間インスタンスを構築することになりました。
© ZOZO, Inc. 31 まとめ
© ZOZO, Inc. 32 まとめ • 移行方式を工夫することでサービス停止時間を縮小することが可能 • 移行方式によってはシステム構成に影響が及ぶことがあるので最初に検 討すべき
• 移行リスク低減のための段階リリースのすすめ
None