Amazon Simple Storage Service (Amazon S3) にリクエストすると、Amazon S3 は次のメッセージと同様のレスポンスを返します。

AmazonS3Exception: Internal Error (Service: Amazon S3; Status Code: 500; Error Code: 500 Internal Error; Request ID: A4DBBEXAMPLE2C4D)
AmazonS3Exception: Slow Down (Service: Amazon S3; Status Code: 503; Error Code: 503 Slow Down; Request ID: A4DBBEXAMPLE2C4D)

これらのエラーをトラブルシューティングする方法を教えてください。

エラーコード 500 内部エラーは、Amazon S3 がその時点ではリクエストを処理できないことを示しています。エラーコード 503 Slow Down は一般的には、S3 バケットが「リクエスト率およびリクエストパフォーマンスに関する留意事項」に記載されているリクエスト率を超えて、非常に高いことを示しています。

Amazon S3 は分散しているサービスであるため、非常に低い割合の 5xx エラーはこのサービスの正常な使用中に発生する場合があります。Amazon S3 からの 5xx エラーを返すすべてのリクエストは、再試行される必要があり、Amazon S3 へリクエストするアプリケーションはこれらのエラーから復旧する耐障害メカニズムを持っていることが推奨されます。

5xx エラーを解決または回避するには、これらの手順をお試しください。

  • リクエストするアプリケーションの再試行メカニズムを有効にする
  • リクエスト率を徐々に増やすようにアプリケーションを設定する
  • 複数のプレフィックスにオブジェクトを分散する

リクエストするアプリケーションの再試行メカニズムを有効にする

Amazon S3 は分散性があるため、500 エラーまたは 503 エラーを返すリクエストは再試行することができます。Amazon S3 にリクエストするアプリケーションに再試行ロジックを構築することをお勧めします。アプリケーションの再試行回数を 10 回にすることをお勧めします。

すべての AWS SDK には、エクスポネンシャルパックオフを使用するアルゴリズムを持つ再試行メカニズムが組み込まれています。このアルゴリズムは、連続的なエラー応答に対する再試行の間の待機時間をますます長くします。ほとんどのエクスポネンシャルバックオフアルゴリズムは、衝突の連続を防ぐためにジッター (ランダム化された遅延) を使用します。詳細については、「AWS でのエラーの再試行とエクスポネンシャルパックオフ」を参照してください。

リクエスト率を徐々に増やすようにアプリケーションを設定する

503 Slow Down エラーを回避するために、アプリケーションがより低いリクエスト率 (1 秒あたりのトランザクション) で開始するように設定します。次に、アプリケーションのリクエスト率を指数関数的に増やします。Amazon S3 はより高いリクエスト率を処理するために自動的にスケールされます。

複数のプレフィックスにオブジェクトを分散する

リクエスト率およびリクエストパフォーマンスに関する留意事項」で説明されているリクエスト率は S3 バケットのプレフィックスごとに適用されます。全般的に高いリクエスト率を処理し、503 Slow Down エラーを回避するようにバケットを設定するために、オブジェクトを複数のプレフィックスに分散することができます。たとえば、S3 バケットを使用して画像と動画を保存している場合は、次のような 2 つのプレフィックスにファイルを分散します。

  • mybucket/images
  • mybucket/videos

プレフィックスのリクエスト率が徐々に増加すると、Amazon S3 は 2 つのプレフィックスのそれぞれのリクエストを処理するようにスケールアップするため (1 秒あたり 3,500 PUT/POST/DELETE リクエストまたは 5,500 GET リクエスト)、バケットによって処理される全体のリクエスト率は倍になります。


このページは役に立ちましたか? はい | いいえ

AWS サポート ナレッジ センターに戻る

サポートが必要ですか? AWS サポートセンターをご覧ください。

公開日: 2018 年 09 月 18 日