参考
Edge - Add-ons - Heroku Elements
Edge | Heroku Dev Center
Edgeアドオンとは?
HerokuアプリをCloudFront経由で配信可能にするアドオン。
価格
$5/月から利用できる。
利用方法
アドオンを追加するとCloudFrontのURLが払い出される。
CloudFrontのURLはCLI,ダッシュボードから確認できる。
$ heroku config:get EDGE_URL
https://xxxxx.cloudfront.net
ダッシュボード
CloudFrontのステータスやカスタムドメインの設定ができる。
キャッシュコントロール
CloudFrontの設定はドキュメントのCloudFront configurationに記載されている。
ダッシュボードとドキュメントを見る限り、細かい設定はできないので、アプリ側でcache-controlする必要がある。
# キャッシュされてないときのレスポンスヘッダ
$ curl -i https://xxxxx.cloudfront.net/users.json
HTTP/2 200
...
Cache-Control: max-age=3600, private
...
X-Cache: Miss from cloudfront
...
# キャッシュされてるときのレスポンスヘッダ
$ curl -i https://xxxxx.cloudfront.net/users.json
HTTP/2 200
...
cache-control: max-age=3600, public
...
x-cache: Hit from cloudfront
...
レスポンスタイム
USリージョンに配置されているHerokuアプリへ直接アクセスする場合と比較して、Edge(CloudFront)経由のほうが断然はやい。
# Heroku(US)へ直接アクセス
$ curl -kL 'https://xxxxx.herokuapp.com/users.json' -o /dev/null -w "%{time_total}" 2> /dev/null
#=> 1回目: 1.074277
#=> 2回目: 0.859620
#=> 3回目: 0.784184
#=> 4回目: 0.881247
#=> 5回目: 0.735450
# Edge(CloudFront)経由でアクセス
$ curl -kL 'https://xxxxx.cloudfront.net/users.json' -o /dev/null -w "%{time_total}" 2> /dev/null
#=> 1回目: 0.054274
#=> 2回目: 0.059614
#=> 3回目: 0.153303
#=> 4回目: 0.067805
#=> 5回目: 0.058396