WordPressの画像等のメディアを、AWSのCDNである「CloudFront」から配信させたいと思います。
「CloudFront」は世界各地からのアクセスに対して、世界中に設置された edge locatin にキャッシュを配置しレスポンスの高速化を実現します。
参考「Cloud Front」について:
まず、S3に置いたメディアファイルをCloudFrontから配信できるように設定します。以下のステップで作業します。
- AWSのIAMを取得
- S3でバケットを作成
- 作成したバケットをCloudFrontで配信させる
AWSのIAMを取得
AWSのコンソールで、IAMのメニューを選び、「ユーザー」をクリックし、その後開いたユーザー画面で「ユーザーを追加」を押します。
ユーザー名を入力し、アクセスのアクセスの種類は「プログラムによるアクセス」をチェックし、「次のステップ」をクリックします。
「グループに追加」を選択し、「グループの作成」をクリックします。
グループ名を入力し、「AmazonS3FullAccess」にチェックを入れて「グループの作成」をクリックします。
作成したグループにチェックを入れ、「確認」ボタンを押し、次の画面で「ユーザーの作成」ボタンを押します。
作成されたユーザー情報画面で、「アクセスキー ID」「シークレットアクセスキー」を記録しておきます。
S3でバケットを作成
AWSコンソールのS3メニューを開き、バゲットを作成します。
バゲット名、リージョン等を入力してバゲット作成ステップを進める。それ以外の項目は適宜設定するが、特に何も設定しなくても大丈夫です。
作成したバケットをCloudFrontで配信させる
AWSのコンソールで、CloudFrontのメニューを選び、「Create Distribution」をクリックします。
「Web」セクションの「Get Started」をクリックします。
Origin Domain Name 入力欄をクリックすると、対象のバゲットが表示されるので、先に作成したバゲットを選びます。それ以降の項目は下記を参考に入力します。
「Create Distribution」をクリックします。一覧上のStatus欄で「In Progress」が「Deployed」になれば全エッジに設定が適用され、利用可能になります。
作成したDistributionの詳細にある「Domain Name」が、CloudFront経由でS3のオブジェクトにアクセスするドメインです。
Wordpressの記事の画像は、このドメインのURLで埋め込むことになります。
以下は、Wordpress のプラグインで簡単にCMSの画像をS3へアップロードし、今回構築した CloudFrontで配信する方法について記載しています。