hostsファイルを利用したCDNの導入前テスト


#1

#hostsファイルを利用したIP Spoofing
ブラウザでウェブサイトにアクセスする場合、通常は端末に設定されたDNSリゾルバを利用してアクセスしたいサイトの名前(例えばwww.example.com)からIPアドレス(123.123.123.xxxなど)を取得し、取得したIPアドレスにアクセスすることでWebコンテンツがブラウザ上に表示されます。

例えば何らかの理由で一般的に公開されているWebサイトではなく特定のサーバー/ネットワーク経由でWebサイトにアクセスしたい場合に、端末内にあるhostsと呼ばれるファイルを利用することで指定したIPアドレス経由アクセスさせることが可能となります。

また、CDNは一般的に対象のサイトのDNSレコードをCDNサービスを提供するベンダーが指定するDNSレコードにCNAME(別名指定)することで導入します。

つまりhostsファイルを利用して端末からのアクセスをCDNサーバーに向けることで、CDNを適用する前(DNSレコードをCDNにCNAMEして向けていない)にCDN経由での実際の挙動をテストすることが可能となります。

それでは以下にFastlyのCDNサービスを適用していないWebサイトに、テスト用端末からFastly経由でアクセスしてテストを行う手順を説明します。

CDN切り替え前にFastlyをテストする手順

  1. テスト端末でFastlyから指定されたCNAMEホスト名(例えば “nonssl.global.fastly.net”) の名前解決をして下さい。

    Mac : dig nonssl.global.fastly.net
    Windows : nslookup nonssl.global.fastly.net

  2. 1で返却されたIPアドレスを、テストを行うWebサイトのIPアドレスとしてhostsファイルに
    "IPアドレス ホスト名" のフォーマットで保存して下さい
    例 : 123.123.123.xxx www.example.com
    hostsファイルは通常以下の場所にあります
    Windows : C:\WINDOWS\system32\drivers\etc\hosts
    Mac : /etc/hosts

  3. ブラウザのDNSキャッシュを削除するためブラウザを一旦閉じてから再度起動し、テスト対象のURLにアクセスして下さい。

Fastly経由でアクセスが行われている場合は、サーバーからのレスポンスヘッダーに以下の様なヘッダーが追加されています。ヘッダーが追加されていない場合はhostsの設定が正常に適用されていない可能性がありますので再度設定をご確認下さい。

X-Served-By: cache-xxx1111-XXX
X-Cache: HIT
X-Cache-Hits: 3

レスポンスヘッダーはブラウザのDeveloper ToolやFirebugなどのPlug-inを利用することで確認可能です。

Fastly-Debugヘッダー

HTTPリクエストにFastly-Debugヘッダーを付与することで、Fastlyキャッシュについてより詳しい情報を確認することが出来ます。
Fastly-Debug headerの詳細については以下のサイトをご参照下さい。

Fastly-Debugヘッダーをブラウザのリクエストに付与するにはブラウザのPluginが便利です。
ブラウザ名とプラグイン、HTTP ヘッダー追加などで検索すると様々なプラグインが出てきますので使いやすそうなものを選んで使って下さい。

#ブラウザ以外での動作確認方法

ブラウザ以外にHTTPリクエストをシュミレートするcurlコマンドなどを利用して挙動を確認することも可能です。

Fastly-Debugヘッダーを付与したcurlコマンドのサンプルは以下となります。
curl -svo /dev/null -H Fastly-Debug:1 www.example.com/index.html

その他検証手順や検証すべき内容については以下の情報を参考にご検討下さい。


Fastly経由の配信に切り替える手順