このチュートリアルでは、WordPressとAmazon S3を統合する方法と、CDN(コンテンツデリバリーネットワーク)を併用するオプションを説明します。この統合により帯域幅のコストを大幅に節約し、バックアップを装備、サイトの高速化を促進します。
Amazon S3は、Amazon Web Servicesの多くの製品の一部であるストレージソリューションです。一般的な使用例は、外部バックアップアドオンなどのソリューションで追加のバックアップが必要なサイトや、ダウンロード、ソフトウェア、ビデオ、ゲーム、オーディオファイル、PDFなどの大きなファイルを提供するサイトです。
Amazonには信頼できる実績がある上に、巨大なインフラを持っているため、ストレージ価格は非常に低額です。S3の顧客には、Netflix、Airbnb、SmugMug、Nasdaqなどがあります。
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を追加できます。
このプラグインは非常に軽量で、わずか204 KBしかありません。この記事の執筆時点で、30,000以上のアクティブなインストール数があり、評価も5つ星中の4つ星です。設定は以下の手順に従ってください。
手順1
無料のプラグイン「WP Offload S3 Lite」をインストールします。WordPressのリポジトリからダウンロードするか、WordPressのダッシュボード内の「プラグイン」>「新規追加」で「wp offload s3」を検索します。「今すぐインストール」をクリックし、有効化してください。
手順2
Delicious BrainsのWordPress Amazon S3ドキュメントに従うか、以下の詳細を参照してください。Amazon Web Servicesのアカウントにログインします。アカウントがない場合は、無料でサインアップできます。新しいユーザーを作成する必要があります。ユーザー名を選択し、「プログラムによるアクセス」を選択してください。
手順3
ここで、ユーザーにS3内のファイルを管理する権限を設定する必要があります。「既存のポリシーを直接アタッチ」を選択し、「ポリシーの作成」をクリックします。新しいウィンドウが開きます。作業が完了したら、またここに戻ってくる必要があります。
手順4
「独自のポリシーを作成」オプションの横の「選択」をクリックします。
手順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/*",
]
「ポリシーの作成」をクリックします。
手順6
手順3のウィンドウに戻り、作成するユーザーにポリシーを追加します。「更新」をクリックすると、一番上に作成した新しいポリシーが表示されます。これを選択し、「次へ」をクリックします。
手順 7
「ユーザーの作成」をクリックします。
手順 8
最後の画面で、アクセスキーIDとシークレットアクセスキーをコピーし、安全な場所に保管してください。次のWordPressダッシュボードの設定で必要になります。
手順 9
WordPressに戻り、「AWS」の下の「アクセスキー」をクリックし、先ほど作成した認証情報を入力します。また、Delicious Brainsが推奨するように、wp-config.phpファイルに認証情報を定義しておくと良いでしょう。以下のコードをコピーして、「*」部分をキーで置き換えてください。
define( 'DBI_AWS_ACCESS_KEY_ID', '********************' );
define( 'DBI_AWS_SECRET_ACCESS_KEY', '****************************************' );
手順 10
次に、使用するバケットを作成する必要があります。Amazon S3にまだサインアップしていない場合は、ここでサインアップしてください。無料トライアルもあります。AWSプラグインの設定で「S3 and CloudFront」をクリックし、「Create bucket」をクリックします。次に、リージョンを選択します。「Create New Bucket」をクリックします。ストレージのコストはリージョンごとに異なります。こちらで価格を参照してください。
手順 11
WooCommerceなどの特定のサードパーティプラグインと一緒に動かすには、いくつかの互換性アドオンのインストールと有効化が必要です。プレミアムライセンスの購入が必要な場合もあります。しかし、無料版でも十分試すだけの時間があるでしょう。デフォルトでは、以下のオプションが有効です。HTTPSを使用する場合は、明示的に有効化してください。
これで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が決まったら、以下のようにカスタムドメインフィールドに入力します。
Google Cloud Storageにメディアをオフロードする方法については、こちらの記事をご覧ください。