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

2019-04-03 10:28:28AIX、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」を確認するとよい。

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

参考:

AWS認定資格試験テキスト AWS認定 ソリューションアーキテクト-アソシエイト
NRIネットコム株式会社 佐々木 拓郎 林 晋一郎 金澤 圭
SBクリエイティブ
売り上げランキング: 2,104
Amazon Web Services 基礎からのネットワーク&サーバー構築 改訂版
玉川憲 片山暁雄 今井雄太 大澤文孝
日経BP
売り上げランキング: 5,491