本記事では、近年「クラウドファースト」という言葉が存在するように、日本で高い注目を集めているクラウド開発についてご紹介します。クラウドとはそもそも何か?という基本的な内容から始め、クラウド開発を行うメリットや導入の際の検討事項も併せてご紹介します。

 

クラウド開発とは?

クラウド開発とは文字通り、「クラウド上でアプリケーションやシステムを開発すること」を意味します。以下では、そもそもクラウドとは何なのでしょうか?クラウドの種類とは?結局クラウド開発ってどういうこと?ということについて、順を追ってご紹介していきます。

クラウドとは?

結論から述べると、クラウドとはクラウドコンピューティングの略称であり、「クラウドサービスプラットフォームからインターネット経由でデータベースやストレージ、アプリケーションをはじめとした、さまざまな IT リソースを利用することができるサービスの総称」です。

クラウドという言葉は文字通り、「雲」に端を発する概念となります。つまりどういうことかというと、従来はデータやアプリというものはパソコンの中にのみ存在していましたが、現在ではネットワークで繋がった雲のようなもの(=クラウド)上に保存されている、ということです。

クラウドの3つの種類とは?

クラウドは3つの種類に大別されます。

  1. SaaS
    SaaS(Software as a Service)とは、インターネットを経由して、必要な機能を必要な分だけ利用することができるソフトウェアサービスを提供します。例えば、Gmail・OutlookなどのメールツールやTwitter・FacebookなどのSNSがSaaSに該当します。
  2. PaaS
    PaaS(Platform as a Service)とは、インターネット上でソフトウェアを構築および稼働させるためのプラットフォームであるサーバーやOS・ストレージなどをセットでサービスとして提供します。例えば、Google App EngineやAzure App ServiceなどがPaaSに該当します。
  3. IaaS
    IaaS(Infrastructure)とは、コンピュータシステムを構築および稼動させるための基盤(仮想マシンやネットワークなどのインフラ)そのものを、インターネット経由のサービスとして提供します。例えば、AWSやMicrsoft AzureがIaaSに該当します。

クラウド開発とは?

クラウド開発とは、上記3つのクラウドのいずれかを用いて、各クラウド上でアプリケーションやシステムを開発することです。

具体的には、SaaS上でアプリケーションやシステムを開発するとは、インターネット上に存在するIDEツールなどの開発系ソフトウェアを利用して、新規のアプリケーションやサービスを開発することを意味します。開発をサポートする機能も多数備わっているため初中級者でも利用できます。

PaaS上でアプリケーションやシステムを開発する場合は、SaaSのようにインターネット上のソフトウェアを利用する特定のOSやミドルウェアなどの開発環境を利用して、その上でアプリケーションやサービスを開発します。そのため、SaaSよりも利用に関する自由度は大きいものの開発のための知識やスキルを要するということです。

IaaSでは、メインメモリ・CPUなどのインフラのみを利用します。そのため、必要な開発環境自体をゼロから構築することができるのです。したがって、開発の難易度は上がりますが、より自由自在にアプリケーションやサービスの開発を行うことができます。

開発のデプロイモデル

クラウド開発の他にも「オンプレミス」や「ハイブリッド」と呼ばれる開発のデプロイモデルが存在します。

  • オンプレミス
    IT システムを構築する際に、サーバーやネットワーク機器を購入(リース契約など)して、自社の建物内に設置・運用していくことを「オンプレミス」あるいは「自社運用型」といいます。リソースをオンプレミスでデプロイすることや、仮想化およびリソース管理のツールを使用することが、「プライベートクラウド」と呼ばれることがあります。オンプレミスでのデプロイではクラウドコンピューティングのメリットの多くを利用できないものの、専用のリソースを提供することが可能なため、この方法が必要になることもあります。
  • ハイブリッド
    ハイブリッドデプロイとは、クラウドベースのリソースと、クラウド上にはない既存のリソースとの間でインフラストラクチャとアプリケーションを接続する方法です。ハイブリッドデプロイの最も一般的な方法は、クラウドと既存のオンプレミスのインフラストラクチャとの間で、クラウドのリソースを社内システムに接続することで組織のインフラストラクチャをクラウドに拡張し、大きくするというものです。

 

クラウド開発の5つメリットとは?

これまではそもそもクラウド開発とは何か?ということに焦点を当ててきました。以下では、クラウド開発を利用するメリットについて5つご紹介します。

コスト削減

クラウドでは、リソースを利用したときに利用しただけのコストを払います。つまり、これまで償却コストとしてデータセンターやサーバーを利用していたところから、変動コストとして計上することができるのです。結果として、自社開発環境よりもクラウド開発環境の方が低いコストを実現することができるのです。

データセンターの運用が不要に

従来のオンプレミスな開発環境では、インフラだけではなくシステム更新などのメンテナンスに知識や技術をもった担当者の人件費もかかりますが、クラウドではそのような人的リソースを費やす必要がありません。

キャパシティ予測が不要

必要に応じてリソースの増減を行うことができるので、最大のインフラ容量を予測する必要がなくなります。アプリケーションの導入に先立ってキャパシティを決めてしまうと、高額で無駄なリソースの発生や機能が制限されたりします。クラウドなら、必要に応じてアクセスしリソースの調整やスケールアップやスケールダウンの実行をわずか数分で行うことができるため、そのような問題が発生する心配がありません。

速度と迅速性の向上

クラウド環境では、新しい IT リソースを簡単に利用できます。従来は新しい IT リソースの導入に数週間単位の時間を要していましたが、クラウドなら、分単位の短い時間を要するだけで開発者が新しい IT リソースを利用することが可能になります。結果として、検証や開発にかかるコストと時間が大幅に減るため、組織の俊敏性も大幅に向上します。

システムの柔軟性

オンプレミスでは、不要になったITインフラの処理、また、拡張が必要な場合は追加インフラの調達が必要になります。一方で、クラウドでは需要に応じてリソースの利用中止や拡張などを行うことができます。 クラウドには必要な時に必要なだけ利用できるという柔軟性があるので、ニーズに合わせて利用することが可能です。

 

クラウド開発を導入する際の検討事項とは?

クラウド開発にメリットが多いことは確かですが、導入する際にいくつか検討するべき課題が存在します。

既存システムの要件整理

まず始めに、既存システムの要件を確認する必要があります。基幹システムのような大規模システム環境をクラウド化したほうが、企業にとっても効果が高くなります。一方で、業務システムのデータ種類によっては、社内で管理しなくてはならない場合もあるかもしれません。社内のシステム環境やセキュリティポリシーの現状をアセスメントすることで、既存システムの様々な環境が把握できるでしょう。既存システムの要件を把握した上で、クラウド開発が適しているか否かの判断をすることが求められるでしょう。

セキュリティ課題

クラウドサービスによっては、セキュリティ面での脆さが存在する可能性があります。クラウド化のプロジェクトが大規模になるほどクラウド基盤のコストや性能に関心が向きがちですが、セキュリティ要件は十分に確認する必要があるでしょう。具体的には、

  • データセンターの物理的な情報セキュリティ対策(災害対策や侵入対策など)
  • データのバックアップ
  • ハードウェア機器の障害対策
  • 仮想サーバなどのホスト側のOS、ソフトウェア、アプリケーションにおける脆弱性の判定と対策
  • 不正アクセスの防止
  • アクセスログの管理
  • 通信の暗号化の有無

など、システムの機密性や可用性により必要となる対策やレベルが異なります。 クラウドサービスのサービス条件や規約などを確認して、セキュリティ体制の強力な事業者を選定することが重要です。

 

まとめ

いかがでしたでしょうか?本記事では、NashTechがグローバルで活躍する多くの企業の成長をサポートした経験を活かし、クラウド開発の基本からメリット・導入にあたっての検討課題をご紹介しました。クラウド開発のメリットは多く存在する一方で、単に導入をすればいいというほど単純なものでもありません。専門家の意見を聞く機会があると企業導入を検討する良いきっかけになるのではないでしょうか?

私たちNashTechは、グローバルで得た知見を活かし多くのお客様の技術導入をサポートしてきました。本記事を読んで少しでも弊社にご興味をお持ちいただけましたら、こちらまでお気軽にお問い合わせください。