CloudFrontのリージョナルエッジキャッシュが発表されました #reinvent

2016.12.01

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

こんにちは、中山です。

米国時間11/30(水)にCloudFrontのリージョナルエッジキャッシュ機能が発表されました。本エントリではこの機能についてまとめたいと思います。

リージョナルエッジキャッシュとは何か

一言で言うと「エッジロケーションとオリジンの間にもう一段キャッシュサーバ郡を組み込んだもの」と理解してよいと思います。図で解説します。従来はCloudFrontは以下のようにエッジロケーションとオリジンの2つで構成されていました。

before

図にも書きましたが、エッジロケーションと呼ぶキャッシュサーバ上にキャッシュが残っていた場合、そのキャッシュをクライアントに返します。もし残っていない場合はCloudFrontがオリジンからコンテンツを取得し、エッジロケーションにキャッシュさせつつクライアントに返すという動作です。

この構成の場合、オリジンからコンテンツを取得する際のパフォーマンス劣化が課題でした。つまり、クライアントから遠くにあるオリジンサーバまでコンテンツを取得する必要があるので、キャッシュが残っている場合とそうでない場合のパフォーマンスが大きく変わってしまうという問題がありました。今回発表されたリージョナルエッジキャッシュはこの問題を解決する可能性がある機能になります。図にすると以下のようなイメージです。

after

ご覧のようにエッジロケーションとオリジンの間にもう一段キャッシュ用の仕組みが導入されています。基本的な動作は以下のとおりです。

  1. 従来通りエッジロケーションにキャッシュが残っている場合はそこからクライアントに返す
  2. エッジロケーションにキャッシュが残っていない場合はリージョナルエッジキャッシュからクライアントに返す
  3. 上記二つとも残ってない場合にオリジンから返す

リージョナルエッジキャッシュとエッジロケーションの大きな違いはそのキャッシュ可能な容量です。エッジロケーションはより人気の高いコンテンツをキャッシュさせるために、そうでないキャッシュをexpireさせます。それに対して、リージョナルエッジキャッシュはより大きなキャッシュを保存可能なので、エッジロケーションに残っていないものでもオリジンまで取りに行かずに返却できるという利点があります。

また、クライアントからの物理的な距離という点でも特徴があります。オリジンよりより近場にあるリージョナルエッジキャッシュからコンテンツを返すことで、従来のパフォーマンス劣化を軽減することが可能です。

東京リージョンでも使えるの?

使えます!現状(2016/11/30)以下のリージョンでサポートされています。

  • Northern Virginia
  • Oregon
  • São Paulo
  • Frankfurt
  • Singapore
  • Seoul
  • Tokyo
  • Mumbai
  • Sydney

より詳細な情報はこちらのドキュメントを参照してください。

どうやって使うの?

CloudFrontのユーザは特に何もしなくてもデフォルトで有効化されています!そのため何か特別な設定などは必要ありません。というか、すでにサポートされているリージョンでCloudFrontを使っている場合、もうすでに使っています!さらに追加の費用はかかりません!やりましたね!

まとめ

いかがだったでしょうか。

CloudFrontは一般的なWebシステムを構築する際に無くてはならないAWSリソースの1つです。こういった便利な機能を発表してくれるのはユーザにとって大変ありがたいですね。今後のアップデートにも期待したいと思います。

本エントリがみなさんの参考になれば幸いです。