LoginSignup
8
6

More than 5 years have passed since last update.

HerokuでEdge(CDN:CloudFront)アドオンを利用する

Last updated at Posted at 2018-11-17

参考

Edge - Add-ons - Heroku Elements
Edge | Heroku Dev Center

Edgeアドオンとは?

HerokuアプリをCloudFront経由で配信可能にするアドオン。

価格

$5/月から利用できる。

スクリーンショット 2018-11-17 23.44.36.png

利用方法

アドオンを追加するとCloudFrontのURLが払い出される。
CloudFrontのURLはCLI,ダッシュボードから確認できる。

$ heroku config:get EDGE_URL
https://xxxxx.cloudfront.net

ダッシュボード

CloudFrontのステータスやカスタムドメインの設定ができる。

heroku-edige.png

キャッシュコントロール

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
8
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
6