Amazon CloudFront からの応答で遅延が増加しています。原因を特定し、遅延を軽減したいです。
簡単な説明
CloudFront による遅延をトラブルシューティングするには、その遅延を引き起こしたイベントを特定します。次に、以下のトラブルシューティング手順に従って遅延を軽減してください。
解決策
遅延を引き起こしたイベントを特定する
次の手順を実行します。
- 次の curl コマンドを実行します。
curl -w "DNS_resolution: %{time_namelookup}| TCP_negotiation_time: %{time_connect}| SSL_negotiation_time: %{time_appconnect}| TTFB: %{time_starttransfer}| Total time: %{time_total} \n" -o /dev/null -vsL https://www.example.com
注: example.com は、実際の CloudFront ドメイン名または代替ドメイン名 (CNAME) および、URL パスに置き換えてください。
- ウェブブラウザの開発者ツールで、ネットワークリクエストの各段階にかかる時間を確認します。たとえば、Mozilla Firefoxを使用している場合は、[Timings] タブを確認してください。詳細については、Firefox のウェブサイトで「Timings タブ」を参照してください。過去に遅延が発生していた場合は、CloudFront アクセスログの [time-taken] フィールドと [time-to-first-byte] フィールドを確認します。CloudFront アクセスログには、クライアントによる DNS ルックアッププロセスおよび、TCP ネゴシエーション、SSL/TLS ネゴシエーションにかかった時間は記録されません。
DNS 解決の遅延を軽減する
次の手順を実行します。
- クライアント側で DNS の DNS キャッシュ時間を増やします。
- ローカル DNS サーバーでキャッシュの有効期間 (TTL) を増やします。
- DNS レジストラで DNS レコードの TTL を増やします。
- インターネットサービスプロバイダーのリゾルバー DNS サーバーが原因で遅延が発生する場合は、パブリック DNS サーバーを使用してください。
TCP ネゴシエーション、SSL/TLS ネゴシエーション時の遅延を軽減する
次の手順を実行します。
注: example.com を実際のドメイン名に置き換えてください。
TTFB、TTL、RTT の遅延を軽減する
最初のバイトの所要時間 (TTFB)、合計所要時間 (TTL)、ラウンドトリップ時間 (RTT) の遅延を削減するには、次の手順を実行します。
CloudFront が「X-Cache: Hit from cloudfront」という応答値を返す場合
CloudFront は、リクエストの送信元が最も近いエッジロケーションである場合に「X-Cache:Hit from cloudfront」を返します。遅延を軽減するには、次の手順を実行してください。
CloudFront が「X-Cache: Miss from cloudfront」という応答値を返す場合
リクエストの送信先がオリジンである場合、CloudFront は「X-Cache:Miss from cloudfront」を返します。遅延を軽減するには、次の手順を実行してください。
関連情報
CloudFront からの応答が遅い場合に、遅延を減らす方法を教えてください
CloudFront ウェブ配信の遅延の問題を診断するために、AWS サポートに提供する必要がある情報を教えてください