スキップしてコンテンツを表示

CloudFront で発生する "503 Service Unavailable" エラーのトラブルシューティング方法を教えてください。

所要時間1分
0

Amazon CloudFront ディストリビューションで "503 Service Unavailable" エラーが発生しました。

解決策

HTTP 503 ステータスコード (Service Unavailable) を解決するには、発生したエラーに応じて次の手順を実行します。

オリジンサーバーに対する HTTP 503 エラー

オリジンサーバーでパフォーマンスの問題が発生したか、サーバーが使用できない場合に、"503 Service Unavailable" エラーが発生する場合があります。

この問題のトラブルシューティングについては、「オリジンサーバーには、リクエストレートをサポートするのに十分な容量がない場合」を参照してください。

Lambda@Edge または CloudFront 関数に対する HTTP 503 エラー

AWS Lambda 関数に未処理の例外があるか、コードにエラーが含まれる場合、"503 Service Unavailable" エラーが発生する場合があります。

コードを修正するには、Lambda 関数にロギングステートメントを追加します。Lambda@Edge ログと CloudFront Functions ログを参照し、CloudFront が正しく機能することを確認してください。詳細については、「Lambda での呼び出しに関する問題のトラブルシューティング」および「Lambda での実行に関する問題のトラブルシューティング」を参照してください。

Lambda@Edge のクォータを超えると、Lambda は Lambda 関数の実行をブロックし、CloudFront は HTTP 503 エラーを返します。クォータ超過による HTTP 503 エラーの解決方法については、「CloudFront の Lambda@Edge 関数が原因で 502 エラーと 503 エラーが発生する場合のトラブルシューティング方法を教えてください」を参照してください。

Amazon S3 での HTTP 503 エラー

統合アプリケーションを使用している場合、またはオリジンに Amazon Simple Storage Service (Amazon S3) が設定されている場合、HTTP 500 または 503 エラーが発生する可能性があります。これらのエラーの解決方法については、「Amazon S3 が返す HTTP 500 または 503 エラーのトラブルシューティング方法を教えてください」を参照してください。

CloudFront が HTTP 503 エラーをキャッシュしないようにする

CloudFront はデフォルトでは、オリジンが返すエラー応答をクライアントに転送します。CloudFront は、オリジンのエラー応答を 10 秒間キャッシュします。

オリジンのエラー応答に Cache-Control ヘッダーが含まれている場合は、CloudFront はデフォルトの 10 秒ではなく、対応する有効期間 (TTL) を適用してエラーをキャッシュします。CloudFront は、カスタムエラー応答で別途指定した場合を除き、自身によるエラー応答をキャッシュしません。HTTP 503 エラーに対するカスタムエラー応答を作成し、TTL を 0 秒に設定した場合は、CloudFront はエラーをキャッシュしません。

キャッシュ効率を最適化するには、CachingOptimized ポリシーを使用します。このポリシーでは、エラー応答の最小 TTL をデフォルト値の 10 秒から短縮し、1 秒に設定します。詳細については、「マネージドキャッシュポリシーを使用する」を参照してください。

HTTP 503 エラーを返すリクエストを再試行するには、再試行ロジックをアプリケーションに組み込むことをおすすめします。すべての AWS SDK には、エクスポネンシャルバックオフを使用するアルゴリズムを備えた再試行メカニズムが組み込まれています。このアルゴリズムでは、連続したエラー応答を再試行するまでの待ち時間がますます長くなります。指数関数的バックオフアルゴリズムの多くは、ジッター (ランダム化された遅延) を使用して連続的な衝突を防ぎます。詳細については、「再試行の動作」を参照してください。

AWS公式更新しました 1年前
コメントはありません

関連するコンテンツ