www.dwyl.info は Azure CDN と紐づけることでHTTPS対応したのは15日のエントリのとおりなのだけど、 dwyl.info はネイキッドドメインでもアクセス可能としていたので、その状態を維持するべく15日のエントリ終了時点では下図のようになっていた。
Shared プラン with Azure CDN!!! 安く仕上げたいはずが値上がりしてんじゃねーかバーカ!123
ということでネイキッドドメインでのアクセスを維持しながらこの状態からお値段を下げる方向を模索しつつHTTPSでもアクセスできるようにしたい。
無茶ぶり?そう、すべてを叶えるサービスが揃ってるんです。AWSにはね。4
ひとまず Sharedプラン に頼らずネイキッドドメインでアクセスができるように S3 にバケットを作る → そのバケットに www.dwyl.info へのリダイレクトの設定を行う → Route 53 で dwyl.info の A Record に対しAliasで先に作ったバケットを指定する とすることで、Shared プラン に頼らずにネイキッドドメインからのリダイレクトが可能になる。 バケット名はAliasを貼りたいドメインと同じ名前にしないと Route 53 でAliasの候補として出てこないというドキュメント読めとしか言いようのないところではまったもののここまではまあ楽にいける。
S3 からのリダイレクトだけだと http にしか対応しないのでもう一歩踏み込みたい。
- Route 53 で A Record のAlias先に選べて
- HTTPSに対応していて
- S3のリダイレクト設定を生かすことができる
CloudFrontだ!
ということでリダイレクトしかしないのにコンテンツデリバリーとは何なのかと言いたくなるCDNここに誕生。最終的な流れは下図のようになる
こちらはだいぶはまった。
- CloudFront の Origin を指定する際にドロップダウンリストから選択するのではなく、S3 のバケットの設定ページからURLをコピペで持ってくる。ドロップダウンリストでバケットを選んだが最後、再設定するまでS3の「そんなファイルは無い」というAPIエラーしか表示されなくなって哀しみを覚える
- AWS コンソール から設定する場合は IE や Edge は使わない。適切な証明書が作成されて選択できそうな状態であってもグレーアウトしていてクリックしても反応が微妙(連打していると突然選択できたりできなかったり)というよくわからない状態になる5
- US Eastに属するリージョンの証明書しか使えないので、AWS Certificate Manager で予め作っておくよりも、CloudFrontの Distribution Settings 内にある Request or Import a Certificate with ACM ボタンからとんだ先で作ったほうが確実
- Origin Settings の Origin Protocol Policy は Match Viewer のまま弄らない
CloudFront は設定を何か変更するたびに反映されるまでの時間が長いので、ロスしないように慎重に進めることを心掛けたい(自戒(白目))。
で、これ僕がはまってうんうん唸ってた半日後に genba.fm が似たようなはまり方していて、そっちさえ見ていれば知見たっぷりって感じがするんですが、このエントリのコンテンツ力は大丈夫なんでしょうか???
参考リンク