4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Fargate+WordPress構築 HTTPS化 ②

Last updated at Posted at 2021-10-04

はじめに

Fargate+WordPress構築 WordPressが表示されるまで ①の続きです。

最終的な構築図

スクリーンショット 2022-11-23 14.23.33.png

流れ

  • ALBを設置
  • Route53を作成
  • Dockerfileを作成
  • ECRを作成
  • クラスターを作成
  • タスク定義を作成
  • サービスの作成
    ↓ここから
  • ACM証明書を作成
  • ELBに証明書を設置
  • 証明書を設置したCloudFrontを作成
  • Route53でCloudFrontへのルーティング設定
    ↑ここまで
  • S3を作成し、Wordpressのプラグインで連携
  • CloudFrontで画像等のキャッシュ設定
  • キャッシュの確認

ACM証明書を作成

証明書は、2つ作成します。
 ・CloudFront用ACM証明書 (バージニアリージョン、ドメイン名:xxxx.work
 ・ELB用ACM証明書 (ELBと同じリージョンで取得する、ドメイン名:xxxx.work

CloudFront用ACM証明書を作成

バージニアリージョンでACMを作成します。

ACMコンソールから証明書のプロビジョニング今すぐ始めるをクリックする。

パブリック証明書のリクエストで、証明書のリクエストする。

ドメイン名:xxxx.work*.xxxx.workを入力して、次へをクリックする

 ・検証方法の選択:DNS の検証
 ・タグの追加はしません
確定とリクエストをクリックする

Route53でのレコードの作成をクリックし、作成する。

検証完了になるのを待ちます。

ELB用ACM証明書

ELB用のACM証明書を作成します。
先程のCloudFront用の証明書と作成方法は、以下の1点を除き同じですので省略します。
 ・リージョンは、ELBが作成されたリージョン
 ・ドメイン名:xxxx.work*.xxxx.work

同様に検証完了になるのを待ちます。

ELBに証明書を設置

ELBのコンソール画面のリスナータブのリスナーの追加をクリックする。

以下の設定でリスナーの追加する。
 ・プロトコル:ポートHTTPS:443
 ・デフォルトアクション:転送先:[elbのターゲットグループ]
 ・セキュリティーポリシー:ELBSecurityPolicy-2016-08
 ・デフォルトの SSL 証明書:`ACMから(推奨):[先程作成したACM証明書]

CloudFrontからELBへの通信は、HTTPではなくHTTPSにしたいので、HTTPでのリクエストをHTTPSにリダイレクトします。

リスナーHTTPの編集
 ・デフォルトアクションを削除します。

・アクション追加:  ・`リダイレクト先`  ・`HTTPS:443`  ・`デフォルトホスト、パス、クエリを使用`  ・`301-完全に移動されました。`

下記図のようにして、更新をクリックすると、HTTPのリクエストをHTTPS化してリダイレクトします。

URL:http://xxxx.work/wp-admin/install.phpにアクセスすると、
URL:https://xxxx.work/wp-admin/install.phpにリダイレクトして、webページが表示されます!

証明書を設置したCloudFrontを作成

スクリーンショット 2022-11-23 14.22.56.png

CloudFrontのコンソールの画面からCreate Distributionをクリックします。
オリジン
 ・オリジンドメイン:[作成したALBを選択]
 ・プロトコル:HTTPSのみ
 ・最小オリジン SSL プロトコル情報:TLSv1.2
 ・オリジンパス:なし

デフォルトのキャッシュビヘイビア
 ・ビューワープロトコルポリシー:Redirect HTTP to HTTPS
 ・許可されたHTTPメソッド:GET,HEAD

キャッシュキーとオリジンリクエスト
 ・Cache policy and origin request policy (recommended):
キャッシュポリシーCachingDisabled
オリジンリクエストポリシーAllViewer
CachingDisabledにする必要な理由は、こちらが分かりやすいです。
CloudFront + WordPress 構成の必須設定

設定
 ・代替ドメイン名 (CNAME) - オプション:xxxx.work
 ・カスタム SSL 証明書 - オプション:[先程作成したacm証明書]

ディストリビューションを作成をクリックします。

スクリーンショット 2021-11-05 22.34.26.png

今の設定ですと、CloudFrontでキャッシュにされないため、CloudFrontのキャッシュによる高速配信ができていない状態です。

キャッシュする仕組みは、次回作成します。

Route53でCloudFrontへのルーティング設定

前回、xxxx.workのAレコードは、albにルーティングするように設定していました。
xxxx.workのAレコードをcloudfrontにルーティングするよう修正します。

 ・レコード名:なし
 ・レコードタイプ:A
 ・ルーティングポリシー:シンプルルーティング
 ・値/トラフィックのルーティング先:CloudFront ディストリビューションへのエイリアス
   バージニア
   [先程作成したCloudFront]

シンプルなレコードを定義をクリックします。

URL:https://xxxx.work/wp-admin/install.phpにアクセスすると、webページが表示されます!

次回

ただし、今のままですと画像を保存しても、コンテナが停止するとなくなってしまいます。
WordPressのプラグインであるWP Offload Media Liteを使用し、S3に画像を保存することで、コンテナが停止しても画像がひょうじされるようになります。また、CloudFrontで画像をキャッシュする仕組みを次回つくります。

Fargate+WordPress構築 S3と連携 ③

参考

CloudFront + WordPress 構成の必須設定
ALBにCloudfrontからしかアクセスさせない制限方法
AWSのCloudFrontを設定し、サーバからの応答時間を短くしたい

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?