
PaaS(Platform as a Service)とは?クラウドの基礎を分かりやすく解説
前回のコンテンツでは、SaaS(Software as a service)とは?クラウドの基礎を分かりやすく解説という記事を書きました。
SaaSは、いわばプログラミングなどの知見がない人でも、触れる機会が多い言葉だと思いますし、
実際に誰でもが使っているサービスが多々あります。(Gmail, Googleスプレッドシートなど)
しかし、SaaSに比べて、PaaSっていうのはあまり聞きなれない言葉だと思いますし、
実際に使う人もプログラミングをやってる人が多いと思います。
ですので、今日はプログラミングをあまりやらない人にも、分かりやすくPaaSに関して解説できればいいなと思っています。
そもそもクラウドとは?
クラウドじゃないアプリとは?
まず、クラウドとは何かを説明します。
一昔前、クラウド技術が普及していなかった頃は、パソコンにソフトウェアサービスをインストールする必要がありました。
クラウド技術が発達していなかった過去には、ExcelやOutlookなどのソフトウェアサービスがパソコンにインストールされていました。
Outlook
メールソフトのOutlookであれば、ソフトウェアを自分のパソコンにインストールして、自分のパソコンでアプリケーションを開いて、
立ち上がったアプリケーションを操作して、ソフトウェアを動かすわけです。
Excel
エクセルもそうですが、社員の給与計算や勤務表の記録など、ビジネスの世界で作られる帳票類を作成するためには、エクセルを購入しなければなりませんからね。
マイクロソフトからエクセルを購入し、パソコンにインストールし、パソコンでアプリケーションを起動して、そのアプリケーションを使用する。
その後、お使いのパソコンでアプリケーションを起動し、ソフトウェアを実行するように制御します。
クラウドのアプリとは?
では、クラウドが進化した今、クラウドではどのようにアプリケーションが提供されているのでしょうか。
先ほど説明したExcelやOutlookの例とまったく同じことをするサービスがクラウドにあります。
それが「Gmail」と「Google Spreadsheets」です。
Googleスプレッドシート
例えば、「Google Spreadsheet」は、画像を見ればわかるように、まさにExcelのような機能をブラウザ上で実現しています。
ブラウザは、Google Chrome、Safari、Firefoxなど、スマホやパソコンで使用しているものです。
クラウド以前の技術を使えば、コンピュータにインストールしなければならないものも、検索してウェブサイトにたどり着くだけでできるようになります。
Gmail
Gメールも同様に、今まではメールソフトを自分のパソコンにインストールして、そこから誰かにメールを書かなければいけなかったわけですが、
クラウド技術の発展により、ブラウザで検索すれば、ブラウザ簡潔でメール送信が行えるようになります。
つまり、クラウド技術というのは、要約すればブラウザの向こう側にあるソフトウェアを、我々が簡単に使うことが出来るということです。
PaaSとは何か
ここまでが、クラウドの説明になります。
ここまで理解できれば、クラウドとは、ブラウザの向こう側にあるサーバーで稼働してるインターネットのサービスだと分かりますね。
じゃあ、それを踏まえてPaaS(Platform as a Service)とは何かと申しますと、
そのようなクラウドのサービスを、作る手助けをするサービスです。
例えば、PaaSには、HerokuやAWS Lambdaのようなサービスがあるわけですが、
Heroku
通常、我々プログラマーがWebサービスを開発するとき、そこには単純にソフトウェアをプログラミングするだけではなく、色々な作業をする必要があります。
例えば、ソフトウェアを運用する物理的なサーバーが必要です。
また、そのサーバーにはOSを入れてソフトウェアが動くようにしなければいけません。
されに、そのOSの中でネットワークの設定をしたり、データベースを作ったり、ウェブアプリケーションの設定もしなければいけない。
すごく面倒臭いですよね。
でも、HerokuなどのPaaSのようなサービスを使うと、自分のパソコンのローカルで動くソフトウェアを書いた後に、
そのようなネットインフラの構築をしなくても、ボタン一つ、コマンド一つでWebサービスをネットに公開できます。
機能追加したりしたコードも、コマンド一つで本番サーバーにリリースできる、そういう便利なサービスがPaaSなのです。
AWS Lambda
また、AWS Lambdaというサービスでは、自らサーバーを設置しなくても、バックエンドのコードを実行できるので、
サーバーレスなアプリ開発が可能になります!
これはかなり大きな革命で、我々プログラマーは、元々はRuby on Rails みたいにフルスタックのウェブフレームワークを使って、
サーバー側のコードを書いてたわけですが、Reactなどの最新JSを使って、ブラウザで表示されるフロント側だけのコードを書いて、
あとは、AWS Lambdaというクラウドサービスにバックエンドのコードを書いて、それをフロント側からAPIを叩くだけでよくなりました。
まあ、ここら辺の話はプログラミングをやってる人じゃないと分からないと思いますが・・・
とにかく、要約すると、PaaSというのは、プログラマーがwebやスマホアプリを作るのを助けるプラットフォームのクラウドサービス
と認識していいと思います。