最終更新日: 2022年12月8日
アプリケーションやシステムの開発環境は、これまでローカルで構築されてきました。しかし近年は利便性の面から、クラウドへ移行する例が少なくありません。この記事では、開発環境のクラウド化とは何かといった基本からメリット・デメリット、代表的なサービスまでご紹介します。
クラウドの種類
そもそもクラウドとは、コンピューター資源や各種ソフトウェア・システムをオンライン経由で提供するサービスの総称です。ユーザーはインターネットをはじめとしたネットワークでクラウドに接続し、目的のサービスを利用します。 本題に入る前に、以下、クラウドの3つの種類について解説します。
・IaaS(Infrastructure as a Service)
・PaaS(Platform as a Service)
・SaaS(Software as a Service)
以下、それぞれの種類に関する特徴について解説します。
IaaS(Infrastructure as a Service)
オンライン上のコンピューター(CPU・メモリ・ストレージなど)やネットワークといったインフラ環境を提供する形態です。IaaSでは手元の開発環境と同様に、必要な開発環境を1から自由に構築できます。PaaS/SaaSに比べ、最も自由度が高いクラウドの形態です。
PaaS(Platform as a Service)
オンライン上のプラットフォーム(CPU・メモリ・ストレージ・OS・ミドルウェアなど)をセットで提供する形態です。利用可能な開発環境の内容は決まっているため、IaaSと比べ自由度は劣ります。一方ですでに構築済みの開発環境を利用できるため、IaaSより簡単に利用可能です。
SaaS(Software as a Service)
オンライン上の開発環境に加え、ソフトウェアまでセットにして提供するサービスです。ミドルウェアまで提供されるPaaSと異なり、SaaSではその上の開発用ソフトウェアまで提供されます。自由度はIaaSよりも下がる反面、最も手軽に利用可能です。
【参考:各形態で提供(セット提供)される範囲の比較】
ハードウェア・ネットワーク | ミドルウェア | OS | ソフトウェア | |
IaaS | 〇 | – | – | – |
PaaS | 〇 | 〇 | 〇 | – |
SaaS | 〇 | 〇 | 〇 | 〇 |
開発環境のクラウド化とは
開発環境のクラウド化とは、手元のコンピューター上にある開発環境をクラウド上に移すことです。開発環境のクラウド化はコストや利便性の面でいくつかのメリットがあり注目されています。ちなみに前項で解説したクラウドの3種類のうち、開発環境ではIaaSが使われることが多くなっています。
オンプレミスとの違い
開発環境をクラウド化するにあたり、気になるのはオンプレミスとの違いです。以下、オンプレミスとクラウドの違いを比較表にしてまとめます。
【オンプレミス/クラウド比較表】
オンプレミス | クラウド | |
初期コスト | サーバーやネットワークをゼロから用意する必要があるため高い | すでに構築済みの環境が使えることから、一般的に初期費用は無料 |
ランニングコスト | 人件費・電気代などが必要 | 従量制・定額制で料金が発生 |
導入までにかかる時間 | 機器やネットワークをゼロから用意する必要があるため、導入まで時間がかかる | 構築済の環境を利用するため、すぐに利用開始できる |
拡張性 | 拡張は自由に可能だが、変更するのに時間とコストがかかる | 拡張の自由度はオンプレミスに比べ劣るが、簡単に拡張が可能 |
カスタマイズ性 | 自社で全て選べるのでカスタマイズ性は高い | オンプレミスに比べるとカスタマイズ性は低い |
セキュリティ性 | 自社の閉じた環境内に設備やデータを確保できるためセキュリティ性は高い | オンプレミスに比べるとセキュリティ性は低い。※運用でセキュリティ性を高めることは可能 |
ハードウェア・ネットワークの管理 | 自社で行う必要がある | 事業者が行ってくれる |
冗長性の確保 | 難しい | 簡単 |
障害発生時の対応 | ・自社で復旧を行う ・自社で対応するため状況を把握しやすい | ・事業者が復旧を行う ・事業者が対応するため、オンプレミスに比べ状況を把握しづらい |
これらの違いを踏まえ、次の項から開発環境をクラウド化するメリット・デメリットをみていきましょう。
開発環境をクラウド化するメリット
オンプレミス・クラウドの違いを踏まえ、開発環境をクラウド化するメリットとはなんでしょうか。ここでは特に大きなメリットを紹介します。
開発スピードのアップ
オンプレミスで開発環境を用意する場合、ハードウェア・ソフトウェアの手配から環境構築の作業まで全て自分でしなくてはいけません。一方、クラウドでは構築済みの環境を利用可能です。使い始めるまでの時間を大幅に短縮できます。
また何らかの問題で環境を作り直したり、より高スペックの環境が必要になったりしても、クラウドならすぐに新しい環境の用意が可能です。オンプレミスのように、改めてハードウェアから用意をはじめるといった必要はありません。
これらの点から、開発環境をクラウド化することによって、開発のスピードアップをはかれるわけです。
拡張性が高い
オンプレミス環境の場合、より高いスペックのコンピューターが必要になったとき、ハードウェアの手配からはじめないといけません。一方クラウドであれば、管理画面上ですぐにスペック変更が可能です。利用するコンピューターの追加も手間がかかりません。このように環境を柔軟に拡張できる点が、クラウド化の大きなメリットといえます。
ハードウェアやネットワークなどの管理が不要
オンプレミスの開発環境を利用する場合、ハードウェアやネットワークの管理は全て自社で行わなくてはなりません。何か問題が発生した際も、全て自社で解決する必要があります。
一方、クラウドであればそれらの管理を行うのは事業者です。そのためユーザーは手軽にクラウド上の開発環境を利用できます。
リモートワークに適している
クラウド上の開発環境であれば、インターネット経由でアクセスできます。インターネット環境さえあれば、自宅や出先のカフェなどからも開発環境が使えるわけです。そのためリモートワークにも適しています。
デメリットはある?
開発環境のクラウド化には、デメリットもないわけではありません。まずクラウドを利用する場合、月額従量制・定額制などでランニングコストがかかります。(オンプレミス環境でも環境維持のための工数・人件費や電気代はかかる。)
またクラウドへは、必ずインターネットなどの接続手段が必要です。手元の開発環境のように、ネットワーク環境がなくても利用できるといったことはありません。
ただし開発環境をクラウド化するメリットから比べれば、デメリットは少ないと言えるでしょう。自社の運用において、開発環境のクラウド化を検討する価値は十分にあります。
代表的なサービス
以下、開発環境のクラウド化に使える代表的なクラウドサービスをみていきましょう。自社でクラウド環境を選定する際の参考にして下さい。
AWS
Amazon社が運営するクラウドサービスです。クラウドサービスの中では最も歴史が古く、サービスの種類も多くなっています。クラウドの利用を開始する際は、最初に検討されるサービスです。
AWS CodeBuild
https://aws.amazon.com/jp/codebuild/
Microsoft Azure
Microsoft社が運営するクラウドサービスです。Office製品との親和性が高いことが、他と比較した際の大きな特徴といえます。またオンプレミスのActive Directoryとの連携も容易です。
Azurepipeline
https://azure.microsoft.com/ja-jp/services/devops/pipelines/
GitHub Codespaces
GitHub Codespacesは、ソースコード管理サービス「Git Hub」のクラウド開発環境です。任意のブラウザ上で起動する「Visual StudioCode」でソースコードを編集できます。ユーザーはGitHubから1クリックでGitHub Codespacesを起動させ、すぐに利用可能です。
GitHub Codespaces
https://github.co.jp/features/codespaces
Circle CI
Circle CIとは、クラウド型のCI/CD※(継続的インテグレーション/継続的デリバリー)サービスです。他にもCI/CDを実現するツールはありますが、Circle CIはSaaSサービスなのでサーバー構築の必要がありません。
※
ソフトウェアのビルド・テスト・デプロイまでの流れを自動化するシステムのことです。CI/CDを使うことで開発者の負担が軽減されるなどのメリットがあります。
Circle CI
https://circleci.com/ja/
まとめ
開発環境のクラウド化とは、文字通り開発環境をクラウドへ移すことです。クラウドでは必要なインフラなどが用意されているため、スピーディーに開発を開始できます。その他、必要に応じてスペックを変更できるなど、開発環境のクラウド化にはメリットが多いです。利用できるクラウドサービスの例として、Amazon社のAWSやMicrosoft社のMicrosoft Azureなどがあります。

ソフトウェアテストに従事して約20年。 テストマネージャーとして、Webシステムやスマホアプリ、ゲーム等の様々なソフトウェアのテスト計画策定、テストチーム構築、テスト管理、品質分析および品質向上施策提案などに携わる。保有資格として、IVECハイレベル5やJSTQB AL TMなど。現在は、AIQVE ONE株式会社にて、ソフトウェアテストについての社員教育や、テストプロセス・テスト手法の仕組み化・標準化に取り組んでいる。
【著作】『ゲームをテストする バグのないゲームを支える知識と手法』(翔泳社)