事例から学ぶ、分散データベースの使いどころ
2023年10月26日

伊津野 安梨沙Principal Solution Engineer© 2023 All Rights Reserved

1

自己紹介

伊津野 安梨沙 (@arisa5678)
YugabyteDB プリセールス・エンジニア
IBM (WebSphere: WAS, MQ, ESB, BPM, BRMS, RPA, AI-OCR …)
Salesforce (MuleSoft: APIM, Integration …)
YugabyteDB (Distributed SQL …)© 2023 All Rights Reserved本日のご紹介内容● YugabyteDBが必要とされる背景● 事例①金融業界● 事例②小売業界● まとめ© 2023 All Rights Reserved

国内大企業の半数弱がマイクロサービスを採用© 2023 All Rights Reservedモノリスからマイクロサービスへ
レガシーアーキテクチャ

モダンアーキテクチャ

ユーザーインターフェース

ビジネスロジック

Product
Catalog

ShoppingCartOrderHistory

Pricing

Inventory

Shipping

Pricing

Product
Catalog

Shopping
Cart

Order
History

RDBMS

NoSQL

NoSQL

RDBMS

データベース・・・
NoSQL, NewSQL
運用の複雑化

vm

vm

vm

vmvm

© 2023 All Rights Reserved最新のアプリケーションには継続的な可用性が求められるエンタープライズ・アプリケーションには、トランザクション保証とレジリエンスを提供するデータベースが必要です。
そのためには、アプリケーションを支えるデータベース構築のための根本的なアプローチが必要です。

© 2023 All Rights Reserved最新のアプリケーションには必要に応じた拡張性が求められるアプリケーションは必要に応じてシームレスに拡張し、停止することはありません。これらのアプリケーションが使用するデータベースも同様である必要があります。
生成AIによって、スケーラブルなデータベースの需要は高まっています。

© 2023 All Rights Reserved最新のアプリケーションにはグローバル展開が求められるアプリケーションは、レジリエンス、パフォー
マンス、コンプライアンスのために、地域や地理的境界を越えてデータを展開する必要があります。

© 2023 All Rights Reserved

YugabyteDB 事例のご紹介© 2023 All Rights Reservedリアルタイムの金融データを大規模に提供し、50%のコスト削減を実現

Key Initiative

Challenges

YugabyteDB Impact

Xigniteは、クラウドベースの APIを通じて、リアルタイムおよびリファレンスマーケットデータを含む金融市場データを顧客に提供。 700社以上の顧客にデータを提供しており、ビジネスを継続的に成長させるために規模を拡大する必要があった。

増大する需要に対応するため、容易な拡張性とデータの一貫性が必要だった。

SQL Serverと比較して 50％以上のコスト削減を実現した、コストパフォーマンスの高いソリューション● SQL Server 拡張性の限界● MySQLはコストを削減できたが、スケーラビリティ課題は解決できない● キャッシュ層の実装が複雑化し、開発スピードが低下● 100億件 ops/日、60TBデータセット● AWS VPC上の単一リージョン、マルチゾーンに21ノード● ゼロダウンタイム・アップグレード● RedisとAWS RDSのリプレース© 2023 All Rights Reserved

時系列データ：スケールのための複雑な運用
手動シャーディング
41
Read
APP

RDBMS

Read
APP

●
●WriteAPP

RDBMS

DBを読取り専用に3●

書込みアプリ更新

アプリの書込み停止

Write
APP

2

5

読取りアプリ更新

手動でシャード変更

6

書込み有効化証券取引所ごとにデータをシャーディング○ 取引所の規模によって、負荷やデータ量の不均衡あり
アプリ側で、どのデータベースにどの取引所のデータがあるかを認識○ スケーリング (シャードの変更 ) の度にアプリの更新が必要
スケールするためにダウンタイムが発生○ 週末/夜間作業により、顧客への影響を最小化する必要あり© 2023 All Rights Reserved

YugabyteDBでのスケーリング
自動シャーディング
1

Read
APP

RDBMS

2

DBノード追加

Write
APP

自動でタブレットをリバランス

Read
APP

Write
APP

RDBMS

●●●

証券識別子による Hashシャーディング○ バランスの取れたタブレットへのデータ分散
アプリ側で、データやシャードの配置を意識する必要なし○ アプリのシンプル化、データベース理由での更新は不要
ダウンタイムなしにスケーリング可能○ 顧客への影響なく、業務時間内にメンテナンスできる© 2023 All Rights Reserved

12Xigniteにおけるデータベースモダナイゼーション (DSS2021講演より)20年以上前から、金融マーケットデータを提供するAPIを提供。データの種類やトランザクション量が急激に増え、シームレスなスケーラビリ
ティとゼロダウンタイムでのサービス提供が難しくなっていた。

時系列データ3

証券マスターデータ

時系列データ・エンジン
証券マスターデータ● 従来の実装● 従来の実装○ AWS RDS (SQL Serverと○ AWS RDS (SQL ServerとMySQL)MySQL)○ 手動のシャーディングによ○ 様々なエンティティレベル
る負荷の偏りやアセットクラスがあり、複○ 市場データの更新がない週
雑なスキーマ末にデータベースを読み取○ スケーラビリティに加え、柔り専用にしてメンテナンス軟なスキーマ変更が必要● YugabyteDBの適用● YugabyteDBの適用○ Hashシャーディングによる○ 標準フィールドとJSONBが均一な分散混在した柔軟なスキーマを○ アプリケーションのシンプル使用
化○ セカンダリインデックスによ○ ゼロダウンタイム運用
り検索性を向上

4

１

2

１

Yugabyteの紹介

１

１

1

適用エリアの拡大

データやトランザクションの増加に合わせ、2年間でクラスタ数を拡大● 4クラスタ (マネージド)● 合計21ノード, 240コア● 60TBのデータ

Qin Yu,VP, Engineering, Xignite© 2023 All Rights Reserved

XigniteがYugabyteDBを採用した理由

スケールの必要性

ダウンタイムのない運用

アプリケーションのシンプル化© 2023 All Rights Reserved最新のアプリケーションの要求に対応するため、複雑化するデータレイヤスケーラビリティの実現

高可用性の実現

読み込み処理をスケール(リードレプリカ)

サイト切り替え（ACTIVE-STANDBY)APPAPPRDBMS

Write/Read

課題:
書き込みのスケール

Read

書き込み処理のスケール(CQRSパターン)

RDBMS

Act

STB

課題:
切替処理
ACT-ACT構成

マルチマスター構成（マルチマスターレプリケーション）
APP

Write(Command)
NoSQL

Read/Write

APP

APP

Read(Query)
RDBMS

RDBMS

課題:
複数DB運用
DB間連携

課題:
結果整合 (非ACID)
競合解決© 2023 All Rights Reserved

YugabyteDB 事例のご紹介© 2023 All Rights Reserved

“Lead with fresh, accelerate with digital”

新しいデータレイヤの導入は
Krogerの戦略の鍵●

老朽化した技術をマイクロサービスにモダナイズ●

オムニチャネルサービスの強化●

季節的なスパイクにシームレスに対応●

マルチクラウド戦略によるロックインの回避●

ビジネスを保護するレジリエンス（回復力）の強化© 2023 All Rights Reserved

17

Krogerのテクノロジー変革 (DSS2021講演より)100年以上の歴史のある企業で数多くの既存IT資産がある中、シームレスな顧客体験を提供することが難しくなっていた。
● レガシーからNoSQLまで様々なデータベース● レガシーのデータと新しいデータを組み合わせて、素晴らしい顧客体験を提供する必要性

基盤の構築

3

最初のプロジェクト

4

１

2

１

Yugabyteの紹介

１

１

1

適用エリアの拡大

組織変革とイネーブルメント
ショッピングリストサービス
購入履歴(2020年本番リリース)● マルチクラウド (GCP, Azure,
法人顧客の360°ビュー
ショッピングカートサービス
オンプレミス)のイネーブルメ
在庫管理(2021年本番リリース)ントオファー○ Best of breedの選択○ 標準化
アーキテクチャパターンとガイドラインの策定● コスト効率よくパブリッククラウ
ドを利用する● アプリケーション開発を迅速化するための共通アーキテク
チャパターン○ ツール○ スキーマSriram Samu,○ データモデル
VP of Engineering for Customer Technology at Kroger© 2023 All Rights Reserved18Krogerのテクノロジー変革 (DSS2020講演より)
課題 (2019年時点)

解決のための方針

老朽化したテクノロジー

リフト＆シフトだけでなく リライト

バラバラのポイントソリューション

クラウドとオンプレの ハイブリッド型へ

拡張性、可用性、信頼性、監視性・・・

数百のマイクロサービス によるエクスペリエンス・アズ・ア・サー
ビス (UIaaS)

デジタルワークロードの急増への対応

大規模な拡張性への対応

デジタルと店舗の統合と相互運用性

APIとフレームワーク へのフォー
カス

多様な受取オプション - 店舗、自社配送、他社発送

可能な限り オープンソース ・ソフトウェアを採用

多様なフルフィルオプション - 店
舗、ダークストア、組合せ

非機能要求 への対応 (スイムレーン、可用性、拡張性）© 2023 All Rights Reserved

19

Systems of Record and Engagement

ユースケース“マイクロサービスとSOAは、当社のデジタルトランスフォーメーションへの取り組みの中心です。Yugabyteは、Krogerのクラウドネイティブ導入を可能にしています。”
Mahesh Tyagarajan, VP Engineering●

ショッピングリストサービスの SoR (2020年リリース )●ショッピングカートサービスの SoR (2021年リリース )●今後の予定 :○

法人顧客の 360ビュー○

在庫管理 -- 高スループットが必須○

購入履歴 -- ノードあたりのデータ密度が高い

YugabyteDBを選択した理由●

老朽化した技術をマイクロサービス向けにモダナイズ●

分散型ACIDトランザクション、スケーラビリティ●

マルチクラウド戦略によるロックインの回避●

地理的に分散された配置による耐障害性●

自動データシャーディングによる簡素化●

複数のAPIをサポート： YSQL, YCQL
© 2023 All Rights Reserved

20

KrogerがYugabyteDBを採用した理由

拡張性と耐障害性開発者の生産性向上(PostgreSQL互換)

マルチクラウド戦略(ポータビリティ、ロックイン回避 )© 2023 All Rights Reservedまとめ：分散データベースの使いどころ

拡張性

耐障害性

コスト効率の良い
柔軟かつ無限のスケールイン＆アウト柔軟なトポロジーと自動レプリケーションによる自己修復運用のシンプル化
自動シャーディング
ゼロダウンタイムでのアップグレード© 2023 All Rights Reserved

/ yoogUH ᐧ bīt /トランザクション・アプリケーションのための分散SQLデータベース
100% オープンソース
オンプレミスでもクラウドでも実行可能

制限なく永遠に生き続けるデータ© 2023 All Rights Reserved

23

お知らせ
11/14 15:00-16:30 YugabyteDB Managed入門編

11/30 13:30-16:30 分散トポロジーの体験編

YugabyteDB Managedを初めて使用する方向けの入門ハンズオンです。
YugabyteDB Managedで、使い慣れたSQLを使って簡単にデータベースやテーブルを作成したり、データの書き込みや読み取りができることを確認します。
対象者：

YugabyteDB Managedの高可用で耐障害性の高いクラスター構成を体験したい方向けのハンズオンです。シングルリージョン(マルチAZ)、マルチリージョン、ジオ・パーティションのクラスタを構築して、それぞれの特性を確認します。
対象者：

これからYugabyteDBを学習する開発者

リージョンレベルの耐障害性を実現したい方

YugabyteDBを簡単に触ってみたい方

アプリケーションのグローバル展開を検討されている方GDPR対応やデータのローカリティなど、データ保管場所やレイテンシー低減に興味がある方

🔼お申込はこちら

🔼お申込はこちら© 2023 All Rights Reserved

Thank You
Join us on Slack:www.yugabyte.com/slack
Star us on GitHub:
github.com/yugabyte/yugabyte-db© 2023 All Rights Reserved

25