Scribble at 2023-08-04 10:13:50 Last modified: 2023-08-04 10:40:06

添付画像

辞書みたいなことを言うようだが、ここで整理しておきたい。一口に「クラウド・サービス」とは言っても、大きく分けて三つくらいのサービスが提供されている。それらは、ネットワークや計算資源といったハードウェアを制御できるレベルから、手元のアプリケーションやデータを制御するレベルまで、どこまでをクライアントが制御したいのかによって異なる。

AWS のようなサービスは「IaaS (infrastructure as a service)」だと言われていて、その理由は最もハードウェアに近いリソースを「EC2 インスタンス」や「データベース・インスタンス」あるいは「VPC(ネットワーク制御)」のようにコントロールできるからだ。これでも、具体的にクライアントがアマゾンのデータセンタへ機材を持ち込んだりするわけではないのだから「クラウド」である。AWS でどういう機器が使われているかはクライアントが知らなくてもいいわけである。

そして、AWS のようなクラウド・サービスは「PaaS (platform as a service)」も提供しており、これは AWS の中では CloudFront のようなサービスが該当するだろう。CloudFront は何か特定の機器だとか、あるいは特定の AV に配置するようなインスタンスではない(実際、CloudFront を使うと「インスタンス」とは呼ばずに「ディストリビューション」と呼ばれる)。ただし、PaaS は IaaS や SaaS よりも後から(いわば Salesforce の開発環境を宣伝するためという特殊な事情で)広められた概念なので、どういう機能やサービスが PaaS に相当するのかは曖昧なところがある。たとえば、AWS ではデータベースを単独の計算資源として用意できるが、どういうデータベースを使うかは色々と選択できるため、PaaS だと言えなくもないが、多くの文書では AWS RDS のようなデータベースは SaaS として紹介されている。

そして最後に、「SaaS (software as a service)」があって、これは AWS で言えば AWS Lambda のように、決められた条件で実行されるプログラムの処理をホストするようなサービスだ。ここまでくると、そのプログラムが実際にはどういう環境で実行されているのかをクライアントが知ったり制御する必要は全くない。単に処理を定義しておき、計算結果を受け取るだけなので、クラウド・サービス内で利用する API のようなものだと考えてもいいだろう。だが、API と違うのは、何をどう処理するかをクライアントが自由に定義できるということだ。API の場合は、仕様として決まっているリクエストとレスポンスしかやりとりできないが、AWS Lambda の場合は処理系そのものをクラウド・サービスとして扱えるため、目的に応じて Java を実行したり Go を実行するといった使い方ができる。

  1. もっと新しいノート <<
  2. >> もっと古いノート

冒頭に戻る


※ 以下の SNS 共有ボタンは JavaScript を使っておらず、ボタンを押すまでは SNS サイトと全く通信しません。

Twitter Facebook