PaaSを学ぼう(2) ~なぜPaaSを利用するのか?~

PaaSを学ぼう(2) ~なぜPaaSを利用するのか?~

本コラムでは、「PaaSを学ぼう」というテーマでPaaSを学ぶことを目的に全3回の連載でお届けしますが、中間目標として、PaaSを含むクラウドサービスについても学んでいきます。

前回のおさらい

前回の PaaSを学ぼう(1) ~XaaS とは?PaaSとは?~ では、「XaaSの種類ってどんなのがあるの?」「PaaSが提供してくれるのは何?」といった内容でした。「◯aaS」を総称して「XaaS」と呼ぶこと、その「X」に入るものが、提供方法やレイヤーによって異なるということをご紹介しました。

今回のPaaSを学ぼう②では、「PaaSはどんな理由で利用するの?」「PaaSはどんな種類があるの?」といった内容を学んでいきます。

PaaSですることって何?何ができる?

PaaS についての理解が少し深まったところで、改めて用語解説を見てみましょう。

PaaS【パース】
http://www.salesforce.com/jp/dictionary/words/paas.jsp

そう、PaaSとは、セールスフォース・ドットコム社が提唱した概念 です。「ユーザーが独自のシステムを構築することができる」んです。

そんなPaaSの利用方法の一つに、アプリケーションの開発 (とそのテスト) があります。
前回のご紹介の通り、アプリケーションの実行環境を提供 してくれるのがPaaSですが、もちろん、開発 を行うこともできます。

PaaSの利用用途

  • 開発環境 (IDE)
  • 実行環境

IDE (Integrated Development Environment) とは、名の通り 開発環境 のことで、オフラインの (個人環境にインストールして使う) アプリケーションとして提供されるものが多いですが、オンラインでの提供 (Web IDE) も増えてきています。

もちろん、開発だけでなく、アプリケーションの実行環境を提供してくれるのがPaaSですから、開発〜テスト〜ウェブサービス公開をスピーディに(PasSだけで)行うことが可能 です。

IDE (開発環境)と実行環境

では、IDEおよび実行環境それぞれの特徴を挙げてみたいと思います。

IDE と実行環境の特徴

  • IDE : 様々なプログラミング言語や開発ツールが用意されており、アプリケーションを開発できる。
  • 実行環境: アプリケーションをデプロイすることで、ウェブサービスとしてのテストから本番公開までできる。

これらの環境を、オンラインですぐ手に入れられることで得られるメリット は何があるでしょうか?

オンラインで環境を手に入れられることによるメリット

  • スモールスタートが可能
    PaaS を利用し、必要最小限の環境から始められることで、初期の設備投資や、様々な環境設定を行う必要がなく、ある意味気軽に開発をスタートできるようになりました。
    従来は、さまざまな準備を行ってからのスタートでしたので、「まず実際に試してみよう」というわけには、なかなか行かなかったのではないでしょうか。
  • 開発の短縮化
    これは一つ目のスモールスタートとも関連しますが、はじめの開発環境の準備にかかる時間を大幅に短縮できることで、開発期間自体の短縮化も図ることができます。
  • 開発に集中できる
    開発環境の構築や設定(インストールやサービスの設定)が、簡単な選択で行うことができるようになり、開発環境自体のメンテナンスにかかる手間を大幅に削減することができるようになります。
    このことにより、余計な心配をあまりすることなく、開発に集中することが可能です。

今は、開発環境がすぐ揃ってすぐ始められる時代です。
プログラミングを始めるならいつやるか?今でしょう。インターネット接続環境と PC(ブラウザ)さえあれば、今すぐ始められます。最近は、Webブラウザの Chrome だけを動かすことに特化した、Chromebook などもありますね。

パソコン1つでアプリケーション開発

 

ちなみに…以下は、従来、開発環境を揃えるまでに必要な作業のリストです。

  • サーバ(PC)、NAS、ルータなどのハードウェアを購入
  • 電源や空調を整備
  • ハードウェアの設置場所を確保
  • ネットワーク(LAN/WAN)を構築
  • (必要に応じて)ハイパーバイザをインストール
  • LinuxやWindowsをインストール
  • Firewallなどのセキュリティを設定
  • Java、Ruby、PHPなどのランタイムをインストール
  • Oracle、MySQL、PostgreSQLなどのデータベースをインストール
  • Apache、nginxなどのウェブサーバをインストール       …など

これらがすべて用意されているって、ありがたいですよね。

PaaSって具体的にはどんなのがある?

具体例の前に、PaaSの主な提供元 を列挙します。これは主にパブリッククラウドになります。

PaaSの主な提供元

  • OpenShift Online (RedHat)
  • IBM Bluemix (IBM)
  • Fujitsu Cloud Service K5 (Fujitsu)
  • Oracle Cloud Platform (Oracle)
  • Amazon Web Services (Amazon Web Services)
  • Google App Engine (Google)
  • App Cloud (Salesforce)
  • Microsoft Azure (Microsoft)

また、プライベートクラウド向けのPaaS (オンプレミスでのPaaS環境) を提供するものもあります。

プライベートクラウド向けのPaaS

  • OpenShift Enterprise (RedHat)
  • IBM Bluemix Local (IBM)
  • Oracle Cloud Machine (Oracle)
  • Microsoft Azure Stack (Microsoft)
  • Cloud Foundry (Cloud Foundry Foundation)

これら以外にも多くの提供元が存在します。

※PaaSに限らずIaaSなども同時に提供するものもあります
※順不同です。

また、IaaS層 は、AWS や Microsoft、IBM などがすでに提供済みでコモディティ化し、特徴や付加価値をアピールしづらくなってきているため、より上位層の開発に力を入れている ようです。

また、今回ご紹介した「PaaSを使った開発」といったところにフォーカスをすると、IDE では、Cloud9 や Codenvy 、実行環境では、Heroku や OpenShift が、よく使われているようですね。

…と、今回は「なぜPaaSってそんなに便利なのか?」といったところを中心にお届けしました。
次回は、IDEとPaaSを利用して、実際にウェブアプリケーションを立ち上げる部分をご紹介していきますので、お楽しみにしていてください。

[おまけ] PaaS=サーバーレス?

PaaSは、前回 ご紹介した通り、インフラ管理が不要 (サーバーを意識しなくても良い) です。しかし、アプリケーション実行環境としてのサイジング など、コンピューティングに関してある程度考慮する必要 はあります。

そこで、最近注目の技術キーワードに『サーバーレス』があります。

サーバーを用意しなくても良いという点では、PaaS=サーバーレスと言えますが、そんな中、AWS Lambda を筆頭に、コードの実行に必要な分だけコンピューティングリソースを利用する 使い方ができる、FaaS (Function as a Service) という概念が出てきました。

AWS Lambdaが先行しているFaaSですが、Azure、IBM、Google も既に提供を始めまています。

サーバーレスのクラウドサービス出そろう、AWSやMSに続きIBMもリリース
http://itpro.nikkeibp.co.jp/atcl/column/14/346926/011000761/

AWS Lambda は、イベント駆動型のサービス で、時刻やアラートなどのイベントをトリガーにアクションを起こす(コードを実行してイベントを処理する)サービスです。また、Amazon API GatewayやAmazon S3など他のサービスと連携する事で、使い方が無限に広がる可能性を秘めたサービスです(いわゆる、使い方次第というやつです)。

AWS Lambdaのドキュメント にチュートリアルが用意されていますので、どんなものか試されたい場合はご参考にしてください。

※実際に試してみましたが、ドキュメント通りに実行するだけですので、簡単に体験することができました。
※この他にもいろんなシナリオでのチュートリアルも用意されています。

また、サーバーレスに関するおすすめの文献を紹介します。

サーバーレスの薄い本
https://www.slideshare.net/nekoruri/20161109-serverless-meetup

あくまで個人的なおすすめではありますが、非常に勉強になりました。
※正式版は、電子版としてワンコインで販売されています。

記事は、予告なく変更または削除される場合があります。
記載された情報は、執筆・公開された時点のものであり、予告なく変更されている場合があります。
また、社名、製品名、サービス名などは、各社の商標または登録商標の場合があります。