Slide 1

Slide 1 text

© Start Today Technologies Inc. ZOZOTOWNの抱える巨大データ のマイグレーションについて

Slide 2

Slide 2 text

© Start Today Technologies Inc. ZOZOTOWNの抱える巨大データのマイグレーションについて ZOZOTOWN の巨大DB を新システム環境へ移行しました。 サービスを継続させたまま、安全に移行するまでの取り組みについて ご説明します。

Slide 3

Slide 3 text

© Start Today Technologies Inc. 目次 ・ZOZOTOWN リプレイス ・DB マイグレーション - 方針 / DB 構成 / データ移行 / Azure DB ・DB 構築自動化 ・DB スケールアウト ・まとめ

Slide 4

Slide 4 text

© Start Today Technologies Inc. ZOZOTOWN リプレイス

Slide 5

Slide 5 text

© Start Today Technologies Inc. リプレイスの経緯 ZOZOTOWN は開設から10年以上が経ち、オンプレミスでの システム環境も歳を取りレガシーなものとなりました。 年々、目覚ましい成長を遂げているZOZOTOWN ですが、その一方で、 運用・開発での問題・課題も見えてきました。

Slide 6

Slide 6 text

© Start Today Technologies Inc. リプレイス以前の問題・課題 ・オンプレミスではリソース調達に時間がかかる。 ⇒ 柔軟にリソースを確保できるようにしたい。 ・システム停止をなるべく避けたい。 ⇒ 障害やシステム変更に強いシステムにしたい。 ・エンジニア不足。 ⇒ 採用に力を入れると同時に、自動化できるところは自動化したい。 ・データ量増加に伴う処理速度の劣化。 ⇒ 現在のデータ量を考慮し、クエリやテーブルの改善をしたい。

Slide 7

Slide 7 text

© Start Today Technologies Inc. リプレイスについて 今回、問題や改題を含めてリプレイスした中で、 特に大変だったDB 移行についてご説明します。

Slide 8

Slide 8 text

© Start Today Technologies Inc. DB マイグレーション

Slide 9

Slide 9 text

© Start Today Technologies Inc. DB マイグレーション DB の視点から改善を考えました。

Slide 10

Slide 10 text

© Start Today Technologies Inc. DB マイグレーション方針 方針 ・柔軟なリソース獲得のためクラウド(Azure)を利用する。 ・学習コスト、移行コストを減らすためDB はオンプレミスで利用している SQL Server をクラウドでも利用する。 ・マネージドDB を利用し、運用負荷を軽減する。 ・パフォーマンス改善のためDB 設定、テーブル構成、クエリの見直しを行う。 ・DB 周りで自動化できるところは自動化を行う。 ・システム停止なしで移行を行う。

Slide 11

Slide 11 text

© Start Today Technologies Inc. DB マイグレーション方針 方針に基づいたクラウドへのDB 移行実施に加え、 3つの改善を行いました。

Slide 12

Slide 12 text

© Start Today Technologies Inc. 対応内容 ・DB 構築の自動化 ・DB スケールアウト / スケールイン ・パフォーマンス改善

Slide 13

Slide 13 text

© Start Today Technologies Inc. 対応内容 ・DB 構築の自動化 ⇒ 環境作成の負荷を低減し、設定漏れ等の人的ミスも防ぐ。 ・DB スケールアウト / スケールイン ⇒ 負荷分散のため、スケールアウトを可能にする。 ・パフォーマンス改善 ⇒ ZOZOTOWN の処理速度を改善する。

Slide 14

Slide 14 text

© Start Today Technologies Inc. 対応内容 ・DB 構築の自動化 ⇒ 環境作成の負荷を低減し、設定漏れ等の人的ミスも防ぐ。 ・DB スケールアウト / スケールイン ⇒ 負荷分散のため、スケールアウトを可能にする。 ・パフォーマンス改善 ⇒ ZOZOTOWN の処理速度を改善する。

Slide 15

Slide 15 text

© Start Today Technologies Inc. リプレイス以前のDB 構成

Slide 16

Slide 16 text

© Start Today Technologies Inc. リプレイス以前のDB 構成 オンプレミスでSQL Server 複数台利用。※DB 3台の例。DB 以外の部分は省略。 オンプレミス

Slide 17

Slide 17 text

© Start Today Technologies Inc. リプレイス後のDB 構成

Slide 18

Slide 18 text

© Start Today Technologies Inc. リプレイス後のDB 構成 オンプレミスのSQL Server を幾つかクラウドへ移行。 オンプレミス クラウド 移行(専用線)

Slide 19

Slide 19 text

© Start Today Technologies Inc. リプレイス後のDB 構成 オンプレミスのSQL Server を幾つかクラウドへ移行。 オンプレミス クラウド 移行(専用線)

Slide 20

Slide 20 text

© Start Today Technologies Inc. データ移行

Slide 21

Slide 21 text

© Start Today Technologies Inc. 移行の考え方 ZOZOTOWN はデータ量も多く、更新量も多い。 このデータをシステム停止せずに移行する必要があります。 ※オンプレミスとクラウド間の通信は専用線を用います。

Slide 22

Slide 22 text

© Start Today Technologies Inc. 移行の考え方 データ移行方法は幾つか考えられます。 ・移行元バックアップからのリストア ・マイグレーションツールの利用 ・SQL Server レプリケーションの利用

Slide 23

Slide 23 text

© Start Today Technologies Inc. 移行の考え方 データ移行方法は幾つか考えられます。 ・移行元バックアップからのリストア ・マイグレーションツールの利用 ・SQL Server レプリケーションの利用 ZOZOTOWN の巨大データをシステム停止することなく 継続的にクラウドへ移行するために、 SQL Server レプリケーションが向いていると判断。

Slide 24

Slide 24 text

© Start Today Technologies Inc. Azure DB について

Slide 25

Slide 25 text

© Start Today Technologies Inc. Azure DB の利用 Azure で利用できるSQL Server は IaaS 、PaaS の2種類があり、 どちらも利用します。 ・仮想マシン上のSQL Server(IaaS) ・Azure SQL Database(PaaS)

Slide 26

Slide 26 text

© Start Today Technologies Inc. IaaS 、PaaS の使い分け • 当初はマネージドDB であるAzure SQL Database (PaaS)だけで構成 しようと検討。 • レプリケーションやリンクサーバー等の機能に制限があり、実現でき ない部分があり断念。 • 仮想マシン上のSQL Server (IaaS)を併用することにしました。

Slide 27

Slide 27 text

© Start Today Technologies Inc. 今後Azure DBで活用したい機能 ・Azure SQL Database Managed Instance(2018/08時点プレビュー) ⇒ほぼ全てのSQL Server 機能が利用できるマネージドDB。 ・ Azure SQL 自動チューニング機能 ⇒Index 自動作成、 Index 自動削除、実行プラン強制。 ・ Azure SQL Database Elastic Pool ⇒リソース(DTU)をDB 間で分け合うことができる。

Slide 28

Slide 28 text

© Start Today Technologies Inc. DB 構築自動化

Slide 29

Slide 29 text

© Start Today Technologies Inc. DB 構築問題点 DB 構築時の問題点は次の通り。 ・DB を幾つも作成する必要があるが設定が大変であり、時間もかかる。 ・構築手順が多いため設定が漏れてしまう可能性がある。

Slide 30

Slide 30 text

© Start Today Technologies Inc. DB 構築自動化について 問題点解消、及び、データ移行を簡単にするため、 クラウド上に DB を作成するところから利用できる状態にするまで を自動化しました。

Slide 31

Slide 31 text

© Start Today Technologies Inc. DB 構築自動化について Terraform PowerShell Terraform とPowerShell を組み合わせて自動化を実現しました。

Slide 32

Slide 32 text

© Start Today Technologies Inc. ・OS 設定 ディスクフォーマット / ローカルグループポリシー変更など パフォーマンス最適化 ・DB 作成 ・DB 設定 メモリ割当 / ユーザ作成 / データ投入 / Index 作成など ・仮想マシン作成 ・SQL Server 作成 ・ディスク作成 ・各種設定 監視 / セキュリティ エージェントなど ・PowerShell 呼び出し DB 構築自動化について 仮想マシン上のSQL Server を自動構築(SQL Database の場合も同様の実装) 自動構築 開始 完了

Slide 33

Slide 33 text

© Start Today Technologies Inc. DB スケールアウト

Slide 34

Slide 34 text

© Start Today Technologies Inc. DB スケールアウトについて 今回採用したDBのスケールアウト戦略についてご説明します。

Slide 35

Slide 35 text

© Start Today Technologies Inc. DB スケールアウトについて プライマリDB(マスター)とセカンダリDB(リードレプリカ)を 負荷分散に用います。 プライマリDB (マスター) セカンダリDB (リードレプリカ)

Slide 36

Slide 36 text

© Start Today Technologies Inc. イメージ1(スケールアウト前) 高負荷時の対策として、DB性能強化のスケールアップ、 セカンダリDB を増やすことでのスケールアウトが考えられます。 プライマリDB セカンダリDB

Slide 37

Slide 37 text

© Start Today Technologies Inc. イメージ1(スケールアウト後) 高負荷時の対策として、DB性能強化のスケールアップ、 セカンダリDB を増やすことでのスケールアウトが考えられます。 プライマリDB セカンダリDB追加

Slide 38

Slide 38 text

© Start Today Technologies Inc. イメージ2(スケールアウト前) DB 構築自動化により、参照系 DB であれば プライマリDB を追加し、 構成自体をスケールアウトすることが容易になりました。 プライマリDB セカンダリDB

Slide 39

Slide 39 text

© Start Today Technologies Inc. イメージ2(スケールアウト後) DB 構築自動化により、参照系 DB であれば プライマリDB を追加し、 構成自体をスケールアウトすることが容易になりました。 プライマリDB セカンダリDB プライマリDB追加 セカンダリDB追加

Slide 40

Slide 40 text

© Start Today Technologies Inc. イメージ3(スケールアウト前) 2種類のスケールアウト戦略を組み合わせることで、より柔軟にスケー ルさせることが可能となりました。 プライマリDB セカンダリDB

Slide 41

Slide 41 text

© Start Today Technologies Inc. イメージ3(スケールアウト後) 2種類のスケールアウト戦略を組み合わせることで、より柔軟にスケー ルさせることが可能となりました。 プライマリDB 追加 セカンダリDB追加 セカンダリDB プライマリDB セカンダリDB追加 セカンダリDB追加

Slide 42

Slide 42 text

© Start Today Technologies Inc. イメージ4(最終形) セカンダリDB プライマリDB セカンダリDB プライマリDB セカンダリDB プライマリDB セカンダリDB セカンダリDB セカンダリDB セカンダリDB プライマリDB セカンダリDB 東日本リージョン 西日本リージョン

Slide 43

Slide 43 text

© Start Today Technologies Inc. イメージ4(最終形) セカンダリDB プライマリDB セカンダリDB プライマリDB セカンダリDB プライマリDB セカンダリDB セカンダリDB セカンダリDB セカンダリDB プライマリDB セカンダリDB 東日本リージョン 西日本リージョン 複数のDB を東日本リージョン / 西日本リージョン それぞれに配置。 負荷分散、及び、耐障害性を高めています。

Slide 44

Slide 44 text

© Start Today Technologies Inc. まとめ

Slide 45

Slide 45 text

© Start Today Technologies Inc. まとめ DB 構築自動化するための Terraform 、PowerShell を準備するまでが 大変でしたが、結果、DB 構築は楽になり、DB 移行もスムーズに 行えました。 また、スケールアウトによる負荷分散も容易となり、サービス向上に 繋がりました。 今後はさらに運用が楽に、そして、サービスが良くなるよう取り組みた いと思います。

Slide 46

Slide 46 text

© Start Today Technologies Inc. ご清聴ありがとうございました。