hostsファイルを利用したテスト
ブラウザでウェブサイトにアクセスする場合、通常は端末に設定された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をテストする手順
- テスト端末でFastlyから指定されたCNAMEホスト名(例えば “nonssl.global.fastly.net”) の名前解決をして下さい。
例
Mac :dig nonssl.global.fastly.net
Windows :nslookup nonssl.global.fastly.net
- 1で返却されたIPアドレスを、テストを行うWebサイトのIPアドレスとしてhostsファイルに
"IPアドレス ホスト名" のフォーマットで保存して下さい
例 : 123.123.123.xxx www.example.com
hostsファイルは通常以下の場所にあります
Windows : C:\WINDOWS\system32\drivers\etc\hosts
Mac : /etc/hosts
1. ブラウザのDNSキャッシュを削除するためブラウザを一旦閉じてから再度起動し、テスト対象のURLにアクセスして下さい。
Fastly経由でアクセスが行われている場合は、サーバーからのレスポンスヘッダーに以下の様なヘッダーが追加されています。ヘッダーが追加されていない場合は hosts の設定が正常に適用されていない可能性がありますので再度設定をご確認下さい。
X-Served-By: cache-xxx1111-XXX
X-Cache: HIT
X-Cache-Hits: 3
レスポンスヘッダーはブラウザの Developer Tool や Firebug などの Plug-in を利用することで確認可能です。
#ブラウザ以外での動作確認方法
ブラウザ以外にHTTPリクエストをシュミレートするcurlコマンドなどを利用して挙動を確認することも可能です。
Fastly-Debugヘッダーを付与したcurlコマンドのサンプルは以下となります。
curl -svo /dev/null -H 'Fastly-Debug:1' 'http://www.example.com/index.html'
なお、curl を利用した場合、以下のように hosts ファイルを変更せずに直接IPを指定して Host を明示的に指定するという方法でも Fastly 経由でアクセスをさせることが出来ます。
curl -svo /dev/null -H 'Fastly-Debug:1' -H 'Host: www.example.com' 'http://<ip address>/index.html'
TTL の確認と Fastly-Debug ヘッダー
Fastly 経由で配信されたオブジェクトがキャッシュされているかどうか、またキャッシュされている場合のTTLはどうなっているかを確認するためには Fastly-Debug ヘッダーが利用できます。
HTTPリクエストにFastly-Debugヘッダーを付与することで、レスポンスにキャッシュについてより詳しい情報を含メルことが出来ます。Fastly-Debug ヘッダーの詳細については以下のページをご参照下さい。
Fastly-Debugヘッダーをブラウザのリクエストに付与するにはブラウザのPluginが便利です。
ブラウザ名とプラグイン、HTTP ヘッダー追加などで検索すると様々なプラグインが出てきますので使いやすそうなものを選んで使って下さい。