ウェブブラウザを使用して Amazon Simple Storage Service (Amazon S3) からオブジェクトをダウンロードしようとしていますが、ダウンロードが遅くなります。
解決方法
ウェブブラウザで Amazon S3 からのダウンロードに時間がかかる原因を特定するには、以下の潜在的な問題を確認してください。
インターネット帯域幅が狭い
インターネットサービスプロバイダー (ISP) から提供されているネットワーク速度を確認します。速度が低下している場合、S3 バケットに接続してオブジェクトをダウンロードしようとすると、ボトルネックが生じる可能性があります。
オブジェクトサイズが大きい
一部の S3 オブジェクトが他のオブジェクトよりもダウンロードに時間がかかる場合は、ダウンロードに時間がかかるオブジェクトのサイズを確認します。Amazon S3 オブジェクトのサイズが非常に大きい場合にウェブブラウザがオブジェクト全体をダウンロードしようとすると、ダウンロード時間が長くなることがあります。代わりに、Amazon S3 API を使用して GET リクエストを範囲指定した状態で大きなオブジェクトをダウンロードしてみてください。GET リクエストを範囲指定して実行することで大きなオブジェクトを小さなチャンクに分割してダウンロードできるため、レイテンシーを回避できます。
クライアントと Amazon S3 バケットが地理的に離れている
S3 バケットからダウンロードするクライアントが世界各地にある場合、それらのクライアントの場所がダウンロード速度に影響する可能性があります。バケットの AWS リージョンから地理的に離れているクライアントでは、ダウンロードが遅くなる可能性があります。地理的に離れたクライアントでのダウンロード時間を短縮するには、以下の方法があります。
中間のネットワーク関連の問題
パケットロス、大量のホップ数、その他の ISP 関連の問題などのネットワーク関連の問題は、Amazon S3 のダウンロード時間に影響する可能性があります。
ネットワーク関連の問題が原因でダウンロードが遅くなっているかどうかを確認するには、mtr や tracerouteなどのツールを使用します。これらのツールは、リモートホストにパケットを送信するときに発生する可能性のあるネットワークの問題を特定するのに役立ちます。たとえば、以下の traceroute コマンドは、ポート 80 経由で us-east-1 内の Amazon S3 エンドポイントに TCP traceroute を送信します。
sudo traceroute -P TCP -p 80 s3.us-east-1.amazonaws.com
**メモ:**ICMP 経由で応答しないネットワークデバイスが多いため、TCP traceroute を実行することがベストプラクティスです。
ワークステーションリソース
全体的にレイテンシーを発生させる可能性のあるリソース競合 (CPU、メモリ、ネットワーク帯域幅など) がワークステーション内にないことを確認します。
オペレーティングシステムによっては、Resource Monitor (Microsoft の Web サイトから) や top コマンドなどのツールを使用して、ほとんどのクライアントシステムのリソース使用状況を確認できます。
Amazon S3 から処理時間を分離する
ダウンロード時間が長くなる原因を特定するために、処理時間を Amazon S3 から分離できます。サーバーアクセスログを有効にし、ログを確認して合計時間を確認します。これは、Amazon S3 がリクエストを処理するのにかかる時間を示しています。
Amazon CloudWatch メトリクスである FirstByteLatencyの分析もできます。FirstByteLatency は、Amazon S3 がクライアントからのリクエストを処理してから、クライアントへの応答を送信するのにかかる時間を示します。CloudWatch メトリクスは、パフォーマンスのバケットレベルの観点を提供します。
**メモ:**Amazon S3 CloudWatch リクエストメトリクスの料金は、カスタムメトリクスと同じ料金です。