Herokuで作るFacebookアプリ

第7回 Herokuをもっと活用しよう!

この記事を読むのに必要な時間:およそ 2 分

はじめに

前回は,FacebookにAPIを通して投稿する方法を紹介しました。FacebookのAPIの呼び出し方や権限についてを理解できたと思います。今回は,Herokuを利用する上でよく利用される便利な機能を紹介します。今回紹介する機能は,すべて無料で提供されています。

ステージング環境

一般的にサービスを運営するときは,本番環境と同時にステージング環境を用意するのではないでしょうか? Herokuでは,基本機能を無料で利用できることもありステージング環境を低コストで用意できます。

ステージング環境を用意するには,以下の作業が必要です。

Herokuにアプリケーションを追加する

$ heroku create manga-dojo-staging

Herokuのアプリケーションのレポジトリをローカルのレポジトリにリモートとして追加する

$ git remote add staging git@heroku.com:manga-dojo-staging.git

コードをHerokuのステージングのレポジトリにPushする

$ git push staging master

Herokuのアプリを操作する

$ heroku restart --app manga-dojo-staging

通常のherokuコマンドに操作するアプリを指定するオプションを追加します。例として,リスタートする場合は以下のようになります。--appのあとに操作したいアプリケーションの名前を指定します。

このように,いくつかのコマンドを発行するだけでステージング環境を用意することができます。Facebookアプリとして,利用する場合は開発環境と同じようにFacebook側にステージング環境用のアプリ登録をしておくとよいでしょう。

ログ

Herokuの特長として,静的ファイルのHeroku上での出力を制限しているということがあります。そのため,ログファイルを継続して保存し続けるというとができません。Herokuでは,ログは一時的なものとして扱うことが必要になります。

デバックのためにログを表示するには,以下のコマンドを利用するのが良いでしょう。先日,コマンドが拡張されてtail -fと同じ機能が利用可能になりました。

$ heroku addons:add logging:expanded
$ heroku logs --tail

1つ目のコマンドは,先日リリースされたloggingのaddonsを追加しています。これでtailの機能が利用できるようになります。2つ目のコマンドで,実際にtail -fのコマンドと同じことを実行しています。この状態でアプリにアクセスするとログがどんどん流れていくはずです。これを利用してデバックするなどするとよいでしょう。標準出力に出力したものがこちらのログに表示されるようになります。

ログの表示画面

画像

メンテナンスモード

正式運用を開始した際に,データのマイグレーションの処理の間などにメンテナンス中画面を表示することが一般的ですね。Herokuでは,コマンド一つでメンテナンスモードのON/OFFが切り替えられます。

$ heroku maintenance:on
$ heroku maintenance:off

1つ目のコマンドで,メンテンナンスモードに移行します。ユーザがアクセスするとメンテンナンス画面のレスポンスが返されます。メンテナンスモードを終了するには,2つ目のコマンドを実行します。このように簡単に,メンテナンスモードの切り替えを実施できます。

メンテナンス時の画面は,custom_error_pagesアドオンを利用すると切り替えることができます。サービス公開したときには,このアドオンを利用してメンテナンス画面を設定しておくとよいでしょう。このアドオンを利用すれば,メンテナンス画面だけでなく,エラー画面も指定することができます。

$ heroku addons:add custom_error_pages
$ heroku config:add MAINTENANCE_PAGE_URL=http://example.com/mainte.html

エラーページの設定方法は,カスタムエラーページについての公式のドキュメントは,こちらをごらんください。

SSL

セキュアなサービスを運用する時にSSLで運用することが必要になる場合があります。Herokuでは,*.heroku.comのドメインで運用する場合は無料でSSLを利用することができます。以下のコマンドでSSLアドオンを追加するとhttpsでアクセスできるようになります。

$ heroku addons:add ssl:piggyback

Facebookアプリでは,SSLを常にONに設定しているユーザが存在しますので,SSLをONにしておくとその設定のユーザもアクセスできるようになります。

複数メンバーで共有

プロジェクトで利用する際は,運用を自分ひとりだけでなく複数名で行うことが一般的です。共同の運用者をアプリに追加するには以下のコマンドを発行します。

$ heroku sharing:add someone@example.com

追加するユーザのアカウントのメールアドレスを指定します。これを実行するとレポジトリにPUSHしたり,アプリケーションの再起動のコマンドを発行したりできます。アプリを作成したユーザでないアカウントに課金を移管させたいときは,以下のコマンドを実行します。

$ heroku sharing:transfer new_owner@example.com

課金のアカウントを移行した場合は,元のアカウントからはdynosの数を変更したりはできません。課金アカウントのみがリソースの変更が可能なためです。この点は注意しておくと良いと思います。

まとめ

今回は,Herokuをさらに活用するために,さまざまな追加機能を紹介しました。これらの機能を利用すればHerokuを活用して,より運用を手軽に行えるようになるのではないでしょうか?

今回はHerokuから提供されているアドオンや機能を紹介しましたが,次回はHerokuの特長である外部とのサービス連携のある便利なアドオンを紹介したいと思います。

著者プロフィール

松村章弘(まつむらあきひろ,ハンドルネーム:mat_aki)

SonicGarden プログラマー。

1984年生まれ。社会人1年目からRuby on Railsのみで開発を続け現在4年目。Webサービスの企画・運営・プログラミングまですべてをこなす。世界で利用されるWebサービスを創ることを目標にしている。現在は youRoom の開発を行っている。

mat_akiの日記:http://d.hatena.ne.jp/mat_aki/

Twitter:http://twitter.com/mat_aki

コメント

コメントの記入