このチュートリアルでは、WordPressとAmazon S3を統合する方法と、CDN(コンテンツデリバリーネットワーク)を併用するオプションを説明します。この統合により帯域幅のコストを大幅に節約し、バックアップを装備、サイトの高速化を促進します。

Amazon S3は、Amazon Web Servicesの多くの製品の一部であるストレージソリューションです。一般的な使用例は、外部バックアップアドオンなどのソリューションで追加のバックアップが必要なサイトや、ダウンロード、ソフトウェア、ビデオ、ゲーム、オーディオファイル、PDFなどの大きなファイルを提供するサイトです。

Amazonには信頼できる実績がある上に、巨大なインフラを持っているため、ストレージ価格は非常に低額です。S3の顧客には、Netflix、Airbnb、SmugMug、Nasdaqなどがあります。

WordPress Amazon S3

Amazon S3は完全に大容量ストレージとして機能し、ほぼ確実にWordPressのホストよりもコストが下がります。AWSへのメディアのオフロードは素晴らしい節約になり、しかも最初の1年間は5GBまで無料です。また、メディアへのリクエストはAmazonから直接提供されるため、WordPressサイトへの負荷が減り、読み込み時間が早くなります。

Amazon S3とAmazon CloudFrontを混同しないでください。CloudFrontはCDNソリューションであり、S3はストレージソリューションです。ただし、以下で詳しく説明するように、両者は組み合わせて使用できます。

WordPressとAmazon S3のセットアップ

この統合には、Delicious Brainsの素晴らしいチームが開発したWP Offload S3 Liteプラグインをお勧めします。このプラグインは、メディアライブラリにアップロードされたファイルをWordPressサイトからAmazon S3に自動的にコピーします。基本バージョンは無料です。さらにオプションの設定により、Amazon CloudFront、KeyCDN、MaxCDNなどのCDNを追加できます。

WP Offload S3 Lite
WP Offload S3 Lite

このプラグインは非常に軽量で、わずか204 KBしかありません。この記事の執筆時点で、30,000以上のアクティブなインストール数があり、評価も5つ星中の4つ星です。設定は以下の手順に従ってください。

手順1

無料のプラグイン「WP Offload S3 Lite」をインストールします。WordPressのリポジトリからダウンロードするか、WordPressのダッシュボード内の「プラグイン」>「新規追加」で「wp offload s3」を検索します。「今すぐインストール」をクリックし、有効化してください。

WP Offload S3 Liteのインストール
WP Offload S3 Liteのインストール

手順2

Delicious BrainsのWordPress Amazon S3ドキュメントに従うか、以下の詳細を参照してください。Amazon Web Servicesのアカウントにログインします。アカウントがない場合は、無料でサインアップできます。新しいユーザーを作成する必要があります。ユーザー名を選択し、「プログラムによるアクセス」を選択してください。

Amazon Web Servicesのユーザーの追加
Amazon Web Servicesのユーザーの追加

手順3

ここで、ユーザーにS3内のファイルを管理する権限を設定する必要があります。「既存のポリシーを直接アタッチ」を選択し、「ポリシーの作成」をクリックします。新しいウィンドウが開きます。作業が完了したら、またここに戻ってくる必要があります。

AWSのアクセス許可
AWSのアクセス許可

手順4

「独自のポリシーを作成」オプションの横の「選択」をクリックします。

AWSのポリシーの作成
AWSのポリシーの作成

手順5

ポリシーに名前と説明を付けます。これは、自由に入力できます。次に、以下のコードを「ポリシードキュメント」セクションにコピーしてください。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:CreateBucket",
        "s3:DeleteObject",
        "s3:Put*",
        "s3:Get*",
        "s3:List*"
      ],
      "Resource": [
        "arn:aws:s3:::*"
      ]
    }
  ]
}

このポリシーでは、バケットの作成、ファイルのみ(バケットではなく)の削除、ファイルのアップロード、ファイルのダウンロード、ファイルとバケットのリストアップが可能です。これは、プラグインの動作に必要な基本的なレベルのアクセス許可です。

ここで、Delicious Brainの追加のバケット制限に関するドキュメントを確認してください。例えば、上のリソースセクションを修正してバケット名を追加すると、その下にコンテンツをまとめられます(バケット名「perftesting」は、手順11で確認できます)。

"Resource": [
 "arn:aws:s3:::perftesting/*",
]

「ポリシーの作成」をクリックします。

AWSのポリシーのレビュー
AWSのポリシーのレビュー

手順6

手順3のウィンドウに戻り、作成するユーザーにポリシーを追加します。「更新」をクリックすると、一番上に作成した新しいポリシーが表示されます。これを選択し、「次へ」をクリックします。

AWSユーザーのアクセス許可
AWSユーザーのアクセス許可

手順 7

「ユーザーの作成」をクリックします。

 AWSユーザーの作成
AWSユーザーの作成

手順 8

最後の画面で、アクセスキーIDとシークレットアクセスキーをコピーし、安全な場所に保管してください。次のWordPressダッシュボードの設定で必要になります。

AWSアクセスキー
AWSアクセスキー

手順 9

WordPressに戻り、「AWS」の下の「アクセスキー」をクリックし、先ほど作成した認証情報を入力します。また、Delicious Brainsが推奨するように、wp-config.phpファイルに認証情報を定義しておくと良いでしょう。以下のコードをコピーして、「*」部分をキーで置き換えてください。

define( 'DBI_AWS_ACCESS_KEY_ID', '********************' );
define( 'DBI_AWS_SECRET_ACCESS_KEY', '****************************************' );
WordPressでのAmazon Web Servicesとの連携
WordPressでのAmazon Web Servicesとの連携

手順 10

次に、使用するバケットを作成する必要があります。Amazon S3にまだサインアップしていない場合は、ここでサインアップしてください。無料トライアルもあります。AWSプラグインの設定で「S3 and CloudFront」をクリックし、「Create bucket」をクリックします。次に、リージョンを選択します。「Create New Bucket」をクリックします。ストレージのコストはリージョンごとに異なります。こちらで価格を参照してください。

Amazon S3バケットの作成
Amazon S3バケットの作成

手順 11

WooCommerceなどの特定のサードパーティプラグインと一緒に動かすには、いくつかの互換性アドオンのインストールと有効化が必要です。プレミアムライセンスの購入が必要な場合もあります。しかし、無料版でも十分試すだけの時間があるでしょう。デフォルトでは、以下のオプションが有効です。HTTPSを使用する場合は、明示的に有効化してください。

AWSプラグインの設定
AWSプラグインの設定

これでWordPressのAmazon S3設定は完了です。WordPressのメディアライブラリに画像をアップロードすると、Amazon S3ストレージにコピーされます。CSS、JS、フォントなどのアセットでも同じことができますが、Assets Pullアドオンの取得にプレミアムライセンスが必要です。

注意:SFTPで手動でアップロードしたファイルは、Amazon S3にコピーされません。WP Offload Mediaは、WordPressのメディアライブラリに最初にアップロードされたアイテムのみをオフロードします。

もう一つの重要な設定は、S3にオフロードされたファイルをローカルサーバーから削除するオプションです。これは、WordPressのホストで必要なディスクスペースを劇的に削減します。ただし、有効にする場合は、必ず他のプラグインとの互換性を確認してください。また、ブラウザからAmazon S3にファイルをアップロードする方法については、こちらのチュートリアルを参照してください。

WordPressとAmazon S3とCDN

CDNを使用してアセットの配信を高速化するには、CloudFrontまたはカスタムドメインのセクションで有効化します。以下のチュートリアルを参照してください。

設定が完了し、CDNのURLが決まったら、以下のようにカスタムドメインフィールドに入力します。

cdn amazon s3
CDN Amazon S3

Google Cloud Storageにメディアをオフロードする方法については、こちらの記事をご覧ください。