前回は様々なPHPのMVCフレームワーク(以下フレームワーク)について、ご紹介いたしました。今回はPHPとフレームワークで作成されたWebアプリケーションが動くPaaS環境についてご説明します。
PaaSとは?
初心者向けの書籍などでPHPを学習しWebアプリケーションを構築しても、それは大抵自分のローカル環境で完結しています。もしそれをインターネット上で公開しようと思った場合、下記のような手順を踏む必要があります。
1. レンタルサーバ会社と契約
2. ApacheなどのWebサーバをインストール
3. MySQL、PostgreSQLなどのデータベースをインストール
4. PHPなどのアプリケーション実行環境をインストール
5. その他必要なライブラリやフレームワーク、管理ツールなどをインストール
6. 2.~5.をきちんと連携させて問題なく稼働するようセットアップ
7. 作成したWebアプリケーションをデプロイ
ここまで行ってようやくWebアプリケーションを公開することができます。これ以外にも実際にはバックアップや監視ツールの導入・冗長化‘セキュリティ対応なども必要になるでしょう。
PaaS(Platform 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, Java, PHPの4言語に対応しています。ただデータベースは一般的なRDBは使用できず、MySQLの技術をベースとしたCloud SQLといわれるサービスを使う必要があります。無償枠は使用するサービス次第になりますが、主なコストであるインスタンスの稼働時間に対する課金は28時間まで無料です。基本的に冗長化などさせず1つのアプリを普通に使用する場合は無料と考えてください。難点としては日本にデータセンターがないことがあげられます。そのため、軽い処理でも数百msかかってしまいます。日本向けのスピード命なサービスには向かないかもしれません。
公式サイト:https://cloud.google.com/appengine/
Heroku:
株式会社セールスフォース・ドットコム社が提供しているPaaS環境です。もともとはRubyOnRailsで構築されたWebアプリケーションのみをサポートしていましたが、現在では、Java、Node.js、Scala、Clojure、Python、PHPなど複数のプログラミング言語をサポートしています。またデータベースのサポート範囲もPostgreSQL、MySQL、Cloudant、Couchbase Server、MongoDB、Redisと多岐にわたっています。2015年10月には日本リージョンができたためレスポンスも改善されました。(Enterprise契約の法人顧客のみ)難点としては日本語の公式ページがないので初心者はひるみがちになるところでしょうか。ですが、たくさんのエンジニアが技術ブログを公開しています。1日18時間のみの稼働であれば、無料で使えるプランが用意されています。
公式サイト:https://www.heroku.com/
MOGOK:
株式会社インターネットイニシアティブ(IIJ)が提供するPaaS環境です。こちらもHeroku同様もともとはRubyOnRailsで構築されたWebアプリケーションのみをサポートしていましたが、現在では、PHPもサポートしています。そしてこちらは純国産のPaaSのため、日本語のチュートリアルが豊富なのも特徴です。こちらは個人ユーザは無償となっています。難点としてはGAEやHerokuに比べ知名度が低く、技術ブログなど、チュートリアル以外の情報があまりWeb上でみられないところです。
公式サイト:http://www.iij.ad.jp/biz/mogok/
以上でご紹介した3サービスを特に初心者が気になる部分をもとに一覧表にしました。
|
GAE |
Heroku |
MOGOK |
|
無償枠 |
◎ インスタンスの稼働時間に対する課金は28時間まで無料 |
△ 1日18時間のみ無料プランあり |
○ 個人は無償 |
|
データベース |
△ Cloud SQL(MySQL)のみ |
◎ PostgreSQL、MySQL、Cloudant、Couchbase Server、MongoDB、Redisなど多岐に亘る |
○ MySQL PostgreSQL、MongoDB 2.6を使用可能 |
|
日本語ドキュメント |
○ 日本語サイトはあるが肝心の部分は英語 |
△ 公式の日本語サイトはない(翻訳ページ有) |
◎ 国産クラウドなので公式日本語サイトが充実 |
|
技術者の公開ブログ |
○ 最近非常に数が増えてきた |
◎ 歴史があるサービスの為充実している |
△ 左記の2サービスほどはみられない |
それぞれ個性がありどのPaaSを使用するか悩むところですが、是非実際に使用して自分にあったPaaSを見つけてください。
次回は、実際にPaaSにPHPのMVCフレームワークを使用してWebアプリを作成して、それをPaaSにデプロイしてみたいと思います。Webアプリケーションは、拙著「土日でわかるPHPプログラミング教室」で使用した環境をベースに構築します。この書籍は未経験者を対象にしていますが、パソコン上のVirtualBox(仮想マシン)にVagrant(仮想環境構築ツール)を使用してCentOSやMySQLが使用できる仮想環境を構築し、FuelPHPでCRUDアプリケーションを作成するというかなり実践的なものになっています。PaaSには、Herokuを使用します。
★お知らせ★
本コラムの執筆者である吉谷愛氏の著書「~短期集中講座~ 土日でわかる PHPプログラミング教室 環境づくりからWebアプリが動くまでの2日間コース」 Amazonでも上位ランキング!好評発売中です。
吉谷 愛 氏
フロイデ株式会社 代表取締役
「最 新のアーキテクチャを追及し続ける技術者集団」を目指す、フロイデ株式会社代表取締役社長。現在は、自身のCOBOLからRailsまでの非常に幅広い開 発経験や、学生や未経験社員への技術指導経験を糧に、技術講師としてソフトウエアエンジニアの育成に注力している。2013年06月より、初心者向けの 「はじめようRuby on Rails開発!」シリーズを考案。“技術者の立場にたった、技術者の心に火をつける”熱い講義をモットーとしている。