クラウドコンピューティングが普及したことで、開発現場に大きな変化が起きています。従来の開発環境からクラウド環境への移行は、開発プロセスから、コストやセキュリティ、エンジニア・プログラマーの働き方まで、大きく変わることになります。開発現場で使われている様々なクラウドサービスから、導入にあたっての注意点まで幅広く解説していきます。
普及が加速するクラウドコンピューティング
「クラウド」と呼ばれるサービスは、みなさんも日常的に使っているでしょう。
改めて説明すると、クラウドとはクラウドコンピューティングの略称で、第三者が提供するアプリケーション・データベース・OS・サーバーなどの各種コンピューティングリソースをインターネット経由で利用する仕組みを指します。現在主流のクラウドコンピューティングサービスには、AmazonのAWS、GoogleのGoogle Cloud Platform、MicrosoftのMicrosoft Azure(アジュール)があります。
クラウドの対になる概念は、「オンプレミス」です。これは、ハードウエアやソフトウエアをすべて自前で用意し、運用・保守管理する仕組み。会社の一角にやたら冷房の効いたサーバー室があって……という昔ながらのイメージを想像するといいでしょう。
クラウドコンピューティングは、何を提供するかによって、IaaSとPaaSとSaaSの3種類に分けられます。
IaaS(Infrastructure as a Service:イアース)は、サーバーやストレージなどの基本的なインフラ部分を提供するサービス。Amazon Web Services (AWS)やGoogle Cloud Platform (GCP)、Microsoft Azureが提供するインフラを使うことで、顧客は独自のアプリケーションやデータを管理することができます。
PaaS(Platform as a Service:パース)は、インフラに加えてOSなどが提供されており、アプリケーションの開発に適したサービスです。開発者はアプリケーションのコードのみを気にし、インフラストラクチャ、OS、サーバー設定などの下層の詳細は考慮する必要がありません。代表的なサービスとしてHeroku(ヘロク)、Google App Engineなどが挙げられます。
SaaS(Software as a Service:サース)は、クラウド上で動作するソフトウエアアプリケーションを提供するサービス。ユーザーは、インターネット経由でソフトウエアにアクセスし使用するため、ソフトウエアのインストールやメンテナンスを気にする必要がありません。Microsoft Teams、Slack、Zoom、Googleカレンダー、Gmail、Asanaなど、私たちは業務やプライベートで様々なSaaSを利用しています。
システム開発の現場でも、クラウドコンピューティングの活用・導入はますます進んでいます。自分たちが開発するシステムをクラウド上に構築することはスタンダードになっていますし、自社の基幹システムをクラウド環境へ移行させるプロジェクトもよくあります。PaaSを利用して開発工程を進めることも、すでに一般的です。