クラウド開発環境って具体的にどんなもの?

 2019.11.07  ストレージチャンネル編集部

「クラウド(クラウド・コンピューティング)」とは、インターネット上で提供されるサービスの総称であり、クラウド開発環境は読んで字のごとく「本来はパソコン上に構築する開発環境を、クラウド上に移行したもの」です。ちなみに通常の開発環境をローカル開発環境といいます。

ローカル開発環境ではアプリケーション等を開発するにあたり、手元にあるPC内で開発を行っていきます。一方、クラウド開発環境はPCを通じてインターネット上に用意された環境を使い、開発を行っていくわけです。同じようにPCを使いますが、後者ではクラウド開発環境を利用するために基本的にはブラウザへアクセスするだけになり、PC内部には開発環境が残りません。

本稿では、開発環境としてクラウドを視野に入れている方に向けて、クラウド開発環境の概要を説明します。

cloud-development-environment

わざわざクラウド開発環境を利用するのはなぜ?

手元のPCだけでも完結できる開発環境を、わざわざインターネット上に移行する理由とはいったい何でしょうか?

環境構築がとにかく早い

ローカル開発環境における一番のボトルネックは、「環境構築が面倒くさい」ことです。ある開発言語を使用するためには、特定のソフトウェアをインストールする必要があり、それを利用するためにさらに複数のソフトウェアをインストールした上で、設定を書き換えていくなどの作業が必要になります。構築する環境によっては、中上級者であっても1日以上かかる場合があります。

一方、クラウド開発環境では、環境そのものがサービスとして提供されていることから、ユーザーが希望するプランを選択するだけで瞬時に必要な環境が整われたりします。「環境構築がとにかく早い」ことは、開発者にとって大きなアドバンテージですし、開発にかけられる時間が少しでも多い方がよいことは明白です。

壊してもすぐに立て直せる

ローカル開発環境では前述のように環境構築の面倒くささが、負担として重くのしかかります。さらに、手元にあるPCが突然動かなくなった、新しく魅力的な開発環境が登場した、などの状況を考えるとどうでしょうか?環境を容易に整えられないローカル開発環境では、開発に遅れが生じたり、面倒な作業を何度も行ったりしなければいけません。

ではクラウド開発環境はどうでしょうか?手元にあるPCがいくら壊れたとしても、開発環境はインターネット上に作られているため何ら問題はありません。アカウントIDとパスワードを使って、別のPCから同じ環境にアクセスすればよいのです。

新しく魅力的な開発環境が登場した場合でも、今ある環境を壊して新しい環境を簡単に作り出すことができます。

マシンに縛りがない

ローカル開発環境の場合、パフォーマンスは手元のPCが持つスペックに依存します。たとえばWebサービスの開発では、ソフトウェアサポートはLinuxが最も優れていますが、そのためだけにOSをLinuxにするのは稀なケースです。つまり多くの方は、WindowsまたはMacで開発環境を作ります。となると、パフォーマンスが若干低下することは免れません。

さらに、PC自体のスペックが低いとコンパイルや開発系ツールによるメモリ消費で、非常にストレスを感じる環境になってしまうでしょう。

ストレージに関するお役立ち資料

対してクラウド開発環境ならば、スペックは自由に選択できて途中で変えることも容易です。開発によってOSをLinuxで構築することもできれば、Windowsも選べます。手元のPCはクラウド開発環境を利用するためのいわば「コントローラー」であり、環境そのものに影響は及びません。また、最近ではクラウドにはAIやIoTなどの機能が搭載されており、開発環境とはいえかなりのビッグデータを扱うシーンが増えています。そういう意味でクラウドであれば開発が容易でありデータなどの制限がないわけです。

メリットばかりにとらわれないことも大切

前述したメリット以外にも、「プロジェクト毎に開発環境を立ち上げて使い分けられる」や「ローカルマシン(PC)に負荷がかからないため寿命が延びる」、「高性能なローカルマシンを購入しなくて済む」「共同開発が容易」などのメリットがあり、クラウド開発環境の有効性は年々広く認識されています。ところが、デメリットも存在します。

ランニングコストがかかる

一般的なクラウド開発環境は、「どのマシンをどれくらい動かすか?」によって料金が変動します。いわゆる従量課金制であり、使えば使うほどにお金がかかるわけです。この点に関して、「余剰リソースが無くなって効率よく資源を使い、コストの最適化が図れる」と考える方も多いようですが、定期的にお金が出ていくことを考えると、ローカル開発環境よりもコスト高に感じる方が多いでしょう。

ただし、サービスによって料金が大幅に変わりますし、長期利用契約によるディスカウントを受けることも可能なので、使い方次第によってはローカル開発環境よりもお得になる可能性があります。

インターネットが必要になる

ビジネスにインターネットが無いことはありえないので、もはやデメリットとは言えないかもしれません。特にWebサービス開発においてインターネットの存在は絶対なので、特別コストがかかるとも感じないでしょう。しかし、パフォーマンスを維持するのにある程度品質の高い回線は必要なので、環境によっては新しい投資も生まれます。

[RELATED_POSTS]

クラウド開発環境のカテゴリ

最後に、「どのような開発環境があり、どのシーンに最適なのか?」を整理して締めくくりたいと思います。まず、クラウド開発環境は大まかにIaaS/PaaS/SaaSの3つに分類され、それぞれの細かい利用形態が枝木のように分かれています。

IaaS(Infrastructure as a Service)

インフラそのもの(メインメモリ、CPU、ストレージ、OS等)を提供するのがIaaSです。ユーザーがローカル開発環境と同じように、必要な環境をゼロから構築でき、かつ調達時間を限りなく少なくできるため開発迅速性が向上します。スペックを自由に組み合わせることができ、独自の開発環境を構築したい場合におすすめです。

PaaS(Platform as a Service)

特定の開発環境(サーバー、OS、ミドルウェア、ストレージ等)をセットで提供するのがPaaSです。環境のクリーンインストールが不要なので、IaaSよりも素早く環境を整えられるのが大きな利点です。マシンに多少の縛りはあるものの、その要件さえクリアすれば積極的に利用したいサービスです。

SaaS(Software as a Service)

開発環境に加えて、IDEツールなど開発系ソフトウェアをインターネット経由で提供するのがSaaSです。利用要件はPaaS以上に限定されますが、マルチテナントを採用した低コストさが魅力的であり、開発をサポートする機能も多数備わっているため初中級者でも利用できます。

このように、クラウド開発環境と一口に言ってもさまざまな環境がありますので、プロジェクトのタイプなどに応じて最適なものを選択するのが、開発成功に繋がります。

DevOps実現のために必要な真のマルチクラウドプラットフォーム

RELATED POST関連記事


RECENT POST「クラウド」の最新記事


クラウド開発環境って具体的にどんなもの?
ネットアップクラウドデータサービス
ハイパーコンバージドインフラも新たな世代へ NetApp HCI
NetApp All Flash FAS

RANKING人気資料ランキング

FlexPodクラウドアプライアンス
ブログ購読のお申込み