Clear CloudFront Cache | さゆフィクション http://it.kensan.net/it aws wordpress などなどゆるーく書いてます Sun, 23 Apr 2023 23:56:37 +0000 ja hourly 1 https://wordpress.org/?v=6.5.2 https://it.kensan.net/wp-content/uploads/2023/03/cropped-icon-32x32.png Clear CloudFront Cache | さゆフィクション http://it.kensan.net/it 32 32 StaticPressを使ってEC2上のWordPressコンテンツをCloudFront経由で簡単に配信する方法 https://it.kensan.net/aws_ec2_wordpress_cloudfront.html Fri, 17 Feb 2023 21:46:32 +0000 http://3.113.9.194/it/?p=454

WordPressのコンテンツを静的ページ化し、CloudFrontで配信できるようする!ということをやっていきます。

静的ページ化するところはWordPressのプラグインStaticPressを使用します。

CloudFrontのキャッシュクリアはClear CloudFront Cacheプラグインを使用します。

また、WordPressURLにBasic認証をかけるということもやっていきます!

WordPressのインストールは終わっている前提での記載になりますので、インストールが終わっていない場合は、以下の記事をご参照いただきEC2にWodPressをインストールください。

AWSのEC2に簡単にWordPressをインストールする方法(AMIでWordPressを使用)
簡単にAWSのEC2にWordPressをインストールする方法です。5分で動作確認までできます。 ハマるポイントとしては、WordPressログイン時のパスワードの確認くらいです。 AMIはWordPress Certified by Bitnami and Automatticを使用します
やること

①WordPressコンテンツを静的ページ化
②静的ページ化をCloudFrontで配信
③WordPressURLにはBasic認証をかける

使用するプラグイン

StaticPress
→静的ページ化で使用
Clear CloudFront Cache
→CloudFrontキャッシュの削除で使用

それでは、StaticPressを使用して、WordPressコンテンツの静的ページ化をしていきます!

StaticPressを使用してWordPressコンテンツを静的ページ化する

以下の手順で静的ページ化します。手順に記載のパスはAMI「WordPress Certified by Bitnami and Automattic」を使用時の例ですので、環境に応じて読み替えてください

  1. 以下のコマンドのようにWordPressが動いているEC2にSSH接続します
    • ssh -i “{sshキー}” bitnami@{パブリック IPv4 DNS}

  2. WordPress管理画面からStaticPressプラグインをインストールして、有効化します
  3. StaticPressの設定を以下の通り行います
    • サイトURL:http://{パブリック IPv4 アドレス}/static/
    • ドキュメントルート:/opt/bitnami/wordpress/
  4. StaticPressプラグインの再構築ボタンを押下し、静的ファイルを生成します
    • フェッチが進まない場合はソース修正をします
      • /home/bitnami/stack/wordpress/wp-content/plugins/staticpress/includes/class-static_press_admin.php

        // 以下のコードを追加する
        「if( !($('li:last-child', ul).offset() === void 0) )」を追加する

        
        修正後ソース 312行目辺り
        if( !($('li:last-child', ul).offset() === void 0) )//追加

        $('html,body').animate({scrollTop: $('li:last-child', ul).offset().top},'slow');
    • ファイルが生成されずに終了する場合はドキュメントルートの権限を確認します
      • 権限がなければ付与します
        • 「chown -R daemon:daemon /opt/bitnami/wordpress」を実行すると、権限に問題がある場合は問題解消できます
  5. 以下のURLにアクセスし画面表示されればOKです。
    • http://{パブリック IPv4 アドレス}/static/

CloudFrontの設定

  1. ディストリビューションを以下の設定で新規作成します(他の項目は変更しなくて大丈夫)
    • オリジンドメイン:EC2のパブリック IPv4 DNS
    • オリジンパス :static
  2. 以下のURLにアクセスし画面表示されればOK
    • http://ディストリビューションドメイン名
      • httpsでも大丈夫

次に、Clear CloudFront Cacheプラグインをインストールして、CloudFrontのキャッシュを簡単にクリアできるようにしておきます!

Clear CloudFront Cacheプラグインをインストールする

Clear CloudFront Cacheは、WordPress管理画面からインストール可能です。

インストール方法の詳細は、以下の記事をご参照ください。

StaticPress S3と共存できるWordPressプラグインClear CloudFront Cacheを公開!
StaticPress S3と共存できるWordPressプラグイン「Clear CloudFront Cache」を公開! WordPressコンテンツをCloudFront経由で配信している場合に使えるプラグイン。公開したプラグイン「Clear CloudFront Cache」はWP管理画面からインストール可能

WordPressURLにBasic認証をかける

WordPressURLはBasic認証をかけましょ!

Basic認証をかけることで、以下のメリットがあります。

メリット
  • WordPress管理画面へのアクセスにはBasic認証が必要
    • セキュリティ向上
  • 「WordPressを静的ファイル化して配信するURL」と「WordPressのURL」で、同一の記事が配信されていると、Google等のクローラーにみなされないようにする
    • SEO対策になる

 

Basic認証のかけ方は以下記事をご参照ください

WordPressのプラグインStaticPressでBasic認証を使う
StaticPress利用時のBasic認証のかけ方について記載。StaticPressで静的HTMLを生成して、StaticPress S3で静的ファイルをS3に転送して、配信する場合、Basic認証をかけることをお勧めします。Basic認証をかけるにはStaticPressのソース修正も必要となります

以上で「StaticPressを使ってEC2上のWordPressコンテンツをCloudFront経由で配信」できるようになりましたー

]]>
WordPressのコンテンツをCloudFrontを使って配信しているケースで、更新した内容がサイトに反映されない原因 https://it.kensan.net/wordpress_cloudfront_cache_delete.html Sun, 12 Feb 2023 23:04:29 +0000 http://ec2-13-112-80-120.ap-northeast-1.compute.amazonaws.com/it/?p=36 以下のような方向けの記事です。

  • WordPressのコンテンツをCloudFrontを使用して配信している
    • 更新内容が反映されない原因と対処法を知りたい
    • 原因と対処法は知っているけど、もっと簡単に対処したい

WordPressのStaticPressの導入については以下の記事をご参照ください。

StaticPress S3を使用してS3+CloudFrontでコンテンツ配信するケースの導入例

【日本語URL対応版】WordPressのコンテンツを StaticPress S3プラグインを使用して配信する方法
WordPressコンテンツをStaticPressS3を使用してS3+CloudFrontで配信する方法を記載。 コピペで環境構築できます。S3+CloudFrontで配信することで「 低コストで安定したサイト運用ができる」「高速なサイトを構築できる」「セキュリティ的に安全」というメリットがあります。

StaticPressを使用してEC2+CloudFrontでコンテンツ配信するケースの導入例

StaticPressを使ってEC2上のWordPressコンテンツをCloudFront経由で簡単に配信する方法
WordPressのコンテンツを静的ページ化し、CloudFrontで配信できるようにします。静的ページ化するところはWordPressのプラグインStaticPressを使用します。CloudFrontのキャッシュクリアはClear CloudFront Cacheプラグインを使用します

対応方法

CloudFrontのキャッシュを削除することで、更新内容がすぐに更新されます。

対応方法には、以下の2つがあります。

対応方法

WordPressのプラグインを使用する方法
AWSコンソール画面から対応する方法

    それぞれの対応方法について、紹介していきます。

    簡単に削除したい場合はプラグインを使用する方法がオススメです。

    WordPressのプラグインを使用する方法(Clear CloudFront Cacheプラグインを使用)

    WordPressプラグインClear CloudFront Cacheを使用することで簡単にキャッシュクリア可能です。簡単にインストール・設定できて、かつ、セキュアなプラグインです。導入方法は以下の記事をご参照ください。

    StaticPress S3と共存できるWordPressプラグインClear CloudFront Cacheを公開!
    StaticPress S3と共存できるWordPressプラグイン「Clear CloudFront Cache」を公開! WordPressコンテンツをCloudFront経由で配信している場合に使えるプラグイン。公開したプラグイン「Clear CloudFront Cache」はWP管理画面からインストール可能

    AWSコンソール画面から対応する方法

    AWSのコンソール画面から削除できます。以下の記事を参考にさせて頂き、削除できます。

    [AWS] Amazon CloudFrontのキャッシュ削除(Invalidation) | DevelopersIO
    おばんです、来週はお世話になっているSwift 愛好会さんで開催される開発合宿が楽しみな田中です。 なにをやろうかな、ライブラリ作ろうかな、個人アプリ開発を進めようかな、参加者の方々と設計を語るのも良さそうだな…。楽 …

    更新した内容がサイトに反映されない原因

    CloudFrontを使用している場合、CloudFrontがサイトの内容をキャッシュします。

    これによってサイトの表示が高速化されるというメリットがあります。

    ただし、WordPressで記事を更新した際には、このキャッシュを削除しないと、更新した内容がサイトに即時反映されないという現象が発生することとなります。

    上記の方法でキャッシュを削除することで、最新の内容を即時公開できるようになります。

    まとめ

    CloudFrontを使用している場合のサイトが更新されない原因と対応方法について、記載しました!

    まとめ

    更新されない原因
    →CloudFrontがサイトの内容をキャッシュしているため、キャッシュを削除する必要がある
    キャッシュを削除には、2つの対応方法がある
    WordPressのプラグインを使用する方法
    AWSコンソール画面から対応する方法

    ]]>