クラウドアプリケーションを効率的に開発するには、オンプレミスとの連携について知ることや、その他ポイントを押さえることが重要です。これからの時代はクラウドアプリケーションの活用は必須と言っても過言ではないので、ぜひ参考にしてください。
クラウドアプリケーションとは
クラウドアプリケーションとは、オンラインで使用するアプリケーションです。具体的には、Evernote、Dropbox、zoomなどがあります。クラウドアプリケーションと同じようなアプリケーションとして、Webアプリケーションがあります。
クラウドアプリケーションは基本的な機能がオンラインサーバー上にあり、なおかつデータもオンラインサーバー上に保存されます。そのためオンライン環境での使用が大前提になっていますが、一部の機能はオフライン環境でも使用が可能です。
クラウドの3つの利用形態
クラウドアプリケーションには、「SaaS・PaaS・IaaS」の3形態があります。
SaaS
従来、オンプレミスで運用していたソフトウェアを、インターネット経由で提供・利用する形態のことです。「Software as a Service」の略で、オンプレミスと比較するとオンラインのメリットを大きく受けられます。
具体的には、「データをインターネット上に保存することができる」「PC・スマートフォン・タブレットなど端末を選ばずにデータにアクセスできる」「複数の人間が同一データを共有し、さらに編集もできる」などが挙げられます。
PaaS
ソフトウェアが稼動するためのハードウェアやOSなどのプラットフォーム一式を、インターネット上のサービスとして提供する形態のことです。「Platform as a Service」の略語です。
PaaSはSaaSの進化形で、クラウドを提供するサービスです。SaaSは基本的に自社内で使用するためのものですが、PaaSは外部にクラウドをサービスとして公開するということです。有名なPaaSとしては、Google App Engine、Microsoft Azureなどが挙げられます。
IaaS
仮想サーバーやハードディスク、ファイアウォールといったインフラを、インターネットサービスとして提供する形態のことです。「Infrastructure as a Service」の略語です。代表的なサービスとしては、Google Compute Engine、Amazon Elastic Compute Cloud (EC2)が挙げられます。
PaaSと近い特徴がありますが、IaaSはPaaSよりも、さらに土台となる部分をクラウド提供するという違いがあります。
クラウドアプリケーション開発のメリット
クラウドアプリケーション開発には以下のようなメリットがあります。
- 開発環境の整備が不要
- コストや開発期間がかからない
- 実務的な機能がプラットフォームに備わっている
- リソースの拡大・縮小が可能
それぞれのメリットについて解説していきます。
開発環境の整備が不要
オンプレミスの場合は開発環境の整備も含めてすべて社内で行わねばなりません。もちろん外注も可能ですが、その場合も社内で部分的には行うことが少なくないでしょう。一方で、クラウドアプリケーションならそもそも開発が不要です。もし開発を行う場合も、その環境がクラウドとして提供されるので、環境構築する必要がないのです。
コストや開発期間がかからない
従量課金制を採用しているサービスが多いため、導入コストがほとんどかかりません。データセンターの運用が不要なため、人件費を始めとした運用・保守コストも抑えられます。
オンプレミスのアプリケーションはすべての機能を個々の端末にインストールしなければならないので、その分コストがかかります。クラウドアプリケーションは一部の機能を端末にインストールするだけで、あとの機能はオンラインサーバー上に存在します。
そのため初期費用が安く済み、毎月クラウドサービスに料金を支払うような形で対応できます。結果的に、管理・維持費もクラウドアプリケーションの方が安く済むケースが多くなります。
加えて、オンプレミスのサービスはゼロから設計して使用するので、開発にも時間がかかります。一方でクラウドアプリケーションの場合はオンライン上にすでにあるサービスを利用すればよいので、サービスを利用するまでの期間が短いです。
実務的な機能がプラットフォームに備わっている
クラウドアプリケーションの利用に必要な機能は仮想環境上に搭載されています。仮想環境とはオンライン上にあるサーバーの上に、あたかも端末が存在するかのように機能する環境のことです。平たく言えばオンラインサーバー上に機能があって、個々の端末からそこにアクセスすることで機能を利用します。
リソースの拡大・縮小が可能
オンプレミスの場合、例えばアプリケーションの機能を拡大するための物理的なハードウェアの容量が必要になります。一方で、クラウドアプリケーションの場合はオンライン上でアプリケーションを拡大するので、物理的な環境もクラウドで完結します。
サービス提供しているサーバーは大容量なので、物理的な容量を気にする必要がありません。逆に縮小する場合も同様で、オンプレミスの場合は縮小した分、物理的な容量を持て余してしまうこともあり得ます。しかしクラウドの場合は容量に応じて契約を変更すれば料金を抑えることにつながるので、コストに無駄がなくなるのです。
クラウドアプリケーション開発で注意すべき3つのポイント
クラウドアプリケーション開発では、以下のポイントに注意する必要があります。
- 既存システムとの連携
- セキュリティの確保
- クラウドサービス自体の終了
それぞれの注意点について解説していきます。
既存システムとの連携
今までオンプレミスで使用していたシステムがある場合、これとクラウドアプリケーションを連携させる必要があります。すべてを一度にクラウド化して連携できればよいですが、オンプレミスも現状維持で必要なケースもあり、仮にクラウド化するとしてもクラウドアプリケーション同士を連携させる必要があるでしょう。
既存システムとの連携を図るのに便利なのがMicrosoft Azureです。Microsoft AzureはIaaSとPaaSを提供するサービスで、オンプレミスの物理的な環境と仮想マシンを連携させる土台を提供します。当然単にサーバーの領域を割り当ててスペースを提供するだけでなく、「オンプレミスなアプリケーションとクラウドアプリケーション」また「クラウドアプリケーション同士」を連携させるための機能まで充実しています。
セキュリティの確保
Microsoft Azureは既存のオンプレミスとクラウドアプリケーションを連携させる便利なツールですが、クラウド化するにあたってはセキュリティ面が心配されます。
Microsoft Azureはセキュリティを徹底しています。
まずMicrosoftのサービスなので、信頼性はあると言えます。Microsoftのサービスだけあって、全世界で計3,500名以上のサイバーセキュリティの専門家から成るチームがデータを管理しています。
またエンジニアが人力でデータを管理するだけでなく、組み込みソフトで自動的にIDやデータを管理し、不正な動きがあったら随時検知する、という仕組みになっています。こうした不正な動きに対してはセキュリティ情報を常に更新すると同時に、外部からのサイバー攻撃にも迅速に対応しています。
クラウドサービス自体の終了
クラウドサービスを利用してアプリケーションを稼動している場合、サービス終了があると社内のシステムを変更しなければなりません。その点Microsoftのサービスであれば信頼はできるでしょう。
クラウドサービスが終了する可能性が比較的低く、仮に終了したとしても代替案などが提示されるからです。ただし、大手のサービスなら絶対にサービス終了しないというわけではありません。実際に、国内大手のNTTコムはクラウドサービスを終了しています。その理由は、海外のクラウドサービスに押さえられて契約数が伸びなかったからです。逆に言えば、クラウドサービスは海外のサービスが強いとも考えられるでしょう。
クラウドサービスは場所の制約を受けずに世界にサービス配信できる点に強みがあり、日本のクラウドサービスも市場が世界規模になる分、グローバル企業がライバルになります。
現状では日本のクラウドサービスは海外のサービスに押されているので、日本企業としては海外のクラウドサービスを使用した方が得策なケースも多いでしょう。
サービス終了という事態を防ぐために、ユーザー数の多い海外のクラウドサービスと契約し、また契約の内容も確認しておく必要があります。例えばMicrosoft Azureのように、サービス終了前に告知を行う、サービス終了して困る企業に対して代替案、移行案を提示する、といったサービスだと安心です。
まとめ
クラウドアプリケーションを効率的に開発するためには、知名度の高い海外サービスを利用することが重要です。そうすることで、「既存システムとの連携」「セキュリティ確保」「サービス終了の確率を下げる」そして「万が一終了しても大丈夫なように備える」といったことが可能になります。
クラウドアプリケーション移行は便利な反面初期はどうしても時間、労力、手間がかかるので、これらを最小限に抑えつつクラウドアプリケーションのメリットを得ることが重要です。