Slide 1

Slide 1 text

大規模マルチテナントを解決する YugabyteDBという選択肢 YugabyteDB Japan Meetup #5 株式会社スリーシェイク 中楯 直希

Slide 2

Slide 2 text

\du 2 株式会社スリーシェイク Sreake事業部 業務内容 - DBRE兼SRE見習い - データベースを中心にアプリもインフラも頑張ってます - 自称データ雑用係 - DBAでもDBREでもデータエンジニアでも 興味あること - データベース関連ならなんでも 中楯 直希 @nnaka2992 @nnaka2992.bsky.social

Slide 3

Slide 3 text

SREを主軸にクラウドネイティブ化/エンジニアリング内製化を支援 SRE/DevOps SecOps BizOps HR ・SRE総合支援からセキュリティ対 策を全方位支援 ・Geminiを用いた生成AIの活用支援 ・ワンストップで脆弱性診断を行う セキュリティ対策SaaS ・クラウド型ETL/データパイプ ラインSaaSの決定版 ・あらゆるSaaSをノーコードで連携 ・ハイスキルフリーランスエンジニ ア紹介エージェント IT内製化 / 高度化 クラウドネイティブ化 モダナイゼーション ITアジリティ向上

Slide 4

Slide 4 text

Sreakeサービスの概要 SREの考え方を軸にした全方位型のご支援 クラウドネイティブインフラ・セキュリティ支援 クラウドネイティブアプリケーション開発支援 GenAI基盤構築支援 ・コンテナ化、コンテナ運用ご支援  (Kubernetesに強み) ・CI/CD環境構築支援 ・クラウドセキュリティ設計・運用支援 ・Observability設計・運用支援 データモダナイゼーション支援 ・コンテナ化対応などクラウドネイティブ対応に関す るアプリケーション開発のご支援 ・アプリケーションモダナイゼーション支援 ・バックエンド開発支援(Go, Python, TypeScript) ・フロントエンド開発支援(Vue, React) ・BigQuery/Dataplex データ基盤構築支援 ・BI(Looker)構築をフルスタックで支援 ・Snowflakeメインのデータ基盤構築支援 ・DBRE支援(Spanner/AlloyDB) ・NewSQL(TiDB, YugabyteDB)支援 ・VertexAIシリーズ構築運用内製化支援 ・外部SaaS連携支援 ・Gemini API導入支援 ・AI CCoE立ち上げ支援 ・SRE LLMの提供 ● 高度な技術力と幅広い領域の経験を持つエンジニアが多数在籍しており、伴走型でお客様に最適なクラウドネイティブ対応の ご支援を行います。 ● インフラ・アプリケーション・セキュリティなど含め全方位型で対応可能です。 SREの考え方を元に運用まで見据えたご支援を行います。

Slide 5

Slide 5 text

Agenda 5 ● マルチテナントシステムに求められる特性 ● YugabyteDBが解決する大規模マルチテナントシステムの課題 ● まとめ

Slide 6

Slide 6 text

マルチテナントシステムに求められる特性 01

Slide 7

Slide 7 text

マルチテナントシステムに求められる特性 7 そもそもマルチテナントシステムとは? マルチテナント・ソフトウェア・アーキテクチャーは、複数のユーザーがソフトウェア・アプリケーショ ンの単一のインスタンスとその基盤となるリソースを共有することを可能にするもので、ほとんどの SaaS製品の基盤となっています。 マルチテナントとは| IBM https://www.ibm.com/jp-ja/topics/multi-tenant

Slide 8

Slide 8 text

マルチテナントシステムに求められる特性 8 そもそもマルチテナントシステムとは? ● SaaS や B2B アプリケーションでよく用いられる ● 複数のユーザー(組織)が共通の基盤を利用する ○ データベースであれば単一のクラスター

Slide 9

Slide 9 text

マルチテナントシステムに求められる特性 9 そもそもマルチテナントシステムとは? ● メリット ○ ユーザー間でリソースを共有するためリソース効率が良い ○ 金銭・運用コストの低減 ● デメリット ○ 実装のミスによるデータ漏洩のリスク ○ 共有リソースを利用する故のリソース不足 マルチテナントシステムではデメリットを解決する特性が求められる

Slide 10

Slide 10 text

YugabyteDBが解決する 大規模マルチテナントシステムの課題 02

Slide 11

Slide 11 text

YugabyteDBが解決する 大規模マルチテナントシステムの課題 11 YugabyteDBがマルチテナントシステムに向いている理由は 3 つ 1. PostgreSQLからの移行性の高さ 2. 分散SQLの持つ特性 3. Row Level Securityのサポート

Slide 12

Slide 12 text

YugabyteDBが解決する 大規模マルチテナントシステムの課題 12 PostgreSQLからの移行性の高さ ほとんどのマルチテナントシステムはスモールスタートするため、 コストの安いデータベースから移行しやすいことが求められる

Slide 13

Slide 13 text

YugabyteDBが解決する 大規模マルチテナントシステムの課題 13 PostgreSQLからの移行性の高さ YugabyteDBはPostgreSQL互換NewSQLの中でもPostgreSQLへの互換性が高い ● クエリレイヤはPostgreSQL 11.2 からフォークしているため高いSQLの互換性 ○ 最新の構文には対応していないものがある ● 単純なSQLに加えてトリガーやストアドプロシージャ、一部拡張機能をサポート ○ 他のNewSQLではこの部分のサポートは薄い ○ 一部対応途中の機能もあり ● GitLabのようなよく使われるシステムでも、バックエンド DBをYugabyteDBに挿げ替えただけで マイグレーション可能

Slide 14

Slide 14 text

YugabyteDBが解決する 大規模マルチテナントシステムの課題 14 分散SQLの持つ特性 マルチテナントシステムでは単一のクラスタを共有するため、従来の RDBでは スケーラビリティが足りない

Slide 15

Slide 15 text

YugabyteDBが解決する 大規模マルチテナントシステムの課題 15 分散SQLの持つ特性 YugabyteDBはPostgreSQLの弱点を克服している ● PostgreSQLでは対応が難しかった大規模な書き込み負荷にも対応可能 ● Raftによるマルチライター構成で高い可用性を実現 ● 全てのDDLがオンライン実行可能なためリリース時の停止が考慮不要 ● ローリングアップグレードにより、バージョンアップも簡単に無停止利用可能 ● etc…

Slide 16

Slide 16 text

YugabyteDBが解決する 大規模マルチテナントシステムの課題 16 Row Level Securityのサポート マルチテナントシステムのデータベースは複数のユーザーがアクセスするため、 実装のミスによるデータ漏洩のリスクが深刻。 PostgreSQLではアクセス制御の仕組みとして行レベルでデータへのアクセスを 制限する方法が提供されている。 この機能があるから PostgreSQLを採用したという声を聞くほど 2024/7/17現在、YugabyteDB以外でRLSをサポートした メジャーなNewSQLは存在しない。※ ※ここで言うメジャーな NewSQLはYugabyteDB、Cloud Spanner  TiDB、CockroachDBを指す

Slide 17

Slide 17 text

まとめ 03

Slide 18

Slide 18 text

まとめ 18 ● マルチテナントシステムはSaaS製品やB2Bシステムでよく採用される ● マルチテナントシステムのDBはスケーラビリティとセキュリティが課題になる ● YugabyteDBは ○ PostgreSQLへの互換性が極めて高い ○ スケール問題を解決する ○ 唯一Row Level Securityに対応している ● 大規模マルチテナントシステム向けデータベースには YugabyteDBが最適

Slide 19

Slide 19 text

19 参考資料 19 ● マルチテナントとは| IBM ○ https://www.ibm.com/jp-ja/topics/multi-tenant ● マルチテナンシーとは? | マルチテナントアーキテクチャ | Cloudflare ○ https://www.cloudflare.com/ja-jp/learning/cloud/what-is-multitenancy/ ● Understanding PostgreSQL Compatibility | Yugabyte ○ https://www.yugabyte.com/postgresql/postgresql-compatibility/ ● How to Check Your PostgreSQL Version | Yugabyte ○ https://www.yugabyte.com/blog/check-postgresql-version/ ● PostgreSQL compatibility | YugabyteDB Docs ○ https://docs.yugabyte.com/preview/explore/ysql-language-features/postgresql-compatibility/ ● Compatibility of GitLab on CockroachDB and YugabyteDB (I) - System Initialization - DEV Community ○ https://dev.to/dcopensource/compatibility-of-gitlab-on-cockroachdb-and-yugabytedb-i-system-initialization-28m3