Help us understand the problem. What is going on with this article?

CloudFrontの下でWordpressを実行する時に色々ハマった話 前編

More than 1 year has passed since last update.

長くなったので、前編後編に分けます。

WordpressをAWSで動かす構成例

構成図

以下の構成で、WordpressをAWSで動かします。
スクリーンショット 2018-02-09 9.20.00.png

  • EC2でWordpressを実行
  • インターネットからはCloudFrontへアクセス
  • CloudFrontでHTTPからHTTPSへリダイレクト
  • CloudFrontからEC2へはHTTPでポート番号8080へアクセス

本来であれば、CloudFrontとEC2の間にApplication Load Balancerを挿むのが良いと思います。
どちらにしても、以下の対応は必要です。

CloudFrontの設定

Distribution Settings

IMG_5239.PNG

Alternate Domain Names (CNAMEs)

ここには、公開するFQDNを入れます。

SSL Certificate

Custom SSL Certificate を選択し、ACMで作った証明書を選択します。

Origin Settings

IMG_5241.PNG

Origin Domain Name

ここには、EC2のパブリックDNSを入力します。

Origin Protocol Policy

HTTP Only を選択します。

HTTP Port

EC2側で待ち受けているポート番号にします。
(この例では8080です)

Cache Behavior Settings

IMG_5243.PNG

次の考えで作成していますが、キャッシュ設定はそれぞれのサイトタイプによって設計が必要です。

  • 管理画面、ログイン画面はキャッシュしない
  • PHPもキャッシュしない
  • それ以外はデフォルトTTLでキャッシュする

管理画面とログイン画面

IMG_5245.PNG
スクリーンショット 2018-02-09 10.20.48.png

Path Pattern

管理画面用の設定では「/wp-admin/*」を、ログイン画面用の設定では「wp-login.php」を設定します。

Origin

Origin Settingsで作ったOrigin IDを選択します。

Viewer Protocol Policy

CloudFrontでHTTPSへリダイレクトする為、Ridirect HTTP to HTTPSを選択します。

Allowed HTTP Methods

Get, HEAD, OPTIONS, PUT, POST, PATCH, DELETEを選択します。

Cache Based on Selected Request Headers

Whitelistを選択し、以下を通します。

  • Authorization
    管理画面にベーシック認証を入れる時などに必要です。

  • CloudFront-Forwarded-Proto
    Origin側へプロトコルを通知します。

  • Host
    Origin側へアクセス先ホスト名を通知します。

Object Caching

Customizeを選択します。

  • Minimum TTL / Maximum TTL / Default TTL
    全て0にします。
Forward Cookies

Allを選択します。

Query String Forwarding and Caching

Forward all, cache based on allを選択します。

ログイン画面以外のPHP [*.php]

基本的にはログイン画面と同様なので、割愛します。
例えば、普通のブログサイト等ではTTLを増やすといった形が取れるかと思います。

それ以外 [Default(*)]

下記以外はデフォルトのままです。

Viewer Protocol Policy

CloudFrontでHTTPSへリダイレクトする為、Ridirect HTTP to HTTPSを選択します。

Cache Based on Selected Request Headers

Whitelistを選択し、その他と同様に以下を通します。

  • Authorization
    管理画面にベーシック認証を入れる時などに必要です。

  • CloudFront-Forwarded-Proto
    Origin側へプロトコルを通知します。

  • Host
    Origin側へアクセス先ホスト名を通知します。

Forward Cookies

Allを選択します。

Query String Forwarding and Caching

Forward all, cache based on allを選択します。

後編へ続く。

kunitaya
”討論者”(ENTP-A)の性格を持つテクノロジスト
quad
デザインとテクノロジーで新しい価値を作り出す。
https://quad.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした