wordpress環境を
CloudFront + ELB + EC2にて作成した時に
CloudFrontの設定でつまづいたところを残しておこうと思います。
各種設定
Origin Domain Name
オブジェクトの取得先 | DNSドメイン名の例 |
---|---|
Amazon S3 バケット | myawsbucket.s3.amazonaws.com |
ウェブサイトとして構成されている Amazon S3 バケット | http://bucket-name.s3-website-us-west-2.amazonaws.com |
MediaStore コンテナ | mymediastore.data.mediastore.us-west-1.amazonaws.com |
MediaPackage エンドポイント | mymediapackage.mediapackage.us-west-1.amazon.com |
Amazon EC2 インスタンス | ec2-203-0-113-25.compute-1.amazonaws.com |
Elastic Load Balancing ロードバランサー | my-load-balancer-1234567890.us-west-2.elb.amazonaws.com |
独自のウェブサーバー | https://example.com |
SSL証明書
SSL証明書(CloudFront用)
us-eastでACMので作成する
SSL証明書(ELB用)
ELBを設置するリージョンで作成する
ELBの設定
ELBのリスナーをHTTPS(443)にする
デフォルトのSSL証明書にSSl証明書(ELB用)を設定する
CloudFront経由でもUserAgentを変更させない
アクセスログを確認するとアクセス元が「Amazon CloudFront」になってしまう
対処法
該当のDestributionを選択
Behaviorsから対象のBehaviorを選択
Whitelist Headersから「User-agent」を追加する
Forward Cookies
wordpressの場合、ログインセッションをcookieで管理している。
なので、Cookieを許可しなければ管理画面へはログインできません。
対処法
Behaviorsから対象のBehaviorを選択
Forward CookiesのWhitelistを選択->Whitelist Cookiesに以下を追加
wordpress_*
wp-settings-*
*プラグイン等を色々使用している場合他にもcookieを使用している可能性もある。
都度確認するか、Forward CookiesをAllに設定することで対処する。
Query String Forwarding and Caching
例えば検索(https://example.com/?test) などでも
CloudFrontを経由することでhttps://example.com/ にアクセスしたことになってしまう。
対処法
Behaviorsから対象のBehaviorを選択
Query String Forwarding and Cachingを「Forward all, cache based on all」にする