CloudFrontとは
CloudFrontはいわゆるCDN。本体の前に配置することで、本体サーバーのコンテンツではなく、CloudFrontのキャッシュをユーザーに配信することができる。
初回のリクエストやキャッシュの有効期限(TTL)が切れたときはCloudFrontを介してオリジンサーバーへコンテンツを取りに行くが、以降はCloudFrontのキャッシュを返すため、迅速かつ大量のアクセスを捌くことが可能となる。
つまり、本体サーバーが倒れてもCloudFrontが生きていれば、Webサイトは配信しつづけることができるというわけだ。
キャッシュとは
ある領域から他の領域へ情報を転送する際、その転送遅延を極力隠蔽し転送効率を向上するために考案された記憶階層の実現手段
https://ja.wikipedia.org/wiki/%E3%82%AD%E3%83%A3%E3%83%83%E3%82%B7%E3%83%A5_(%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0)
のことである。
Webサイトにおいては、下記の種類のキャッシュをよく耳にする。
- CDN(ネットワーク規模のキャッシュ)
- ブラウザキャッシュ(ユーザー規模のキャッシュ)
- ページキャッシュ(バックエンドプログラムとデータベースの処理結果をキャッシュするページ単位のキャッシュ)
ほかにも、WordPress界隈だと、オブジェクトキャッシュ(データベースの接続を何度も行わない、関数で言えば wp_cache_add とかの WordPress Object Cache)などがある。
WP_Object_Cacheは複雑なデータベースクエリなどの生成に負荷のかかるデータをキャッシュするためのWordPressクラスです。オブジェクトキャッシュはwp-includes/cache.phpに定義されています。
https://wpdocs.osdn.jp/%E3%82%AF%E3%83%A9%E3%82%B9%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/WP_Object_Cache
プラグインを作るときにはこのコードを直接使わず、以下に挙げるwp_cache関数を使ってください。
デフォルトでは、オブジェクトキャッシュは永続的なものではありません。これはつまり、データはメモリ上にのみ存在し、セッションの間を通してしか存在しないことを意味します。永続的なキャッシュを利用するプラグインを使わずに、キャッシュされたデータがすべてのページをまたいで永続的に保存されることはありません。詳細はこの下の#Persistent_Cache_Pluginsセクションを参照してください。
設定方法
少々脱線したが、設定方法について。
- CloudFrontディストリビューションの作成と設定
- CloudFrontから指定されるエンドポイントをDNSのCNAMEレコードに登録
- /wp-admin/*をキャッシュさせない
以上。
すごく簡単だし、しかもEC2からの転送料金とほとんど同じなので、AWSを使っている場合はぜひCloudFrontを使ってみてほしい。