WordPress 実行環境で ALB 前に CloudFront を設定する (3/3)

はじめに

こんにちは、missi です。「AWS 環境に WordPress をなるべくお金をかけずに構築していく」のシリーズとして記事を書いています。このシリーズでは、「AWS 上に WordPress を構築するために必要なリソースを最小限に抑え、コストを抑える方法について」お届けしています。今回は「WordPress 実行環境で ALB 前に CloudFront を設定する」をテーマに CloudFront の設定に関して、Route 53 レコードの追加やセキュリティグループの設定などをご紹介したいと思います。

前回の内容

前回「WordPress 実行環境で ALB 前に CloudFront を設置する (2/3)」にて、ACM 証明書の作成からディストリビューションの作成とビヘイビアの設定などを紹介しました。

CloudFront 設定後のイメージ

CloudFront 設置後

今回の設定概要

  • CloudFront
    • ドメイン: example1.jp
    • ACM: example1.jp
      • リージョン: 米国東部 (バージニア北部)
  • オリジン (ALB)
    • ドメイン: alb.example1.jp
    • ACM: *.example1.jp
      • リージョン: アジアパシフィック (東京)

CloudFront 設定の流れ

  1. AWS Certificate Manager (ACM) 証明書を作成する。
  2. WordPress 用のキャッシュポリシーを作成する。
  3. WordPress 用のオリジンリクエストポリシーを作成する。
  4. ディストリビューションを作成する
  5. ディストリビューションのビヘイビアを設定する。
  6. Route 53 で、ALB 用のレコードを追加する。
  7. (バーチャルホスト環境の場合)バーチャルホストの設定を編集する。
  8. Route 53 で、既存レコードのエイリアスを CloudFront に変更する。
  9. (任意)SecurityGroup のインバウンドを CloundFront に制限する。

今回は 6. のRoute 53 に ALB 用のレコードを追加するから、 9. セキュリティグループの設定までの手順をご紹介したいと思います。

CloudFront へのアクセス設定

以前、「外部取得ドメインを Route 53 に登録する(後半)」にて、関連付けさせたいドメインを、ALB のに紐付けしました。今回は、そのドメインの紐付けを ALB からCloudFront に変更し、取得したドメインで CloudFront にアクセスできるように変更する手順をご紹介していきます。

Route 53 レコード追加

まず、ALB 用のレコードを追加します。

  1. Route 53 コンソールを表示します。
  2. ナビゲーションペイン [ホストゾーン] を選択し、ALB に設定しているホストゾーン名 例) example1.jp を選択します。
  3. 「ホストゾーンの詳細」ページで、[レコードを作成] を選択します。
  4. 「レコードを作成」ページで以下を設定します。
  • レコード名: alb[.example1.jp]
  • レコードタイプ: A
  • エイリアス: チェックする
  • トラフィックのルーティング先
    • エンドポイント: Application Load Balancer
    • リージョン: アジアパシフィック (東京) (適宜変更)
    • ロードバランサー: 作成済みのロードバランサーを選択
  1. 内容を確認して [レコードを作成] を選択します。
  2. しばらくすると、レコードが追加されます。

バーチャルホスト編集

以前「nginx のバーチャルホストを設定する」にて、バーチャルホストを設定している場合は、バーチャルホストの設定を編集します。

/etc/nginx/conf.d/ 配下に設定ファイル alb.example1.jp (適宜変更) を作成する。

# エディタを起動して設定ファイルを開く
sudo vi /etc/nginx/conf.d/alb.example1.jp.conf
server {
    listen 80;
    server_name alb.example1.jp;
    root /var/www/html/example1.jp;
    index index.php index.html;
    include /etc/nginx/default.d/*.conf;
}

こちらは設定例です。ドメイン (example1.jp) など、適宜変更

  • listen: 80 or 443
  • server_name: alb.example1.jp;
    今回追加したドメインを指定
  • root: /var/www/html/example1.jp;
    alb で利用しているルートディレクトリを指定
  • index: index.php index.html;
    WordPress を利用している場合 index.php を指定
  • include: /etc/nginx/default.d/*conf;
    WordPress など設定ファイルを作成している場合は読み込むファイルを指定

Route 53 レコード変更

次に、Route 53 のレコードを変更します。

  1. Route 53 コンソールを表示します。
  2. ナビゲーションペイン [ホストゾーン] を選択し、以前 ALB に設定しているホストゾーン名 例) example1.jp を選択します。
  3. 「ホストゾーンの詳細」ページのレコード一覧から、以前 ALB に関連付けしているレコード名 例) example1.jp のチェックボックスを選択します。
  4. 「レコードの詳細」ページで [レコードの編集] を選択します。
  5. 「レコードを編集」ページで以下を設定します。
    • トラフィックのルーティング先
      • エンドポイント: CloudFront ディストリビューションへのエイリアス
      • リージョン: 米国東部 (バージニア北部)
      • ディストリビューション: 作成した CloudFront を選択
  6. 入力内容を確認して [保存] を選択します。

(任意)SecurityGroup 制限更新

最後に ALB へのアクセスを CloudFront のみに制限します。これは任意の設定で、ALB に CloudFront 以外からアクセスする必要がある場合はこの設定はスキップしてください。

プレフィックスリストの確認

  1. VPC コンソールを表示します。
  2. ナビゲーションバーで ALB を作成したリージョン 例) [アジアパシフィック (東京)] を選択します。
  3. ナビゲーションペイン [マネージドプレフィックスリスト] を選択します。
  4. マネージドプレフィックスリストセクションで、プレフィックスリスト名 com.amazonaws.global.cloudfront.origin-facing のエントリーを探します。
  5. プレフィックスリスト ID の値を控えておきます。

セキュリティグループの更新

  1. EC2 コンソールを表示します。
  2. ナビゲーションペイン [セキュリティグループ] を選択します。
  3. セキュリティグループリストセクションで、ALB に設定しているセキュリティグループ名を選択します。
  4. 「インバウンドルール」セクションで [インバウンドのルールを編集] を選択してルールを変更します。
    • タイプ: HTTPS
    • ソース: 例) 0.0.0.0/0 → 前項で控えた プレフィックス ID
  5. 入力内容を確認して [ルールを保存] を選択します。

おわりに

今回の記事は以上となります。このシリーズでは、「AWS 環境に WordPress をなるべくお金をかけずに構築していく」をお届けしていますので、ぜひ過去の記事もご覧ください。


投稿日

カテゴリー:

,

投稿者:

タグ: