CDP:Rename Distributionパターン
提供:AWS-CloudDesignPattern
変更遅延のない配信
目次 |
解決したい課題
Cache Distributionパターンを使用してコンテンツを配信する際、マスターサーバーのファイルを変更しても、エッジサーバー(キャッシュサーバー)のデータはタイムアウトになるまで更新されない。あるタイミングでファイルを更新したい場合には対応できない。
クラウドでの解決/パターンの説明
エッジサーバー上のキャッシュデータは、そこにアクセスするURLがキーになる。更新したいファイルを違うファイル名で配置し、アクセスURL自体を変更することで、エッジサーバーのキャッシュタイムアウトにかかわらず新しいコンテンツを配信できる。
実装
(手順)
- コンテンツとは別にベースコンテンツ(アクセスURLを含むHTMLファイルなど)を作成する。
- ベースコンテンツはキャッシュタイムアウトを短くするか、常にマスターサーバーから配信する。
- CloudFrontで配信するコンテンツを更新する場合、そのコンテンツを別名でマスターサーバーに配備する。
- ベースコンテンツ内のURLを、新しいコンテンツのURLへ変更する。
構造
利点
- マスターサーバーのコンテンツ変更に対して、キャッシュタイムアウトを待たずに新しいコンテンツを配信できる。
注意点
- ベースコンテンツ自体のキャッシュタイムアウトが長いと効果がないのでベースコンテンツのキャッシュタイムアウトは短く設定する必要があるが、そうすると、ベースコンテンツのキャッシュ効果が薄くなる。
- 古いファイルはキャッシュタイムアウトまでエッジサーバーに残るため、URLを直接指定されると古いファイルがダウンロードできてしまう場合がある。必要であれば、ファイルを消去し、無効化機能(Invalidationと呼ぶ)を用いると良い。