INDEX
クラウドという言葉を聞いたことがあるとは思いますが、そもそもクラウドって何だと思いますか? クラウドとは正式には「クラウドコンピューティング」のことで、従来のようにパソコン上のアプリやデータではなく、インターネット経由でアプリケーションを使うことを指します。
クラウドには様々なサービスがありますが、仕組みを大きく分けると「SaaS」「PaaS」「IaaS」の3つに分類可能です。
しかし、「SaaSって何? PaaSって何?IaaSって何?」という方のために、以下で説明して参ります。
SaaSとは、「Software as a Service(サービスとしてのソフトウェア)」の略。
クラウドで提供されるソフトウェアのことを指します。ユーザー側にソフトウェアをインストールするのではなく、ベンダー(プロバイダ)側でソフトウェアを稼働させ、ユーザーはネットワーク経由でソフトウェアの機能性を活用します。これまでパッケージ製品として売られていたものがインターネット経由で利用できるようになったものと考えて良いでしょう。
例えばGmailなどのメールサービスや、ブログサービス、Salesforceなどのサービスがこれに当たります。目的をすぐに達成できるという意味で便利ですが、自由度が低く、自前のプログラムを使いたい場合は、以下で説明するPaaSないしIaaSを利用する必要があります。
かつては、業務に利用するシステムやソフトウェアの多くは、自社で内製するケースが多かったのですが、昨今は様々な業種に対応した質の高いSaaSが登場し続けています。
SaaSに代替、導入する場合、開発期間が発生しなくなります。導入費用は開発期間で発生する人件費等の費用より安価で、またSaaSで代替できないシステムやソフトウェアの開発のみに費用やリソースが投入できるようになります。
SaaSはすでに出来上がった状態で提供されているので、導入への準備期間が短く、早期に業務での運用を実現してくれます。
SaaSの場合、ライセンス費を支払って買い切りで購入するパッケージ型のソフトウェアと異なり、アカウントの増減だけで対応でき、また一人のユーザーが複数台のデバイスを使用していても、デバイスの台数に依存することなく、無駄なコストを削減することができます。
SaaSの場合、ソフトウェアのバージョンアップ等もベンダー側が担うので、従来のソフトウェアのように、アップデートファイルのダウンロード、更新等を行うことなく、常に最新のバージョンで利用できます。
SaaSはセキュリティ対策が施された最新のバージョンを利用するので、従来のソフトウェアでありがちなセキュリティ対策未対応の状況での使用を回避することができます。
また、閲覧・編集の権限や、アクセスログ等といった機能で情報の管理や漏洩の予防ができるようになります。
SaaSはベンダー側が備えた機能に使用が限定されており、自社の一部の業務の効率化に対応できない場合、複数のSaaSの導入で対応したり、内製で開発したり、といった負担がデメリットになります。
SaaSはベンダー側で開発しているため、ベンダー側が提供している以上のサービスや機能を利用することはできません。
内製の場合、社内のちょっとした要求や改善等でカスタマイズが可能なので、それに伴い務効率の向上が期待できます。
繰り返しになりますが、SaaSはベンダー側が提供している以上のサービスや機能しか利用できないため、複数のSaaSの併用や内製という選択肢が選べない場合、そのSaaSに合わせて自社の運用方法や業務形態を見直さなければなりません。
私たちが仕事やプライベートで使用しているアプリの多くは、SaaS化が進んでおり、様々なジャンルで提供されています。
昨今では、単機能として提供されていたソフトウェアのうち、特にビジネスで使用するものはグループウェアに統合され、これによって利便性や費用対効果の向上が進んでいます。
電子帳票プラットフォームinvoiceAgent、freee 会計、楽楽明細などジャンル | サービス名 |
ビジネスチャット | Slack、Chatwork、Microsooft Teamsなど |
Web会議システム | Zoom、Skype、Google Meetなど |
グループウェア・オフィスソフト | サイボウズ Office・Garoon、Microsoft 365、Google Workspace、Zoho Workplaceなど |
社内SNS | Workplace from FACEBOOK、LINE WORKS、Microsoft Yammerなど |
プロジェクト管理 | Redmine、Trello、Time Kreiなど |
スケジュール管理 | Google カレンダー、TimeTree、Lychee Redmineなど |
BI(ビジネスインテリジェンス) | MotionBoard Cloud、Dr.Sum Cloud、Power BI、Zoho Analytics、Tableauなど |
CRM/SFA/MA | Salesforce Sales Cloud、eセールスマネージャーRemix Cloud、Adobe Marketo Engageなど |
会計ソフト | freee会計、やよいの青色申告 オンラインなど |
ERP | NetSuite、Microsoft Dynamics 365 Business Central、ジョブカンシリーズ、クラウドERP ZACなど |
Webメール | Gmail、Outlook.com、Yahoo!メールなど |
オンラインストレージ | Dropbox、OneDriveなど |
自社の業務効率の向上にSaaSを活用するケースは増えていますが、様々な業務の効率化を単一のソフトウェアだけで実現するのは難しく、多くの企業では、複数のソフトウェアを構成してカバーしています。
複数のSaaSの構成には、ベスト・オブ・ブリード(Best of Breed)とスイート(Suite)という選択方法があり、
ベスト・オブ・ブリード(Best of Breed)は『システムを構築する際に様々なベンダーの製品の中から、各分野で最も良いハードウェアやソフトウェアを選択し、それらを組み合わせることによってシステム構築を行うこと』で、財務会計はA社のソフトウェア、販売管理はB社のソフトウェア、人事給与はC社のソフトウェアを使用する、が例として挙げられます。
一方、スイート(Suite)は、企業内の情報システムをすべて同一ベンダーの製品でそろえる考え方を指します。具体例として、表計算ソフトなど事務処理などに使うアプリケーションソフトをひとまとめにしたオフィススイート(office suite)などが挙げられます。
ベスト・オブ・ブリードとスイート、どちらの方向性で企業内の情報システムを構築していくのが良いかというのは、多くの企業で議論されています。
機能面でリードしていたAというSaaSを導入したが、既に導入していたBというスイートがバージョンアップして、Aと同等の機能が備わった・・・、連携性を配慮するとAからBに変えた方がよいが、慣れ親しんだ業務プロセスを変更しなければならない・・・など、SaaSの進化は、ユーザー側に困惑を招くことも少なくはありません。
ベスト・オブ・ブリード(Best of Breed)とスイート(Suite)については、以下のデータのじかんで紹介していますので、詳しくはこちらをご覧ください。
PaaSとは、「Platform as a Service(サービスとしてのプラットフォーム)」の略。
アプリケーションソフトが稼働するためのデータベースやプログラム実行環境などが提供されるサービスのことを指します。プログラムだけを用意すればよいというメリットがある一方、データベースの設定やプログラムの実行環境に制限があるので、開発の自由度は下がります。インフラから開発する手間を省きたいけれど、ある程度カスタマイズしたいというときに利用するのが良いでしょう。Google Apps EngineやMicrosoft AzureなどがPaaSです。
システムやアプリケーションの開発では、ハードウェア(CPU、メモリ、ストレージなど)、ネットワーク、OSやミドルウェアといった開発環境を準備する必要があります。
開発したいシステムやアプリケーションにマッチした開発環境の構築は、調査やミドルウェア動作確認、試行等の負担も大きく、開発が開始できるようになるまでの期間を必要とします。
PaaSの場合、正常に動作する開発環境を事前準備なしで、インターネット経由ですぐに利用することができます。
システムやアプリケーションの開発には、ハードウェアやインフラといった設備を必要としますが、PaaSではベンダー側が所有するので、設備投資といった名目の費用を抑えることができます。
ハードウェアやインフラは故障や通信障害といったトラブルに見舞われるリスクがあります。
開発環境のハードウェアやインフラを自社で導入した場合、当然トラブルが発生したときのリカバリやミドルウェアの更新なども自社で行わなくてなりません。
PaaSでは、トラブルが発生した時の対応や保守、運用などはPaaSの提供者が実施するため、管理・運用・保守の負担が大幅に削減します。
PaaSの中には、Microsoft AzureのAzure Machine Learning Studio、Google CloudのDialogflowなど、ローコード、ノーコードでアプリケーションの開発が可能なプラットフォームがあり、プログラムスキルが高くなくても対応できるため、開発のハードルを下げることができます。
PaaSは開発環境、開発したシステムやアプリケーションの性能を左右するCPUやストレージ、OSとアプリケーションとの橋渡しを担うミドルウェアを自由に選ぶことができません。
CPU能力や大規模なデータを必要とする開発環境の利用、負荷の高いシステムやアプリケーションの利用・提供等でスペックが不足し、結果として開発効率の低下、使用感の悪さ、といった状況を招いてしまいます。
PaaSは開発環境も含まれており、開発に使用するプログラミング言語は、基本、開発環境に依存することになります。
使い慣れたプログラミング言語やミドルウェアが非対応だった場合、代替手段を模索しなければならなくなるなど、開発効率を低下させてしまう恐れがあります。
PaaSの設備等の実体は、ベンダー側が所有・管理しており、ユーザーはこれらを利用させてもらっていることになります。
PaaSに保存されているデータ等のセキュリティ対策はベンダー側が担うことになりますが、セキュリティ対策が脆弱な場合、ウイルス感染や情報漏洩といったリスクをユーザー側が抱えることになります。
PaaSを提供している代表的なクラウドサービスの例として、Amazon Web Services(AWS)、Microsoft Azure、Google Cloud Platform(GCP)などが挙げられます。
Amazon Web Services(AWS)はAmazonが提供するWebサイト運用・ビッグデータ分析など100種類以上ものインターネットサービスをまとめた総称で、世界最大のシェアを誇るクラウドサービスです。
AWSのPaaSの例としては、「AWS Elastic Beanstalk」や、サーバレスPaaSの「AWS Lambda」、「Amazon S3」があります。
AWS Elastic Beanstalkとはインフラ環境について考慮することなくクラウド上でアプリケーションのデプロイと管理ができるサービスです。
AWS Lambdaは、プログラムの実行環境をサーバレスで提供するサービスで、ユーザーはプログラム実行環境を気にすることなく、実行したい処理・プログラムの制作に専念できます。
「Amazon S3」は、Simple Storage Serviceの略称で大量のデータの保存、静的コンテンツ配信などの機能を提供します。
Microsoft AzureはMicrosoftが提供するクラウドサービスです。
他のPaaSと比べてコストが安い、Windows系のオンプレミスサーバーとの親和性が高い、様々なOSや言語に対応可能などを強みとしています。
AzureのPaaSの代表的なものとしては、『Azure App Service』や、サーバレスPaaSとしては『Azure Functions』が挙げられます。
『Azure App Service』は、インフラを構築、管理せずにWindowsまたはLinux上でJavaやPHPといった任意のプログラミング言語で様々なアプリケーションが構築できるサービスで、『Azure Functions』は、サーバを構築することなくトリガーが発生すれば事前に登録したプログラムが実行するサービスです。
Google Cloud PlatformはGoogleが提供するクラウドコンピューティングサービスの総称で、一定の使用量までは無料で使用できる従量課金制のPaaSです。
Google社内で使われているテクノロジーやインフラが利用できるので、安定したインフラ環境、スピードと安定性、AI分野のサービスの充実などを強みとしています。
GCPにおけるPaaSはGoogle App Engine(GAE)というサービスで提供しており、Googleの安定したインフラ上で、Go、Java、.NET、Node.js、PHP、Python、Ruby などの言語で、Webアプリケーションの開発、運用が行えます。
IaaSは「Infrastructure as a Service(サービスとしてのインフラ)」の略。
情報システムの稼働に必要な仮想サーバやハードディスク、ファイアウォールなどのインフラを、インターネット上のサービスとして提供する形態を指します。SaaSやPaaSなどと違って自由度が高く、ハードウェアのスペックやOSを好きなように選べます。その分、OSやハードウェア、ネットワークの知識が必要になります。セキュリティ対策も考えなければなりません。
IaaSはベンダー側に設置した物理サーバやその周辺のインフラを、インターネットを介して使用します。開発のための設備を自社に設置するための時間、費用、スペースといった問題を解決してくれます。
IaaSは、従量課金制のため、導入時に高額なサーバを購入する必要がないため初期費用が抑えられます。構成したCPU、メモリ、ストレージのスペックに応じて使用料金が決定しますので、過剰なスペック等に料金が発生することなく適切なラーニングコストで利用し続けられます。
IaaSは、システムの開発・構築に必要なネットワーク・サーバー・ストレージの機能までを提供するサービスなので、プラットフォームやアプリケーションを自由に選んで利用することができます。
PaaSやSaaSで困難だった独自性の高いシステム、特殊なシステムとの連携などに柔軟に対応できます。
IaaSは、必要に応じたCPU、メモリ、ストレージといったハードウェアリソースの変更に対応しています。
ユーザーの増加、減少に応じて、スケールアップ・ダウンに対応しているので、結果として従量課金のIaaSは適切なラーニングコストの負担を実現してくれます。
IaaSはOSのアップデート、OS/ネットワークなどダウン時の復旧、定期的な再起動やメンテナンスをベンダー側が対応するので、自社ですべてを設置するオンプレミスに比べて、保守・管理の負担を大幅に軽減してくれます。
また、IaaSの実体は、サービスを提供するベンター側に設置しているため、災害時・緊急時の事業継続計画であるBCP(Business Continuity Plan)といった対策にも有用です。
IaaSは、CPU、メモリ、ストレージ、OSとインフラ機能だけの提供となるので、必要なミドルウェアやソフトウェアはユーザー側が用意して、開発環境を整えたりする必要があります。
自由度が高いため、ユーザー側には、自力で環境を構築したり、トラブルに対処したりするための専門知識が必要になります。
IaaSはPaaSやSaaSと異なり、ミドルウェアやアプリケーション等はユーザー側が導入することになります。
これらの管理はベンダー側の管轄外になるので、運用、保守、管理等に加え、トラブルの対応もユーザー側で対処する必要があります。
PaaSと同様、Google Cloud Platform(GCP)やAmazon Web Services(AWS)やMicrosoft Azureが代表的です。
Google Cloud Platform(GCP)はGoogleが提供するクラウドコンピューティングサービスの総称でIaaS向けのサービスとしては、Google Compute Engine(GCE)があります。
Google Compute Engine (GCE) は、 Google Cloudで提供している仮想マシン(VM)で、Google が用意したインフラストラクチャ上に、Linux および Windows ベースの仮想マシンを立ち上げられるサービスです。
Amazon Web Services (AWS) はAmazonが提供する商用ウェブサービスでIaaS向けのサービスとしては、Amazon Elastic Compute Cloud(Amazon EC2)があります。
OSを乗せた仮想環境をクラウド上に素早く作ることができ、仮想環境や様々なCPU、メモリ、ストレージの構成、ファイアウォール機能も用意されていますので、仮想環境構築とともにセキュリティ対策も行うことができます。
Azureはマイクロソフトの管理するデータセンターを通して提供されるクラウドコンピューティングサービスで、IaaS のサービスとして、Azure Virtual Machinesがあります。
Azure Virtual Machines は、IaaS の仮想マシンとして、アプリケーションやミドルウェアの実行環境や、バックアップ環境として利用するのに適しており、また、サービスを提供する本番環境としてだけではなく、アジャイル向きの開発環境やテスト・検証用環境など、様々な用途向けに自由に利用することができます。
SaaS、PaaS、IaaSの違いを図化してみます。黄緑のセルが提供されている部分です。
OSのレイヤーから下を対象に提供するクラウドサービスがIaaS。ミドルウェア層までを提供するクラウドサービスがPaaS、アプリケーションまでを提供するクラウドサービスがSaaSとなります。
なお、図中に示す各レイヤーの機能は以下になります。
レイヤー | 説明 |
アプリケーション | ある特定の機能や目的のために開発・使用されるソフトウェアのことで、クラウドサービスの場合、仮想サーバ上で動作し、ユーザーはインターネットを通じて使用する。 |
データ | アプリケーションで生成、使用するデータのことで、クラウドサービスの場合、仮想サーバ上に保持、管理される。データそのもののバックアップが目的のサービスもある。 |
ランタイム | アプリケーションの開発・実行の両方の機能を備えたソフトウェアから、開発の機能を省き、実効の機能のみを取り出したプログラムやファイルのこと。 |
OS | 仮想サーバのオペレーション(操作・運用・運転)を司るシステムソフトウェア。仮想サーバの場合、ホストOS型とハイパーバイザー型に分別されます。 |
仮想化 | 物理サーバの中でサーバを動作させることで、物理サーバの中には、複数の仮想サーバの配置が可能。 |
物理サーバ | サーバ用のハードウェアのこと、もしくは1つのサーバ用ハードウェア上に1つのOSをインストールして運用するもの |
ストレージ | データを記録するための媒体のことで昨今ではアクセス速度の速いSSDなどのことで、仮想化技術においては、1つの物理サーバのリソースを分割してまるで複数のサーバが存在するように動作させます。 |
ネットワーク | LANなど介したネットワーク通信のことで、仮想サーバの場合、仮想NIC(vNIC)がそれぞれに割り当てられ、その仮想NICは仮想スイッチに接続されて、その仮想スイッチが物理NICと接続して通信します。 |
手軽に使うならSaaS、サーバやセキュリティ全般を見直したいならIaaS、どちらでもないときはPaaSといったように、目的に応じて使い分けるのが良いでしょう。
〇aaSはなんとAaaSからZaaSまで存在します。
〇aaSは、『〇』をAからZのいずれかを示す『X』に置き換え、XaaS(ザース)と呼ばれ、『インターネットを通じてクラウドによって提供されるサービス全般』のことを指します。
XaaS(ザース)についてはデータのじかんの以下の記事で紹介していますので、詳しくはこちらをご参照ください。
VPSとは、Virtual Private Serverの略で、IaaSと同様に1台の物理サーバを、仮想化技術を利用して複数の仮想サーバに分割し、その分割した仮想サーバをユーザに貸し出すサービスのこと(参考記事)。「仮想サーバである」「自分で管理する」「スペックを選べる」という点でVPSは技術的にはIaaSと似ていて、違いがわからないという人もいると思います。
実は、IaaSとVPSとの違いは、料金の支払い方法にあります。IaaSは「従量課金(サービスを利用した量に応じて請求額が変化する)」である一方、VPSは月額固定の請求となっています。前者は請求額が変化するため臨機応変にリソースの量を変えられますが、後者はリソースを変えるために契約を変更する手間が発生することに注意です。
また、IaaSではファイアウォールやVPN(Virtual Private Network)を操作できますが、VPSのみでネットワークを構築しようとすると、機器分の契約の必要があるなど柔軟ではありません。VPSで十分な要件の場合はVPSを利用し、VPSで実現できなさそうな要件の場合に、IaaSを利用するのが良いかと思います。
(安齋慎平)
メルマガ登録をしていただくと、記事やイベントなどの最新情報をお届けいたします。
30秒で理解!インフォグラフィックや動画で解説!フォローして『1日1記事』インプットしよう!