Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ZOZOTOWNにおけるクラウドDB運用の課題と展望

 ZOZOTOWNにおけるクラウドDB運用の課題と展望

makoto-horiguchi

July 25, 2019
Tweet

More Decks by makoto-horiguchi

Other Decks in Technology

Transcript

  1. ZOZOTOWNにおける
    クラウドDB運用の課題と展望
    株式会社ZOZOテクノロジーズ
    開発部 リプレースチーム エンジニア 堀口 真
    Copyright © ZOZO Technologies, Inc.

    View full-size slide

  2. © ZOZO Technologies, Inc.
    株式会社ZOZOテクノロジーズ
    開発部 リプレースチーム
    エンジニア
    堀口 真
    2018年 4月入社。
    現在 ZOZOTOWN リプレースを担当。
    前職ではSI/インフラ構築をメインに従事。
    オンプレOracle育ち。
    2

    View full-size slide

  3. © ZOZO Technologies, Inc.
    ・DBサービス構成
    ・クラウドDB運用で発生した問題と対策
    ・これから
    ・まとめ
    3
    アジェンダ

    View full-size slide

  4. © ZOZO Technologies, Inc.
    DBサービス構成
    4

    View full-size slide

  5. © ZOZO Technologies, Inc.
    DBサービス構成
    システム構成とアクセス図
    5
    Azure SQL Database(PRIMARY)
    Azure SQL Database (SECONDARY)
    Azure SQL Database (SECONDARY)
    AKS
    (application)
    SQL Server on Azure VM
    On premises
    Transaction
    replication
    SQL Server
    Geo replication
    Read Only
    Transaction
    replication

    View full-size slide

  6. © ZOZO Technologies, Inc.
    クラウドDB運用で発生した問題と対策
    6

    View full-size slide

  7. © ZOZO Technologies, Inc.
    クラウドDB運用で発生した問題と対策
    【問題1】性能問題
    7
    →本番リリースしたものの見積もりよりもSQL Database
    のCPU使用率が高くなり100%で張り付いてしまう
    →結果的にクエリ処理のタイムアウトが大量発生

    View full-size slide

  8. © ZOZO Technologies, Inc.
    クラウドDB運用で発生した問題と対策
    【対策1】性能問題
    8
    →まずはクエリチューニングを行いクエリの処理時間を削
    減することでCPU使用率を下げる
    →クエリの多重度(MAXDOP)をチューニングしてサー
    バCPU使用率を低減
    トラフィックに合わせてサーバ台数を増強するのは最終手段
    リプレース前コスト < リプレース後コストとなってはツライ

    View full-size slide

  9. © ZOZO Technologies, Inc.
    クラウドDB運用で発生した問題と対策
    【対策1】性能問題
    9
    →Azureの各種DBサービスを全て同条件下で性能を測定し最
    適なサービスを再選定
    トラフィック合わせてサーバ台数を増強するのは最終手段
    リプレース前コスト < リプレース後コストとなってはツライ
    ・SQL Database DTUモデル
    ・SQL Database vCoreモデル
    ・SQL Database Managed Instance
    ・SQL Database Hyperscale
    ・SQL Sever on Azure VM

    View full-size slide

  10. © ZOZO Technologies, Inc.
    クラウドDB運用で発生した問題と対策
    【対策1】性能問題
    10
    →コストを増やさずにDBサーバの台数を増やす作戦
    = リードスケールアウトの採用
    トラフィックに耐えるためにサーバ台数を増強するのは最終手段
    リプレース前コスト < リプレース後コストとなるのはツライ

    View full-size slide

  11. © ZOZO Technologies, Inc.
    クラウドDB運用で発生した問題と対策
    【参考】SQL Databaseリードスケールアウトとは
    11
    1つのエンドポイントの裏側で動作する複数DBサーバをユーザアプリケ
    ーションからReadOnlyで利用できる仕組み
    AKS
    (application)
    host:
    xxxxx.database.windows.net
    EP
    ApplicationIntent:
    ReadWrite
    ApplicationIntent :
    ReadOnly
    endpoint

    View full-size slide

  12. © ZOZO Technologies, Inc.
    クラウドDB運用で発生した問題と対策
    【問題2】DBサービスがたびたびアクセス不可になる
    12
    →クラウドサービス異常によりDBサービスへの接続が
    できなくなりエラー

    View full-size slide

  13. © ZOZO Technologies, Inc.
    クラウドDB運用で発生した問題と対策
    【対策2】DBサービスがたびたびアクセス不可になる
    13
    →リトライ制御の導入
    クラウド起因のサービス不能は避けられない
    AKS Cluster A
    (application)
    AKS Cluster B
    (application)
    NG!!
    Web Servers
    リトライ

    View full-size slide

  14. © ZOZO Technologies, Inc.
    クラウドDB運用で発生した問題と対策
    【対策2】DBサービスがたびたびアクセス不可になる
    14
    →さらに・・・マルチクラウドの導入
    クラウド起因のサービス不能は避けられない
    NG!!
    Web Servers
    リトライ

    View full-size slide

  15. © ZOZO Technologies, Inc.
    クラウドDB運用で発生した問題と対策
    【問題3】マネージド型DBにまつわる問題
    15
    →不定期メンテテンスによるDBサービス停止によりア
    クセスエラー

    View full-size slide

  16. © ZOZO Technologies, Inc.
    クラウドDB運用で発生した問題と対策
    【対策3】マネージド型DBにまつわる問題
    16
    →リトライ制御の導入 ※前述
    運用お任せのマネージド型では不定期メンテは避けられない

    View full-size slide

  17. © ZOZO Technologies, Inc.
    クラウドDB運用で発生した問題と対策
    【対策3】マネージド型DBにまつわる問題
    17
    →メンテナンスタイミングのスライド
    運用お任せのマネージド型では不定期メンテは避けられない
    AKS Cluster A
    (application)
    AKS Cluster B
    (application)
    NG!!
    Web Servers
    リトライ
    メンテ中!
    サービス中

    View full-size slide

  18. © ZOZO Technologies, Inc.
    これから
    18

    View full-size slide

  19. © ZOZO Technologies, Inc.
    これから
    DBサービス選定の自由化
    19
    →SQL Server固有のレプリケーションによるデータ連携
    を廃止し、CDC(ChangeDataCapture)によるデータ連

    サービス固有の仕組みを一度採用してしまうと、将来ニーズに合ったサ
    ービス選定ができなくなる
    →特定のDBサービスに依存しないシステム構成

    View full-size slide

  20. © ZOZO Technologies, Inc.
    これから
    NoSQLを併用
    20
    →キャパシティの動的スケールを得意とするNoSQLサー
    ビスを併用したハイブリッドなDBサービス構成
    ZOZOTOWNの増減の激しいトラフィックを無駄なくさばくため動的なス
    ケールをしたい

    View full-size slide

  21. © ZOZO Technologies, Inc.
    まとめ
    21

    View full-size slide

  22. © ZOZO Technologies, Inc.
    まとめ
    ・クラウド運用してみると設計段階では把握できない諸々課題が出
    ますが、対処方法は色々とあるため恐れずクラウドへリフトしまし
    ょう
    22
    ・ここまで大胆なシステム変更が可能なのはやっぱ自社サービスだ
    から

    View full-size slide