はじめに
lightsailを使用してWordPressを構築していますが、CDNであるCloudFrontもそれほど大きな料金の負担なく(もちろん設定次第でしょうが)設置できるということで、今回設定してみました。
困ったときのクラメソさん
作業内容としては以下のWebサイトのものをそのままなぞる様な形です。
AWS関連といえばクラスメソッドさんですよね。
Lightsail自体は念のため$5ドルのインスタンスに変更してあります。(スケールアップについても、スナップショットを取得して、新しいインスタンスで起動するだけというお手軽さ。かなり便利ですね)
SSL証明書もLet’s Encryptから、AWS Certificate Managerで取得・使用するようにしています(AWS Certificate Managerも今回初めて知りました)。
自分の環境に合わせて変えたところ
クラスメソッドさんの記事からの違いは以下の点になります。
- Lightsailでドメインを設定するのではなく、Google Cloud DNSを使用する形
- ドメインのSSL証明書はワイルドカードではなく、CloudFrontとWordPressに設定するドメインに限定した状態で取得
- Cache Behaviorに「
*.php
」を追加。 - Cache BehaviorのPath-pattern 「
*.php
」「/wp-admin/*
」「/wp-login.php*
」のWhitelist Headers「Authorization
」と「User-agent
」を追加
表にすると
Cache Behaviorの設定をまとめると以下の表のとおり。
Path Pattern | Default(*) | *.php | /wp-login.php* | /wp-admin/* |
---|---|---|---|---|
Viewer Protocol Policy | Redirect HTTP to HTTPS | <= | <= | <= |
Allowed HTTP Methods | GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE | <= | <= | <= |
Cache Based on Selected Request Headers | Whitelist | <= | <= | <= |
Whitelist Headers | CloudFront-Forwarded-Proto Host | CloudFront-Forwarded-Proto Host Authorization User-agent | CloudFront-Forwarded-Proto Host Authorization User-agent | CloudFront-Forwarded-Proto Host Authorization User-agent |
Object Caching | Default | Customize(すべて0。キャッシュしない) | Customize(すべて0。キャッシュしない) | Customize(すべて0。キャッシュしない) |
Forward Cookies | comment_author_* wordpress_logged_in_* wordpress_test_cookie wp-* settings-* | All | All | All |
Query String Forwarding and Caching | Forward All, cache based on all. | <= | <= | <= |
結果の確認
結果として以下のようにCloudFrontからリダイレクトされていることを確認しています。
$ curl -I https://blog.komeho.info
HTTP/1.1 301 Moved Permanently
Server: CloudFront
Date: Mon, 01 Apr 2019 00:12:57 GMT
Content-Type: text/html
Content-Length: 183
Connection: keep-alive
Location: https://blog.komeho.info/
X-Cache: Redirect from cloudfront
Via: 1.1 b4ef37917b36c601eeeeb55cdda4288c.cloudfront.net (CloudFront)
最初、CloudFrontの設定のためか、WordPressの管理画面に入れなかったり(無限ループしていた)、OriginにうまくCookieが渡っていなくて表示がおかしかったりで、色々とあちこち触っていました。
今は大丈夫だと思いますが、表示などでおかしなところがあったらご連絡ください。