WordPressの高速化のために行ったこと

Nginx

CDN(キャッシュ)の導入

当ブログの構成変更を行なったといった記事を前回(https://engineer-ryo-blog.com/2024/02/18/blog-update/)書いたが、その際にAmazon CloudFrontを導入した。

Amazon CloudFrontの利用にあたっては、いくつかの注意事項があり、注意事項を理解した上で利用する必要があるが、CDNによる非常に強力なキャッシュの力を手にいれることができる。

主な注意事項は以下の通り

  • キャッシュして良いもの、キャッシュすると影響が出るものがある。
    例) WordPressの場合、ログインが必要なページ(wp-adminなど)はキャッシュしてしまうと、未ログインのユーザーも閲覧できる状態になる。(見えてはいけないページが見える。)
    ビヘイビアを作成し、キャッシュポリシーを「CashingDisabled」にした上、オリジンリクエストポリシーを「All Viewer」とすることで、キャッシュさせないようにする。
  • キャッシュという性質上、リアルタイムに更新される訳ではないので、要注意。
    すぐに反映したいものがある場合は、キャッシュの削除を手動で行う必要がある。
  • 初回のリクエストはキャッシュされていないため、オリジンサーバーへアクセスする。
    キャッシュが効いていない状態のため、少し表示が遅い場合がある。
    ただし、2回目以降は、キャッシュから表示するため高速
  • 若干ではあるが、利用料金がかかる。
  • AWS WAFも一緒に導入することをおすすめするが、こちらも利用料金がかかるので予算と要件次第。

nginxの設定変更

gzipで圧縮するよう、nginxの設定ファイルへ追記を行った。

gzip on;
gzip_types text/css application/javascript application/json application/font-woff application/font-tff image/gif image/png image/jpeg application/octet-stream;

スケールアップ

今回は行っていないが、スケールアップ(スペックの向上)も検討する必要がある。

当ブログでは、「t4g.micro」を使用しているが、バズることがなければ必要十分と感じる。
AWS Graviton プロセッサのインスタンスのため、コスト・パフォーマンスが高い。

DB設定のチューニング

当ブログはWordpressのため、テーブル・クエリレベルのチューニングは難しいが、接続先を127.0.0.1からlocalhostへ変更した。

これにより、TCP/IPでの接続ではなく、UNIXドメインソケットでの接続になっているはず…

DBキャッシュ

当ブログでは実施していないが、インメモリDBをキャッシュとしてAP・DB間に配置することで、パフォーマンスの向上が見込まれる。

コメント

タイトルとURLをコピーしました