CDN の有効性の検証
Alibaba Cloud CDN に高速化ドメイン名を追加し、CNAME レコードを設定した後、以下の方法で、コンテンツが CDN エッジノードから配信されていることを確認できます。
前提条件
確認を行う前に、次の項目が完了していることを確認してください。
CDN コンソールに高速化ドメイン名が追加されていること。
DNS プロバイダーで、Alibaba Cloud CDN が割り当てた CNAME 値を指すように CNAME レコードが設定されていること。CNAME が有効でない場合は、「CNAME 設定に関する FAQ」をご参照ください。
DNS の伝播に十分な時間が経過していること (通常 5〜10 分ですが、DNS プロバイダーで設定された TTL によって異なります)。
オリジンサーバーがアクセス可能であること: DNS 名前解決は成功するものの、ドメインが HTTP 404 やその他のエラーレスポンスを返す場合は、オリジンサーバーが稼働しており、期待されるコンテンツを配信していることを確認してください。オリジンサーバーに IP アドレスまたはオリジンドメイン名で直接アクセスし、可用性を確認してください。
DNS で A レコードではなく CNAME レコードが使用されていること: CDN の高速化には、CDN が割り当てた CNAME 値を指す CNAME レコードが必要です。CNAME レコードの代わりに A レコード (IP アドレスを直接指す) が設定されている場合、リクエストは CDN をバイパスして直接 IP アドレスに送信されます。DNS プロバイダーで DNS 設定を確認し、高速化ドメイン名に CNAME レコードが使用されていることを確認してください。また、CDN コンソールのキャッシュルールがコンテンツタイプに対して正しく設定されていることも確認してください。
検証方法
以下の方法で、CDN の有効性をさまざまな側面から検証できます。最も簡単なチェックから始め、より包括的な検証に進んでください。
方法 1:フロントエンド URL の確認
Web ページを開き、ページのソースを表示して、画像、CSS ファイル、JavaScript ファイルなどの静的リソースの URL を確認してください。
リソース URL が CDN の高速化ドメイン名 (例:
https://cdn.example.com/image.png) を使用している場合、フロントエンドは CDN を使用するよう設定されています。リソース URL がまだオリジンサーバーのアドレス (例:
https://oss-bucket.oss-cn-hangzhou.aliyuncs.com/image.pngのような OSS エンドポイント) を指している場合、リクエストは CDN を完全にバイパスし、CDN ノードを通過するトラフィックは発生しません。
これは最も簡単な確認方法です。URL が CDN ドメインを使用していない場合は、他の方法に進む前に、フロントエンドのリソースの参照を更新してください。
方法 2:CNAME 名前解決の検証
CDN コンソールで、CNAME ステータスが [設定済み] で、ドメイン名ステータスが [有効] であることを確認してください。
次のいずれかのコマンドを実行します。<accelerated domain name> をご自身のドメインに置き換えてください。
nslookup -type=CNAME <accelerated domain name>または
dig +short <accelerated domain name> CNAME例:
nslookup -type=CNAME www.example.com成功した場合のレスポンスは、次のようになります。
www.example.com canonical name = www.example.com.w.kunlunaq.com返された CNAME 値 (例:www.example.com.w.kunlunaq.com) を CDN コンソールに表示される CNAME と比較してください。値が一致する場合、DNS 名前解決は Alibaba Cloud CDN ノードにリダイレクトされています。
CNAME が返されない、または値が CDN コンソールの値と一致しない場合、CNAME 設定はまだ有効になっていません。DNS プロバイダーで CNAME レコードを正しく設定したかどうかを確認してください。
方法 3:ブラウザでのキャッシュヘッダーの確認
ブラウザで高速化ドメイン名配下のページを開きます。デベロッパーツールを開き (F12 を押します)、画像や CSS ファイルなどの静的リソースのレスポンスヘッダーを調べます。
レスポンスに X-Cache、X-Swift-SaveTime、Age などのヘッダーが含まれている場合、コンテンツは Alibaba Cloud CDN から配信されています。確認すべき主要なヘッダーは X-Cache です。
X-Cache:
HITは、レスポンスが CDN キャッシュから配信されたことを示します。MISSは、コンテンツがオリジンサーバーから取得されたことを示します。最初のリクエストでMISSになるのは正常です。その後のリクエストでHITになれば、キャッシュが機能していることが確認できます。Age: ファイルが CDN ノードにキャッシュされてからの時間 (秒単位) です。このヘッダーは、最初のリクエストやキャッシュの更新後には存在しません。
0の値は、キャッシュが期限切れになり、再検証のためにオリジンサーバーに接続する必要があることを示します。X-Swift-SaveTime: リソースが CDN ノードに初めてキャッシュされた時刻 (GMT) です。中国標準時 (CST) に変換するには、8 時間を加算してください。
X-Swift-CacheTime: CDN ノード上でのファイルの最大許容キャッシュ期間です。
0の値は、レスポンスがキャッシュできないことを示します。EagleID: Alibaba Cloud CDN 固有のレスポンスヘッダーです。ブラウザのデベロッパーツール (
F12) を開き、[ネットワーク] パネルに移動して、高速化ドメイン名へのリクエストを選択してください。[レスポンスヘッダー] で、eagleidフィールドを探してください。このフィールドが存在する場合、リクエストは Alibaba Cloud CDN ノードに到達しています。フィールドが存在しない場合、リクエストは CDN を経由していない可能性があります。たとえば、オリジンサーバーに直接アクセスしているか、ローカルキャッシュから配信されている可能性があります。
EagleID ヘッダーは、X-Cache が MISS (最初のリクエスト) を示している場合でも、リクエストが CDN ノードに到達したことを確認するのに役立ちます。EagleID も他の CDN 固有のヘッダーも存在しない場合、リクエストは CDN をまったく経由していない可能性があります。
トラブルシューティングのヒント
ブラウザに CDN レスポンスヘッダーが表示されない場合: ブラウザが実際のネットワークリクエストを行わずに、ローカルキャッシュを使用している可能性があります。
Ctrl+Shift+R(Windows/Linux) またはCmd+Shift+R(macOS) を押してハード再読み込みを実行するか、シークレットウィンドウ/プライベートウィンドウでページを開いてください。DNS キャッシュが古い名前解決情報を保持している場合: ローカルの DNS キャッシュが古い名前解決結果を保持しているため、リクエストが CDN ノードをバイパスしている可能性があります。ローカルの DNS キャッシュをクリアしてから、再試行してください。
Windows:
ipconfig /flushdnsmacOS:
sudo dscacheutil -flushcacheLinux:
sudo resolvectl flush-caches
キャッシュをクリアしても問題が解決しない場合は、テスト用にパブリック DNS サーバー (例:
8.8.8.8または114.114.114.114) に切り替えてみてください。これにより、ISP の DNS リゾルバーに関する問題を切り分けることができます。この手順は、次のシナリオにも適用されます。
ブラウザで
DNS_PROBE_FINISHED_NXDOMAINエラーが表示される場合。これは通常、ドメインの DNS 名前解決が失敗したことを示します。CDN サービスの更新または設定変更後もドメインにアクセスできない場合。古い DNS キャッシュエントリにより、古い (CDN 導入前の) 名前解決情報が保持されたままになっていることがあります。
正しいドメインを使用していることを確認する: リソースにアクセスする際は、CDN が割り当てた CNAME アドレス (例:
cdn.example.com.w.kunlunaq.com) ではなく、CDN の高速化ドメイン名 (例:cdn.example.com) を使用していることを確認してください。CNAME アドレスは、DNS プロバイダーでの DNS 設定にのみ使用され、ブラウザの URL やリソースの参照で直接使用すべきではありません。
方法 4:コンソールでのドメイントラフィックの監視
CDN コンソールにログインします。ドメイン名 ページに移動し、高速化ドメイン名を選択してトラフィック曲線を表示します。CNAME レコードを設定した後の期間をカバーする時間範囲を選択してください。
トラフィック曲線にデータが表示される場合、リクエストは CDN ノードを通過しており、CDN は有効になっています。
トラフィックデータがない場合、ドメインがリクエストを受信していないか、リクエストが CDN を経由していません。
方法 5:ネットワーク診断ツールでのパフォーマンス比較
全体的な高速化効果を検証するには、CDN で高速化されたドメインとオリジンサーバーの応答時間を比較してください。
一回限りのテストツールを開いてください。
CDN の高速化ドメイン名を入力し、テストを実行してください。平均応答時間を記録してください。
オリジンサーバーのドメイン名を入力し、同じテストを実行してください。
2 つの結果を比較してください。CDN で高速化されたドメインがより低いレイテンシーまたはより高い可用性を示した場合、CDN の高速化は有効です。
よくある質問
CDN コンソールで CNAME が設定済みと表示されるが、ドメインにアクセスできない、または DNS 名前解決が失敗する場合
CDN コンソールで CNAME ステータスが [設定済み] と表示されているにもかかわらず、ドメインにアクセスできない場合は、次のトラブルシューティング手順に従ってください。
オリジンサーバーが動作していることを確認する: CDN をバイパスし、オリジンサーバーの IP またはオリジンドメイン名を介してリソースに直接アクセスし、オリジンサーバーの障害でないことを確認してください。オリジンサーバー自体にアクセスできない場合は、まずオリジンの問題を解決してください。
ドメインのステータスを確認する: CDN コンソールで、高速化ドメイン名のステータスが [有効] になっていることを確認してください。支払い遅延やポリシー違反によりドメインが無効化されている場合、CDN の高速化は有効になりません。CDN サービスを更新した後、通常は再設定しなくても高速化は再開されます。
ローカル DNS キャッシュをクリアする: ローカルの DNS キャッシュが古い名前解決結果を保持している可能性があります。次のコマンドを実行してキャッシュをクリアしてから、再試行してください。
Windows:
ipconfig /flushdnsmacOS:
sudo dscacheutil -flushcacheLinux:
sudo resolvectl flush-caches
DNS の伝播を待つ: 最近 CNAME レコードを追加または変更した場合、変更がグローバルに伝播するまでに 5〜10 分かかることがあります。時間をおいてから再度確認してください。
DNS プロバイダーで CNAME が設定されているが、ドメインにアクセスできない場合
DNS を Alibaba Cloud CDN の CNAME アドレスに設定しただけでは、CDN の高速化設定が完全に完了したことにはなりません。CDN が正しく機能するには、次の両方の条件が必要です。
CDN コンソールに高速化ドメイン名を追加する: CDN コンソールにログインし、[ドメイン名] ページに移動して、正しいオリジン設定で高速化ドメイン名を追加します。
DNS プロバイダーで CNAME レコードを設定する: ドメインの DNS 名前解決が、CDN コンソールで割り当てられた CNAME アドレスを指すように設定します。
CDN コンソールにドメインを追加せずに手順 2 (DNS 設定) のみを行った場合、CDN ノードはこのドメインへのリクエストを認識できず、サービスは有効になりません。ドメインが CDN コンソールに追加され、ステータスが [有効] であることを確認してください。
CDN 設定後に画像の読み込みが遅い、またはリソースが高速化されない場合
CDN は、CDN の高速化ドメイン名を通じてリクエストされたリソースのみを高速化します。Web サイトのコード内のリソース URL を自動的に置換するわけではありません。CDN 設定後も読み込みが遅い場合は、次の手順に従ってください。
リソース URL を確認する: ブラウザのデベロッパーツール (
F12) を開き、[ネットワーク] パネルを確認してください。画像、CSS、JavaScript ファイルのリクエスト URL を調べてください。これらの URL がまだオリジンサーバーのアドレス (例:OSS エンドポイントやソース IP) を指している場合、それらのリソースリクエストは CDN を経由していません。リソースの参照を更新する: フロントエンドコード内の静的リソースの URL が、CDN の高速化ドメイン名を使用していることを確認してください。たとえば、
https://oss-bucket.oss-cn-hangzhou.aliyuncs.com/image.pngをhttps://cdn.example.com/image.pngに変更します。CDN がリソースを配信していることを確認する: CDN の高速化ドメイン名を通じて特定のリソースにアクセスし、デベロッパーツールでレスポンスヘッダーを確認してください。
X-Cacheヘッダーの値がHITであれば、そのリソースは CDN からキャッシュされ、配信されています。
DNS 名前解決の競合と設定エラーのトラブルシューティング
DNS の設定ミスにより CDN が有効にならない場合は、次の一般的なシナリオを確認してください。
複数の CNAME の競合: 同じホスト名に複数の CNAME レコードが存在すると、DNS 名前解決の競合が発生し、リクエストがオリジンサーバーに直接送信されることがあります。これを解決するには、Alibaba Cloud CDN を指していない CNAME レコードを無効にしてください。ホスト名に対して CNAME レコードが 1 つだけ存在することを確認してください。
ワイルドカードドメインとサブドメインの競合: ワイルドカードドメインの高速化 (例:
*.example.com) を設定した後、個別のサブドメインの DNS レコードが別途存在する場合 (例:www.example.comに対する特定の A レコードまたは CNAME レコード)、それらのサブドメインは CDN を経由して配信されないことがあります。これを解決するには、個別のサブドメインの DNS レコードを削除し、DNS の変更が反映されるまで約 10 分間待ってください。サードパーティ DNS または NS レコードの競合: Cloudflare などのサードパーティ DNS サービスを使用していて
Error 1001のようなエラーが発生する場合や、NS レコードが Alibaba Cloud DNS を指していない場合、リクエストが傍受されたり、Alibaba Cloud CDN ノードに到達できなかったりすることがあります。これを解決するには、ドメインの権威 DNS サーバー (NS レコード) を確認し、それらが Alibaba Cloud DNS を指していることを確認するか、CDN アクセスのための CNAME レコードを正しく設定してください。変更後は、ローカルの DNS キャッシュをクリアしてください。HTTPS 設定の欠落: HTTPS アクセスは失敗するが HTTP アクセスは正常に機能する場合、CDN のドメインに SSL 証明書が設定されていません。CDN コンソールにログインし、[ドメイン名] に移動して対象のドメインを選択し、[HTTPS] で SSL 証明書を設定してください。
CDN ステータスの異常またはトラフィックがない場合のトラブルシューティング
CDN コンソールのステータスが期待どおりでない場合や、監視データにトラフィックが表示されない場合は、次の点を確認してください。
CNAME ステータスが頻繁に切り替わる: これは、DNS 設定の競合や DNS の伝播が不完全なことが原因である可能性があります。NS レコードの変更が完全に伝播するには最大 48 時間かかることがあります。HTTP 304 ステータスコードが表示される場合、これは正常なキャッシュ動作であり、リソースが最後のリクエスト以降変更されていないことを示します。ページ全体を強制的に再読み込みするには、ブラウザで
Ctrl+F5を押すか、シークレットウィンドウ/プライベートウィンドウでテストしてください。監視データにトラフィックが表示されない: DNS の競合以外に、リクエストがオリジンサーバーのアドレスではなく、CDN の高速化ドメイン名を使用していることを確認してください。テスト用にサブドメインを使用して CDN を設定してください。ブラウザのキャッシュによる干渉を排除するために、シークレットウィンドウ/プライベートブラウザウィンドウでテストしてください。
ドメインの有効期限切れ: ドメイン名の有効期限が切れている、または登録に問題がある場合、CDN の設定に関係なく、CDN ノードへの DNS 名前解決は失敗します。Alibaba Cloud WHOIS 検索サービスを使用して、ドメインの有効期限を確認してください。