第16回関西PHP勉強会で、「Heroku で作るスケーラブルな PHP アプリケーション」という発表をしてきました。
発表資料
Heroku でちゃんと動く PHP アプリケーションを作ると、自然とスケーラブルな構成になりますよ、という内容です。
会場でも、Heroku 自体は知っているが、まだ使ってはいないという人が多かったので、細かな Tips は省いて、こういった構成でやりますよというイメージをお話しました。
実際に構築する上での Tips などは、また別の機会に話してみたいです。
サンプルアプリケーション
サンプルアプリケーションとして、簡単な画像アップロードサイトを Laravel 4.2 で作りました。
https://github.com/shin1x1/laravel-on-heroku
アプリケーションデータは、以下のアドオンへ保存するようにしています。画像ファイルは、アドオンではなく、S3 に保存しています。
- データベース = Heroku Postgres
- ログ = Papertrail
- セッションストレージ = Redis To Go
- 画像ファイル = S3(AWS)
使い方は、README.md に記載しているのですが、Heroku 関係は、heroku_create というシェルスクリプトにまとめています。
これを流せば、Heroku アプリケーションの作成、環境変数追加、アドオン追加などをひと息で行うことができます。
#!/bin/sh heroku create -r heroku heroku config:set LARAVEL_ENV=heroku heroku addons:add heroku-postgresql heroku addons:add newrelic:stark heroku addons:add scheduler heroku addons:add sendgrid heroku addons:add redistogo heroku addons:add papertrail heroku addons:add librato
デモ用に Heroku にデプロイしています。
http://infinite-caverns-8536.herokuapp.com/
さいごに
Heroku は、無料から使えるのが良いですね。アドオンも機能制限(保存レコード数等)版ながら無料で使えるものが多いので、アプリケーションからの連携を試すことができます。
スケーラブルな PHP アプリケーションを作る練習場として、Heroku を触ってみるというのも面白いですよ。
- Newer: はじめてのPHPカンファレンス関西
- Older: PHP で配列を走査して処理するのは、for / foreach だけじゃない