用語集
マルチテナントとは
多くのクラウドサービスではサービスの利用コストを低く抑えるため、同一のリソースを複数のユーザーで共有する「マルチテナント」の形態を取っています。本記事では、マルチテナントの特長やシングルテナントとの違いについて、解説します。
マルチテナントとは?
ショッピングモールのような商業施設では、1つの建物の中に複数の店舗や企業(テナント)が入居し、電気や水道などのインフラ設備を共有しています。これと同様に同一のサーバー・アプリケーション・ネットワークなどのリソースを複数のユーザーで共有するアーキテクチャーを複数のユーザー(テナント)が同居するところから「マルチテナント」と呼んでいます。
シングルテナントとマルチテナントの違い
マルチテナント型のアーキテクチャーでは、同一のリソースを複数のユーザーで共有します。これとは反対に、単一のユーザーがリソースを占有するアーキテクチャーを「シングルテナント」と呼んでいます。最も代表的なシングルテナントの例がオンプレミスです。
オンプレミスのようなシングルテナントのアーキテクチャーでは、ユーザーがリソースを専有できます。そのため、ユーザーはほかのユーザーに気を配る必要もなく、自分の都合にあわせた自由なカスタマイズが可能です。また、ほかのユーザーにリソースを奪われることもないため、安定して高いパフォーマンスを発揮できます。ただし、その反面、すべての管理運用を自社の責任で行う必要があり、また調達コストも高くなりやすいというデメリットがあります。
一方、マルチテナントのアーキテクチャーでは、リソースを複数のユーザーで共有します。そのため、特定のユーザーの都合にあわせたカスタマイズは難しく、自由度の低いアーキテクチャーだと言えるでしょう。また、極端に負荷の高い使い方をするユーザーが同居していると、その影響を受けてパフォーマンスが低下する可能性もあります。このようなデメリットのあるマルチテナント型のアーキテクチャーですが、リソースを共有することで利用コストを低く抑えられたり、管理運用面の多くをクラウドベンダーに任せられるといったメリットが非常に大きいため、多くのクラウドサービスで採用されています。
とはいえ、すべてのクラウドサービスがマルチテナント型を採用しているわけではありません。オンプレミスのようにハードウェアを占有できるシングルテナント型のサービスを提供しているベンダーも存在します。シングルテナント型のクラウドサービスは、セキュリティ上の理由から第三者との同居を嫌うユーザーや常に一定以上の性能が発揮されるようリソースを確保する必要があるシステムに利用されています。しかし、オンプレミスほどではないにしろ、マルチテナントのクラウドサービスと比較するとコストが高くなったり、クラウドのメリットであるオンデマンド性が低下する(利用できるまでに時間がかかる)というデメリットも存在します。こうした背景から、「常に一定以上の性能が発揮されなければならない」などの特別な事情がない限り、コスト面でのメリットが大きいマルチテナント型のサービスを利用するのが一般的となっています。
クラウドにおけるマルチテナントのリスク
総務省や経産省のクラウドセキュリティに関するガイドラインによると、マルチテナントに起因するリスクとして「リソースの枯渇」や「隔離の失敗」などが挙げられています。
「リソースの枯渇」とは、システムに極端な高負荷がかかるような使い方をするユーザーがいたり、サービスの妨害を目的としてシステムに意図的な高負荷をかけるDoS攻撃などを受けることで、パフォーマンスの低下(リソース枯渇)が生じるというリスクです。これはパフォーマンスが低下するだけに留まらず、最悪の場合はシステムが停止する(いわゆる障害へ発展する)可能性があります。
「隔離の失敗」とは、本来ソフトウェアによって論理的に分離されているはずの仮想マシンがソフトウェアの脆弱性などによって、ほかのユーザーから不正アクセスを受けたり、情報の漏えいや改ざんが行われる可能性があるというリスクです。
しかし、こうしたデメリットだけを見て、「クラウドは信頼性が低い」「だからクラウドはセキュリティに不安がある」と判断するのは早計です。クラウドのこうしたリスクは、安価な利用コストや高いオンデマンド性というメリットと表裏一体です。パブリッククラウドとは、こうしたリスクを認識し、クラウド事業者が実施している対策とユーザー自身が行える対策によって、リスクを許容できる範囲に抑え、メリットの方が大きいと判断できる場合に利用するものです。
実際、クラウドサービスの利用規約やSLOなどのドキュメントには、こうした不測の事態が起きうることやそれに対する免責事項が記載されているのが一般的です。例えば、FJcloud-V(旧ニフクラ)では、サービス利用規約の第10条(責任の制限等)第1項において「本サービスがユーザーの特定の目的に適合すること、期待する機能を有すること、期待する成果を実現すること、不具合を起こさないこと及び利用結果を含め、当社は、ユーザーに対し、本サービスに関する何らの保証も行うものではありません。」と明記しています。
いわゆるメガクラウドのほとんどが、このようなスタンスの下で運営されています。しかし、日本のユーザーにおいては、パブリッククラウドにも高い可用性や性能保証などを要求するケースが見受けられます。「システムの停止は絶対に許されない」というような、オンプレミスと変わらない過剰な品質を求めてしまうケースも散見され、グローバルなクラウドの世界では、一般的な「割り切った」考え方はなかなか受け入れられない部分もあるようです。
マルチテナントにおける可用性向上の方法を理解する
パブリッククラウドにおけるトラブルはさまざまですが、その多くは「可用性」を向上させるためのクラウドならではのシステム構成を選択することで回避できることがあります。つまり、マルチテナントであるパブリッククラウドのメリットをより多く享受するためには、シングルテナントであるオンプレミスの発想から脱却し、クラウド特有の考え方にシフトすることが重要となってきます。
クラウドの特性にあわせたシステムを構築するためには、クラウドベンダーや実績を持ったパートナーが公開している「デザインパターン(リファレンスアーキテクチャー)」を参考にするとよいでしょう。また、マルチテナント型のアーキテクチャーであっても、一定のネットワークの帯域を保障するような追加機能が有償で別途用意されている場合もあります。常に一定の性能を確保する必要があるシステムであれば、こうした機能を利用するのもお勧めです。