コラム

吉谷愛氏コラム「Webアプリをスピーディにインターネット上に公開できるPaaSとは」

前回は様々なPHPMVCフレームワーク(以下フレームワーク)について、ご紹介いたしました。今回はPHPとフレームワークで作成されたWebアプリケーションが動くPaaS環境についてご説明します。

 

PaaSとは?

初心者向けの書籍などでPHPを学習しWebアプリケーションを構築しても、それは大抵自分のローカル環境で完結しています。もしそれをインターネット上で公開しようと思った場合、下記のような手順を踏む必要があります。

1.               レンタルサーバ会社と契約
2.               
ApacheなどのWebサーバをインストール
3.               
MySQLPostgreSQLなどのデータベースをインストール
4.               
PHPなどのアプリケーション実行環境をインストール
5.               
その他必要なライブラリやフレームワーク、管理ツールなどをインストール
6.               
2~5.をきちんと連携させて問題なく稼働するようセットアップ
7.               
作成したWebアプリケーションをデプロイ

ここまで行ってようやくWebアプリケーションを公開することができます。これ以外にも実際にはバックアップや監視ツールの導入・冗長化‘セキュリティ対応なども必要になるでしょう。

PaaSPlatform as a Service)を利用すれば、それらの問題がかなり解消されます。PaaSはサーバーシステムやその上で稼動するOSはもちろん、ミドルウェア、コンテンツ管理やアクセス解析などを行う様々なユーティリティアプリケーションまでセットで提供されるサービスです。しかも、構築されたWebアプリケーションの規模やユーザのアクセス頻度などに応じて、動的にサーバのCPUやメモリ、ネットワークの帯域幅などのリソースを割り当てることができる機能も備えており、開発者がアプリケーションの開発に集中できる仕組みが整っています。またレンタルサーバと比べ、無料で利用できるプランが充実しているのもクラウドの魅力です。

PHPでできたWebアプリケーションが動くPaaS

Google App Engine (GAE)

GAEは、あのGoogle が提供するPaasのサービスです。もともとはPythonもしくはjavaのコードをデプロイしてGoogle のインフラで動かせる単体のサービスだったのですが、現在は Google Cloud Platform (GCP)に組み込まれています。現時点ではPython, Go, JavaPHP4言語に対応しています。ただデータベースは一般的なRDBは使用できず、MySQLの技術をベースとしたCloud SQLといわれるサービスを使う必要があります。無償枠は使用するサービス次第になりますが、主なコストであるインスタンスの稼働時間に対する課金は28時間まで無料です。基本的に冗長化などさせず1つのアプリを普通に使用する場合は無料と考えてください。難点としては日本にデータセンターがないことがあげられます。そのため、軽い処理でも数百msかかってしまいます。日本向けのスピード命なサービスには向かないかもしれません。

公式サイト:https://cloud.google.com/appengine/

Heroku

株式会社セールスフォース・ドットコム社が提供しているPaaS環境です。もともとはRubyOnRailsで構築されたWebアプリケーションのみをサポートしていましたが、現在では、JavaNode.jsScalaClojurePythonPHPなど複数のプログラミング言語をサポートしています。またデータベースのサポート範囲もPostgreSQLMySQLCloudantCouchbase ServerMongoDBRedisと多岐にわたっています。201510月には日本リージョンができたためレスポンスも改善されました。(Enterprise契約の法人顧客のみ)難点としては日本語の公式ページがないので初心者はひるみがちになるところでしょうか。ですが、たくさんのエンジニアが技術ブログを公開しています。118時間のみの稼働であれば、無料で使えるプランが用意されています。

公式サイト:https://www.heroku.com/

 

MOGOK

株式会社インターネットイニシアティブ(IIJ)が提供するPaaS環境です。こちらもHeroku同様もともとはRubyOnRailsで構築されたWebアプリケーションのみをサポートしていましたが、現在では、PHPもサポートしています。そしてこちらは純国産のPaaSのため、日本語のチュートリアルが豊富なのも特徴です。こちらは個人ユーザは無償となっています。難点としてはGAEHerokuに比べ知名度が低く、技術ブログなど、チュートリアル以外の情報があまりWeb上でみられないところです。

公式サイト:http://www.iij.ad.jp/biz/mogok/

以上でご紹介した3サービスを特に初心者が気になる部分をもとに一覧表にしました。

 

GAE

Heroku

MOGOK

無償枠

インスタンスの稼働時間に対する課金は28時間まで無料

118時間のみ無料プランあり

個人は無償

データベース

Cloud SQLMySQL)のみ

PostgreSQLMySQLCloudantCouchbase ServerMongoDBRedisなど多岐に亘る

MySQL PostgreSQLMongoDB 2.6を使用可能

日本語ドキュメント

日本語サイトはあるが肝心の部分は英語

公式の日本語サイトはない(翻訳ページ有)

国産クラウドなので公式日本語サイトが充実

技術者の公開ブログ

最近非常に数が増えてきた

歴史があるサービスの為充実している

左記の2サービスほどはみられない

それぞれ個性がありどのPaaSを使用するか悩むところですが、是非実際に使用して自分にあったPaaSを見つけてください。

次回は、実際にPaaSPHPMVCフレームワークを使用してWebアプリを作成して、それをPaaSにデプロイしてみたいと思います。Webアプリケーションは、拙著「土日でわかるPHPプログラミング教室」で使用した環境をベースに構築します。この書籍は未経験者を対象にしていますが、パソコン上のVirtualBox(仮想マシン)にVagrant(仮想環境構築ツール)を使用してCentOSMySQLが使用できる仮想環境を構築し、FuelPHPCRUDアプリケーションを作成するというかなり実践的なものになっています。PaaSには、Herokuを使用します。

 

★お知らせ★

本コラムの執筆者である吉谷愛氏の著書「~短期集中講座~ 土日でわかる PHPプログラミング教室 環境づくりからWebアプリが動くまでの2日間コース」 Amazonでも上位ランキング!好評発売中です。

51sFhUAqAzL._SX390_BO1,204,203,200_


吉谷 愛 氏
フロイデ株式会社 代表取締役

「最 新のアーキテクチャを追及し続ける技術者集団」を目指す、フロイデ株式会社代表取締役社長。現在は、自身のCOBOLからRailsまでの非常に幅広い開 発経験や、学生や未経験社員への技術指導経験を糧に、技術講師としてソフトウエアエンジニアの育成に注力している。2013年06月より、初心者向けの 「はじめようRuby on Rails開発!」シリーズを考案。“技術者の立場にたった、技術者の心に火をつける”熱い講義をモットーとしている。

関連記事一覧