DEIM Forum 2013 F1-1

テナント間依存関係を考慮したマルチテナント制御方式の提案
楓 仁志†

小杉 優†

佐藤 雅之†

山足 光義††三菱電機株式会社 情報技術総合研究所 〒247-8501 神奈川県鎌倉市大船 5-1-1
E-mail: †Kaede.Satoshi@cw.MitsubishiElectric.co.jp
あらまし 近年情報システムの形態は、構築からサービスとして利用する形態へと変わりつつある。ソフトウェ
アをサービスとして提供する際に利用される情報システムの構築方式に、マルチテナント方式がある。本方式は単一システムを複数の顧客が利用し、H/W や S/W のリソースを共用することでサービス提供者のコストを削減する。
本方式を有効に活用するためには、システムのリソースを共用する顧客へのサービスレベルを低下させることなく、多くの顧客を集約することが求められる。本論文は、データベースレイヤで顧客毎にアクセス可能なデータ領域を制限するモデルのマルチテナント方式において、特定の顧客の挙動によりシステム全体の負荷が高まり、システムを共用する他顧客へのサービスレベルが低下する事態を回避するマルチテナント制御方式を提案するものである。
キーワード マルチテナントシステム, クラウドコンピューティング, アクセス制御

A Method for Multi Tenant Access Control according as
dependences of the other tenants.
Satoshi Kaede†

Yu Kosugi†

Masayuki Sato† and Mitsuyoshi Yamatari††Mitsubishi Electric Corporation, 5-1-1 Ofuna, Kamakura, Kanagawa 247-8501, Japan
E-mail: †Kaede.Satoshi@cw.MitsubishiElectric.co.jp
Abstract Recently, a style of information systems are moving to services from developing on demand. Multi tenant
technologies are often used to build system for providing software as a service. The technologies are given good effects likedecrease costs of service provider, thus the hardware and middleware are shared from some accounts. Service providers require
methods for consolidating accounts to a service infrastructure without reducing service level. On this paper, we propose amethod for the issue based on database layer multi tenant technology. The method has a possible effect on keep service level,
when service provider system receives non-suggested requests from some accounts.
Keyword Multi Tenant System, Cloud Computing, Access Control

1. は じ め にかに分類される。図１に示すようにマルチテナント・アーキテクチャは、単一のアプリケーションを複数の

従来の情報システムは、顧客毎に要求仕様を定義し、顧客に提供する方式である。

オーダーメイドの機能を開発されてきた。顧客毎に個別の機能を持つソフトウェアから成る情報システムが構築され、コモディディ化した機能については、パッケージソフトウェアとして提供されてきた。近年、ネVM適用方式

アプリケーション
分離方式

シングルインスタンス方式

テナントッ ト ワ ー ク 回 線 速 度 の 向 上 に 加 え 、マ ル チ コ ア CPU や
64bit OS の 登 場 に よ り 情 報 シ ス テ ム の 利 用 形 態 が 変 わ
りつつある。これまでの個別構築から、サービスとしAppAppて利用する形態が広まっている。ネットワーク上に存App Svr

App Svr

App Svr

App Svr

在 す る ソ フ ト ウ ェ ア を 利 用 す る 形 態 は 、 SaaS(SoftwareOSOSOSOSas a Service)と 呼 ば れ て お り 、 SaaS は 提 供 す る イ ン フラないしは、そのサービス自体がクラウドコンピューティングと呼ばれている。
SaaS を 提 供 す る シ ス テ ム の 構 築 方 式 は 図 1 の い ず れAppAppApp

集約度高
図１．マルチテナント・アーキテクチャ

テナントとは、サービス提供者にとっての顧客を意

ソフトウェアを構成するコンポーネントのうち、顧客味する概念であり、サービスとして提供されるソフトからの処理要求を受け付けるコンポーネントと、デーウ ェ ア に お い て 、設 定 情 報 や デ ー タ を 括 る 概 念 で あ る 。

タへアクセスするコンポートネントに対してテナント

マルチテナント方式では、一般的に図 1 の右に位置すの概念を導入することが求められる。

る 方 式 の よ う に OS や ア プ リ ケ ー シ ョ ン サ ー バ

既 存 ソ フ ト ウ ェ ア を マ ル チ テ ナ ン ト DB モ デ ル に 適(AppSvr)な ど の 構 成 要 素 に 複 数 の 顧 客 を 集 約 す る ほ ど 、用させる際、開発コストを抑えるために改修範囲を限コストメリットを得やすいと考えられている。一方、

定 す る 手 法 と し て 、文 献 [3]や 文 献 [4]に よ る 手 法 が 提 案

アプリケーションを共有することから右に位置するほされている。

ど顧客毎のカスタマイズに対応することは難しいと考えられている。そこでシステムリソースを効率的に活2.2. 本 研 究 の目 的用し、かつカスタマイズ性を持ったアーキテクチャを実現するための研究も進められている。たとえば、文マルチテナント方式を活用するうえで検討すべき

献 [1] の よ う に カ ス タ マ イ ズ 性 を 持 っ た マ ル チ テ ナ ン

方式は、開発プロセスや、セキュアにデータにアクセトシステムの開発プロセスなどが提案されている。

スする方式に加えて、顧客の集約度を高める方式が必要 で あ る 。 特 に マ ル チ テ ナ ン ト DB モ デ ル は 、 共 有 す

2. マ ル チ テ ナ ン ト 型 デ ー タ 管 理 技 術るシステムリソースが他のモデルに比べて多いため一2.1. マルチテナントＤＢモデル

般的には顧客集約率が高いと考えられているが、その反面、何らかの原因によりサービス提供システムの処マルチテナント方式の一つであるシングルインス理性能が劣化した場合の影響範囲が広い。ここでの影タ ン ス 方 式 は 、 Web サ ー バ お よ び ア プ リ ケ ー シ ョ ン サ

響範囲とは、応答性能などのサービスレベルの低下がーバを共有し、テナントの概念をデータベースレイヤ発生するテナントの割合を意味する。そこで、本論文にて表現している。データベースレイヤによるテナン

ではマルチテナント方式を活用するメリットである顧

ト の 表 現 モ デ ル （ マ ル チ テ ナ ン ト DB モ デ ル ） は 、 一

客集約率においてマルチテナントアプリケーションか般的には図２に示す形式に分類される。

ら 発 行 さ れ る DB ア ク セ ス 要 求 に 着 目 し 、 サ ー ビ ス シ
ステムの応答性能劣化が発生した際の影響範囲を限定

インスタンス方式

スキーマ方式

共有スキーマ方式的に抑えるテナント制御方式を提案する。

テナント

3. 課 題3.1. DB 共 有 型 マルチテナントシステムの課 題
スキーマ

スキーマ

スキーマ

インスタンス

インスタンス

インスタンス

インスタンス

OSOS

OS

OS

マルチテナント型システムでは、複数の顧客が単一
シ ス テ ム の リ ソ ー ス を 共 有 す る こ と か ら 、SLA(ServiceLevel Agreements)の 定 義 が 重 要 で あ る 。 通 常 、 各 サ ー

集約度高ビ ス プ ロ バ イ ダ は 、SLA を 遵 守 す る た め に 、開 発 段 階

図 ２ ． マ ル チ テ ナ ン ト DB モ デ ル

にて利用シナリオを想定し、システムリソースのキャパ シ テ ィ を 設 計 す る 。 一 般 的 な Web3 層 に よ っ て 構 成

マ ル チ テ ナ ン ト DB モ デ ル も 図 1 と 同 様 に 右 に 位 置

さ れ る Web シ ス テ ム で は 、 DB サ ー バ の リ ソ ー ス を 最するモデルほど単一システムにおける顧客集約度が高

大 限 有 効 に 利 用 す る 設 計 と し 、 DB サ ー バ の 処 理 性 能

く、コストメリットを得られると考えられている。一をボトルネックとすることが多い。そこで任意の顧客方で、顧客毎のカスタマイズは右に位置するほど難しからのリクエスト種別や、リクエスト数／単位時間な

い と 考 え ら れ お り 、文 献 [2]、な ど に よ っ て そ の 解 決 策

どを想定したトランザクションモデルを定義する。まが 提 案 さ れ て い る 。 マ ル チ テ ナ ン ト DB モ デ ル は 、 何

た、アプリケーションを継続的に利用することによりれの方式においてもテナントを特定する識別子を設け、DB サ ー バ へ 蓄 積 さ れ る デ ー タ 量 の 増 加 傾 向 を 、 利 用

テナント毎にアクセス可能なデータの領域を制限する。

する顧客数や単一顧客の規模（ユーザ数など）を加味

こ れ は 、シ ス テ ム の リ ソ ー ス を 共 有 す る テ ナ ン ト 間 で 、し た デ ー タ モ デ ル と し て 定 義 す る 。デ ー タ モ デ ル で は 、アプリケーションデータが混在することがないよう、各アプリケーションの挙動特性に応じて、データベーセキュアにデータを管理するものである。そのため、スのテーブル単位で、蓄積レコード数の増加傾向を見既存のソフトウェアをマルチテナント化するためには、積もる。

一般的には、上記のようにして想定された利用シナと 考 え る 検 索 文 (SQL)を 設 計 す る 。 そ の た め 、 想 定 以

リオに基づき、性能評価環境を構築する。構築した性上にテーブルのデータ量が増加すると著しく処理性能能評価環境にて、シミュレータ等を利用して擬似的にが劣化する可能性がある。例えば、結合処理の元テーサービス利用要求を発行させ、複数顧客からの同時アブルのデータ量が増加すると結合結果のデータ量が膨クセスを想定したリクエスト多重度の増加に伴う応答大な数となる場合がある。

時間の劣化傾向を解析する。この評価結果とサービス
提 供 H/W の 性 能 を 評 価 し た 結 果 に よ っ て 、SLA を 定 義

case3: マ ル チ テ ナ ン ト DB モ デ ル の 実 現 方 式 に よ っする。このときクライアント側で応答性能を測定するて、特定の表に格納されるデータを複数の顧客が共有場合は、クライアント端末の処理性能に依存することする場合には、特定顧客の挙動が原因でデータを共有や、ネットワーク回線の遅延の影響を受けることが想する他テナントからの処理要求に対する応答性能が著

定 さ れ る 。そ の た め 、応 答 時 間 を 細 分 化 し 、例 え ば DB

しく劣化する。例えば、この場合、処理性能が劣化すサーバの処理応答時間を 1 秒以内とするなど、不確定

る と DB サ ー バ に お い て 特 定 の 処 理 が CPU を 占 有 す る

要素からの影響を受けない範囲で担保すべき応答時間時間が長くなるため、システム全体の応答性能が劣化を評価対象とする場合がある。

することと成る。

上記のように性能評価を実施した場合であっても、
サ ー ビ ス 提 供 を 開 始 し て 、SLA を 遵 守 で き る か 否 か は本論では上記のようなケースにおいて、サービス提キャパシティプランニング時に想定したトランザクシ供システム全体の処理性能が劣化し、多数の顧客に対ョンモデル及びデータモデルと、実際にサービスが利す る SLA 違 反 が 発 生 す る 事 態 を 回 避 す る 手 法 を 提 案用される実態との乖離度合いに依存する。性能評価時するものである。に想定したトランザクションモデルとデータモデルの精度が高く、想定どおりに顧客がサービスを利用することが望ましいが、必ずしもシステム構築時の想定ど4. 提 案 手 法おりに利用されるとは限らない。特にマルチテナント型のサービス提供システムでは、特定顧客の挙動が原

本 論 文 で は 、 DB を 共 有 す る シ ン グ ル イ ン ス タ ン ス

因 で シ ス テ ム を 共 有 す る 他 顧 客 へ の SLA 違 反 が 発 生方式において、特定のテナントが推奨外の挙動を取っする可能性があり、サービス提供を継続するうえでた場合に、リソースを共有する他テナントに対する応SLA を 守 る た め の 仕 組 み が 必 要 で あ る 。

答 性 能 が 著 し く 劣 化 し 、SLA 違 反 が 多 発 す る 事 態 の 発生を回避する方式を提案する。
SLA を「 品 質 」と 読 み 替 え る と 、「 品 質 」の 定 義 は 、3.2. 想 定 するシチュエーション“本来備わっている特性の集まりが要求事項を満たす
程 度 ”と さ れ て い る 。本 論 で は 、本 来 備 わ っ て い る“ 特特定の顧客からの要求によりサービス提供システ性の集まり”を情報システムに照らし合わせ、性能評

ム が 備 え る DB サ ー バ の リ ソ ー ス が 枯 渇 し 、 他 顧 客 か

価時に定めたトランザクションモデルとデータモデル

らの要求に対する応答性能が劣化するケースは、例えと捉える。そこで、サービス構築時に実施する性能評ば以下のような場合がある。

価時のトランザクションモデルおよびデータモデルを設計した際の成果を用いて、サービス提供後に”本来

case1: GUI を 人 手 で 操 作 す る こ と を 想 定 し て 設 計 し備わっている特性の集まり“から著しく乖離した状況たサービスにおいて、シミュレータやなんらかのツーの発生を監視する。そして著しく”特性の集まり“かルを用いて連続的・多重に処理要求を発行する場合。

ら乖離した際に、リソースを共有する他テナントにそこのとき、特定テナントからのリクエストが高頻度・の影響が派生することがないよう、図 4 に示す構成要多数受け付けられるため、待ち行列が発生し、他テナ素からなるテナント制御方式を提案する。

ントの処理に対する応答性能が著しく劣化する可能性が在る。
case2: サ ー ビ ス 提 供 者 が 想 定 す る 使 用 方 法 と 異 なる使用法により、サービス開発時には想定していなかったデータが過度に蓄積される。サービス提供者は、システム構築時に想定するデータモデルに対して最適トランザクションモデル監視部は、マルチテナント

テナントアクセス制御機能

マルチテナント対象
アプリケーション

マルチテナントDB

対象アプリケーションからアクセス制御機能に対するデータアクセス要求の発行履歴を監視するものである。
システム構築を行なう際に検討するトランザクションモデルでは、例えば①要求頻度、②要求多重度、③処理種別の各項目について値を想定する。例えば要求頻
度 の 場 合 、GUI を 備 え る Web シ ス テ ム に お い て マ ウ ス
操作やテキスト入力などの人手によるオペレートが発生するため、「1 秒間に 1 つ以上のリクエストが同一ユ制御

監視

監視

テナント制御部ー ザ か ら 発 行 さ れ る こ と は 無 い 。」と い っ た 前 提 を 置 く 。
そのほか要求多重度では、テナントあたりの同時接続数は１と規定し、サービスレベルとして評価すべき処

トランザクションモデル監視部

データモデル
監視部

理種別をアプリケーションが提供する全ての機能の中から選定する。
このような性能評価時のトランザクションモデル

テナント管理部

マルチテナント基盤を性能評価の対象とする全ての処理種別に対して列挙する。当然ながら、性能評価時の条件として単一処理種別に対する応答性能を求める場合だけでなく、複数図４．マルチテナント基盤の全体構成処理種別が同時に発生した際の応答性能を求める場合もある。トランザクションモデル監視部は、上記のよマルチテナント対象アプリケーションは、テナント

うに性能評価時に規定したトランザクションモデルのからのサービス利用要求を受付けると、テナント識別条件を元にアクセス制御機能のログを解析する。条件情報や処理要求内容をリクエストから抽出する。次にを満たすログが検知された際には、テナントおよびママルチテナント対象アプリケーションは、アクセス制ルチテナント対象アプリケーションが性能評価時の想御機能に対して、テナント識別子と処理要求識別子を定と異なる挙動が発生したと判定する。次に、当該テ含むデータアクセス要求を発行する。アクセス制御機

ナントからのデータアクセス要求ないしは当該マルチ

能 は 、 マ ル チ テ ナ ン ト DB に 対 す る 処 理 を 司 る 機 能 でテナント対象アプリケーションの処理要求識別子を持ある。アクセス制御機能は、データアクセス要求から

つ デ ー タ ア ク セ ス 要 求 に 対 し て 、 マ ル チ テ ナ ン ト DB

テナント識別子を抽出し、テナント毎にアクセス可能へのアクセスを拒否する。これにより性能評価時の想な マ ル チ テ ナ ン ト DB の デ ー タ 領 域 に 対 す る ア ク セ ス

定から逸脱した挙動を示すテナントが原因で、マルチ権限の有無を判定する。アクセス権限の判定結果が正

テ ナ ン ト DB の 処 理 性 能 が 劣 化 し 、 他 テ ナ ン ト に 対 すで あ れ ば 、処 理 要 求 識 別 子 に 基 づ く SQL を テ ナ ン ト 識る応答性能が劣化するという事態を回避する。

別子に対応したデータ領域に対して発行する。
これにより、テナント毎にアクセス可能なデータ領

4.2. データモデルに基 づくアクセス制 御域 を 制 限 し 、 Web/ア プ リ ケ ー シ ョ ン サ ー バ や DB サ ーバのリソースを共用することが可能となる。

性能評価を行なう際にはトランザクションモデルの 規 定 に 加 え 、 評 価 対 象 と な る DB の 蓄 積 デ ー タ 量 を4.1. トランザクションモデルに基 づくアクセス制 御データモデルとして定義する。一般的なシステムの性
能 を 向 上 さ せ る た め の 方 式 と し て 、 DB サ ー バ へ の 検

アクセス制御機能は、処理要求の発行先となるマル索時間を高速化するために索引を新たに生成するといチ テ ナ ン ト DB を 判 定 す る 機 構 で あ る 。 こ の と き マ ル

っ た 方 式 が あ る 。 DB へ の 検 索 処 理 を 行 な う 際 に 1 つ

チテナント対象アプリケーションからデータアクセスのテーブルにのみアクセスするケースは少なく、通常要求を取得した際に、処理対象となるマルチテナントは複数のテーブルに対して必要な条件を当てはめ、検DB を デ ィ ス パ ッ チ す る だ け で な く 、 そ の 是 非 も 判 断索結果を結合する場合が多い。このような場合においする。判定する際には、各テナント識別子に対応したて、結合元となるテーブルのレコード数が増加するとアクセス可否フラグの状態を参照する。このアクセス総当り的に対象テーブルのレコードとの結合処理を行

可否フラグは、マルチテナント基盤のテナント制御部

なう場合などにおいては、結合処理の多重度に比例しが制御する。て結合結果として生成されるレコード数が膨大な量となる。そのためシステム開発に性能が満たせない場合ケースが想定される。このような場合を回避するためには、非正規形のテーブル定義に変更するといった解に本方式では、テナント間の依存関係を示す情報をテ決策を取る場合がある。

ナント管理部にて管理し、トランザクションモデル監性能評価を行なう際には、特に性能問題が発生する

視およびデータモデル監視で異常を検知した際に、テ可能性が在る検索処理に着目して関連するテーブルのナント管理部に問い合わせ、性能劣化の影響を最小限レコード蓄積量を規定する。そこで、本方式では性能に留めるために必要な制限の対象となる他テナントを評価時に規定された想定レコード数をデータモデル監特定する。これにより当該テナントの推奨外の挙動に視部の条件として活用する。一般的にはサービスシス

よ る 影 響 が 広 が り 、シ ス テ ム 全 体 と し て SLA 違 反 が 多

テム稼動数年後のデータベースのレコード蓄積量を推発する事態を回避する。

定し、試験データを作成する。そのため、想定どおりの利用方法でテナントがサービスを利用している場合

5. お わ り にには、想定レコード数を超えることはない。そこで、開発時に着目したテーブルの蓄積量を監視することで、

本提案方式では、性能評価時に規定するトランザク

テナントが想定外の使用方法により想定以上のレコーションモデルおよびデータモデルに加え、マルチテナ

ド を 蓄 積 し 、デ ー タ ベ ー ス サ ー バ の CPU リ ソ ー ス を 必

ント対象アプリケーションの特性上依存しあうテナン要以上に消費する事態を回避する。

ト 間 の 関 係 や 、 マ ル チ テ ナ ン ト DB モ デ ル の モ デ ル タ
イプに応じて性能劣化の影響を受けるテナント間の依4.3. テナント間 依 存 関 係 に基 づくアクセス制 御存関係を考慮したテナント制御方式を提案した。
本論文が提案するテナント制御方式を適用したプ

マ ル チ テ ナ ン ト DB モ デ ル を 適 用 す る 場 合 、 表 共 有
モデルやスキーマ分離モデルでは同一インスタンスロトタイプを製作し、方式の有効性を検証する予定である。

（ こ こ で は 同 一 DB サ ー バ ）の リ ソ ー ス を 消 費 す る が 、今後の課題として、トランザクションモデル監視部

インスタンス分離モデルを適用したテナントは、異なとデータモデル監視部の挙動監視条件の定義方式の改る DB サ ー バ の リ ソ ー ス を 消 費 す る こ と も 可 能 で あ る 。

善 が 必 要 と 考 え る 。現 在 想 定 す る シ ス テ ム 運 用 形 態 は 、

このように単一アプリケーションを複数顧客に提供すマルチテナント基盤により性能評価モデルからの逸脱

る 際 に 、 複 数 の マ ル チ テ ナ ン ト DB モ デ ル を 混 在 さ せのみを監視条件としている。しかし、論文冒頭で述べるようなケースもある。このような場合、任意のテナたとおり性能評価時の想定以上の条件によりサービスントが推奨外の操作方法によりトランザクションモデレベルが低下することも想像される。そこでサービス

ルやデータモデルから逸脱した挙動を取った場合、リレベルを監視する機構からのフィードバックを受けて、

ソ ー ス を 共 用 す る 他 テ ナ ン ト の DB サ ー バ 処 理 時 間 もトランザクションモデル監視部およびデータモデル監同様に劣化することが想定される。そこでリソースを視部の条件の作成を支援する機構が必要であると考え

共 用 す る 他 の テ ナ ン ト か ら の DB サ ー バ ア ク セ ス 要 求る。

についても制限をかける必要がある。
マルチテナントアプリケーションは、単一システムを複数の顧客が利用する形態であるがアプリケーショ
ンによっては、複数のテナントを纏めた単位で扱うものもある。例えば、任意の単位で複数のテナントをグループ分けし、当グループ毎に商品の注文情報を集計して発注センターに情報を配信するような機能を提供するアプリケーションがあるとする。このとき、注文情報を集計する処理は、マルチテナントアプリケーションがバックグランドで行なうと想定される。特定のテナント（注文元店舗）が想定以上の操作により大量の注文伝票を登録したような場合、注文情報を集計する処理が想定する時間内に終了しないようなケースがある。このような場合に、同一グループに含まれる他テナントからの注文確認問い合わせや、再注文処理が併発され、システム全体の処理負荷が増加してしまう

参考文献[1] 小 林 茂 憲 ， 小 泉 健 ， “マ ル チ テ ナ ン ト 対 応 ア プ
リ ケ ー シ ョ ン 開 発 を 効 率 化 す る 「 SystemDirectorEnterprise」 ”, NEC 技 報 , 2010[2] 亀 谷 聡 , 川 口 由 紀 恵 , 川 添 恭 平 , “SaaS に 適 した マ ル チ テ ナ ン ト デ ー タ ベ ー ス の 研 究 開 発 ”,
Intec Tech J, 2012[3] 黒 田 貴 之 , 副 島 賢 司 , 島 村 栄 , “シ ン グ ル テ ナ
ント型システムからの移行に適したマルチテナ
ン ト 型 デ ー タ ベ ー ス シ ス テ ム の 構 成 法 ”, 情 報 処理 学 会 論 文 誌 Vol.52 No.3 1126-1135, 2011 Mar.
[4] 小 杉 優 , 入 不 二 経 勝 , 小 川 康 志 , 山 足 光 義 ,“マ ル チ テ ナ ン ト 対 応 デ ー タ 切 替 制 御 に 関 す る 研究 ”, 第 74 回 情 報 処 理 学 会 全 国 大 会 論 文 集 , 2011