分散SQLデータベースYugabyteDB

概要

Tomohiro Ichimura
Yugabyte Japan

Yugabyte © 2022 – All Rights Reserved1About Me

Tomohiro Ichimura
Yugabyte Japan

Tomohiro Ichimura ( @tomoichimura )Head of Solutions Engineering, Yugabyte Japan
Mapbox, Pivotal, VMware,...
Cloud Foundry(Tanzu), Spring, GemFire(Apache Geode), vPostgres,...

Yugabyte © 2022 – All Rights Reserved

2

YugabyteDBについて
Founders
スケーラビリティを考慮した
アーキテクチャとオペレーション
Mikhail

Karthik

Kannanエンタープライズに向けた実装
実践● Built distributed storage layer at Nutanix● Core DB Team at Facebook 2007 - 2013
● Scaled data platforms from 30m to 1.4 Bn users● Ran DBaaS: +1 Trillion ops/day, +100 PB

RDBMS分野で 実績

イノベーションによる裏付け● 10 years as Core Oracle DB engineer● Co- Creators of Cassandra and Hbase

クラウドネイティブアプリケーションに向けたモダンなデータベース
オープンソースで 提供
商用利用でも十分な実績 あるスケールデータベース
Yugabyte © 2022 – All Rights Reserved3ITにおける変革

ビジネス要件から - データレイヤーに変革を！

アプリケーション

同業他社と 競合

モダナイゼーション

Containers | App Frameworks | Kubernetes
マイクロサービス

普及

あらゆる所から データアクセス

データレイヤー モダナイゼーション
5G/エッジへ対応と活用

絶え間ないイノベーション

リリース

インフラ モダナイゼーション
アプリケーション主導調達

Cloud | Virtualization | Commodity HWYugabyte © 2022 – All Rights Reserved4変化する業務要件に対応するため、複雑化するデータレイヤ
スケーラビリティ高可用性実現

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

APP

RDBMS

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

APP

APP

RDBMS

Write/Read

実現

課題:
書き込みスケール

Read

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

RDBMS

APP

RDBMS

RDBMS

Write Heavy(Command)
NoSQL

Read/Write

Read Heavy(Query)
RDBMS

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

APP

APP

APP

STB

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

APP

Act

RDBMS

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

RDBMS

課題:
拡張性
複雑性
Yugabyte © 2022 – All Rights Reserved従来 データベースで解決出来ない問題

コネクション

スケールが遅いもしく 難しい

ダウンタイムなし アップグレード

Act-Act構成
これらを実現するために、分散 SQLデータベース アーキテクチャが必要となります
Yugabyte © 2022 – All Rights Reserved

6

YugabyteDB 鍵となる提供価値
PostgreSQL互換

米国トップ5にランキングする金融機関
が、データスタックをDB2からYugabyteDBにモダナイズ

高可用性と耐障害性

トップ3 小売企業がテキサス州 猛吹雪で一部 Regionが停電になる中、障害を回避25万以上 QPSを実現しながら事業継続を実現

水平方向

拡張性

複数 米国トップ10に入る小売業者
が、YugabyteDBをスケールアウトし、ピーク時 トラフィック（Black Friday,Cyber Monday）に対応

地理分散

Admiral社 、5つ 地域と3つ 大陸にデータを分散して配置し、グローバルで 読み取り遅延を3ms以下に抑え、ユーザーエクスペリエンスを向上

あらゆる環境で利用可能
Yugabyte © 2022 – All Rights Reserved

YugabyteDBが提供するランタイムレベルで互換性

Postgresクライアントドライバと 互換性

シンタックス 適切な処理(実行方法自体 異なることも）同等機能 実装(シンタックス /ランタイム 異なることも）アプリケーションからみた
PostgreSQLとして 動作Yugabyte © 2022 – All Rights Reserved8クエリとドキュメントストアから構成されるYugabyteDB
Yugabyte Pluggable Query Layer(クエリレイヤ)
YSQL API
Postgres 互換

YCQL API
Cassandra 互換

Other APIs (future)

DocDB Distributed Document Store(ストレージレイヤ)
シャーディング

ロードバランス

トランザクション

Raft
コンセンサス

自由な展開先On-Premises
Datacenters

Yugabyte © 2022 – All Rights Reserved9クエリレイヤ: 分散SQLとして 拡張

PostgreSQL シングルノード RDBMSにおいて最もプッシュダウンに優れたデータベース

Yugabyte PostgreSQL Query Layerを活用しつつ、分散化を実現するために新たな Storage Layerを採用
Yugabyte © 2022 – All Rights Reserved

PostgreSQL アーキテクチャ

SQL APP

PostgreSQL
Query Layer
再利用

Postmaster(Authentication, authorization)

Rewriter

Planner

Executor

Optimizer

WAL Writer…

BG Writer

DISK
Yugabyte © 2022 – All Rights Reserved

PostgreSQLを分散ストアに対応

SQL APP…

Postmaster(Authentication, authorization)

Rewriter

Planner

Executor

Optimizer

YugaByte DB
NodeYugaByte DB
NodeYugaByte DB
NodePlanner,Optimizer,Executor
を拡張…

Yugabyte © 2022 – All Rights Reservedドキュメントストア: DocDB
read or update(from Query Layer)
follower read* ( from Query Layer)

follower read* ( from Query Layer)

各peer 中でleaderが一つ選 れるleader nodeやzoneなどを意識して分散

read or update(from Query Layer)

Node#1

Node#2

Node#3follower

leaderfollower

updateleaderupdatetablet peer

read or update(from Query Layer)

followerfollowerfollower

leaderupdatefollower

update●●●tabletと呼 れるシャーディング 単位でレプリケーションを実施
同じRAFT コンセンサスが行われるグループをtablet peerと呼ぶ設定されたコピー数(RF:Replication Factor, 3がデフォルト)分、各ノードにコピーされる
Yugabyte © 2022 – All Rights Reserved

DocDB: シャーディングとデータバランシング
●
●
●
●
●

大きいテーブルをシャード (tablet)と呼 れる細かい単位に分けること
シャード データベースノードに配布され、ロードを分散する
テーブル内 行 一つ シャード みに割り当てられる
YugabyteDBにおいて シャーディング 自動的に行われる
Hashあるい Rangeで シャーディングがある（デフォルト Hash)

Yugabyte © 2022 – All Rights Reserved

豊富な構成オプション

Yugabyte © 2022 – All Rights Reserved

15

YugabyteDB クラスタ

Distributed SQL API
アプリケーション
クライアントCluster Administration

node1

node2

node3

node4

yb-tserver1

yb-tserver2

yb-tserver3

yb-tserver4

Query Layer

Query Layer

Query Layer

Query Layer

Txn Mgr

Txn Mgr

Txn Mgr

Txn Mgrtablet1

tablet1

tablet1

tablet2

tablet2

tablet2

tablet3

tablet3

tablet3

tablet4

tablet4

tablet4

…

…

…

…

yb-master1

yb-master2

yb-master3

syscatalogsyscatalog

必要なだけスケール(tserverとmasterサーバ別ノードも可能)

YB-TServer Service
実際 データ処理を実現
クエリ+ドキュメントストア
Store & serve app data
in/from tablets (aka shards)

YB-Master Service
メタデータと構成管理Manage
shard metadata & coordinate
conﬁg changes

syscatalog

管理クライアント

Raft グループ リーダ (serves writes & strong reads)
Raft グループ フォローワー (serves timeline-consistent reads & ready for leader election)
Yugabyte © 2022 – All Rights Reserved

AZレベルからマルチクラウドまで対応するクラスタトポロジー

ゾーン間で一貫性

WAN レイテンシーなし
リージョンレベル 耐障害性なし

2

単一クラウド、複数リージョン

リージョン間で 一貫性
リージョン間WAN レイテンシー
リージョンレベル 耐障害性

複数クラウド、複数リージョン
3複数クラウド、複数リージョン

１

単一リージョン、複数ゾーン

１１

1

クラウド間で一貫性

クロスクラウド WANレイテンシー
クラウドレベル 耐障害性
Yugabyte © 2022 – All Rights Reserved

17さまざまなデプロイメント トポロジーパターン
ストレッチクラスター(同期)

xCluster レプリケーション(レプリカへ 非同期）

地理的(Geo) パーティション(同期)

リードレプリカ（レプリカへ 非同期）

東京

大阪

● リージョンやクラウドを跨いだクラスタ構成● 強い一貫性を保つ● 地域間レイテンシーが発生● クラスタ間でテーブルを共有● レプリケーション 非同期● 単方向もしく 双方向● Placementと呼 れる物理的な地域グループを作成● Placementグループでデータ共有● クラスタ 一つ● 読み取りメイン レプリカをデプロイし低レイテンシーを実現● 更新系処理 マスタにアクセス● プライマリ データをそ まま複製

Yugabyte © 2022 – All Rights Reserved

NEW: サイト間レプリケーションにおけるBCDR向け機能

実装

YOURAPP

read

SourceSourceCluster“ACTIVE”
Cluster
Clusterreadwrite

2.17~(write)

クラスタにロール(ACTIVE/STANDBY)をアサイン- CLUSTER ROLE API

SourceSourceCluster“STANDBY”
Cluster
Cluster

未配信データ 強制転送
- DRAIN API
STANDBYへ
フェイルオーバ 実施- FAILOVER API
Yugabyte © 2022 – All Rights Reservedユースケース

Yugabyte © 2022 – All Rights Reserved

20

YugabyteDBに適したユースケース

トランザクションデータ
高頻度かつ、シンプルなトランザクション
シンプルなトランザクションに対して、ハイパフォーマンス、回復性、拡張性を実現
リファレンスデータを複製することで、常に利用可能なデータを提供

RTO < 1 min
トランザクション スケール(tps)
データ 一貫性

マスターデータ
リファレンスデータ
低頻度

更新、大量 参照

アカウント情報や、台帳など 特定 対象における信頼性 高いデータソース。ビジネス コ
アとなり、変更頻度 低いデータを操作

RTO < 4 hours
参照 スケール
データ 精度オペレーショナル
データ
セミ・リアルタイムでマイクロバッチパターン
大規模なデータセットとして、元となるデータソースとデータを連携。データそ も を生成するタイプで ない

RTO < 8 hours
データセット スケール
データ 一貫性Yugabyte © 2022 – All Rights Reserved

21

YugabyteDBに適したユースケース
トランザクション
データ

金融サービス

小売

●
●

●
●
●

決済
金融取引(送金や注文 )お客様から ご注文
ショッピングカート
ショッピングリスト

通信・メディア
製造・物流●

物流データ トラッキング

マスターデータ
リファレンスデータ●●

顧客 マスターデータ
ユーザID管理

オペレーショナル
データ●●

金融市場(株価や為替など )データセット
取引履歴
信用スコアリング●●●●

企業 お客様（プロフィール）
小売店プロファイル製品カタログ●物流在庫 リアルタイム管理

●
●

ユーザ認証
トークン管理●●故障検知
デバイスデータ 収集・蓄積●ユーザプロファイル●

コネクテッドカー・データ 収集・蓄積

管理

Yugabyte © 2022 – All Rights Reserved22

スケールと高可用性に加えて地理分散も実現
US-East

US-WestSeattle

CQRS

バックエンドサービス●●●●

複数 Hasura GraphQLインスタンス
バックエンドでサービス
Geoパーティショニングでローカリティも確
保メタデータ 管理
アプリ スケールにも柔軟に対応

●
●
●
●

Command(CRUD)とQuery(検索) 役割とデータストアを分離
YugabyteDBで、両ストアに対応
ストア間連携 、レプリケーションか外部テーブル参照が可能
Kafkaなど 3rd Party連携も活用

US-South-Texas

マルチリージョンデプロイ●●●●

3 リージョン に27ノードでデプロイ
強い一貫性を保持、単一リージョン ダ
ウン時にデータロースなし
RPO = 0 , RTO ~ 3 secs
1億を超える製品と、10億以上 関連内容を扱う製品カタログ向け SoR
Yugabyte © 2022 – All Rights Reserved

23

YugabyteDB製品ポートフォリオ

Yugabyte © 2022 – All Rights Reserved

24

YugabyteDB シンプルで柔軟な提供モデル
YugabyteDB
コミュニティ版

YugabyteDB Anywhere
セルフマネージド DBaaS

YugabyteDB Managed
マネージド DBaaS

マネージドサービス

Day2 Opsを最適にする UI

自動的なパッチ適用
ビルドイン セキュリティと各種コンプライアンスへ 対応、
クリックでスケール、バックアップ ＆リカバリ

24x365 エンタープライズサポート

コミュニティサポート
Any Cloud - お手持ち 環境
コア・データベース

AWS or GCP ※Azure 今後対応予定
100%オープンソース
Yugabyte © 2022 – All Rights Reserved

25価値をさらに高める: YugabyteDB Anywhere

導入後

設定

アップグレード

スケールイン・アウト
レプリケーション
バックアップ・リカバリ
クラウド・プロビジョニング
セキュリティ

データベースバージョン
インスタンスタイプ
暗号化鍵、証明書
クラウド拡張YugabyteDBAnywhere

Day2Operation
トラブルシューティング

連携

ログ 確認
メトリクス 共有
ノード 停止・再起動
バックアップから リカバリ

KMS
LDAP/OCID
CI/CD
モニタリングツール
アラート通知Day 2 Ops 効率を大幅に向上
APIによる作業 自動化も促進
オブザーバビリティ
ログ
メトリクス
トレース

Yugabyte © 2022 – All Rights Reserved

26

YugabyteDB Anywhere 対象
ユーザ操作

CI/CD
パイプライン連
携

自動化

REST API ドキュメント
https://api-docs.yugabyte.com●

Day 1 operations○ インストールと設定●

Day 2 operations○ アップグレード○ 運用管理○ バックアップ & リカバリ●

オブザーバビリティ○ Prometheus metrics

GUIAPI

オーケストレーション

インフラストラクチャ

Yugabyte © 2022 – All Rights Reserved

YugabyteDB Managed
お客様環境

YugabyteDBManaged1. パブリックIP経由で接続
YOUR
APP

パブリックIP（ホワイトリスト)

LB

2. VPC経由で接続

YOUR
APP

LB
VPCペアリング(お客様 VPCと接続)

YOUR VPCVPC
Yugabyte © 2022 – All Rights Reserved28

4ステップで1●●

クラスタ作成 (YugabyteDB Managed)2

クラウドと
YugabyteDB
バージョンを指定

トポロジーとノード 仕様を設定

AWS / GCP
安定版 / プレビュー版
単一 / 複数リージョン
耐障害性レベルに応じた多様なトポロジを選択可能

クレデンシャル
設定と取得アクセスを許可する
IPアドレスを設定

●
●
●

3

3

アクセス許可するIPを設定●●

Admin パスワードを設定
クレデンシャル ダウンロード後にクラスタ作成可能
Yugabyte © 2022 – All Rights Reserved

29

YugabyteDB Product Roadmap Themes

ワークロード最適化

クラウドネイティブ
対応

開発者
生産性向上

運用管理効率化・自動化

セキュリティ強化

単体データベースで実現してきたトランザクション・ワークロードと運用方針へ 対応

あらゆるクラウド環境で動作し、インフラ 独自性を活かしつつ、危険を未然に防ぐ開発者向けにビルトやリリースをより容易にデプロイ、スケール、メンテナンス時においても、オーバヘッドを軽減

あらゆるアプリケーショ
ンに対し、セキュリティ・ファーストなアプローチにより、コンプライアン
ス対応をシンプル化

Yugabyte © 2022 – All Rights Reserved30クライアントサイドとサーバサイドでスケール
ComingSoon!

Yugabyte © 2022 – All Rights Reserved

31

DB移行ツール: YugabyteDB Voyager
クラウド, オンプレミス

RHEL/CentOS/Ubuntu/MacOS/Airgapped/Docker

Managed,クラウド, オンプレミス

PostgreSQL 9.x - 11.x

Oracle 11g, 12c-19c

MySQL 8.x

Amazon Aurora

Voyager

Amazon RDS

Google Cloud SQL

Azure SQL for PG● オープンソース データベースマイグレーションエンジン● スキーマとデータに対して、エクスポート /分析/インポートを実施● TRIGGER, FUNCTION, PROCEDURE, VIEW/MVIEW, EXTENSIONなども対象

Yugabyte © 2022 – All Rights Reserved

まとめYugabyte © 2022 – All Rights Reserved

33

YugabyteDB 鍵となる提供価値
PostgreSQL互換

米国トップ5にランキングする金融機関
が、データスタックをDB2から
YugabyteDBにモダナイズ

高可用性と耐障害性

トップ3 小売企業がテキサス州 猛吹雪で一部 Regionが停電になる中、障害を回避25万以上 QPSを実現しながら事業継続を実現

水平方向

拡張性

複数 米国トップ10に入る小売業者
が、YugabyteDBをスケールアウトし、ピーク時 トラフィック（Black Friday,Cyber Monday）に対応

地理分散

Admiral社 、5つ 地域と3つ 大陸にデータを分散して配置し、グローバルで 読み取り遅延を3ms以下に抑え、ユーザーエクスペリエンスを向上

あらゆる環境で利用可能
Yugabyte © 2022 – All Rights Reserved

DSS Asia 2023: Japan Track Speaker Lineup

オンデマンド視聴 こちらからhttps://info.yugabyte.com/dss-asia-2023-on-demand
Yugabyte © 2022 – All Rights Reserved

「YugabyteDB Managed入門」ハンズオン

ご案内

概要：
YugabyteDB Managedを初めて使用する方向け

入門ハンズオンです。

YugabyteDB Managedで、使い慣れたSQLを使って簡単にデータベースやテーブルを作成したり、データ 書き込みや読み取りができることを確認します。
対象者：
●
●

これからYugabyteDBを学習する開発者
YugabyteDBを簡単に触ってみたい方

次回開催
4/25(火) 15:00-16:30を予定
お申し込み こちら

前提知識：●
基本的なSQL文 理解
ハンズオン実施に必要なも ：●●●

インターネット接続可能な端末
ブラウザ (Chrome, Safari, Microsoft Edge, Firefoxなど)
アプリケーション 導入ができる権限、また 、pgAdmin 事前導入

https://forms.gle/exts33wcMjtTLL29A
Yugabyte © 2022 – All Rights Reserved

YSQL オンライントレーニング - Yugabyte University

オンデマンド開催
及びバーチャル開催

次回
YSQL Tuning and Optimization(英語開催)
4/26 13:30-3:00pm(日本時間)
https://university.yugabyte.com/courses/yu
gabytedb-ysql-tuning-and-optimization

Yugabyte © 2022 – All Rights Reserved

Thank You

YugabyteDB Managed入門

Slackチャンネル (#yb-japan-users)
yugabyte.com/slack
製品ダウンロード
download.yugabyte.com

https://forms.gle/exts33wcMjtTLL29Aマネージドサービス
yugabyte.com/managed

DSS オンデマンド視聴https://info.yugabyte.com/dss-asia-2023-on-demand

Yugabyte © 2022 – All Rights Reserved