サービスレベルでのスロットリングを軽減
サービスレベルでの Amazon S3 スロットリングを回避するには、使用状況を監視して Service Quotas を調整するか、パーティション化などの特定の手法を使用します。スロットリングの原因となる可能性があるいくつかの条件は、以下の通りです。
-
[アカウントの API リクエスト制限の超過] — Amazon S3 には、アカウントタイプと使用状況に基づくデフォルトの API リクエスト制限があります。1 つのプレフィックスの 1 秒あたりの最大リクエスト数を超えると、Amazon S3 サービスの過負荷を防ぐためにリクエストがスロットリングされることがあります。
-
[データのパーティション分割が不十分] — データを適切に分割せずに大量のデータを転送すると、Amazon S3 がリクエストを制限する場合があります。パーティション分割の詳細については、このドキュメントの「パーティション分割を使用する」セクションを参照してください。
-
[多数の小さいオブジェクト] — 可能であれば、小さいファイルを多数使用することを避けてください。Amazon S3 には パーティション化されたプレフィックスごとに 1 秒あたり 5,500 件の GET リクエスト という制限があり、Athena のクエリにもこれと同じ制限があります。単一のクエリで何百万もの小さなオブジェクトをスキャンする必要がある場合は、クエリが Amazon S3 によって制限される可能性が高くなります。
過度のスキャンを避けるには、AWS Glue ETL を使用してファイルを定期的に圧縮する、またはテーブルをパーティション化してパーティションキーフィルターを追加します。詳細については、以下のリソースを参照してください。
-
より大きなファイルを出力するように AWS Glue ETL ジョブを設定する方法を教えてください。
(AWS ナレッジセンター) -
大規模なグループでの入力ファイルの読み込み (AWS Glue 開発者ガイド)