タイトルの通りです。
キャッシュしないCloudFrontなんて何に使うの?って感じなんですが、最近 AWS WAF がリリースされたりして、ELBのように前段に挟むだけでも意味があると思っています。
動的コンテンツが多いと恩恵は受けにくいのですが、それでも静的なファイルのみを指定してキャッシュを配信したり、DDoS対策したり…これから新たにウェブサービスのアーキテクティングする際はとりあえず間に噛ませておく、というのが良いと感じています。
ディストリビューションの設定
デフォルトの設定から変更するべき箇所を列挙します。
Create Distribution の画面で入力、変更する箇所を列挙します。
- Origin Settings
- Origin Domain Name: クリックしてELB一覧からオリジンとなるサーバーを選択
- Origin ID: 任意で(ELB設定時にデフォルトで付与される)
- Default Cache Behavior Settings
- Allowed HTTP Methods: 「GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE」 に変更
- Forward Headers: 「All」 に変更
- Forward Cookies: 「All」 に変更
- Forward Query Strings: 「Yes」 に変更
上記でCloudFrontから割り当てられる *.cloudfront.net のドメインを使ったアクセスは可能となるのですが、WAFの導入を前提とした場合、独自ドメインでアクセスすることになると思いますので、
- Distribution Settings
- Alternate Domain Names (CNAMEs)
に使用するドメイン名を入力しておきます。
ここでは例として「cf-test.example.com」を使うことにします。
DNSレコードの更新
最後に、CNAMEsで指定したFQDNのDNSレコードの設定を、CNAMEで発行された *.cloudfront.net ドメインを指定して完了です。
Route53の場合、全世界の権威DNSサーバーに60秒以内に反映されるようになっています。基本的には設定したTTL時間分待てば、CloudFront経由でアクセスできるようになっているはずです。
所感
CloudFrontと言えばやはりキャッシュして高速配信するのが一般的ですが、後々の拡張性を考えて最初からこの構成にしておくのもアリだと思いました。



