カテゴリー : Heroku

Papertrail のログを Slack へ通知する設定方法

Heroku でよく利用しているログ管理アドオン Papertrail のエラーログを Slack channel へ通知する設定をしたので、その方法をご紹介します。

papertrail

続きを読む

Heroku buildpacks を追加して Node.js, Ruby on Rails の順番でビルドする設定方法

Heroku buildpacks を追加して Node.js → Ruby on Rails の順番でビルドする設定方法をご紹介します。

Heroku

続きを読む

Heroku コマンド (heroku-cli) を最新バージョンにアップデートする方法

Heroku コマンド (heroku-cli) を最新バージョンにアップデートする方法をご紹介します。

Heroku

続きを読む

Heroku おすすめ無料アドオン

Heroku で利用できる無料アドオンをまとめたのでご紹介します。

Heroku

続きを読む

Ruby on Rails 5 を Heroku 無料枠で使う Procfile の書き方

Ruby on Rails 5 アプリを Heroku 無料枠で使うための Procfile の書き方をご紹介します。

Heroku

主に puma サーバー起動時に指定するオプションについて調べた内容になってます。

続きを読む

Ruby on Rails 5 を作成して Heroku へ Deploy するまでの手順

ひさしぶりに Heroku を使って Ruby on Rails 5 をホスティングする作業をしました。 Heroku へ Deploy するまでの手順を忘備録的にご紹介します。

Heroku

数年ぶりに Heroku を使ったのですが、進化していて素晴らしいですね。

続きを読む

[Heroku] サブディレクトリだけを deploy する

github のリポジトリを節約するために、アプリと API のリポジトリを1つにまとめて管理したいことがあると思います。

$ ls
android
api
ios

git subtree push を利用すると api ディレクトリ以下だけを Heroku に deploy できます。

git subtree push --prefix api/ heroku master

以上です。

参考情報

[Heroku] cedar-14 stack に migrate

手持ちの Heroku アプリを cedar-14 スタックにマイグレートしました。

cedar-14 スタックに変更

$ heroku stack:set cedar-14 -a your-app-name
Stack set. Next release on your-app-name will use cedar-14.
Run `git push heroku master` to create a new release on cedar-14.

git push するために空 commit

$ git commit --allow-empty -m "Upgrading to Cedar-14"
[master a9ae9cb] Upgrading to Cedar-14

Heroku へ deploy

$ git push heroku master

stack を確認

$ heroku stack
=== your-app-name Available Stacks
* cedar-14

手軽にマイグレートできる Heroku は素晴らしい。

Heroku コマンドのバージョンアップ

cedar-14 stack に変更しようとしたら stack:set がないというエラーが出たので heroku コマンドをバージョンアップしました。

エラーメッセージ

$ heroku stack:set cedar-14 -a your-app-name
 !    `stack:set` is not a heroku command.
 !    See `heroku help` for a list of available commands.

heroku コマンドのバージョン確認

$ heroku version
heroku-toolbelt/3.7.2 (x86_64-darwin10.8.0) ruby/1.9.3

heroku コマンドのバージョンアップ

$ heroku update
Installing Heroku Toolbelt v4... done.
For more information on Toolbelt v4: https://github.com/heroku/heroku-cli
Setting up node-v4.1.0...done
Installing core plugins heroku-apps, heroku-fork, heroku-git, heroku-local, heroku-run, heroku-status... done
Your version of git is 1.8.4.3. Which has serious security vulnerabilities.
More information here: https://blog.heroku.com/archives/2014/12/23/update_your_git_clients_on_windows_and_os_x
Setting up node-v4.1.0...done
Updating plugins... done

使えないコマンドでエラーが発生するというようなことが起こらないと heroku コマンドのバージョンアップなんて滅多にしないですよね。

[Heroku] CloudFlareを利用したルートドメインの設定方法

“Action Required: Legacy Routing End of Life” というメールを受信している方も多いと思いますが、DNS の Aレコードで Heroku のレガシーな IP アドレスを指定するルーティングの方法が廃止されました。

僕は、Heroku の独自ドメインの設定方法という記事で書いているようなレガシールーティングを使って、Heroku 上に bakorer.com という About me ページを運用していました。レガシールーティングが廃止されるということで、別の方法でルートドメインの設定をする必要がでてきました。

Heroku はドキュメントが手厚く、カスタムドメインを設定する方法は公式サイトに書いてあります。

Custom Domains | Heroku Dev Center

外部サービスを利用する方法がいくつか存在するのですが、今回はその中の1つである CloudFlare を使ってルートドメインを Heroku にホスティングしているアプリに割り当ててみました。

CNAME Flattening: RFC-compliant support for CNAME at the root – CloudFlare Support

CloudFlare に登録する

まず、CloudFlare のアカウントを作成して下さい。

Home | CloudFlare | The web performance & security company

CloudFlare にウェブサイトを追加する

まず、設定したいドメインを追加します。

1-add-a-website-CloudFlare

CloudFlare でDNSレコードを設定する

追加したドメインの現状のDNSレコードが一覧表示されます。ここで編集、削除、追加などできます。

既存のDNSレコードから bakorer.com 向けの a レコードを削除して、代わりに CNAME レコードに Heroku でホスティングしているアプリのサブドメイン bakorer-com.herokuapp.com を指定します。(一番上)

2-Configure-DNS-CloudFlare

CloudFlare のプラン選択

プラン選択です。SSL を使わなくていいなら、DNS の設定だけだと無料で使えるようなので、Free プランを選択します。無料バンザイ!

3-Choose-settings-CloudFlare

CloudFlare のプラン選択

最後にネームサーバーの更新が必要です。

4-Update-your-DNS-CloudFlare

切替前は、ムームードメインのDNSサーバーを利用していて dns01.muumuu-domain.com. dns02.muumuu-domain.com. を確認できます。

dig bakorer.com NS
 
; <<>> DiG 9.8.3-P1 <<>> bakorer.com NS
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 58368
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 2
 
;; QUESTION SECTION:
;bakorer.com.			IN	NS
 
;; ANSWER SECTION:
bakorer.com.		2317	IN	NS	dns01.muumuu-domain.com.
bakorer.com.		2317	IN	NS	dns02.muumuu-domain.com.
 
;; ADDITIONAL SECTION:
dns01.muumuu-domain.com. 284	IN	A	157.7.180.150
dns02.muumuu-domain.com. 1207	IN	A	182.48.37.179
 
;; Query time: 30 msec
;; SERVER: 192.168.0.1#53(192.168.0.1)
;; WHEN: Sat Sep 20 23:31:11 2014
;; MSG SIZE  rcvd: 163

それをムームードメインの管理画面から下記のように「GMOペパボ以外のネームサーバーを使用する」の項目から、lina.ns.cloudflare.com. と jerry.ns.cloudflare.com. を設定します。

ネームサーバ設定変更   ムームードメイン

設定後、dig コマンドでネームサーバーが切り替わっていることを確認します。

dig bakorer.com NS
 
; <<>> DiG 9.8.3-P1 <<>> bakorer.com NS
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 58368
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 2
 
;; QUESTION SECTION:
;bakorer.com.			IN	NS
 
;; ANSWER SECTION:
bakorer.com.		3600	IN	NS	lina.ns.cloudflare.com.
bakorer.com.		3600	IN	NS	jerry.ns.cloudflare.com.
 
;; ADDITIONAL SECTION:
lina.ns.cloudflare.com.	919	IN	A	173.245.58.187
jerry.ns.cloudflare.com. 3507	IN	A	173.245.59.182
 
;; Query time: 389 msec
;; SERVER: 192.168.0.1#53(192.168.0.1)
;; WHEN: Sun Sep 21 00:14:42 2014
;; MSG SIZE  rcvd: 114

最後に、CloudFlare のページからもネームサーバーが切り替わったことが確認できます。

5-my-websites-CloudFlare

上画像の状態から、Re-test をクリックして下記のように切り替わればネームサーバーの設定は完了です。

6-my-websites-CloudFlare

CloudFlare を使うことでカンタンに Heroku でルートドメインを設定することができました。CloudFlare は CDN の無料枠もあるようなので、今度はそちらの機能も活用していきたいと思います。


参考情報

CloudFlare使ってHerokuでルートドメイン使おう – PILOG