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

大規模マルチテナントを解決するYugabyteDBという選択肢

 大規模マルチテナントを解決するYugabyteDBという選択肢

大規模マルチテナントを解決するYugabyteDBという選択肢
YugabyteDB Japan Meetup #5
https://yugabytedb-japan.connpass.com/event/321377/

NewSQLといわれるRDBは複数あり、それぞれがそれぞれに素晴らしい機能を兼ね備えています。
この資料ではSaaS製品やB2Bシステムでよく採用されるマルチテナントアーキテクチャが、大規模になった時に抱える課題を解決するデータベースとしてYugabyteDBを紹介します。

nnaka2992

July 16, 2024
Tweet

More Decks by nnaka2992

Other Decks in Programming

Transcript

  1. \du 2 株式会社スリーシェイク Sreake事業部 業務内容 - DBRE兼SRE見習い - データベースを中心にアプリもインフラも頑張ってます -

    自称データ雑用係 - DBAでもDBREでもデータエンジニアでも 興味あること - データベース関連ならなんでも 中楯 直希 @nnaka2992 @nnaka2992.bsky.social
  2. SREを主軸にクラウドネイティブ化/エンジニアリング内製化を支援 SRE/DevOps SecOps BizOps HR ・SRE総合支援からセキュリティ対 策を全方位支援 ・Geminiを用いた生成AIの活用支援 ・ワンストップで脆弱性診断を行う セキュリティ対策SaaS

    ・クラウド型ETL/データパイプ ラインSaaSの決定版 ・あらゆるSaaSをノーコードで連携 ・ハイスキルフリーランスエンジニ ア紹介エージェント IT内製化 / 高度化 クラウドネイティブ化 モダナイゼーション ITアジリティ向上
  3. 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の考え方を元に運用まで見据えたご支援を行います。
  4. マルチテナントシステムに求められる特性 9 そもそもマルチテナントシステムとは? • メリット ◦ ユーザー間でリソースを共有するためリソース効率が良い ◦ 金銭・運用コストの低減 •

    デメリット ◦ 実装のミスによるデータ漏洩のリスク ◦ 共有リソースを利用する故のリソース不足 マルチテナントシステムではデメリットを解決する特性が求められる
  5. YugabyteDBが解決する 大規模マルチテナントシステムの課題 13 PostgreSQLからの移行性の高さ YugabyteDBはPostgreSQL互換NewSQLの中でもPostgreSQLへの互換性が高い • クエリレイヤはPostgreSQL 11.2 からフォークしているため高いSQLの互換性 ◦

    最新の構文には対応していないものがある • 単純なSQLに加えてトリガーやストアドプロシージャ、一部拡張機能をサポート ◦ 他のNewSQLではこの部分のサポートは薄い ◦ 一部対応途中の機能もあり • GitLabのようなよく使われるシステムでも、バックエンド DBをYugabyteDBに挿げ替えただけで マイグレーション可能
  6. YugabyteDBが解決する 大規模マルチテナントシステムの課題 16 Row Level Securityのサポート マルチテナントシステムのデータベースは複数のユーザーがアクセスするため、 実装のミスによるデータ漏洩のリスクが深刻。 PostgreSQLではアクセス制御の仕組みとして行レベルでデータへのアクセスを 制限する方法が提供されている。

    この機能があるから PostgreSQLを採用したという声を聞くほど 2024/7/17現在、YugabyteDB以外でRLSをサポートした メジャーなNewSQLは存在しない。※ ※ここで言うメジャーな NewSQLはYugabyteDB、Cloud Spanner  TiDB、CockroachDBを指す
  7. まとめ 18 • マルチテナントシステムはSaaS製品やB2Bシステムでよく採用される • マルチテナントシステムのDBはスケーラビリティとセキュリティが課題になる • YugabyteDBは ◦ PostgreSQLへの互換性が極めて高い

    ◦ スケール問題を解決する ◦ 唯一Row Level Securityに対応している • 大規模マルチテナントシステム向けデータベースには YugabyteDBが最適
  8. 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