ハイパフォーマンスWebサイト フロントエンドのパフォーマンスの重要性から続いています。

Webサイトの高速化 ルール2 CDN(Content Delivery Network)を使おう!

April 26, 2007

——————————————————————————

http://developer.yahoo.net/blog/archives/performance/より翻訳。

Steve Souders は Yahoo!の「Chief Performance Yahoo!」です。

これは彼の「パフォーマンス改善のベストプラクティス」を書いた一連のブログです。

——————————————————————————

Webサーバまでのユーザのネットワーク上の距離はレスポンスタイムに影響します。
コンテンツを複数の地理的に分散したサーバに配置することはユーザの視点から見て、ページを高速化します。でもどこに配置したら良いのでしょう?

コンテンツの地理的な分散化の最初のステップとして、分散アーキテクチャ化するためにアプリケーションを再設計するようなことをしてはいけません。アプリケーションでそれを実現しようとすると、セション状態の同期とか地理的に離れたサーバ間のデータベースレプリケーションとか、かなり大変なことになります。
ユーザとコンテンツの距離を近づけるのを、アプリケーションアーキテクチャーで実現するのは、やらない方がよいし、もしやるにしても後回しにしましょう。

エンドユーザにとってのレスポンスタイムの80-90%は、ページを構成する要素(画像、スタイルシート、JavaScript、Flashなど)をダウンロードするのに使われていたことを思い出して下さい。

これは「Webサイトの高速化:フロントエンドのパフォーマンスの重要性」で書いた通り、「パフォーマンスのゴールデンルール(黄金律)」です。

アプリケーションの再設計とか、難しいことからではなく、静的コンテンツの分散から始めた方が良いでしょう。これは、より効果的なレスポンス向上を達成できるだけではなく、CDN(Content Delivery Network)を使った方が簡単ですから。

CDN(Content Delivery Network)

Content Delivery Network (CDN)はコンテンツを効果的にエンドユーザに配信するために複数の場所に分散されたWebサーバ群です。サーバはネットワーク上の近さの測定結果に基づいて、ユーザ別にどのサーバから配信されるかが決定されます。例えば、ネットワークのHOPが一番少ないとか、レスポンスが一番速いとか。

自分自身のCDNを所有しているインターネット企業もありますがし、一番コスト効果が高いのはCDNサービスプロバイダを利用することです。たとえば、Akamai TechnologiesとかMirror Image InternetとかLimelight Networksとか。

サービスを始めたばかりの企業サイトや個人のWebサイトにはCDN は高すぎるでしょうが、利用者が増えてサービスがよりグローバルになるにつれて、レスポンスを速くするために、CDNが必要になってきます。
Yahoo!では、アプリケーションWebサーバから静的コンテンツを切り離して、CDNに配置したところ、レスポンスが20%以上向上しました。あなたのWebサイトのスピードを劇的に改善する方法として、CDNへの切り替えは、コードの書き換えよりは比較的簡単でしょう。

Steve Souders
Chief Performance Yahoo!

———————————————————————
◆◆訳注◆◆
そりゃ確かにCDNを使えればベストだろうが、お金次第の話なので、ルールの2番目に持ってくるようなことではないはず。

———————————————————————
エントリ一覧

Webサイトの高速化 フロントエンドのパフォーマンスの重要性
Webサイトの高速化 ルール1 HTTPリクエストの数を減らそう!
Webサイトの高速化 ルール2 CDNを使おう!
Webサイトの高速化 ルール3 Expiresヘッダーを追加しよう!
Webサイトの高速化 ルール4 コンポーネントを圧縮しよう!
Webサイトの高速化 ルール5 CSSは上に!
Webサイトの高速化 ルール6 scriptは下に!
Webサイトの高速化 ルール7 CSSのExpression()は使わない!
Webサイトの高速化 ルール8 JavaScriptとCSSは外部ファイルに!
Webサイトの高速化 ルール9 DNS Lookupsを減らそう!
Webサイトの高速化 ルール10 コードのサイズを圧縮する!
Webサイトの高速化 ルール11 リダイレクトを避けよう!
Webサイトの高速化 ルール12 スクリプトの重複に気をつける!
Webサイトの高速化 ルール13 ETagを正しく設定する!