この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
「WordpressをCloudFrontで配信したいけど、CloudFront何もわからん。楽して設定したい。」
色々選択肢あると思いますが、プラグイン「AWS for WordPress」を使うと楽かもしれません。
少し事前準備はありますが、このプラグインを使うとほぼ自動でWordpressを配信に必要なCloudFront設定ができます。
やってみた
LightsailでWordpressを用意
検証用にLightsailでWordpressサーバを用意しました。
AWS側の設定は上記の手順と同様でできるのですが、Wordpress 6系だとwp-config.phpの場所が異なるので注意が必要です。(上記リンクの手順では、5系)
# WordPress 5(上記手順)
sudo vim ./apps/wordpress/htdocs/wp-config.php
# WordPress 6
sudo vim /bitnami/wordpress/wp-config.php
IAMユーザーの準備
LightsailではIAMロールを付けることができないためIAMユーザーを作成します。
以下のポリシーをインラインポリシーとしてアタッチします。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "acm:DeleteCertificate",
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:RequestedRegion": "us-east-1"
}
}
}
]
}
また、以下のマネージドポリシーもアタッチします。 (以下のポリシーがないと、プラグインからCloudFrontの設定ができません。)
- AWSForWordPressPluginPolicy
プラグイン AWS for WordPressの設定
AWS for WordPressを有効化します。
上記で作成したIAMユーザーのアクセスキーとシークレットキーを設定します。
その後、「CloudFront」を選択しドメインを設定します。 ドメイン名を入力して「Initiate Setup」を押すと、設定が開始されます。
今回は以下の値を設定しました。
- Origin Domain Name:
- wp-test.satomasaki.classmethod.info
- CloudFront Alternate Domain Name:
- www.wp-test.satomasaki.classmethod.info
ここで実行されることは主に3つです。
- ACM 証明書発行、検証
- CloudFront ディストリビューションの作成
- CloudFrontとの関連づけ
ACM 証明書発行、検証
まずは、ACM 証明書が発行されます。
ドメイン名の入力の部分で私は、「Cloudfront Alternate Domain Name(CloudFront AlCloudFront 代替ドメイン名)」に「www.wp-test.satomasaki.classmethod.info」を設定していました。
マネジメントコンソールから確認すると、該当のACM 証明書が作成されています。
この時点では、検証ができていないため以下で表示されるレコードを手動で登録する必要があります。(上記は、検証後スクショしたため発行済みになっています)
ACM 証明書が準備できたら、「Check status of SSL/TLS certificate」を押して次のステップに進みます。
CloudFront ディストリビューションの作成
CloudFront ディストリビューションが作成されます。 このステップには5~10分程度かかります。
作成完了すると以下のようにチェックがつきます。
コンソールからもCloudFrontが作成されたことが分かります。
ビヘイビアには、「wp-admin/」等をキャッシュしないための設定が入っています。
CloudFront用のレコードを登録
最後にCloudFrontをDNSレコードに登録して、「www.wp-test.satomasaki.classmethod.info」でCloudFrontにアクセスできるようにします。
最後に「Activate Site Acceleation」にチェックをつけます。
疎通確認
Google Chrome デベロッパーツールで「x-cache: Hit from cloudfront」になっていることを確認できました。 CloudFrontに疎通できているようです。
おわりに
プラグイン「Wordpress for AWS」を使用することで、簡単にCloudFrontの設定ができます。
しかし、細かい設定には対応していないためカスタマイズしたい場合は、直接CloudFrontの設定を変更する必要があります。 (例えば、特定のパスだけCloudFrontで配信したい・画像だけCloudFront + S3で配信したいといったことはこのプラグインではできません)
Amazon PollyやAlexaと連携した機能もあるようです。 機会があったら試してみたいと思います。
以上、AWS事業本部の佐藤(@chari7311)でした。