Amazon CloudFront
開発者ガイド (API バージョン 2016-09-29)

トラブルシューティング: ディストリビューション

アクセス拒否ほか、ウェブサイトやアプリケーションを使用した Amazon CloudFront ディストリビューションのセットアップ時の一般的な問題解決に以下の情報をご利用ください。

重要

ウェブサイトやアプリケーションにアクセスを試みたときに CloudFront でエラーが発生する場合は、おそらく、アクセスを試みているサイトへのトラフィックが異常に高くなっているだけです。しばらく待ってから、サイトにアクセス (またはアプリケーションを実行) してみてください。それでもエラーが発生する場合は、ウェブサイトまたはアプリケーションのディストリビューターに直接お問い合わせください。

なぜこのエラーが CloudFront で発生するのですか? CloudFront は、世界各地にあるサーバーにコピーを保存することで、ウェブサイトがイメージやウェブページなどのコンテンツの配信を高速化できるようにします。ただし、ウェブサイトに対して大量のインターネットトラフィックが発生し、サイトが対応しきれない場合、サイトにアクセスしようとするとエラーが返されます。CloudFront が、ウェブサイトにリクエストしたコンテンツにアクセスできない場合、使用しようとしているサイトまたはアプリケーションからのエラーを返します。

ディストリビューション内のファイルを表示できません。

CloudFront ディストリビューション内のファイルを表示できない場合の一般的な解決方法を以下のトピックで説明します。

CloudFront と Amazon S3 の両方にサインアップしましたか。

Amazon CloudFront を Amazon S3 オリジンで使うには、CloudFront と Amazon S3 の両方にそれぞれサインアップする必要があります。CloudFront と Amazon S3 のサインアップについて詳しくは、「Amazon CloudFront のセットアップ」をご覧ください。

Amazon S3 バケットとオブジェクトの許可設定は正しいですか。

CloudFront を Amazon S3 オリジンで使う場合、コンテンツのオリジナルバージョンは S3 バケットに保存されます。Amazon S3 で CloudFront を使う最も簡単な方法は、Amazon S3 ですべてのオブジェクトをパブリックに読めるようにすることです。そのためには、Amazon S3 にアップロードするオブジェクトすべてに対し、パブリックの読み出し権限を有効にする必要があります。

コンテンツをパブリックに読み出せない場合は、CloudFront オリジンアクセスアイデンティティ (OAI) を作成して CloudFront がコンテンツにアクセスできるようにしてください。CloudFront オリジンアクセスアイデンティティの詳細については、「オリジンアクセスアイデンティティを使用して Amazon S3 コンテンツへのアクセスを制限する」を参照してください。

オブジェクトのプロパティとバケットのプロパティはそれぞれ独立しています。権限は Amazon S3 のオブジェクトそれぞれに対して明示的に付与する必要があります。オブジェクトのプロパティはバケットから取得できないので、別途設定する必要があります。

代替ドメイン名 (CNAME) が正しく設定されていますか。

お使いのドメイン名に対応する CNAME レコードがすでに存在する場合は、そのレコードを更新または変更して、レコードがディストリビューションのドメイン名を指すようにしてください。

また CNAME レコードが、Amazon S3 バケットではなく、ディストリビューションのドメイン名を指していることを確認してください。DNS システムの CNAME レコードがディストリビューションのドメイン名を指していることを確認することができます。そのためには、dig などの DNS ツールを使用します。dig の詳細については、http://www.kloth.net/services/dig.php を参照してください。

以下は、images.example.com というドメイン名に対する dig リクエストと、レスポンスのうち関連する部分のサンプルです。ANSWER SECTION の下で、CNAME が含まれる行を探します。CNAME の右側にある値が、CloudFront ディストリビューションのドメイン名であれば、ドメイン名の CNAME レコードが正しく設定されています。値が Amazon S3 オリジンサーバーのバケットや他のドメイン名になっている場合は、その CNAME レコードは正しく設定されていません。

[prompt]> dig images.example.com ; <<> DiG 9.3.3rc2 <<> images.example.com ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15917 ;; flags: qr rd ra; QUERY: 1, ANSWER: 9, AUTHORITY: 2, ADDITIONAL: 0 ;; QUESTION SECTION: ;images.example.com. IN A ;; ANSWER SECTION: images.example.com. 10800 IN CNAME d111111abcdef8.cloudfront.net. ... ...

CNAME の詳細については、「代替ドメイン名 (CNAME) を追加してカスタム URL を使用する」を参照してください。

参照している CloudFront ディストリビューションの URL は正しいですか。

参照している URL が、Amazon S3 バケットやカスタムオリジンではなく、CloudFront ディストリビューションのドメイン名 (または CNAME) を使用しているか確認してください。

カスタムオリジンに関するトラブルシューティングでサポートが必要な場合。

カスタムオリジンのトラブルシューティングで AWS のサポートが必要な場合、お客様がリクエストする X-Amz-Cf-Id ヘッダーエントリの調査が必要になることがあります。現在ヘッダーエントリのログを記録していない場合は、将来に備えて記録することをお勧めします。詳細については、「Amazon EC2 または他のカスタムオリジンの使用」を参照してください。詳しくは、AWS サポートセンターまでお問い合わせください。

RTMP ディストリビューション内のファイルを表示できません。

RTMP ディストリビューション内のファイルを表示できない場合、URL と再生クライアントが正しく設定されているか確認してください。RTMP ディストリビューションでは、HTTP ではなく RTMP プロトコルを使い、さらに再生クライアントの設定を少し変更する必要があります。RTMP ディストリビューションの作成の詳細については、「RTMP を使用するストリーミングメディアファイルのタスクリスト」を参照してください。

エラーメッセージ「Certificate: <certificate-id> is being used by CloudFront.」が表示されます。

問題: IAM 証明書ストアから SSL/TLS 証明書を削除しようとすると、メッセージ「Certificate: <certificate-id> is being used by CloudFront.」が表示されます。

解決方法: 各 CloudFront ウェブディストリビューションは、デフォルトの CloudFront 証明書または独自 SSL/TLS 証明書のいずれかと関連付けられている必要があります。SSL/TLS 証明書を削除する前に、SSL/TLS 証明書を更新するか (現行の独自 SSL/TLS 証明書を別の独自 SSL/TLS 証明書に置き換える)、または使用する証明書を独自 SSL/TLS 証明書からデフォルトの CloudFront 証明書に戻してください。そのためには、該当するセクションに示されている手順を実行します。