2026年8月1日

2026年8月1日

WordPressのメディアURLをCDNに向ける方法

はじめに

ここでは、WordPressサイトのメディアファイルを効率的に配信するための方法として、コンテンツ配信ネットワーク(CDN)への変更手順について解説します。CDNを利用することで、画像や動画などの大容量データの読み込み時間を短縮し、ウェブサイトのパフォーマンスとユーザーエクスペリエンスを向上させることが可能です。

症状・背景

このテーマが必要になる主な場面:

  • メディアファイルのアクセスが集中する
  • サイトのトラフィックが増加し、サーバー負荷が高まる
  • 画像や動画などの大容量メディアファイルを大量に扱う
  • ユーザーからの高速化要望がある

手順・設定方法

ステップ1: WordPressのメディアファイルをS3バケットへアップロードする

# WP CLIを使用してS3へのバックアップを作成
wp media import s3-bucket --source=local-media-directory --bucket=s3-bucket-name --profile=default --region=ap-northeast-1 --url=https://s3-ap-northeast-1.amazonaws.com/s3-bucket-name

# S3のバケットへメディアファイルを直接アップロード
aws s3 sync local-media-directory/ s3://s3-bucket-name/

ステップ2: CloudflareでS3エージェント設定を行う

# Cloudflareにアカウントログインし、DNS設定の「Workers」セクションへ移動
cf worker create cdn-proxy "import S3 from 'workers-s3';"

# ワークスコッドにS3エージェント設定を追加
export WORKER_NAME="cdn-proxy"
curl -X PUT https://api.cloudflare.com/client/v4/accounts/<ACCOUNT_ID>/workers/scripts/$WORKER_NAME \
     -H "Authorization: Bearer $CF_API_TOKEN" \
     -H "Content-Type: application/javascript" \
     --data-binary @cdn-proxy.js

ステップ3: WordPressの設定ファイルを変更してCDN URLを使用する

# wp-config.phpに以下の行を追加または編集
define('WP_CONTENT_URL', 'https://s3-ap-northeast-1.amazonaws.com/s3-bucket-name');
define('WP_PLUGIN_URL',  'https://s3-ap-northeast-1.amazonaws.com/s3-bucket-name/wp-content/plugins');
define('SCRIPT_DEBUG', false);

# .htaccessファイルを編集
RewriteEngine On
RewriteRule ^wp-content/uploads/(.*)$ https://s3-ap-northeast-1.amazonaws.com/s3-bucket-name/$1 [L,NC,R=302]

ステップ4: CDNの設定と監視を行う

# Cloudflareダッシュボードから「Page Rules」を確認し、S3エージェントのURLを指定する
cf page-rule create --target "https://s3-ap-northeast-1.amazonaws.com/s3-bucket-name/*" \
                    --actions 'match="*.example.com/wp-content/uploads/*", proxy="cdn-proxy"'

注意事項

  • S3バケットへのアクセス権限を適切に設定する
  • メディアファイルのURLが変更されるため、既存のリンクや参照を更新する
  • CDN経由での配信はパフォーマンス向上だが、初期コストがかかる場合がある
  • 安全な通信のためにSSL証明書を利用すること
  • オフライン環境でメディアファイルへのアクセスが必要な場合は、ローカルコピーも維持する

まとめ

1. S3バケットの準備: S3バケットを作成し、必要な権限を設定します。

2. Cloudflareエージェント設定: CloudflareからS3エージェントを使用してメディアファイルを配信する設定を行います。

3. WordPress設定更新: WordPressの設定ファイルや.htaccessでCDN URLを使用するよう変更します。

4. ページルールの設定: Cloudflareダッシュボードから、特定のパスにのみ適用されるページルールを作成します。

5. パフォーマンスとセキュリティ監視: CDN経由でのメディア配信を定期的にチェックし、必要に応じて最適化を行います。

関連記事:

お気軽にご相談ください

お見積りへ お問い合わせへ