CDP:Latency Based Originパターン

提供:AWS-CloudDesignPattern
移動: 案内, 検索
寄贈したアーキテクト

地域によりコンテンツ配信元のサーバを変更する

目次

解決したい課題

グローバル展開している製品のWebサイト、ファームウェアや説明書などをCDNで配信する場合、ブランディングのために全世界から同じURLでアクセスさせたい。 CDNを使用した場合、エッジサーバにキャッシュがあればコンテンツを早くダウンロードできるが、キャッシュがない場合はオリジンサーバまでコンテンツを取得しに行く必要がある。 このため、例えばオリジンが日本、ダウンロード元がブラジルだと、初回アクセス時は表示が遅くなってしまうという問題がある。

クラウドでの解決/パターンの説明

オリジンサーバを複数用意し、同一のコンテンツを保持させておく。次にオリジンへアクセスする際に使用するDNS名を登録し、その際に1つのDNS名に対して複数のオリジンサーバのDNSを登録し、さらにそれを地理的に近いオリジンを返すように設定する。 エッジサーバはオリジンアクセス時にDNSサーバから最寄りのオリジンへアクセスするため、初回アクセス時もダウンロードを早くすることができる。

実装

  • 配信先の各リージョンにEC2を立て、コンテンツを配置する
  • CMSの配布機能、rsync、GlusterFSのGeoReplicationなどで、各EC2のコンテンツを同期する
  • オリジンアクセス用のDNSレコードを作成するこの際、Routing PolicyをLatencyにし、各リージョンに置いたEC2ごとにレコードを作成する。
  • CloudFrontのDistributionを作成し、オリジンとして作成したDNSレコードを指定する。

[関連ブログ 1]

構造

ytmxmAAlDNow0uxQ-8B7A9.png

利点

  • エッジサーバにコンテンツキャッシュがなく、遠くのオリジンに取りに行く必要がある場合でも、初回アクセスを早めることが出来る
  • 地域によりアクセスURLを変え、オリジンを変えるような構成にする必要がない


注意点

  • オリジンがS3ならベストだが、S3の制約としてカスタムドメインを使用する場合はS3バケット名と同じでないといけないという縛りがあるため、全てのオリジンをS3では実現出来ない。(オリジンのうち、1つだけはS3が利用出来る)
  • コンテンツの同期には気をつける必要がある


関連ブログ

  1. c9日記 の「グローバルなクラウドデザインパターン」( http://d.hatena.ne.jp/c9katayama/20121219 )
個人用ツール
名前空間
変種
操作
CDPメニュー
ツールボックス