メニュー
Amazon CloudFront
開発者ガイド (API Version 2016-09-29)

CloudFront オブジェクトの URL の形式

ディストリビューションを作成すると、そのディストリビューションに関連付けられた CloudFront ドメイン名を受け取ります。オブジェクトへのリンクを作成する場合にこのドメイン名を使用します。別のドメイン名(例: www.example.com)があり、それを使用する場合は、CNAME エイリアスを追加できます。詳細については、「代替ドメイン名(CNAME)を使用する」を参照してください。

CloudFront ディストリビューション内のオブジェクトへのアクセスをエンドユーザーに与える URL を作成する場合は、その URL をパブリック URL または署名付き URL にします。

パブリック URL を使用すると、ユーザーは以下のオブジェクトにアクセスできます。

  • 制限のないオブジェクト。

  • エンドユーザーが CloudFront 経由でアクセスする必要があり、署名付き URL を必要としない Amazon S3 バケット内のオブジェクト。Amazon S3 URL を使用してこれらのオブジェクトにアクセスすることはできません。

署名付き URL を必要とするように構成されたキャッシュ動作に指定されたオブジェクトへのアクセスには、署名付き URL が必要です。オブジェクトのリクエスト(例: image.jpg)が複数のキャッシュ動作のパスパターンに一致する場合、CloudFront は、ディストリビューション内で最初に設定されているキャッシュ動作に基づいてリクエストを処理します。最初のキャッシュ動作で署名付き URL が要求されず、2 番目のキャッシュ動作で署名付き URL が要求される場合、エンドユーザーは署名付き URL なしで image.jpg にアクセスできます。

パスパターンを含め、キャッシュ動作の詳細については、「キャッシュ動作の設定」を参照してください。署名付き URL の詳細については、「CloudFront を使用してプライベートコンテンツを供給する」を参照してください。

Amazon S3 バケット内のオブジェクトのパブリック URL では、以下の形式が使用されます。

http://<CloudFront domain name>/<object name in Amazon S3 bucket>

Important

ディストリビューションでストリーミングコンテンツを供給する場合は、ファイルへのパスに追加の文字が必要になります。詳細については、「メディアプレーヤーを構成する」を参照してください。

たとえば、mybucket という Amazon S3 バケットがあるとします。このバケットには、/images/image.jpg というパブリックに読み出し可能なオブジェクトが含まれます。

CloudFront ディストリビューションを作成し、mybucket.s3.amazonaws.com をこのディストリビューションのオリジンサーバーとして指定します。CloudFront は、ディストリビューションのドメイン名として d111111abcdef8.cloudfront.net を返し、ディストリビューション ID として EDFDVBD6EXAMPLE を返します。

この例では、オブジェクトにアクセスするための URL として、次の URL をエンドユーザーに提供します。

http://d111111abcdef8.cloudfront.net/images/image.jpg

ウェブディストリビューションでは、コンテンツを複数の Amazon S3 バケットに保存する場合、URL の形式は同じです。つまり、URL に Amazon S3 バケットに関する情報は含まれません。リクエストを該当のバケットにルーティングするには、バケットごとにオリジンを作成し、リクエストを各オリジンにルーティングする 1 つ以上のキャッシュ動作を作成します。キャッシュ動作のパスパターンには、そのキャッシュ動作に関連付けられたオリジン(Amazon S3 バケット)にどのリクエストをルーティングするかを指定します。CloudFront ディストリビューションにおけるオリジンおよびキャッシュ動作の設定の詳細については、「ウェブディストリビューションを作成または更新する場合に指定する値」を参照してください。

Amazon S3 バケットの名前およびパスの詳細については、「Amazon Simple Storage Service 開発者ガイド」の「バケットの仮想ホスティング」を参照してください。

エンドユーザーがこのオブジェクトにアクセスすると、CloudFront は、常に、適切なエッジロケーションからオブジェクトを供給します。オブジェクトがエッジロケーションにない場合、CloudFront は、EDFDVBD6EXAMPLE ディストリビューション(mybucket.s3.amazonaws.com)に関連付けられたオリジンサーバーにアクセスし、エッジロケーション用のオブジェクトのコピーを取得して、エンドユーザーに供給します。

カスタムオリジン内のオブジェクトのパブリック URL の形式

カスタムオリジン内のオブジェクトのパブリック URL の形式は、Amazon S3 内のオブジェクトのパブリック URL と良く似ています。

http://<CloudFront domain name>/<object name in custom origin>

オブジェクトがオリジンサーバーのフォルダにある場合は、CloudFront URL にそのフォルダ名を含める必要があります。たとえば、image.jpgimages フォルダにある場合、URL は次のようになります。

http://d111111abcdef8.cloudfront.net/images/image.jpg

CloudFront は、パブリック URL 内のオブジェクトのパスと名前を使用して、ディストリビューションの作成時に指定されたドメインからオブジェクトを取得します。たとえば、カスタムオリジンのドメインが example.com であり、オブジェクトのパスと名前が /images/image.jpg の場合、CloudFront はオブジェクトを次の場所から取得します。

http://example.com/images/image.jpg

コンテンツを複数のカスタムオリジンに保存する場合、URL の形式は同じです。URL にカスタムオリジンに関する情報は含まれません。リクエストを該当のカスタムオリジンにルーティングするには、オリジンを各カスタムオリジンのディストリビューションに追加し、リクエストを各オリジンにルーティングする 1 つ以上のキャッシュ動作を作成します。キャッシュ動作のパスパターンには、そのキャッシュ動作に関連付けられたオリジンにどのリクエストをルーティングするかを指定します。CloudFront ディストリビューションにおけるオリジンおよびキャッシュ動作の設定の詳細については、「ウェブディストリビューションを作成または更新する場合に指定する値」を参照してください。

パブリック URL がディレクトリの無効化に与える影響

ディレクトリへのアクセスをエンドユーザーに提供する CloudFront URL を使用する場合、次のように、末尾のスラッシュ(/)を付けるかどうかに関して、同じ URL 形式を常に使用することをお勧めします。

http://d111111abcdef8.cloudfront.net/images/

http://d111111abcdef8.cloudfront.net/images

ブラウザおよび他のウェブアプリケーションは、この両方の形式を同じディレクトリに解決します。ただし、CloudFront では、リクエストに表示されるとおりにパブリック URL が保存されます。ディレクトリを無効にする場合は、スラッシュを含めるか除いて、まったく同じディレクトリを指定する必要があります。ディレクトリの指定方法に関して標準がない場合は、スラッシュを付けた形式とスラッシュを付けない形式を使用してディレクトリを無効にして、CloudFront がディレクトリをエッジロケーションから削除したことを確認する必要があります。1 か月の無料の無効化回数の上限に達した場合、この 2 つのディレクトリのうち 1 つしか存在しない場合でも、お客様は両方の無効化に対して料金を支払う必要があります。

署名付き URL を使用すると、エンドユーザーは、プライベートコンテンツを供給するように構成されたディストリビューション内のオブジェクトにアクセスできます。URL には、キャッシュされたオブジェクトへのアクセスを制限する特別な情報が含まれます。署名付き URL の形式の詳細については、「CloudFront を使用してプライベートコンテンツを供給する」を参照してください。