プログラミング

Saas, Paas, Iaasとは

今回はクラウドの技術レイヤーで分けられるSaas, Paas, Iaasについて簡単に学びましょう!

最近SaasとはPaasとか聞くけどなんのことかよく分からないよ

それらは今流行りのクラウドの技術レイヤーだよ

目次

クラウドとは

まず、Saas, Paas, Iaasを理解する前にクラウドについてしっかり理解する必要があります。

一言でいうとインターネットを通じてコンピューターリソースを使用する技術です。

よく分からないですね。大前提ですが、データを保存したりアプリケーションをインターネットに公開したりする時にはコンピューターリソースが必要です。

コンピューターリソースとは…ストレージやサーバーなどの機器

しかし、それらの機器を自前で用意するのはお金もかかるし大変だと思います。そこで、ITベンダー(Google, Amazon)が保持しているそれらの機器をインタネット越しに使うことを可能にしたのがクラウドです。

実は誰もがクラウドのユーザー??

最近よく聞くクラウドです。おそらくiphoneを使っている人は何も意識することなくクラウドを利用していると思います。

PCとスマホを接続して写真を保存したり、また、メールを使用している場合はそのメールを保存したりするときです。ほとんどの方がicloudを使用しているのでないでしょうか?

icoudのストレージというのはアップル社が持っているデータセンター(自動販売機みたいな機械の集合)へインターネットを通して皆さんのメールや写真をストレージへ保存していることになります。(厳密にはアップルはGoogleのデータセンターを借りているらしいです。)

結局クラウドとは。。

上記のようにインターネット環境さえ整っていれば、自分の資源(メールや写真、資料)を様々なITベンダーのデータセンターつまりクラウド上に保存することができます。

すごい雑にいうと、皆さんのパソコンからデータセンターにただ何かしらのデータを保存したり引き出してるだけです

ではSaas, Paas, Iaasとは一体何でしょうか??

Saas, Paas, Iaasの概要

ここでやっと本題なのですが、Saas, Paas, Iaasはクラウド技術のレイヤーの違いです。

下図を見てもらうとわかるようにコンピューターリソースのどこまでを提供するのか、またどこから自分でカスタマイズしていくのかの違いです。

エンジニアではない方はおそらく、Saasを使うことがほとんどだと思います。

Paas,Iaasに関してはサーバーやストレージ、ネットワークなどのかつてはオンプレミスで物理的に操作していた物をwebコンソールやCLI(コマンドラインインターフェース)を通じていじれるサービスです

Saas詳細

software as a service

Saasは今までパッケージで売られていたようなソフトウェアーサービスをインターネットを利用して直ぐに使えるようにしたサービスです。

例えば一昔前では、エクセルやパワーポイントなどは家電量販店などにいってパッケージを購入し、自分のパソコンにインストールするなどをしていました。しかし現在では、そのようなことをする必要はなくインターネット上でパッケージをインストールして直ぐに使えるようになっています。

このようにインターネットでダウンロードして直ぐに何かしらのソフトウェアが使えるようになったのがSaasのおかげです。

そのほかにもGmailなどもそうですし、SalesforceやSAPなどのベンダーが出している顧客関係管理システムや企業資源計画システムなどもサースの枠組みです。

インターネットで利用できるサービスはSaasという認識でいいと思います

Paas、Iaasの詳細

paasとIaasは境界線がフワッとしているのでまとめちゃいます。

Paas…Platform as a service

paasとIaasは違いが分かりにくいと思いますが、簡単にいうとパースはアプリケーション(プログラミングしたコード)を自分で作り、最後のインフラ周りの細かい環境設定は全部ベンダーが管理しますよっていうイメージでいいと思います。

なのでインフラ周りの責任はベンダーが取ってくれるので、ユーザーが意識するのはアプリケーションつまりプログラミングのソースコードだけで良いことになります。

Iaas…Infrastrucrture as a service

Iaasは主にネットワークやハードウェア、OSなどのテイレイヤー層のコンピューターリソースを提供するサービスです。なのでPaasと違いアプリケーションが動作するインフラ環境または、どのサーバーにどんなOSをインストールするかまで自分で選択する必要があります

そのためインフラ構築の自由度が高いので、自分のアプリケーションで高可用性を担保することなどが可能になります。(ロードバランサー挟んだり、DBなどを冗長化させたりなど)

さらに現在では、コンテナやk8sなどのクラウドネイティブ技術がどんどん発展してきているので、この辺りのミドルウェアや技術も踏まえてインフラ環境を構築していくことが求められると思います。

普通に生きててPaas、Iaasを使うことってあるんか。。

上記でも述べましたが主にアプリケーション開発などで使うサービスなのでエンジニア以外の人はあまり触れる機会がないと思います。

しかし、エンジニアとして働く際には必ず誰もが触れると思います。むしろ、知らないと現場に入ってから苦労すると思います。(デザイン専門やコーダーの方はあまりいじらないかもですが)

ビジネス側の方は、違いを知っておくだけでもサービス開発に関わる際は非常にエンジニアとコミュニケーションしやすくなると思います。

最後に主なPaas, Iaasを提供している企業の紹介

  • Amazon Web Service
  • Microsoft Azure
  • Google Cloud Platform
  • IBM Cloud
  • Oracle Cloud Infrastructure
  • 上記以外でもたくさんの企業がありますが主要なところはこの辺りでしょうか。

    私の印象ですが、web系のスタートアップベンチャーではAWS、GCPあたりが多い印象です。一方、大企業や中小企業などはAWS、Azureが多い印象です。

    まとめ

    今回は簡単にクラウドの説明とレイヤーの違いについて説明しました。Paas、Iaasに関しては実際にどのようにサービスに使われているのかを知ったり、自分で簡単なワードプレス などのインフラ構築をしてみるとしっくりくると思います。

    Udemyなどの動画学習サイトに分かりやすいAWSなどの入門講座があるので概要だけでも学ぶと良いと思います。

    未経験からプログラミング学習は難しいのか?前のページ

    サーバーの種類について学ぼう次のページ

    関連記事

    1. プログラミング

      railsでのカラム操作

      こんにちはまくロロです。今回はrailsでカラムの追加、削除、などの…

    2. プログラミング

      【エンジニア】サービス開発とアルゴリズムは別物?

      こんにちはまくロロです。今回は「サービス開発とアルゴリズムは別物であ…

    3. プログラミング

      基本的なRuby on Railsの概念

      こんにちは、まくロロです。今回は初めて技術系の記事を書きたい…

    4. プログラミング

      【おすすめ】具体的なGolang勉強手順

      こんにちはマクロロです。前回は、RailsからGoを勉強する際の困難…

    5. プログラミング

      jQueryの基本を学ぼう

      こんにちは、まくロロです。アニメーションを実装する際によく使…

    6. プログラミング

      react-reduxの基礎

      こんにちは、マクロロです!季節も巡り、もうすぐ夏がきますね。。…

    コメント

    1. この記事へのコメントはありません。

    1. この記事へのトラックバックはありません。

    最近の記事

    PAGE TOP