CloudFrontがHTTP/2対応

2016年9月25日

New – HTTP/2 Support for Amazon CloudFrontなんて記事を見つけたのでCloudFront側をHTTP/2対応してみた。

HTTP/2 Loverとしては使うしかないでしょ。
ぽちっと押すだけでHTTP/2対応できるなんて楽ちんだよなぁ。

既存のCloudFrontの既存DistributionsはHTTP/2を選択して保存するだけ。
もちろんHTTP/2には証明書が必須なので独自ドメインならACM(AWS Certificate Manager)で取得したら無料でHTTP/2対応完了。

ついでにWordPress全体もCloudFrontでCDN配信にチャレンジ。

ということでこんな構成になりました。

cloudcraft-barasu

貧乏なのでRDSのAZやAuto Scale、ELBとかは使っていません。
RDSのAZ使うよりAuroraを使いたいけどねー

  • www.barasu.orgへのアクセス
  • HTTPならHTTPSにCloudFrontでリダイレクト
  • キャッシュがあればCloudFrontから配信、キャッシュになかったらTokyo RegionのEC2にHTTPSで取りに行く。
  • 画像フォルダ(/wp-content/uploads/)以下は別のCDN Distributionsから配信

なんて流れになっています。

構成が立派になったのはいいけど・・・オーバースペックなサービスを利用している。

wordpressの画像をAmazonS3から配信

世の中には個人ブログの配信にCDNを使ってる人もいるけど※1、私はそこまでは根性はないので画像だけS3から配信することにした

に恥じない構成になったのでよしとする。

HTTPS Everywhereと言ってはいるけど「どことのと間を暗号化するか」「誰からの盗聴やなりすましに対応するか」によるんだよね。という所に尽きると思う。

ブラウザ(端末)とCloudFrontとの間はHTTPSで暗号化されている。
CloudFrontとOriginとの間はHTTPSで暗号化
OriginのEC2とRDSとの間は暗号化されていない。ただしRDSはVPCの中でPrivate IPだから外部からの直接アクセスはできない。
EC2からRDSまで改ざんされる可能性は低いと思っている。ただ個人だとこれでいいけどビジネスだったらそこも対応しないとだめ?
通信経路上での盗聴や第三者によるなりすましと考えると全部HTTPS暗号化が必須だとは思う。
AWSの中で盗聴される可能性はほぼゼロに近いけど国家安全保障局(NSA)みたいな組織があると・・・と考えるとフルHTTPSが必要なの?
「誰から守るか」はかなり大切だね。そこはちゃんと考えておかないとね。

問題が1点あるんだけど・・・
CloudFrontのEdgeからOriginへのアクセスをさっさとHTTP/2にしてください。

205.251.211.53 – – [16/Sep/2016:15:27:25 +0900] “GET /wp-content/plugins/pagefrog/admin/images/google-btn.png HTTP/1.1” 200 8001 “-” “Amazon CloudFront”

国内のEdgeからならそんなりLatencyは気にならないけど他のRegionからの通信だとやっぱり気になる。
Originへの通信をどうにかしてHTTP/2対応にできないかなぁ


追記

うわ・・・Eとかダメすぎるチューニングする。