クラウドコンピューティングの登場は、テクノロジー世界において過去数十年間で最大のパラダイムシフトと言っても過言ではないでしょう。クラウドコンピューティングは、テクノロジーの進化の方向とビジネスや組織の運用のあり方を大きく変えました。
実際、クラウドサービスが絶大な人気を得ている理由は、さまざまなモデルの中から組織の運用ニーズに合ったものを選択できる点にあります。
これらのクラウドサービスモデルを有効活用するには、各モデルの機能の違いと最適なユースケースを理解しておくことが大切です。小規模企業の経営者であっても、開発者であっても、単にクラウドに興味のある個人ユーザーであっても、各モデルの特徴を理解するためにこの記事が役立つでしょう。
クラウドサービスには主に、SaaS、PaaS、IaaSの3種類があります。それぞれ、ユーザーに許可されるアクセスと制御のレベルが異なります。ユーザーがアクセスできる範囲が広いほど、ユーザーの責任範囲も広くなります。
各サービスについて簡単にご説明します。
SaaSは、ソフトウェアをインストールせずにサービスとして利用できるソフトウェア提供モデルです。ソフトウェア製品を購入しない点で、サブスクリプションサービスとよく似ています。
SaaSの仕組み:SaaSプラットフォームはインターネット上で運用されます。ユーザーは、特定のURLからプロバイダーのログインフォームにアクセスし、サインイン認証情報を入力して、プラットフォームで提供されているソフトウェアにアクセスします。
SaaSの長所/短所:基盤となるハードウェアとオペレーティングシステムにはほとんどアクセスできません。利用できるのは、SaaSベンダーが提供する機能とサービスのみです。多くのユーザーにとっては、複雑なインフラを管理および保守する負担から解放されるため、そこが大きな魅力になります。以下の管理と保守はサービスプロバイダーが担います。
サーバー
データベース
アプリケーションの全体的なセキュリティ
(関連記事:インフラのセキュリティ)
IaaSは、仮想化した物理コンピューティングリソースをインターネット経由で提供するクラウドコンピューティングモデルです。
IaaSの仕組み:IaaSサービスでは、ユーザーが必要に応じてインフラをレンタルできます。そのため、物理サーバーやデータセンターインフラを購入するコストと労力を節約できます。
IaaSの長所/短所:IaaSでは、CPU、メモリー、ストレージ、ネットワークなどのコンピューティングリソースの制御と管理をユーザーが担います。任意のオペレーティングシステム、アプリケーション、セキュリティ対策ソフトウェアをインストールおよび実行できるため、制御やカスタマイズの自由度が高くなります。
PaaSは、アプリケーションを開発、実行、管理するためのプラットフォームを提供するクラウドコンピューティングモデルです。基盤となるインフラの構築と保守はサービスプロバイダーが担います。
PaaSの仕組み:サービスモデルのタイプとしてはSaaSとIaaSの中間に当たり、開発者がアプリケーションを簡単に開発、デプロイ、管理できるように事前に設定された環境を利用できます。
PaaSの長所/短所:PaaSでは、開発ツール、言語、ライブラリ、サービスが提供されるため、開発者は複雑なアプリケーションでもすばやく作成できます。ハードウェア、ネットワーク、ストレージの管理に煩わされることなく、アプリケーションコードとビジネスロジックに集中したい開発者に適しています。
3種類のクラウドサービスモデルの概要を理解したところで、これらのモデルの違いを以下のようなさまざまな視点から見ていきましょう。
サービスモデル導入の難易度
習得の難易度
セキュリティ
カスタマイズ
拡張性
コストと価格体系
管理と保守
3種類のモデルではそれぞれ、アクセスできる計算リソースの範囲が異なります。そのため、導入の難易度も異なります。次の2つの間には直接的な相関関係があります。
導入の複雑さ
ユーザーに与えられる制御レベル
SaaSの導入:SaaSはWebベースなので、導入は3種類の中で最も簡単です。ソフトウェアをインストールする必要も、ソフトウェアの基盤となるインフラを用意する必要もありません。SaaSアプリケーションを利用するために必要な作業は通常、サービスに登録し、サービスにアクセスするための認証情報を取得して、Webブラウザまたはアプリケーションからアクセスすることだけです。
IaaSの導入:IaaSでは、仮想環境の設定を含め、インフラの構成をすべてユーザーが担います。このプロセスは非常に時間がかかり、専門知識も必要になります。
そのため、3種類の中で最も導入に手間がかかります。
PaaSの導入:PaaSの導入の複雑さは他の2つのモデルの中間くらいで、SaaSよりは難しく、IaaSよりはずっと簡単です。PaaSプラットフォームには通常、開発ツールやCI/CDパイプラインが組み込まれ、データベースが統合されているため、IaaSほど手間はかかりません。
一部のプラットフォームでは、導入作業をドラッグアンドドロップで行う機能が用意されており、その場合は導入がさらに簡単になります。それでも、一部の作業はユーザーが行う必要があります。
クラウドサービスモデルを利用するときは、目的に合った適切な設定方法を知ることが非常に重要です。各モデルは導入の難易度が異なり、それに応じて習得の難易度も異なります。
SaaSの習得:SaaSを利用するために必要なのは、コンピューターに関する基本的なスキルのみです。ユーザーインターフェイスの操作方法と、ソフトウェアの基本機能を理解していれば、あとはソフトウェア固有の使い方を覚えるだけです。使い方は、ユーザーガイドやアプリケーション内のサポート機能を通じて学ぶことができます。ほとんどのSaaSプロバイダーが、非常にわかりやすい操作ガイドをWebサイトで提供しています。
PaaSの習得:PaaSでは、開発と設定についてある程度の知識が求められます。そのため、利用するプラットフォームに関する技術的な知識やスキルを学ぶ必要があります。
必要なスキルには、プログラミング言語やAPIの知識、SDLCの概念、クラウドコンピューティングの基本的な概念などがあります。これらのスキルは、開発者コミュニティやオンラインコースを通じて習得できます。
IaaSの習得:IaaSでは、クラウドインフラの管理に関する高度な専門知識が求められます。IaaSを自身で運用するには、以下の分野に関する深い知識を身に付ける必要があります。
ネットワーキングの概念
仮想化技術
スクリプト言語
IaaSを導入する場合は、専門家チームに支援を求めるのが最善です。
ここで取り上げている3種類のクラウドモデルはいずれも、責任共有モデルに従います。基本的には、クラウドインフラのセキュリティはクラウドサービスプロバイダーが責任を持ち、そのインフラ内で運用するデータやアプリケーションのセキュリティはユーザーが責任を持つことになります。
ただし、モデルによって責任範囲が異なります。
SaaSのセキュリティ:SaaSの管理の大部分についてはサービスプロバイダーが責任を持ち、セキュリティについては主にユーザーが責任を持ちます。
サービスプロバイダーは、アプリケーションを保護する責任を担います。
ユーザーは、適切なアクセス制御を適用し、自分で保存したデータを保護する責任を担います。
わかりやすい例は、人気の高いSaaSプラットフォームであるGoogle Workspaceです。Google Workspaceでは、一般的なセキュリティ脅威への対策はGoogle社が行いますが、Google Workspaceに保存したデータや情報へのアクセスを制限するアクセス制御はユーザー自身で設定します。
ユーザーは、不正アクセス、内部脅威、データ流出にも注意を払う必要があります。ユーザーは、これらの脅威を防ぐために徹底した対策を講じることはできますが、アプリケーション自体のセキュリティについては一切関与できません。
PaaSのセキュリティ:PaaSでは、基盤インフラのセキュリティについてはプロバイダーが責任を持ち、そのプラットフォーム上で運用するアプリケーションとデータのセキュリティについてはユーザーが責任を持ちます。また、システムのセキュリティをさらに強化するためには、ユーザーが適切なアクセス制御を設定し、ベンダーのセキュリティ対策を評価することも必要になります。
IaaSのセキュリティ:IaaSでは、物理インフラの保護についてはプロバイダーが責任を持ち、そのインフラ上で運用されるすべての要素のセキュリティについてはユーザーが責任を持ちます。たとえば、以下の対策はユーザーが担います。
オペレーティングシステムのセキュリティ
ネットワークの構成とセキュリティ
アイデンティティ管理
サーバー上で動作するアプリケーションの保護
クラウドネイティブシステムの管理では、組織のニーズに合わせて環境を設定するためのオプションが備わっているかどうかが重要になります。
SaaSのカスタマイズ:SaaSモデルではユーザーが制御できる範囲が限定されているため、カスタマイズのオプションも制限されますが、ある程度は制御できます。
ユーザーは通常、ベンダーが事前に定義したオプションに基づいて一部の設定を調整できます。
ただし、サービスモデルの機能自体の変更はできません。
PaaSのカスタマイズ:PaaSシステムでは、カスタマイズ機能がある程度提供されます。ユーザーは、開発ツールやAPIを使って、ニーズに合わせてアプリケーションを設計できます。これにより、独自の機能を開発したり、自身のアプリケーションを他のソフトウェアと統合したりできます。
ただし、利用できるオプションはプロバイダーによって異なります。
IaaSのカスタマイズ:IaaSモデルはカスタマイズのオプションが最も豊富です。ユーザーは、オペレーティングシステム、ソフトウェア、構成に関する設定を含め、インフラ全体を詳細に制御できます。ニーズに合わせた調整の自由度が最も高く、高度に専門的な使い方ができます。
たとえば、Microsoft Azureでは、ユーザーがインフラにさまざまな設定を適用できます。
組織が提供するサービスの利用者が増えれば、同じサービスを同じ品質で提供するために、より多くの計算リソースが必要になります。そのため、クラウドサービスモデルを選ぶ際は、ビジネスニーズの拡大にどのくらい対応できるかを考慮することも大切です。
SaaSの拡張性:ほとんどのSaaSアプリケーションは、ユーザーのニーズに合わせて拡張できるように設計されています。ただし、リソース量が事前定義された階層型のオプションから、ニーズに合ったものを選択する必要があるため、拡張の自由度は制限されます。
作業自体は数クリック(場合によっては自動)で完了するため、ニーズに合わせてオプションをすばやく変更できます。
PaaSの拡張性:PaaSでは、CPU、帯域幅、ストレージなどのリソースを調整して、ある程度の拡張性を確保できます(調整可能なリソースはプラットフォームによって異なります)。ただし、前述のとおり、リソースの調整にはコードや設定の変更が必要になるため、専門知識が多少必要になることがあります。
Oracle Exadataデータベースなど、一部のデータベースプラットフォームは、水平と垂直の両方の拡張が可能であるため、大量のアプリケーションを運用する場合に適しています。
IaaSの拡張性:IaaSの拡張はすべてユーザーに委ねられています。リソースや仮想インフラをユーザーが完全に制御できるため、非常に柔軟に規模を調整できます。たとえば、Google Cloudには、需要の急増に合わせて拡張できる豊富なリソースが用意されています。一方で、当然のことながら、拡張を行うときはシステム管理とリソース管理に関する深い知識が必要になります。
手作業での拡張は手間がかかりますが、自由度が高いため、ビジネスの成長に合わせて柔軟に規模を拡大できるメリットがあります。
クラウドサービスはいずれも従量課金制を採用しているのが普通です。ただし、利用できるリソースはモデルによって大きく異なります。
特に、運用を拡大するためのオプションはモデルによってかなり差があります。そのため、価格体系はクラウドモデルのコストを判断するための大きな要因になります。
SaaSの価格体系:SaaSでは、ユーザーがインフラの構築や管理を行う必要がないため、資本コストは不要で、運用コストのみを支払うことになります。これは組織にとって大きなメリットです。
PaaSの価格体系:PaaSでは、サブスクリプションと従量課金を組み合わせた価格体系が一般的です。従量課金は主に、ストレージやネットワークの使用量に適用されます。また、環境の管理はプロバイダーではなくユーザーが行うため、環境の設定と管理のコストがかかります。
SaaSに比べるとコストがやや高くなりますが、価格体系がスケーラブルなため、ある程度柔軟性があり、リソースコストを最適化できます。
IaaSの価格体系:IaaSでは、ユーザーが制御できる範囲が広いため、コストもユーザー次第で幅があります。IaaSでは従量課金制が採用され、ユーザーはリソースを使用した分のみ費用を支払いますが、注意しないとコストが跳ね上がる可能性があります。
制御範囲を適切に管理するには、技術的な知識が必要です。また、IaaSでは初期投資が高額になり、ソフトウェアの導入にはライセンスが必要で、プラットフォームにアプリケーションを導入するための専門知識も必要になります。
管理と保守の要件もクラウドサービスモデルによって異なります。これは、ユーザーのアクセスレベルや責任範囲がそれぞれに異なるためです。
SaaSの管理:SaaSでは、インフラとそのアップデートやセキュリティの責任をすべてプロバイダーが担います。そのため、ユーザーの管理負担は最小限で済み、保守の手間もかかりません。
保守が不要なことは基本的にはメリットですが、ベンダーがソフトウェアアップデートを行うタイミングでダウンタイムが発生してユーザー側の業務が中断される場合もあります。
IaaSの管理:IaaSでは、ユーザーが環境内のすべての要素を制御するため、管理と保守もユーザーの責任になります。クラウド環境の管理には以下の作業が含まれます。
オペレーティングシステムへのパッチ適用
セキュリティ対策
ニーズに合わせたソフトウェアの設定
すべての要素の定期保守
たとえば、IaaSであるAWS EC2では、ユーザーが仮想マシンを起動し、自身のサーバーインスタンスとして管理できます。
そのため、柔軟な制御が可能ですが、時間も労力もかかるため、特に、ITチームの人員が十分でない場合は大きな負担となります。
PaaSの管理:PaaSの場合、サービスプロバイダーとユーザーの負担は半々です。プロバイダーがインフラを管理し、以下の要素はユーザーが管理します。
アプリケーションコード
環境
ユーザー側のデータ
開発者にとっては、インフラの管理をプロバイダーに任せ、自身はアプリケーションの開発に集中できるため、理想的な形です。 たとえば、人気の高いPaaSのHerokuでは、開発者がアプリケーションのデプロイと管理を行い、Heroku社がサーバー、ネットワーク、データベースを管理します。
全体として、どのクラウドサービスモデルが最適であるかは、組織のニーズと制約によって決まります。
カスタマイズは不要でアプリケーションをすぐに使用したい場合は、SaaSが適しています。インフラを準備する手間をかけずにソフトウェアアプリケーションを開発およびデプロイしたい場合は、PaaSがよいでしょう。開発者が揃っていて、インフラ全体を完全に制御したい場合は、IaaSが最適な選択肢です。
この記事で取り上げたすべての視点から慎重に検討し、情報に基づいて判断しましょう。
このブログはこちらの英語ブログの翻訳です。
この記事について誤りがある場合やご提案がございましたら、splunkblogs@cisco.comまでメールでお知らせください。
この記事は必ずしもSplunkの姿勢、戦略、見解を代弁するものではなく、いただいたご連絡に必ず返信をさせていただくものではございません。
Splunkプラットフォームは、データを行動へとつなげる際に立ちはだかる障壁を取り除いて、オブザーバビリティチーム、IT運用チーム、セキュリティチームの能力を引き出し、組織のセキュリティ、レジリエンス(回復力)、イノベーションを強化します。
Splunkは、2003年に設立され、世界の21の地域で事業を展開し、7,500人以上の従業員が働くグローバル企業です。取得した特許数は1,020を超え、あらゆる環境間でデータを共有できるオープンで拡張性の高いプラットフォームを提供しています。Splunkプラットフォームを使用すれば、組織内のすべてのサービス間通信やビジネスプロセスをエンドツーエンドで可視化し、コンテキストに基づいて状況を把握できます。Splunkなら、強力なデータ基盤の構築が可能です。