StaticPressを使ってEC2上のWordPressコンテンツをCloudFront経由で簡単に配信する方法

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経由で配信」できるようになりましたー