コンテンツにスキップ

multi-tenant

Multi-tenant アーキテクチャー 実現方法 (2)

マルチテナント方式の概要

マルチテナント方式とは、単一のソフトウェアインスタンスとそれをサポートするインフラストラクチャを使用して、複数の顧客 (テナント) にサービスを提供するソフトウェアアーキテクチャです。この方式では、各テナントのデータは分離され、他のテナントからアクセスできないようになっています。

  1. 各テナントは、あたかも自分たち専用のソフトウェアインスタンスを使用しているかのようにサービスを利用できますが、実際にはリソースを共有することでコスト削減や効率的な運用を実現しています。
  2. マルチテナント方式を採用する主なメリットは、リソースの効率的な利用とコスト削減です。 単一のインフラストラクチャを共有することで、ハードウェア、ソフトウェア、および運用コストを削減できます。また、メンテナンスやアップグレードも一元的に行うことができるため、管理の負担を軽減できます。
  3. さらに、マルチテナント方式では、テナントごとに個別のシステムを構築・運用する必要がないため、迅速なサービス提供が可能になります。 マルチテナントアプリケーションでは、「組織」はユーザーやリソースをグループ化する方法として有効です。
  4. 組織は、異なるクライアントやグループがアプリケーションを使用する際に、それぞれに独自のユーザー、データ、および設定を持つ別々のセクションのように機能します。これにより、特定のサービスと管理を提供しやすくなります。 ただし、マルチテナント方式では、テナント間のデータ分離、パフォーマンスの安定性、リソース管理など、いくつかの課題も存在します。
  5. これらの課題に対処するためには、適切なアーキテクチャ設計、セキュリティ対策、および運用管理が必要となります。

Multi-tenant アーキテクチャー 実現方法 (1)

マルチテナント方式で「文書管理+検索サービス」を構築する際に、Aurora(RDB)とOpenSearchを用いてメタデータおよび検索インデックスを管理するための実現方法をまとめたものです。この内容を参考に、要件やシステム特性に応じて、必要に応じた方法を選択・組み合わせる必要があります。

前提

  • サービス概要
    • ユーザ企業(エンドユーザ)がアップロードした文書のメタデータをAuroraで管理し、検索に必要なインデックス情報をOpenSearchで管理する。
    • 企業(テナント)単位で文書へのアクセスや検索が行われる。
  • マルチテナント要件
    • テナント(企業)ごとにデータを安全に隔離する必要がある。
    • テナント数増加に対してスケーラブルに対応できるアーキテクチャが求められる。
    • コスト管理や運用負荷にも配慮が必要。

Kubernetesクラスター内 マルチテナント実現方法(1)

はじめに

マルチテナントとは、単一のKubernetesクラスターを複数の異なるユーザーやグループ(テナント)が共有する環境のことを指します。 リソースの効率的な利用が可能になりますが、それぞれのテナントが独立したリソースやアクセス権限を持つことが求められます。