AWS

【AWS】CloudFrontを使ってWordPressにアップロードした画像を高速配信する

どうもなまこです。前回の記事でWordPressに保存する画像をWebサーバーではなくS3に保管する記事を書きました。

【AWS】ブログに貼る画像をS3に保存してWebサーバーの負担を軽くするS3はAWSのストレージサービスで非常に低価格で従量課金、容量無制限のため、容量制限のあるサーバーからデータを隔離するのに便利です。S3に画像を保存すると、サイトへのアクセスの負荷を分散でき、スケールアウトの際に便利です。また、CDNの技術を使うことで画像を高速配信することができます。...

今回はその続きでS3に保存したデータをCloudFrontを利用して画像を高速配信する手法を解説していきます。

この記事ではAWSのCDNサービスの一つであるCloudFrontのサービスについて解説しています。

S3に保存している画像をキャッシュで配信することで画像を高速で配信することを目指しています。

補足、乖離している点があればご指摘いただけると助かります。

CloudFrontとは?

CloudFrontはAWSが提供する高速コンテンツ配信ネットワークサービス(CDN)です。CDNの技術により画像、動画、アプリケーションを低レイテンシーで配信することができます。

Amazon Prime VideoやNetFlixでもCDNの技術が使われており、CDNのおかげで動画をスムーズに視聴することができています。

前回の記事にも記しましたが、CDNについての説明は以下の記事にて詳しく説明されているのでご参照ください。

簡単に述べるとエッジサーバーと呼ばれるものが従来のサーバーとは別に世界中に存在しており、アクセスする場所によってアクセス元から近いサーバーを選択するという仕組みになっています。

S3に保存した画像を高速配信できるようにする

前回の続きでS3に保存した画像を高速配信できる仕組みにしていきます。

ディストリビューションを作成する

AWSのCloudFrontの画面からCreate Distribution -> Get Startの順にクリックしていきます。Origin Domain Nameに設定したS3のバケットを選択します。

Default Cache Behavior Settingsの項目に進みます。ここはデフォルトのままにしました。

Distribution Settingsの項目のPrice Classを Use All Edge Locationsを選択します。これにより世界中のエッジサーバーからキャッシュを使用することができます。

その他の項目もデフォルトのままで設定します。Create Destributionをクリックして完了です。StateがEnableになればCloudFrontのドメインでアクセスできるようになります。

SSL証明書を入手する

これでCloudFrontのドメインでアクセスすることができましたが、独自ドメインでアクセスできるようにしていきます。Certificate Managerの画面に遷移します。

証明書のリクエストを押し、ドメイン名を追加していきます。検証方法を選択して確定していきます。ドメインをすでにRoute53で設定済みであれば”Route 53でのレコードの作成”をクリックします。これによりドメインのDNC設定にCNAMEレコードを追加することができます。

SSL証明書を用いてサブドメインを登録する

CloudFrontのCloudFront Distributionの画面からIDをクリックし、GeneralのタブからEditをクリックします。

Alternate Domain names(CNAMEs)に設定したいサブドメインを入力します。私の場合staticをサブドメインにしました。Custom SSL Certificateにチェックし、先ほど入手した証明書を選択できるようになります。

残りの項目はデフォルトのままにし、Yes, Editを選択します。これでCNAMEsの登録は完了です。

Route 53にCNAMEsを登録する

このままでは画像はCloudFrontのドメインのままのため、先ほど設定したサブドメインを紐づけるため、Route 53を設定し、レコード名にCNAMEsを登録していきます。

レコードタイプにCNAME、値にCloudFrontのドメインを入力し、保存します。

Offload Media Liteでカスタムドメインを設定する

WordPressのプラグインの設定をしていきます。設定 -> Offload Media LiteからDELIVERY ProviderのところでデフォルトではAmazon S3となっているため、Changeをクリックします。Amazon S3からAmazon CloudFrontに変更します。

Custom Domain (CNAME)の設定をONにし、先ほど決めたサブドメインの名前を入力します。

これでCloudFrontの設定は終了です。

画像のURLがS3でなく、サブドメインになっていれば成功です!S3のデータを東京リージョンに置いているので日本ではCloudFrontとS3とで画像の配信の差があまりわかりませんが、海外からのアクセスだと結構差があるようです。

まとめ

前回と2回に分けて画像の高速配信についてやっていきました。当ブログにはオーバースペックな機能かと思いますがネットワークの勉強にと思っています^^;

AWSにはまだまだ使いこなしていない機能がたくさんありますが少しずつ勉強していきたいと思います。

ポイント
  • CloudFrontを用いれば世界中のエッジサーバーを利用して画像や動画を高速で配信できる
  • CloudFrontのドメインを独自ドメインに変えるにはSSL証明書を入手し、サブドメイン(CNAME)を登録する
  • Route 53にCNAMEを登録し、CloudFrontのドメインを値に設定する
  • Offload Media LiteのCustom Domainを独自のサブドメインに変更する

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です