[自分用メモ] lightsailのWordPressをCloudFront配下に置いてみた。

2019-04-03AIX、UNIX、Linux,Amazon Web Services,wordpressAmazon,aws,CloudFront,DNS,google,Let's Encrypt,lightsail,User-Agent,wordpress,設定,証明書

Screenshot_2019-04-01 Amazon CloudFront(高速コンテンツ配信ネットワーク - CDN) AWS

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 PatternDefault(*)*.php/wp-login.php*/wp-admin/*
Viewer Protocol PolicyRedirect HTTP to HTTPS<=<=<=
Allowed HTTP MethodsGET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE<=<=<=
Cache Based on Selected Request HeadersWhitelist<=<=<=
Whitelist HeadersCloudFront-Forwarded-Proto HostCloudFront-Forwarded-Proto
Host
Authorization
User-agent
CloudFront-Forwarded-Proto
Host
Authorization
User-agent
CloudFront-Forwarded-Proto
Host
Authorization
User-agent
Object CachingDefaultCustomize(すべて0。キャッシュしない)Customize(すべて0。キャッシュしない)Customize(すべて0。キャッシュしない)
Forward Cookiescomment_author_* wordpress_logged_in_* wordpress_test_cookie wp-*
settings-*
AllAllAll
Query String Forwarding and CachingForward 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が渡っていなくて表示がおかしかったりで、色々とあちこち触っていました。

POINT

CloudFrontの設定が正しくないと、管理画面に入れなくなったり、WordPressから画像が正しく表示されなかったりするので要注意。
また、CDNのCacheにうまく乗らなかったりで、Cache Hit率が上がらない場合があるので、そのときはCloudFront Management Consoleの「Reports & Analytics」を確認するとよい。

今は大丈夫だと思いますが、表示などでおかしなところがあったらご連絡ください。

参考:

この記事を書いた人
kometchtech

kometchtech
うつ病を患いながら、IT業界の末席にいるおっさんエンジニア。科学計算をしたことがないのに、HPC分野にお邪魔している。興味のある分野で学習したことをblogにまとめつつ、うつ病の経過症状のメモも置いておく日々。じつはRouterboard User Group JPの中の人でもある。
Amazon欲しいものリスト / Arm板を恵んでくれる人募集中