Amazon Simple Storage Service (Amazon S3) を使用して静的ウェブサイトをホストし、Amazon CloudFront を使用してウェブサイトを配信しているのですが、ウェブサイトがダウンしているため、原因を突き止めたいです。
始める前に、インターネットにアクセスできることを確認してください。さらに、CloudFront ディストリビューションで指定したオリジンドメイン名が正しい S3 バケットを指しており、タイプミスやその他のエラーがないことを確認してください。
インターネットにアクセスでき、オリジンドメイン名が正しい場合は、次のトラブルシューティング手順を実施して問題を解決します。
注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI で発生したエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
アクセス許可の問題が原因でウェブサイトがダウンした場合、403 Access Denied エラーが発生します。この問題のトラブルシューティングについては、「Amazon S3 ウェブサイトのエンドポイントを CloudFront ディストリビューションのオリジンとして使用すると、403 Access Denied エラーが発生する理由を知りたいです」を参照してください。
重要: ウェブサイトの S3 バケットでの Block Public Access 設定 を必ず確認してください。この設定により、ウェブサイトへの匿名リクエストがブロックされる場合がります。Block Public Access 設定は、AWS アカウントまたは個々のバケットに適用できます。
存在しないウェブサイトオブジェクトをリクエストが指している場合、404 Not Found エラーが発生します。
この問題を解決するには、構成で次の設定を確認します。
応答で内部エラーが発生した場合は、内部サービスの問題がウェブサイトに影響している可能性があります。AWS Health ダッシュボードでサービスの中断や未解決のイベントがないか確認します。
注: ほとんどの AWS サービスはリージョナルサービスであるため、お使いのリソースが配置された AWS リージョンで検索してください。
CloudFront がウェブサイトのコンテンツを正しくレンダリングまたは配信できていない場合、破損した JavaScript が返されたり、CSS ファイルが欠落したりする可能性があります。
この問題を解決するには、次の手順を実行します。
ウェブサイトのリソースを正しくアップロードし、ウェブサイトの HTML 内の URL パスが正しいことを確認します。
混合コンテンツエラーが発生している場合は、HTTP ではなく HTTPS を使用してすべての JavaScript および CSS リソースファイルをロードしてください。
レスポンスヘッダーポリシーを使用し、リクエストヘッダーに基づいてコンテンツをキャッシュすることをおすすめします。
更新したウェブサイトのコンテンツが表示されない場合は、次の create-invalidation コマンドを実行して新規に無効化を行います。
aws cloudfront create-invalidation --distribution-id EDFDVBD6EXAMPLE --paths "/example-path/index.html"
注: EDFDVBD6EXAMPLE は、お使いの CloudFront ディストリビューションの ID に置き換えます。詳細については、「キャッシュされたファイルを CloudFront から削除する方法を教えてください」を参照してください。
ウェブディストリビューション診断
CloudFront で発生するエラー応答ステータスコードのトラブルシューティング