CDP:Cache Distributionパターン
From AWS-CloudDesignPattern
ユーザに物理的に近い位置へのデータ配置
Contents |
解決したい課題
コンピュータやモバイルデバイスの普及に伴い、より多くの人がより多くの地域から、インターネット上のコンテンツにアクセスするようになった。また画像や動画データはより高品質になり、データ量も非常に多くなってきている。 ユーザーエクスペリエンスの観点で言えば、より早く安定的にデータを利用者に届けることが求められるが、現在の技術では光通信の速度を超える通信方法は無く、例えば日本からアメリカ東海岸のサーバにアクセスすると、最低でも200ms程度の通信遅延が発生してしまうため、コンテンツ配信元が1カ所にしかない場合、必然的にユーザーエクスペリエンスは悪くなる。
クラウドでの解決/パターンの説明
世界各地に配置されたロケーションに、コンテンツ配信元(オリジン)から配布されるコンテンツのキャッシュデータを配置することにより、地理的により利用者に近いロケーションからコンテンツを配信することで、地理的/物理的な制約を解決する。 このパターンを適用するとユーザーとコンテンツの距離を短くすることができるため、ユーザへのレスポンスを向上させることができる。
実装
Amazon CloudFrontを使用すると、世界中のキャッシュサーバ(エッジサーバ)を利用する事ができる。
- コンテンツの配信元となるオリジンサーバを決め、コンテンツを配置する。
- オリジンサーバを使用するように、CloudFrontを設定する。設定を行うと、「xxxx.cloudfront.net」(xxxx部分はランダム生成)のDNS名が発行される。
- この自動的に発行されるDNS名を使っても良いが、独自のドメイン名を用いることも可能である。その際は、オリジンサーバのDNS名のCNAMEレコードに、発行されたCloudFrontのDNS名を設定する。
構造
利点
- 地理的に離れたユーザに対して、より良いユーザエクスペリエンスを提供出来る
- ファイルダウンロード処理を分散できるため、負荷分散効果もある
- 既存のサーバ(オンプレやホスティングなどのEC2以外のサーバ)をオリジンサーバにすることで、既存のサーバを生かしながらパターンを適用する事が可能
注意
- 基本的に、キャッシュサーバは、配信元であるオリジンサーバのキャッシュタイムアウト設定に基づいてキャッシングを行うため、キャッシュタイムアウト前にオリジンサーバのファイルを変更しても、キャッシュサーバは変更されないケースがあるため、コンテンツの性質を考慮して、キャッシュタイムアウトを設定する。またRename Distributionパターンの利用も検討する。