amazoncloudfrontawsdocs.s3.amazonaws.com/cf/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. ·...

337
Amazon CloudFront 開発者ガイド API Version 2014-01-31

Upload: others

Post on 17-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

Amazon CloudFront開発者ガイド

API Version 2014-01-31

Page 2: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

Amazon CloudFront: 開発者ガイドCopyright © 2014 Amazon Web Services, Inc. and/or its affiliates. All rights reserved.

Abstract

Amazon CloudFront を使用して静的および動的なウェブコンテンツをエンドユーザーに高速に配信します。

The following are trademarks of Amazon Web Services, Inc.: Amazon, Amazon Web Services Design, AWS, Amazon CloudFront,Cloudfront, Amazon DevPay, DynamoDB, ElastiCache, Amazon EC2, Amazon Elastic Compute Cloud, AmazonGlacier, Kindle, KindleFire, AWS Marketplace Design, Mechanical Turk, Amazon Redshift, Amazon Route 53, Amazon S3, Amazon VPC. In addition,Amazon.com graphics, logos, page headers, button icons, scripts, and service names are trademarks, or trade dress of Amazon inthe U.S. and/or other countries. Amazon's trademarks and trade dress may not be used in connection with any product or service thatis not Amazon's, in any manner that is likely to cause confusion among customers, or in any manner that disparages or discreditsAmazon.

All other trademarks not owned by Amazon are the property of their respective owners, who may or may not be affiliated with, connectedto, or sponsored by Amazon.

Amazon CloudFront 開発者ガイド

Page 3: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

Amazon CloudFront の概要 .................................................................................................................... 1CloudFront がコンテンツを配信する方法 ............................................................................................... 4CloudFront エッジサーバーの場所と IP アドレス範囲 ........................................................................... 7CloudFront の請求および使用状況レポート ........................................................................................... 8CloudFront 用の AWS 請求レポート .................................................................................................... 10CloudFront 使用状況レポート ............................................................................................................... 11CloudFront 使用状況グラフ .................................................................................................................. 12AWS 請求書と CloudFront 使用状況レポートの説明 ........................................................................... 16はじめに ................................................................................................................................................ 19ディストリビューションの使用 ............................................................................................................ 28ウェブディストリビューションと RTMP ディストリビューションの概要 ......................................... 29ウェブディストリビューションと RTMP ディストリビューションの作成 ......................................... 30CloudFront ディストリビューションの一覧表示、詳細表示、および更新を行う ............................... 31ディストリビューションを削除する ..................................................................................................... 32代替ドメイン名(CNAME)を使用する ............................................................................................... 33CloudFront ディストリビューションの価格クラスを選択する ............................................................ 37Amazon S3 での CloudFront の使用 ..................................................................................................... 38CloudFront API の変更点 ...................................................................................................................... 39ウェブディストリビューションの使用 ................................................................................................. 41ウェブディストリビューションを作成するためのタスクリスト ......................................................... 42CloudFront コンソールを使用したウェブディストリビューションの作成 .......................................... 43ウェブディストリビューションのテスト ............................................................................................. 44Amazon S3 オリジンおよびカスタムオリジンを使用したウェブディストリビューション ................ 44ウェブディストリビューションを作成または更新する場合に指定する値 ........................................... 46ウェブディストリビューションを作成または更新する場合にCloudFrontがコンソールに表示する値 ........................................................................................................................................................... 61Amazon EC2 と他のカスタムオリジンの使用に関する要件および推奨事項 ....................................... 63コンテンツの地理的ディストリビューションの制限 ........................................................................... 63オンデマンドスムーズストリーミングの構成 ...................................................................................... 65オンデマンドプログレッシブダウンロードの構成 ............................................................................... 66オンデマンド Apple HTTP Live Streaming(HLS)の構成 .................................................................. 66RTMP ディストリビューションの使用 ................................................................................................. 67RTMP ディストリビューションの機能 ................................................................................................. 67RTMP を使用するストリーミングメディアファイルのタスクリスト .................................................. 69CloudFront コンソールを使用した RTMP ディストリビューションの作成 ......................................... 70RTMP ディストリビューションを作成または更新する場合に指定する値 .......................................... 71RTMP ディストリビューションを作成または更新する場合に CloudFront がコンソールに表示する値 ....................................................................................................................................................... 76メディアプレーヤーを構成する ............................................................................................................ 77RTMP ディストリビューションのオリジンとして Amazon S3 バケットを使用する ......................... 781 つのオリジンサーバーに対して複数の RTMP ディストリビューションを作成する ........................ 79Crossdomain.xml を使用してアクセスを制限する ............................................................................... 79RTMP ディストリビューションのエラーコード .................................................................................. 79RTMP ディストリビューションをトラブルシューティングする ......................................................... 79オブジェクトの使用 .............................................................................................................................. 81CloudFront オブジェクトの URL の形式 .............................................................................................. 81CloudFront が HTTP および HTTPS リクエストを処理する方法 ........................................................ 84CloudFront がクエリ文字列パラメータの転送、キャッシュ、およびログ作成を行う方法 ................. 84CloudFront が Cookie の転送、キャッシュ、およびログ作成を行う方法 ........................................... 86ディストリビューション内のオブジェクトの追加、削除、または置換 .............................................. 88

CloudFront ディストリビューションへのオブジェクトの追加 ................................................... 88バージョン付きのオブジェクト名を使用した既存オブジェクトの更新 ..................................... 89同じオブジェクト名を使用した既存オブジェクトの更新 ........................................................... 89CloudFront エッジキャッシュにオブジェクトを保持する時間の指定(有効期限切れ) ........... 90オブジェクトの無効化(ウェブディストリビューションのみ) ................................................ 94

エラーレスポンスのカスタマイズ ........................................................................................................ 99CloudFront がオブジェクトの部分的リクエスト(レンジ GET)を処理する方法 ............................ 103デフォルトルートオブジェクトの指定(ウェブディストリビューションのみ) .............................. 104

API Version 2014-01-313

Amazon CloudFront 開発者ガイド

Page 4: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

圧縮ファイルの供給 ............................................................................................................................ 107リクエストとレスポンスの動作 .......................................................................................................... 110Amazon S3 オリジンにおけるリクエストとレスポンスの動作 ......................................................... 110カスタムオリジンの場合のリクエストとレスポンスの動作 .............................................................. 116CloudFront が HTTP 4xx および 5xx ステータスコードを処理およびキャッシュする方法 .............. 123CloudFront を使用してプライベートコンテンツを供給する .............................................................. 126タスクリスト: プライベートコンテンツを供給する ........................................................................... 130オリジンアクセスアイデンティティを使用して Amazon S3 コンテンツへのアクセスを制限する ......................................................................................................................................................... 131署名付き URL (信頼された署名者)の作成が可能な AWS アカウントの指定 ................................ 137署名付き URL の概要 .......................................................................................................................... 143既定ポリシーを使用して署名付き URL を作成する ........................................................................... 147カスタムポリシーを使用して署名付き URL を作成する .................................................................... 153Linux コマンドおよび OpenSSL を使用して Base64 エンコードおよび暗号化を行う ..................... 161署名付き URL の署名を作成するためのコードおよび例 .................................................................... 163

Perl を使用して URL 署名を作成する ....................................................................................... 163PHP を使用して URL 署名を作成する ...................................................................................... 165C# と .NET Framework を使用して URL 署名を作成する ........................................................ 167Java を使用して URL 署名を作成する ...................................................................................... 175

HTTPS 接続を使用したオブジェクトへのアクセス ........................................................................... 178IAM を使用して CloudFront リソースへのアクセスをコントロールする .......................................... 189アクセスログ ....................................................................................................................................... 194トラブルシューティング ..................................................................................................................... 204CloudFront の負荷テスト .................................................................................................................... 207CloudFront チュートリアル ................................................................................................................ 208CloudFront および Adobe Media Server 5.0 を使用したライブ HTTP ストリーミング .................... 209

概要 ............................................................................................................................................ 209ライブストリーミングの構成ステップ ...................................................................................... 210Amazon Web Services アカウントを作成する ......................................................................... 211Amazon EC2 キーペアを作成する ............................................................................................ 211Adobe Media Server をサブスクライブする ............................................................................. 212ライブストリーミング用の AWS CloudFormation スタックを作成する .................................. 213Adobe Media Server が実行されていることを確認する ........................................................... 214ライブストリームを発行するように Adobe Flash Media Live Encoder をセットアップする ............................................................................................................................................... 215ウェブアプリケーションに Amazon CloudFront ライブ HTTP ストリームの Flash MediaPlayback を埋め込む ................................................................................................................. 219ライブストリーミング用の AWS CloudFormation スタックを削除する .................................. 221よくある質問 ............................................................................................................................. 222その他のドキュメント ............................................................................................................... 229

Amazon CloudFront と IIS Media Services 4.1 を使用したライブスムーズストリーミング ............. 230アマゾン ウェブ サービスを使用したライブスムーズストリーミングの概要 .......................... 230アマゾン ウェブ サービスアカウントの作成 ............................................................................ 231Amazon EC2 キーペアを作成する ............................................................................................ 232ライブスムーズストリーミング用の AWS CloudFormation スタックを作成する .................... 233Amazon EC2 Windows Server インスタンスの実行確認 .......................................................... 236Windows パスワードの取得 ...................................................................................................... 237ライブストリームの暗号化 ........................................................................................................ 238ライブスムーズストリームの表示 ............................................................................................. 242AWS CloudFormation のライブスムーズストリーミングスタックの削除 ................................ 243よくある質問 ............................................................................................................................. 243その他のドキュメント ............................................................................................................... 245

Wowza Streaming Engine 4.0 によるライブストリーミング ............................................................. 247アマゾン ウェブ サービスアカウントの作成 ............................................................................ 247Amazon EC2 キーペアを作成する ............................................................................................ 248Wowza Streaming Engine 4.0 のライセンスを取得する ........................................................... 248AWS Marketplace で Wowza Streaming Engine 4.0 をサブスクライブする ............................ 249ライブストリーミング用の AWS CloudFormation スタックを作成する .................................. 249

API Version 2014-01-314

Amazon CloudFront 開発者ガイド

Page 5: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

Wowza Streaming Engine 4.0 が実行されていることを確認する ............................................ 251ライブストリームを公開するエンコーダーをセットアップする .............................................. 252ウェブアプリケーションを使用してライブストリームを再生する .......................................... 253ライブストリーミング用の AWS CloudFormation スタックを削除する .................................. 254よくある質問 ............................................................................................................................. 255その他のドキュメント ............................................................................................................... 256

CloudFrontディストリビューション内のファイルへのアクセスを地理的場所に基づいて制限する(地理的ブロッキング) ..................................................................................................................... 258

アマゾン ウェブ サービスアカウントの作成 ............................................................................ 260Digital Element 用のサンプルコード ......................................................................................... 260

Digital Element 用の Java サンプルコード ...................................................................... 261Digital Element 用の .NET サンプルコード ...................................................................... 265Digital Element 用の PHP サンプルコード ...................................................................... 268

MaxMind 用のサンプルコード ................................................................................................... 271MaxMind 用の Java サンプルコード ................................................................................ 271MaxMind 用の PHP サンプルコード ................................................................................ 275MaxMind 用の .NET サンプルコード ............................................................................... 278

よくある質問 ............................................................................................................................. 281その他のサービスおよびドキュメント ...................................................................................... 282

CloudFront および Adobe Flash Player を使用したオンデマンドビデオストリーミング ................. 284CloudFront、および Adobe Flash 向け Flowplayer を使用したオンデマンドビデオストリーミング ......................................................................................................................................................... 289CloudFront および JW Player を使用したオンデマンドビデオストリーミング ................................ 294リソース .............................................................................................................................................. 299ドキュメント履歴 ............................................................................................................................... 303AWS Glossary ..................................................................................................................................... 311

API Version 2014-01-315

Amazon CloudFront 開発者ガイド

Page 6: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

Amazon CloudFront の概要

Abstract

AmazonCloudFrontウェブサービスを使用して静的および動的なウェブコンテンツをエンドユーザーに高速に配信します。

Topics• CloudFront がコンテンツを配信する方法 (p. 4)• CloudFront エッジサーバーの場所と IP アドレス範囲 (p. 7)

CloudFrontは、静的および動的なウェブコンテンツ(.html、.css、.php、イメージファイルなど)をエンドユーザーに高速に配信するウェブサービスです。CloudFront は、エッジロケーションというデータセンターの世界的ネットワークを経由してコンテンツを配信します。CloudFront を使用して提供されているコンテンツをユーザーがリクエストすると、そのユーザーはエッジロケーションにルーティングされます。エッジロケーションでは最も低いレイテンシー(遅延時間)が提供されるので、コンテンツは可能な最高のパフォーマンスで配信されます。コンテンツがエッジロケーション内に最も低いレイテンシーですでに存在している場合、CloudFront はそのコンテンツを即時に配信します。コンテンツがこのエッジロケーションに現在存在しない場合、CloudFrontは、コンテンツの最終バージョンのソースとして識別されているAmazon S3バケットまたはHTTPサーバー(ウェブサーバーなど)からコンテンツを取り込みます。

分かりやすく例を挙げて説明しましょう。次のイメージが CloudFront からではなく従来のウェブサーバーから提供されていると仮定します。

API Version 2014-01-311

Amazon CloudFront 開発者ガイド

Page 7: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

(このイメージは、NASA の所有物であり、Visible Earth ウェブサイト http://visibleearth.nasa.gov/ から取得されたものです)。

このイメージは、URLhttp://example.com/globe_west_540.jpgを使用して提供されています。ユーザーは簡単にこの URL にアクセスしてイメージを表示できます。ただし、イメージが見つかるまでリクエストがネットワークから別のネットワークに(インターネットを構成する相互接続ネットワークの複雑な集合経由で)ルーティングされたということを、おそらくユーザーは認識しません。

さらに、イメージを提供しているウェブサーバーが米国ワシントン州のシアトルに存在し、米国テキサス州のオースチンにいるユーザーがそのイメージをリクエストしたと仮定します。以下のトレースリスト(www.WatchMouse.comの許可により転載)は、このリクエストがルーティングされる可能性がある 1 つの経路を示しています。

API Version 2014-01-312

Amazon CloudFront 開発者ガイド

Page 8: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

この例では、イメージが取り込まれるまで、リクエストが米国内を 10 回ルーティングされています。これは異常に多いホップ数ではありません。ユーザーがヨーロッパにいる場合、リクエストはさらに多くのネットワークを経由してシアトルのサーバーに到達します。リクエストとイメージが移動する必要があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を与えます。

CloudFront は、コンテンツを最良の方法で供給できるエッジロケーションに各ユーザーリクエストをルーティングすることによって、お客様のコンテンツの配信速度を向上させます。通常は、最も低いレイテンシーを提供する CloudFront エッジロケーションが使われます。これにより、ユーザーのリクエストが通過しなければならないネットワークの数が大幅に減少するので、パフォーマンスが向上します。ユーザーが経験するレイテンシー(オブジェクトの最初のバイトがロードされるまでの時間)が低くなり、データ転送速度が高くなります。お客様のオブジェクトのコピーが世界中の複数のエッジロケーションに保持されるので、信頼性と可用性の向上も得られます。

API Version 2014-01-313

Amazon CloudFront 開発者ガイド

Page 9: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

CloudFront エッジサーバーの場所の一覧については、CloudFront 製品の詳細情報ページの「AmazonCloudFront グローバルエッジネットワーク」を参照してください。

CloudFront がコンテンツを配信する方法Abstract

CloudFront を構成してコンテンツを高速に配信する方法について説明します。

初期セットアップを行った後、CloudFront はバックグラウンドで動作して、お客様のコンテンツの配信を高速化します。この概要には、最初のユーザーがお客様のアプリケーションまたはウェブサイトにアクセスする前にお客様が実行する手順と、構成完了後に&CF; がお客様のコンテンツを提供する方法についての説明の両方が含まれています。

CloudFront のセットアップでは、いくつかの簡単な手順を行います。

コンテンツを配信するように CloudFront を構成する方法

1. お客様はオリジンサーバーを構成します。CloudFront は、このサーバーからファイルを取得し、世界中の CloudFront エッジロケーションでファイルのディストリビューションを行います。

オリジンサーバーには、お客様のオブジェクトのオリジナルの最終バージョンが保存されます。コンテンツを HTTP 経由で提供する場合、オリジンサーバーは Amazon S3 バケットまたは HTTPサーバー(ウェブサーバーなど)になります。HTTPサーバーは、Amazon Elastic Compute Cloud(AmazonEC2)インスタンス、またはお客様が管理するサーバーで実行できます。これらのサーバーはカスタムオリジンとも呼ばれます。

Adobe Media Server RTMP プロトコルを使用してオンデマンドでメディアファイルを配信している場合、オリジンサーバーは必ず Amazon S3 バケットになります。

2. ファイルをオリジンサーバーにアップロードします。通常、お客様のファイル(オブジェクトとも呼ぶ)にはウェブページ、イメージ、メディアファイルなどがありますが、HTTPまたはサポートされているバージョンの Adobe RTMP(Adobe Flash Media Server で使用されるプロトコル)経由で供給できるすべてのものをオブジェクトとして使用できます。

Amazon S3 バケットをオリジンサーバーとして使用している場合、バケット内のオブジェクトを読み取り可能にして公開することで、オブジェクトのCloudFront URLを知っているユーザーならだれでもオブジェクトにアクセスできるようにすることができます。オブジェクトを非公開にして、オブジェクトにアクセスするユーザーを制限することもできます。「CloudFront を使用してプライベートコンテンツを供給する (p. 126)」を参照してください。

3. CloudFront ディストリビューションを作成します。このディストリビューションは、ユーザーがウェブサイトまたはアプリケーションを通じてファイルをリクエストしたときに、どのオリジンサーバーからファイルを取得するかを CloudFront に指示します。同時に、詳細も指定します。例えば、CloudFront ですべてのリクエストをログに記録するかどうかや、ディストリビューションを作成した直後にディストリビューションを有効にするかどうかなどです。

4. CloudFrontはディストリビューションの構成を関係するすべてのエッジロケーション(CloudFrontがオブジェクトのコピーをキャッシュするために使用する、地理的に分散して配置されたデータセンター内のサーバー群)に送信します。ただし、ディストリビューションのコンテンツは送信されません。

5. ウェブサイトやアプリケーションを開発するときには、CloudFront がお客様のURLに提供するドメイン名を使用します。例えば、CloudFront がディストリビューションのドメイン名としてd111111abcdef8.cloudfront.netを返した場合、Amazon S3バケット内(またはHTTPサーバーのルートディレクトリ内)の logo.jpg の URL はhttp://d111111abcdef8.cloudfront.net/logo.jpgになります。

また、独自のドメイン名を使用できるように、CloudFront ディストリビューションを構成することもできます。この場合、URL は http://www.example.com/logo.jpgのようになります。

API Version 2014-01-314

Amazon CloudFront 開発者ガイドCloudFront がコンテンツを配信する方法

Page 10: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

6. オプションで、ファイルにヘッダーを追加するようにオリジンサーバーを構成することもできます。このヘッダーは、ファイルが CloudFront エッジロケーションのキャッシュに保持される期間を示します。デフォルトでは、各オブジェクトはエッジロケーションに 24 時間保持された後に有効期限切れになります。最小の有効期限切れ時間は0秒です。有効期限切れ時間の上限はありません。詳細については、「CloudFront エッジキャッシュにオブジェクトを保持する時間の指定(有効期限切れ) (p. 90)」を参照してください。

CloudFront がコンテンツをユーザーに配信する方法

CloudFront でコンテンツ配信の構成が完了すると、ユーザーがオブジェクトをリクエストしたときに次の処理が行われます。

1. ユーザーがウェブサイトまたはアプリケーションにアクセスして、イメージファイルやHTMLファイルなどの 1 つまたは複数のオブジェクトをリクエストします。

2. DNSは、ユーザーのリクエストを最良の方法でそのリクエストに対応できるCloudFrontエッジロケーション(通常はレイテンシーの点から最寄りの CloudFront エッジロケーション)にルーティングします。

3. そのエッジロケーションで、CloudFront は要求されたファイルがキャッシュにあるかどうかをチェックします。ファイルがキャッシュにある場合、CloudFront はファイルをユーザーに返します。ファイルがキャッシュにない場合は、次のように処理します。

a. CloudFront は、ディストリビューションに指定された内容とリクエストを照合し、ファイルのリクエストを、対応するファイルタイプに応じて該当のオリジンサーバーに転送します。例

API Version 2014-01-315

Amazon CloudFront 開発者ガイドCloudFront がコンテンツを配信する方法

Page 11: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

えば、イメージファイルの場合はAmazon S3バケット、HTMLファイルの場合はHTTPサーバーです。

b. オリジンサーバーは、CloudFront エッジロケーションにファイルを返します。c. オリジンから最初のバイトが到着した直後に、CloudFront はユーザーへのファイルの転送を

開始します。また、CloudFront はキャッシュにファイルを追加し、次にこのファイルがリクエストされた場合に備えます。

4. オブジェクトが 24 時間またはファイルヘッダーに指定された期間にわたってエッジキャッシュに保持された後、CloudFront は次の処理を行います。

a. 次に同じオブジェクトのリクエストが出されると、CloudFront はそのリクエストをオリジンに転送して、エッジロケーションにあるオブジェクトのバージョンが最新かどうかを判別します。

b. エッジロケーション内のバージョンが最新の場合、CloudFrontはそのオブジェクトをユーザーに配信します。

エッジロケーション内のバージョンが最新でない場合、オリジンは最新のバージョンをCloudFrontに送信します。&CF;はそのオブジェクトをユーザーに配信し、最新バージョンをエッジロケーションのキャッシュに保存します。

API Version 2014-01-316

Amazon CloudFront 開発者ガイドCloudFront がコンテンツを配信する方法

Page 12: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

CloudFrontエッジサーバーの場所とIPアドレス範囲

Abstract

CloudFront エッジサーバーの場所と IP アドレス範囲の一覧です。

CloudFrontエッジサーバーの場所の一覧については、AmazonCloudFrontの詳細情報ページの「AmazonCloudFront グローバルエッジネットワーク」を参照してください。

CloudFront エッジサーバーの IP アドレス範囲の一覧については、Amazon CloudFront フォーラムの「Amazon CloudFront のパブリック IP アドレス範囲」を参照してください。

API Version 2014-01-317

Amazon CloudFront 開発者ガイドCloudFront エッジサーバーの場所と IP アドレス範囲

Page 13: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

CloudFront の請求および使用状況レポート

Abstract

Amazon CloudFront の請求書と利用状況に関する情報を取得します。

Amazon CloudFront は、お客様が前払い金を支払う必要がないように、またお客様がコンテンツの量に義務を負う必要がないように設計されています。他のAWSサービスと同様に、使用時に使用したものに対してのみ支払いを行います。

以下の図と表を使用して、CloudFront の使用料の概要を説明します。

API Version 2014-01-318

Amazon CloudFront 開発者ガイド

Page 14: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

AWSからの毎月の請求書では、AWSのサービスと機能ごとに使用量と金額が分けられています。このため、Amazon S3 でのオブジェクトの保存に関する料金()(オリジンサーバーとして Amazon S3を使用している場合)、バケットとエッジロケーション間のデータ転送に関する料金(2)、およびCloudFront からのデータの提供に関する料金(3)が表示されます。

コメント料金

通常のAmazonS3ストレージ料金を支払って、お客様のバケットにオブジェクトを保存します。料金は、AWS ステートメントの Amazon S3 部分に表示されます。

AmazonS3オリジンサーバーへの保存

Amazon S3 オリジンサーバーを使用している場合、GET リクエストおよびデータ転送(アウト)に対して通常のAmazonS3料金が発生します。CloudFrontは、エッジロケーションでオブジェクトに対する需要がある場合にのみ、そのエッジロケーションにそのオブジェクトをコピーします。

データ転送料金は、AWSステートメントのAWSデータ転送部分に表示されます。

エッジロケーションへのオブジェクトのコピー

API Version 2014-01-319

Amazon CloudFront 開発者ガイド

Page 15: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

コメント料金

リクエストおよびデータ転送(アウト)に対して、CloudFront料金が発生します。この料金は、対応する Amazon S3 料金よりも低いものです。CloudFront 料金は、AWS ステートメントのCloudFront部分に表示されます。詳細については、「AmazonCloudFront 料金表」を参照してください。

エッジロケーションからのオブジェクトの提供

ユーザーがデータをオリジンに転送すると、CloudFront料金が発生します。転送データには DELETE、OPTIONS、PATCH、POST、PUTリクエストが含まれます。CloudFront料金は、AWSステートメントの CloudFront 部分に表示されます。詳細については、「AmazonCloudFront料金表」を参照してください。

オリジンへのデータの送信

Note

HTTPS リクエストに対する追加料金も発生します。詳細については、「Amazon CloudFront料金表」を参照してください。

AWS には、CloudFront の使用状況レポートが 2 種類、用意されています。

• 請求レポートは、CloudFrontも含めて使用しているAWSサービスのアクティビティすべてを高レベルで把握します。詳細については、「CloudFront 用の AWS 請求レポート (p. 10)」を参照してください。

• 使用状況レポートは、特定のサービスのアクティビティの概要を時間、日、または月単位で集約して示します。詳細については、「CloudFront 使用状況レポート (p. 11)」を参照してください。

さらに、CloudFront の使用状況をグラフィカルに表現する使用状況グラフも表示できます。詳細については、「CloudFront 使用状況グラフ (p. 12)」を参照してください。

CloudFront 用の AWS 請求レポートAbstract

CloudFront 用の AWS 請求レポートの内容と、レポートの作成方法について説明します。

AWS Management Console の請求ページで、AWS の使用状況と料金の概要をサービス別に表示できます。

また、レポートの詳細版を CSV 形式でダウンロードすることもできます。詳細請求レポートには、CloudFront に該当する次の値が記載されています。

• ProductCode — AmazonCloudFront

• UsageType — 以下の値のいずれかです。• データ転送のタイプを識別するコード• Invalidations

• SSL-Cert-Custom

詳細については、「AWS 請求書と CloudFront 使用状況レポートの説明 (p. 16)」を参照してください。

• ItemDescription — UsageType の請求レートの説明。• Usage Start Date/Usage End Date — 使用状況に該当する協定世界時(UTC)による日付。

API Version 2014-01-3110

Amazon CloudFront 開発者ガイドCloudFront 用の AWS 請求レポート

Page 16: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

• Usage Quantity — 以下の値のいずれかです。• 指定した期間のリクエストの数• データ転送量(GB)• 無効にされたオブジェクトの数• SSL 証明書を有効な CloudFront ディストリビューションに関連付けた月数を案分計算した合計値。たとえば、ある証明書を有効なディストリビューションに1か月まるまる関連付け、別の証明書を有効なディストリビューションに半月だけ関連付けた場合、この値は 1.5 になります。

請求情報の概要を表示し、詳細請求レポートをダウンロードするには

1. AWS Management Console(https://console.aws.amazon.com/console/home)にサインインします。

2. タイトルバーで、自分の IAM ユーザー名をクリックし、[Billing & Cost Management] をクリックします。

3. ナビゲーションペインで、[Bills] をクリックします。4. CloudFront の概要情報を表示するには、[Details] の [CloudFront] をクリックします。5. 詳細請求レポートを CSV 形式でダウンロードするには、[Download CSV] をクリックし、画面の

指示に従ってレポートを保存します。

CloudFront 使用状況レポートAbstract

CloudFront 用の AWS 使用状況レポートの内容と、レポートの作成方法について説明します。

AWS には、CloudFront 使用状況レポートが用意されています。これは請求レポートよりは詳細ですが、CloudFront アクセスログほど詳細ではありません。使用状況レポートには、使用状況データが時間、日、または月単位で集計され、リージョンと使用タイプ別に操作が一覧で示されます(たとえば、オーストラリアリージョンからデータが転送されたなど)。

CloudFront 使用状況レポートには次の値が含まれています。

• Service — AmazonCloudFront

• Operation—HTTPメソッド。値には、DELETE、GET、OPTIONS、HEAD、PATCH、POST、PUTがあります。

• UsageType — 以下の値のいずれかです。• データ転送のタイプを識別するコード• Invalidations

• SSL-Cert-Custom

詳細については、「AWS 請求書と CloudFront 使用状況レポートの説明 (p. 16)」を参照してください。

• Resource—使用状況に関連付けられたCloudFrontディストリビューションのID、または、CloudFrontディストリビューションに関連付けた SSL 証明書の証明書 ID。

• StartTime/EndTime — 使用状況に該当する協定世界時(UTC)による日付。• UsageValue — (1)指定した期間のリクエストの数、または(2)転送データ量(バイト)。

Amazon S3 を CloudFront のオリジンとして使用している場合は、Amazon S3 の使用状況レポートも作成することを検討してください。ただし、CloudFront ディストリビューションのオリジンとして以外の目的でも Amazon S3 を使用している場合は、どの部分が CloudFront で使用されたのか明確にならない可能性があります。

API Version 2014-01-3111

Amazon CloudFront 開発者ガイドCloudFront 使用状況レポート

Page 17: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

Tip

お客様のディストリビューションの CloudFront アクセスログをオンにすることで、お客様のオブジェクトについて CloudFront が受信するすべてのリクエストに関する詳細な情報を取得することができます。詳細については、「アクセスログ (p. 194)」を参照してください。

CloudFront または Amazon S3 の使用状況レポートをダウンロードするには

1. AWS Management Console(https://console.aws.amazon.com/console/home)にサインインします。

2. タイトルバーで、自分の IAM ユーザー名をクリックし、[Billing & Cost Management] をクリックします。

3. ナビゲーションペインで、[Reports] をクリックします。4. [AWS Usage Report] で、[AWS Usage Report] をクリックします。5. [Service] リストで、[CloudFront] または [Amazon Simple Storage Service] をクリックします。6. 該当する設定を選択します。

• [Usage Types] — CloudFront の使用タイプの詳細な説明については、「the section called “AWS請求書と CloudFront 使用状況レポートの説明” (p. 16)」を参照してください。

Amazon S3 の場合は、[All Usage Types] を選択します。• [Operation] — [All Operations] を選択します。• [Time Period] — レポートの対象とする期間を選択します。• [Report Granularity] — 時間、日、月単位の小計をレポートに含めるかどうかを選択します。

7. 目的の形式のダウンロードボタンをクリックします。8. 画面に表示される指示に従って、レポートを表示または保存します。

CloudFront 使用状況グラフAmazon CloudFront コンソールは、使用状況レポートデータのサブセットに基づいて CloudFront の使用状況をグラフィカルに表示できます。毎時間または毎日のデータポイントを使用して、過去 60 日間の指定した日付範囲のグラフを表示できます。

詳細については、「使用状況グラフと CloudFront 使用状況レポートのデータとの関連 (p. 14)」を参照してください。

CloudFront 使用状況グラフを表示するには

1. AWS Management Console(https://console.aws.amazon.com/console/home)にサインインします。

2. [Navigation] ペインで、[Reports & Analytics] をクリックします。3. [Reports and Analytics] ペインで、[From]と [To] を使って、使用状況グラフを表示する日付範囲を

選択します。使用できる範囲は、[Granularity] で選択した値によって決まります。

• [Daily] — 1日につき 1つのデータポイントを使用してグラフを表示するには、過去 60日の日付範囲を選択します。

• [Hourly] — 1 時間につき 1 つのデータポイントを使用してグラフを表示するには、過去 60 日以内の最大 14 日間の日付範囲を選択します。

日時は協定世界時(UTC)に基づいて計算されます。

API Version 2014-01-3112

Amazon CloudFront 開発者ガイドCloudFront 使用状況グラフ

Page 18: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

4. [Granularity] では、グラフに 1日につき 1つのデータポイントを表示するか、1時間につき 1つのデータポイントを表示するかを指定します。14 日を超える日付範囲を指定した場合、1 時間につき 1 つのデータポイントを指定することはできなくなります。

5. [Region] では、表示するデータを持つ CloudFront 請求リージョンを選択するか、[All Regions] を選択します。使用状況グラフは、指定したリージョンのエッジロケーションで CloudFront が処理するリクエストのデータを含みます。CloudFrontがリクエストを処理するリージョンは、ユーザーの場所に対応していることも、していないこともあります。

ディストリビューションの価格クラスに含まれるリージョンのみを選択してください。それ以外の場合、おそらく使用状況グラフにはデータが含まれません。たとえば、ディストリビューションで価格クラス 200 を選択した場合、南米およびオーストラリアの請求リージョンは含まれません。そのため、CloudFront は一般にこれらのリージョンからのリクエストを処理しません。価格クラスの詳細については、「CloudFront ディストリビューションの価格クラスを選択する (p. 37)」を参照してください。

6. [Distribution]リストでは、使用状況グラフにデータを表示するディストリビューションを選択します。

• 個々のウェブディストリビューション—選択したCloudFrontディストリビューションのデータがグラフに表示されます。[Distribution]リストには、ディストリビューションのディストリビューション ID と代替ドメイン名(CNAME)が表示されます(ある場合)。ディストリビューションに代替ドメイン名がない場合、リストにはディストリビューションのオリジンドメイン名が含まれます。

• [All Web Distributions (excludes deleted)] — 現在の AWS アカウントに関連付けられているすべてのウェブディストリビューションのデータが集計されてグラフに表示されます。ただし、削除したウェブディストリビューションは除外されます。

• [All Deleted Distributions] — 現在の AWS アカウントに関連付けられていて過去 60 日間に削除されたすべてのウェブおよび RTMP ディストリビューションのデータが集計されてグラフに表示されます。

7. [Update Graphs] をクリックします。8. グラフ内の毎日または毎時間のデータポイントのデータを表示するには、データポイントの上にマ

ウスポインタを移動します。

API Version 2014-01-3113

Amazon CloudFront 開発者ガイドCloudFront 使用状況グラフ

Page 19: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

9. 転送データを示すグラフの場合、各グラフの Y 軸の単位をギガバイト、メガバイト、キロバイトのいずれかに変更できることに注意してください。

使用状況グラフと CloudFront 使用状況レポートのデータとの関連使用状況グラフと CloudFront 使用状況レポートの値との対応関係を以下に示します。

CloudFront 使用状況レポートの「Usage Type」列の値グラフ名

• region-Requests-HTTP-Static: TTL ≥ 3600秒のオブジェクトのために供給された HTTP GETおよび HEADリクエストの数

• region-Requests-HTTP-Dynamic: TTL < 3600 秒のオブジェクトのために供給された HTTP GETおよび HEADリクエストの数

• region-Requests-HTTP-Proxy: CloudFrontがお客様のオリジンに転送した HTTP DELETE、OPTIONS、PATCH、POST、PUTリクエストの数

Number of HTTP Requests

API Version 2014-01-3114

Amazon CloudFront 開発者ガイド使用状況グラフとCloudFront使用状況レポートのデータと

の関連

Page 20: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

CloudFront 使用状況レポートの「Usage Type」列の値グラフ名

• region-Requests-HTTPS-Static: TTL ≥ 3600秒のオブジェクトのために供給されたHTTPS GETおよび HEADリクエストの数

• region-Requests-HTTPS-Dynamic: TTL < 3600秒のオブジェクトのために供給されたHTTPS GETおよび HEADリクエストの数

• region-Requests-HTTPS-Proxy: CloudFront がお客様のオリジンに転送したHTTPSDELETE、OPTIONS、PATCH、POST、PUTリクエストの数

Number of HTTPS Requests

• region-Out-Bytes-HTTP-Static: TTL >= 3600 秒のオブジェクトのために HTTP 経由で供給されたバイト数

• region-Out-Bytes-HTTP-Dynamic: TTL < 3600 秒のオブジェクトのために HTTP 経由で供給されたバイト数

• region-Out-Bytes-HTTP-Proxy: DELETE、OPTIONS、PATCH、POST、PUTリクエストへの応答としてCloudFrontからビューアに HTTP 経由で返されたバイト数

• region-Out-OBytes-HTTP-Proxy: DELETE、OPTIONS、PATCH、POST、PUTリクエストへの応答としてCloudFrontエッジロケーションからオリジンに HTTP 経由で転送された合計バイト数

Data Transferred over HTTP

• region-Out-Bytes-HTTPS-Static: TTL >= 3600 秒のオブジェクトのために HTTPS 経由で供給されたバイト数

• region-Out-Bytes-HTTPS-Dynamic: TTL < 3600 秒のオブジェクトのために HTTPS 経由で供給されたバイト数

• region-Out-Bytes-HTTPS-Proxy: DELETE、OPTIONS、PATCH、POST、PUTリクエストへの応答としてCloudFrontからビューアに HTTPS 経由で返されたバイト数

• region-Out-OBytes-HTTPS-Proxy: DELETE、OPTIONS、PATCH、POST、PUTリクエストへの応答としてCloudFrontエッジロケーションからオリジンにHTTPS経由で転送された合計バイト数

Data Transferred over HTTPS

API Version 2014-01-3115

Amazon CloudFront 開発者ガイド使用状況グラフとCloudFront使用状況レポートのデータと

の関連

Page 21: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

CloudFront 使用状況レポートの「Usage Type」列の値グラフ名

• region-Out-Bytes-HTTP-Static: TTL >= 3600 秒のオブジェクトのために HTTP 経由で供給されたバイト数

• region-Out-Bytes-HTTPS-Static: TTL >= 3600 秒のオブジェクトのために HTTPS 経由で供給されたバイト数

• region-Out-Bytes-HTTP-Dynamic: TTL < 3600 秒のオブジェクトのために HTTP 経由で供給されたバイト数

• region-Out-Bytes-HTTPS-Dynamic: TTL < 3600 秒のオブジェクトのために HTTPS 経由で供給されたバイト数

• region-Out-Bytes-HTTP-Proxy: DELETE、OPTIONS、PATCH、POST、PUTリクエストへの応答としてCloudFrontからビューアに HTTP 経由で返されたバイト数

• region-Out-Bytes-HTTPS-Proxy: DELETE、OPTIONS、PATCH、POST、PUTリクエストへの応答としてCloudFrontからビューアに HTTPS 経由で返されたバイト数

Data Transferred fromCloudFront EdgeLocations to Your Users

• region-Out-OBytes-HTTP-Proxy: DELETE、OPTIONS、PATCH、POST、PUTリクエストへの応答としてCloudFrontエッジロケーションからオリジンに HTTP 経由で転送された合計バイト数

• region-Out-OBytes-HTTPS-Proxy: DELETE、OPTIONS、PATCH、POST、PUTリクエストへの応答としてCloudFrontエッジロケーションからオリジンにHTTPS経由で転送された合計バイト数

Data Transferred from CloudFront toYour Origin

AWS 請求書と CloudFront 使用状況レポートの説明

Abstract

CloudFront サービスの AWS 請求書と使用状況レポートのコードおよび略語を定義します。

CloudFrontサービスのAWS請求書にはコードや略語が使われていますが、それらは一目見て分かるものではないかもしれません。次の表の1列目には、請求書に記載される項目が一覧になっており、各項目の内容が説明されています。

また、CloudFrontのAWS使用状況レポートも取得することができます。それにはCloudFrontのAWS請求書よりも詳細な内容が記載されています。表の2列目には、使用状況レポートに記載される項目が一覧になっており、請求書の項目と使用状況レポートの項目との相互関係が示されています。

2つの列のコードには、たいてい、アクティビティの場所を示す2文字の略語が入っています。次の表のコードの regionは、AWS 請求書と使用状況レポートでは以下の 2 文字の略語に置き換えられます。

• AP: 香港、フィリピン、韓国、シンガポール、台湾(アジアパシフィック)• AU: オーストラリア• EU: ヨーロッパ• IN: インド

API Version 2014-01-3116

Amazon CloudFront 開発者ガイドAWS 請求書と CloudFront 使用状況レポートの説明

Page 22: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

• JP: 日本• SA: 南米• US: 米国

リージョン別料金表の詳細については、「Amazon CloudFront 料金表」を参照してください。

Note

次の表には、Amazon S3 バケットから CloudFront エッジロケーションへのオブジェクト転送の料金は含まれていません。この料金が発生している場合、AWS請求書のAWSData Transferの部分に料金が表記されます。

CloudFront 使用状況レポートの「Usage Type」列の値CloudFront 請求書の項目

ウェブディストリビューション:

• region-Out-Bytes-HTTP-Static: TTL >= 3600 秒のオブジェクトのために HTTP 経由で供給されたバイト数

• region-Out-Bytes-HTTPS-Static: TTL >= 3600 秒のオブジェクトのために HTTPS 経由で供給されたバイト数

• region-Out-Bytes-HTTP-Dynamic: TTL < 3600 秒のオブジェクトのために HTTP 経由で供給されたバイト数

• region-Out-Bytes-HTTPS-Dynamic: TTL < 3600 秒のオブジェクトのために HTTPS 経由で供給されたバイト数

• region-Out-Bytes-HTTP-Proxy: DELETE、OPTIONS、PATCH、POST、PUTリクエストへの応答としてCloudFrontからビューアに HTTP 経由で返されたバイト数

• region-Out-Bytes-HTTPS-Proxy: DELETE、OPTIONS、PATCH、POST、PUTリクエストへの応答としてCloudFrontからビューアに HTTPS 経由で返されたバイト数

RTMP ディストリビューション:

• region-FMS-Out-Bytes

region-DataTransfer-Out-Bytes

CloudFront がウェブディストリビューションと RTMP ディストリビューションに供給した合計バイト数。

• ウェブディストリビューション:ユーザー GETと HEADリクエストへのレスポンスのために regionのCloudFront エッジロケーションから供給された合計バイト数。

• RTMP ディストリビューション:regionの CloudFront エッジロケーションからエンドユーザーに転送された合計バイト数。

region-Out-OBytes-HTTP-Proxy

DELETE、OPTIONS、PATCH、POST、PUTリクエストへのレスポンスのために CloudFront エッジロケーションからオリジンに HTTP 経由で転送された合計バイト数

region-Out-OBytes-HTTPS-Proxy

DELETE、OPTIONS、PATCH、POST、PUTリクエストへのレスポンスのために CloudFront エッジロケーションからオリジンに HTTPS 経由で転送された合計バイト数

region-DataTransfer-Out-OBytes

ウェブディストリビューションのみ:DELETE、OPTIONS、PATCH、POST、PUTリクエストへのレスポンスのためにCloudFrontエッジロケーションからオリジンに転送された合計バイト数

API Version 2014-01-3117

Amazon CloudFront 開発者ガイドAWS 請求書と CloudFront 使用状況レポートの説明

Page 23: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

CloudFront 使用状況レポートの「Usage Type」列の値CloudFront 請求書の項目

region-Requests-HTTP-Static

TTL≥3600秒のオブジェクトのために供給されたHTTPGETおよび HEADリクエストの数

region-Requests-HTTP-Dynamic

TTL3600<秒のオブジェクトのために供給されたHTTPGETおよび HEADリクエストの数

region-Requests-Tier1

ウェブディストリビューションのみ:HTTPGETおよびHEADリクエストの数

region-Requests-HTTPS-Static

TTL ≥ 3600 秒のオブジェクトのために供給された HTTPSGETおよび HEADリクエストの数

region-Requests-HTTPS-Dynamic

TTL < 3600 秒のオブジェクトのために供給された HTTPSGETおよび HEADリクエストの数

region-Requests-Tier2-HTTPS

ウェブディストリビューションのみ:HTTPS GETおよび HEADリクエストの数

region-Requests-HTTP-Proxy

CloudFront 請求書の対応する項目と同じ

region-Requests-HTTP-Proxy

ウェブディストリビューションのみ:CloudFront によってオリジンに転送される HTTP DELETE、OPTIONS、PATCH、POST、PUTリクエストの数

region-Requests-HTTPS-Proxy

CloudFront 請求書の対応する項目と同じ

region-Requests-HTTPS-Proxy

ウェブディストリビューションのみ:CloudFront によってオリジンに転送される HTTPS DELETE、OPTIONS、PATCH、POST、PUTリクエストの数

無効化

CloudFront 請求書の対応する項目と同じ

無効化

ウェブディストリビューションのみ:オブジェクトを無効化する(オブジェクトをCloudFrontエッジロケーションから削除する)ための料金。詳細については、「オブジェクトの無効化に対する支払い (p. 99)」を参照してください。

SSL-Cert-Custom

CloudFront 請求書の対応する項目と同じ

SSL-Cert-Custom

ウェブディストリビューションのみ:デフォルトの CloudFront SSL 証明書とCloudFrontがお客様のディストリビューションに割り当てたドメイン名を使用する代わりに、example.com などのCloudFront 代替ドメイン名を指定したSSL 証明書を使用する場合の料金

API Version 2014-01-3118

Amazon CloudFront 開発者ガイドAWS 請求書と CloudFront 使用状況レポートの説明

Page 24: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

CloudFront の使用開始

Abstract

CloudFront を使用してコンテンツの提供を開始する基本的な手順に従って作業を開始します。

このトピックの例には、CloudFront を使用し、次のことを行う方法の概要が記載されています。

• 1 つの Amazon Simple Storage Service(Amazon S3)バケットにオブジェクトの元のバージョンを保存する。

• テキストやグラフィックなど、ダウンロードコンテンツを配信する。• オブジェクトを全員にアクセス可能とする。• オブジェクトの URL には、独自のドメイン名(http://www.example.com/image.jpgなど)の代わりに、CloudFront ドメイン名(http://d111111abcdef8.cloudfront.net/image.jpgなど)を使用する。

• オブジェクトを、デフォルト期間である24時間の間、CloudFrontエッジロケーションに保管する。(最低の期間は 0 秒)。

他のオプションを使用する場合の CloudFront の使用方法については、「ウェブディストリビューションを作成するためのタスクリスト (p. 42)」または「RTMP を使用するストリーミングメディアファイルのタスクリスト (p. 69)」を参照してください。

いくつかの基本的なステップを実行するだけで、CloudFront を使用してコンテンツの送付を開始することができます。最初のステップは、サインアップです。その後、CloudFront ディストリビューションを作成します。次に、CloudFront ドメイン名を使用してウェブページやアプリケーションのコンテンツを参照します。

ステップ1:アマゾンウェブサービスにサインアップする

まだアマゾンウェブサービスにサインアップしていない場合は、http://aws.amazon.com からサインアップします。[今すぐ申し込む] をクリックし、必須事項を入力します。

API Version 2014-01-3119

Amazon CloudFront 開発者ガイドステップ 1: アマゾンウェブサービスにサインアップする

Page 25: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

ステップ2:コンテンツをAmazonS3にアップロードし、オブジェクトに許可を付与する

Amazon S3 バケットは、オブジェクトやフォルダを含めることができるコンテナです。 CloudFrontは、ソースとして Amazon S3 バケットを使用して、たとえばテキストや画像、動画など、ほぼあらゆる種類のオブジェクトを配信できます。複数のバケットを作成できます。また、Amazon S3 で作成できるデータの量には制限はありません。

デフォルトでは、Amazon S3 バケットと、バケット内のすべてのオブジェクトはプライベートです。バケットを作成したAWSアカウントのみが、バケット内のオブジェクトの読み取りまたは書き込み許可を有しています。 CloudFront の URL を使用して、全員に Amazon S3 バケット内のオブジェクトにアクセスを許可する場合、オブジェクトにパブリックの読み取り許可を許諾する必要があります。(これが、&CF; および Amazon S3 を使用して作業を行う際の、最も一般的な誤りの 1 つです。 AmazonS3 バケットで、各オブジェクトに明示的に権限を許諾する必要があります。)

Note

コンテンツをダウンロードできるユーザーを制限したい場合は、CloudFrontのプライベートコンテンツ機能を使用することができます。プライベートコンテンツの配信の詳細については、「CloudFront を使用してプライベートコンテンツを供給する (p. 126)」を参照してください。

コンテンツを Amazon S3 にアップロードし、全員に読み取り許可を付与する

1. AWS マネジメントコンソールにサインインして Amazon S3 コンソール(https://console.aws.amazon.com/s3/)を開きます。

2. Amazon S3 コンソールで、[Create Bucket] をクリックします。3. [Create Bucket] ダイアログに、バケット名を入力します。

Important

バケットがCloudFront で正常に機能するには、その名前がDNS命名要件に沿ったものでなければなりません。詳細については、「AmazonSimpleStorageService開発者ガイド」の「バケットの制約と制限」を参照してください。

4. バケットのリージョンを選択します。デフォルトでは、Amazon S3 は米国スタンダードリージョンにバケットを作成します。レイテンシーを最適化するため、コストを最小化するため、また規制要件に対応するために、最寄りのリージョンを選択してください。

5. [Create] をクリックします。6. [Buckets] ペインでバケットを選択し、[Upload] をクリックします。7. [Upload – Select Files]ページで、[Add Files]を選択し、アップロードするファイルを選択します。

API Version 2014-01-3120

Amazon CloudFront 開発者ガイドステップ 2: コンテンツを Amazon S3 にアップロードし、

オブジェクトに許可を付与する

Page 26: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

8. Amazon S3 バケットにアップロードする各オブジェクトについて、パブリックの読み取り権限を有効にします。

a. [Set Details] をクリックします。b. [Set Details] ページで、[Set Permissions] をクリックします。c. [Set Permissions] ページで、[Make everything public] をクリックします。

9. [Start Upload] をクリックします。

アップロードが完了したら、そのURLでこの項目をナビゲートすることができます。前の例のケースでは、URL は次のようになります。

http://s3.amazonaws.com/example-myawsbucket/filename

Amazon S3のURLを使って、コンテンツへパブリックにアクセスできることを確認します。ただし、これはコンテンツを実際に配信するときに使用する URL ではありません。

ステップ 3: CloudFront ウェブディストリビューションを作成する

CloudFront ウェブディストリビューションを作成するには

1. Amazon CloudFront コンソール(https://console.aws.amazon.com/cloudfront/)を開きます。2. [Create Distribution] をクリックします。3. [Create Distribution Wizard] の最初のページで、デフォルトの選択である [Web] をそのまま選択

し、[Continue] をクリックします。

API Version 2014-01-3121

Amazon CloudFront 開発者ガイドステップ 3: CloudFront ウェブディストリビューションを

作成する

Page 27: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

4. 以前作成した Amazon S3 バケットを選択します。[Origin ID] および [Restrict Bucket Access] については、デフォルト値をそのまま使用します。

5. [Default Cache Behavior Settings] の下で、デフォルト値をそのまま使用すると、CloudFront は次のように動作します。

• ディストリビューションの CloudFront URL を使用するすべてのリクエスト(例:http://d111111abcdef8.cloudfront.net/image.jpg)を、ステップ4で指定しAmazonS3 バケットに転送します。

• エンドユーザーがHTTPまたはHTTPSを使用してオブジェクトにアクセスすることを許可します。

• オブジェクトに対するリクエストに応答します。• CloudFront エッジロケーションでオブジェクトを 24 時間キャッシュします。• オブジェクトのリクエストをオリジンに転送するときに、Cookie とクエリ文字列パラメータを除外します(ある場合)。(Amazon S3 は Cookie の処理は行わず、一部のクエリ文字列パラメータのみを処理します)。

• Microsoft スムーズストリーミング形式でメディアファイルを配信するようには構成されていません。

• 全員にコンテンツの閲覧を許可します。

キャッシュ動作オプションの詳細については、「キャッシュ動作の設定 (p. 51)」を参照してください。

API Version 2014-01-3122

Amazon CloudFront 開発者ガイドステップ 3: CloudFront ウェブディストリビューションを

作成する

Page 28: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

6. [Distribution Details] の下に、適用される値を次のように入力します。

• Price Class: CloudFront サービスに支払う上限価格に対応する価格クラスを選択します。デフォルトでは、CloudFront は、すべてのCloudFront リージョンのエッジロケーションからオブジェクトを供給します。

価格クラスの詳細、および選択した価格クラスがディストリビューションのCloudFrontパフォーマンスに与える影響の詳細については、「CloudFront ディストリビューションの価格クラスを選択する (p. 37)」を参照してください。価格クラスと CloudFront リージョンのマッピングを含め、CloudFront料金表の詳細については、「AmazonCloudFront料金表」を参照してください。

• [AlternateDomainNames (CNAMEs)]:(オプション)ディストリビューションを作成するときにCloudFront が割り当てるドメイン名ではなく、オブジェクトのURLに使用する1つ以上のドメイン名を指定します。例えば、次のオブジェクトの URL があります。

/images/image.jpg

この URL を次のように表示します。

API Version 2014-01-3123

Amazon CloudFront 開発者ガイドステップ 3: CloudFront ウェブディストリビューションを

作成する

Page 29: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

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

次のようには指定しません。

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

この場合、www.example.comのCNAMEを作成します。ディストリビューション1個につき、最大で 10 個の CNAME を作成できます。

Important

www.example.comの CNAME をディストリビューションに追加する場合、DNS サービスを使用してCNAMEレコードを作成(または更新)し、www.example.comのクエリを d111111abcdef8.cloudfront.netにルーティングする必要もあります。ドメインのDNSサービスプロバイダーのあるCNAMEレコードを作成する許可が必要です。通常、これはドメインを所有していることを指しますが、ドメイン所有者向けにアプリケーションを開発している場合にも当てはまります。CNAME の詳細については、「代替ドメイン名(CNAME)を使用する (p. 33)」を参照してください。

• [SSL Certificate]: デフォルト値である [Default CloudFront Certificate] をそのまま使用します。• [Clients Supported]: [SSLCertificate]でデフォルト値を選択すると、この設定は使用できません。• [Default Root Object]:(オプション)ビューアがディストリビューション内のオブジェクト(http://www.example.com/product-description.html)ではなくディストリビューションのルートURL(http://www.example.com/)を要求したときに、CloudFrontがオリジンに要求するオブジェクト(index.htmlなど)。デフォルトのルートオブジェクトを指定すると、ディストリビューションのコンテンツが公開されなくなります。

• [Logging]:(オプション)オブジェクトの各リクエストについての情報のログをCloudFrontが作成し、ログファイルを&S3; バケットに保存する場合、[On] を選択し、バケットとログファイル名のオプションのプレフィックスを指定します。ログ作成を有効にしても追加料金はかかりませんが、ファイルの保存とアクセスについて通常のAmazon S3料金が発生します。CloudFrontではログが自動的に削除されることはありませんが、いつでも手動で削除できます。

• Cookie Logging: この例では、オブジェクトのオリジンとして Amazon S3 を使用しており、Amazon S3 は Cookie の処理を行わないため、[Cookie Logging] の値に [Off] を選択することをお勧めします。

• [Comment:]:(オプション)ディストリビューションとともに保存するコメントを入力します。• Distribution State: ディストリビューションの作成直後に CloudFront でリクエストの処理を開始する場合、[Enabled]を選択します。または、ディストリビューションの作成後にCloudFrontでリクエストの処理を開始しない場合には、[Disabled] を選択します。

API Version 2014-01-3124

Amazon CloudFront 開発者ガイドステップ 3: CloudFront ウェブディストリビューションを

作成する

Page 30: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

7. [Create Distribution] をクリックします。

API Version 2014-01-3125

Amazon CloudFront 開発者ガイドステップ 3: CloudFront ウェブディストリビューションを

作成する

Page 31: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

8. CloudFront がディストリビューションを作成した後、ディストリビューションの [Status] 列の値が、[InProgress]から[Deployed]に変わります。配信を有効にするよう選択すると、リクエストの処理を行えるようになります。この所要時間は 15 分以内となります。

CloudFrontによってディストリビューションに割り当てられたドメイン名がディストリビューションの一覧に表示されます。(ドメイン名は、選択されたディストリビューションの [General] タブにも表示されます)。

ステップ 4: リンクをテストするディストリビューションの作成が終わると、CloudFrontにAmazon S3オリジンサーバーの場所が記憶され、ドメイン名がディストリビューションに関連付けられます。そのドメイン名を使用してAmazonS3 バケットのコンテンツへのリンクを作成することができ、CloudFront によってそのコンテンツを供給することができます。

Note

リンクのテストを行う前に、ディストリビューションのステータスが[Deployed]に変わるまで待つ必要があります。

オブジェクトにリンクするには

1. 次の HTML を新規ファイルにコピーします。

• <domain name>を、CloudFront がディストリビューションに割り当てたドメイン名で置換します。

• <object name>を、Amazon S3 バケットにあるファイル名で置換します。

<html><head>My CloudFront Test</head><body><p>My text content goes here.</p><p> <img src="http://<domain name>/<object name>" alt="my test image" /></body></html>

例えば、ドメイン名が d111111abcdef8.cloudfront.netで、オブジェクトが image.jpgの場合、リンクの URL は次のようになります。

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

オブジェクトがバケット内のフォルダにある場合は、そのフォルダを URL に含めます。例えば、image.jpg がイメージフォルダにある場合、URL は次のようになります。

http://d111111abcdef8.cloudfront.net/images/image.jpg2. テキストを、.html ファイル名拡張子のついたファイルに保存します。3. ブラウザでウェブページを開いて、コンテンツが見られるかどうかを確認します。コンテンツが見

られない場合、すべてのステップが正しく実行されたことを確認します。「トラブルシューティング (p. 204)」にあるヒントも参照してください。

API Version 2014-01-3126

Amazon CloudFront 開発者ガイドステップ 4: リンクをテストする

Page 32: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

ブラウザに、イメージファイルが埋め込まれたページが表示されます。これは CloudFront がオブジェクトを供給するのに適切と判断したエッジロケーションから供給されたものです。

CloudFront 使用の詳細については、「Amazon CloudFront リソース (p. 299)」を参照してください。

API Version 2014-01-3127

Amazon CloudFront 開発者ガイドステップ 4: リンクをテストする

Page 33: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

ディストリビューションの使用

Abstract

CloudFrontディストリビューションを作成して、どこでファイルを取得し、誰がファイルにアクセスし、アクセスログが必要かどうかを構成します。

Topics• ウェブディストリビューションと RTMP ディストリビューションの概要 (p. 29)• ウェブディストリビューションと RTMP ディストリビューションの作成 (p. 30)• CloudFront ディストリビューションの一覧表示、詳細表示、および更新を行う (p. 31)• ディストリビューションを削除する (p. 32)• 代替ドメイン名(CNAME)を使用する (p. 33)• CloudFront ディストリビューションの価格クラスを選択する (p. 37)• Amazon S3 での CloudFront の使用 (p. 38)• CloudFront API の変更点 (p. 39)

ディストリビューションに対して実行可能なアクション、およびCloudFront コンソールとCloudFrontAPIを使用してそのアクションを実行する方法に関するドキュメントへのリンクを次の表に示します。

CloudFront API を使用:RTMP ディストリビューション

CloudFront API を使用:ウェブディストリビューション

CloudFront コンソールを使用

アクション

「POST StreamingDistribution」を参照してください

「POST Distribution」を参照してください

ウェブディストリビューション:「ウェブディストリビューションを作成するためのタスクリスト (p. 42)」を参照してくださいRTMP ディストリビューション: 「RTMPを使用するストリーミングメディアファイルのタスクリスト (p. 69)」を参照してください

ディストリビューションを作成する

API Version 2014-01-3128

Amazon CloudFront 開発者ガイド

Page 34: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

CloudFront API を使用:RTMP ディストリビューション

CloudFront API を使用:ウェブディストリビューション

CloudFront コンソールを使用

アクション

「GET StreamingDistribution List」を参照してください。

「GET Distribution List」を参照してください

「CloudFront ディストリビューションの一覧表示、詳細表示、および更新を行う (p. 31)」を参照してください

ディストリビューションのリストを表示する

「GET StreamingDistribution」を参照してください

「GET Distribution」を参照してください

「CloudFront ディストリビューションの一覧表示、詳細表示、および更新を行う (p. 31)」を参照してください

ディストリビューションに関するすべての情報を取得する

「GET StreamingDistribution Config」を参照してください

「GET DistributionConfig」を参照してください

「CloudFront ディストリビューションの一覧表示、詳細表示、および更新を行う (p. 31)」を参照してください

ディストリビューション構成を取得する

「PUT StreamingDistribution Config」」を参照してください

「PUT DistributionConfig」を参照してください

「CloudFront ディストリビューションの一覧表示、詳細表示、および更新を行う (p. 31)」を参照してください

ディストリビューションを更新する

「DELETE StreamingDistribution」を参照してください

「DELETE Distribution」を参照してください

「ディストリビューションを削除する (p. 32)」を参照してください

ディストリビューションを削除する

ウェブディストリビューションとRTMPディストリビューションの概要

Abstract

CloudFrontディストリビューションを作成して、どこでファイルを取得し、誰がファイルにアクセスし、アクセスログが必要かどうかを構成します。

CloudFront を使用してコンテンツを配信するときは、ディストリビューションを作成して、以下のような構成設定を指定します。

• オリジン。これはCloudFrontが配信するファイルを取得するAmazonS3バケットまたはHTTPサーバーです。オリジンとして、最大で 10 個の Amazon S3 バケットと HTTP サーバーの任意の組み合わせを指定できます。

• ファイルをすべてのユーザーが使用できるようにするか、または選択されたユーザーにアクセスを制限するか。

• CloudFront でコンテンツへのアクセスに HTTPS を必須にするかどうか。• CloudFront でオリジンに Cookie またはクエリ文字列を転送するかどうか。• CloudFront で特定の国のユーザーをコンテンツにアクセスできなくするかどうか。• CloudFront でアクセスログを作成するかどうか。

API Version 2014-01-3129

Amazon CloudFront 開発者ガイドウェブディストリビューションとRTMPディストリビュー

ションの概要

Page 35: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

AWSアカウントごとに作成できるウェブディストリビューションとRTMPディストリビューションの数に関する現在の制限については、『AmazonWebServicesGeneralReference』の「AmazonCloudFrontの上限」を参照してください。制限の引き上げを要求するには、https://aws.amazon.com/support/createCase?type=service_limit_increase&serviceLimitIncreaseType=cloudfront-distributionsを参照してください。

供給可能な、ディストリビューションごとのファイル数に制限はありません。

ウェブディストリビューションウェブディストリビューションを使用して、HTTP または HTTPS 経由で以下のコンテンツを供給できます。

• HTTP または HTTPS を使用した静的および動的なダウンロードコンテンツ。たとえば、.html、.css、.php、イメージファイル。

• プログレッシブダウンロードと Apple HTTP Live Streaming(HLS)を使用したオンデマンドマルチメディアコンテンツ。詳細については、「ウェブディストリビューションの使用 (p. 41)」の該当するトピックを参照してください。

HTTPまたはHTTPSを介してAdobe Flash マルチメディアコンテンツを供給することはできませんが、CloudFrontRTMPディストリビューションを使用して供給することはできます。以下の「RTMPディストリビューション (p. 30)」を参照してください。

• ライブイベント。リアルタイムのミーティング、会議、コンサートなど。ライブストリーミングの場合は、AWSCloudFormationスタックを使用して自動的にディストリビューションを作成します。詳細については、「CloudFrontチュートリアル(p. 208)」の該当するライブストリーミングチュートリアルを参照してください。

ウェブディストリビューションの場合、オリジンは、AmazonS3バケットまたはHTTPサーバー(ウェブサーバーなど)です。ウェブディストリビューションを作成する際に指定する値を含め、ウェブディストリビューションが動作する仕組みの詳細については、「ウェブディストリビューションの使用 (p. 41)」を参照してください。ウェブディストリビューションの作成については、「ウェブディストリビューションを作成するためのタスクリスト (p. 42)」を参照してください。

RTMP ディストリビューションRTMP ディストリビューションは、Adobe Media Server と Adobe Real-Time Messaging Protocol(RTMP)を使用してメディアファイルをストリーミングします。RTMP ディストリビューションでは、Amazon S3 バケットをオリジンとして使用する必要があります。

RTMPディストリビューションを作成する際に指定する値については、「RTMPディストリビューションの使用 (p. 67)」を参照してください。RTMP ディストリビューションの作成については、「RTMPを使用するストリーミングメディアファイルのタスクリスト (p. 69)」を参照してください。

ウェブディストリビューションとRTMPディストリビューションの作成

Abstract

CloudFront コンソールまたは CloudFront API を使用して、CloudFront のウェブディストリビューションと RTMPディストリビューションを作成します。

ウェブディストリビューション: CloudFront コンソールを使用したウェブディストリビューションの作成については、「ウェブディストリビューションを作成するためのタスクリスト (p. 42)」を参照して

API Version 2014-01-3130

Amazon CloudFront 開発者ガイドウェブディストリビューション

Page 36: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

ください。CloudFront API を使用してウェブディストリビューションを作成する方法については、『Amazon CloudFront API リファレンス』の「POST Distribution」を参照してください。

RTMP ディストリビューション: CloudFront コンソールを使用した RTMP ディストリビューションの作成については、「RTMP を使用するストリーミングメディアファイルのタスクリスト (p. 69)」を参照してください。CloudFront API を使用して RTMP ディストリビューションを作成する方法については、『Amazon CloudFront API リファレンス』の「POST Streaming Distribution」を参照してください。

CloudFront ディストリビューションの一覧表示、詳細表示、および更新を行う

Abstract

CloudFrontコンソールを使用して、CloudFrontディストリビューションの一覧表示、詳細表示、更新を行います。

CloudFront コンソールを使用して、AWS アカウントに関連付けられた CloudFront ディストリビューションの一覧を表示したり、ディストリビューションの設定を表示したり、ほとんどの設定を更新したりできます。

ディストリビューション構成に対する変更を保存すると、CloudFront はすべてのエッジロケーションへの変更の伝達を開始します。エッジロケーションで構成が更新されるまで、CloudFront は以前の構成に基づいて、そのエッジロケーションからコンテンツを引き続き供給します。エッジロケーションで構成が更新されると、CloudFront は新しい構成に基づいて、そのエッジロケーションからコンテンツの供給を直ちに開始します。

変更がすべてのエッジロケーションに瞬時に伝達されるとは限りません。すべてのエッジロケーションへの伝達に 15 分ほどかかる場合があります。伝達が完了すると、ディストリビューションのステータスが [InProgress] から [Deployed] に変わります。エッジロケーションに変更が伝達されている間、特定のエッジロケーションでコンテンツが以前の構成または新しい構成のどちらに基づいて供給されるかを判別することはできません。

CloudFront コンソールを使用して、CloudFront ディストリビューションの一覧表示、詳細表示、および更新を行うには

1. AWS マネジメントコンソールにサインインし、Amazon CloudFront コンソール(https://console.aws.amazon.com/cloudfront/)を開きます。

2. CloudFront コンソールの上部のペインで、表示または更新するディストリビューションを選択します。

Note

上部のペインには、CloudFront コンソールへのサインイン時に使用されたAWSアカウントに関連付けられたすべてのディストリビューションの一覧が表示されます。

3. RTMPディストリビューションの設定を表示または編集するには、このステップをスキップしてステップ 4 に進んでください。

ウェブディストリビューションの設定を表示または編集するには、以下のステップを実行します。

a. [DistributionSettings]ペインで、変更する設定のタブ([General]、[Origins]、または[Behaviors)をクリックします。

b. 全般設定については、[Edit] をクリックします。

API Version 2014-01-3131

Amazon CloudFront 開発者ガイドCloudFront ディストリビューションの一覧表示、詳細表

示、および更新を行う

Page 37: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

オリジンまたはキャッシュ動作については、オリジンまたはキャッシュ動作をクリックして、[Edit] をクリックします。

c. 該当する値を入力するか、更新します。フィールドの詳細については、以下の各トピックを参照してください。

• 全般設定: ディストリビューションの詳細 (p. 56)• オリジンの設定: オリジンの設定 (p. 48)• キャッシュ動作の設定: キャッシュ動作の設定 (p. 51)

d. [Yes, Edit] をクリックします。

4. RTMPディストリビューションの設定を編集または表示するには、以下のステップを実行します。

a. [Distribution Details] ペインで、[Edit] をクリックします。b. 該当する値を入力するか、更新します。各フィールドの詳細については、「RTMPディストリ

ビューションを作成または更新する場合に指定する値 (p. 71)」を参照してください。c. [Yes, Edit] をクリックします。

ディストリビューションを削除するAbstract

CloudFront コンソールを使用して、必要がなくなった CloudFront ディストリビューションを削除します。

ディストリビューションを使用する必要がなくなった場合は、CloudFront コンソールを使用して、以下の手順に従ってディストリビューションを削除します。

以下の CloudFront API を使用してディストリビューションを削除することもできます。

• ウェブディストリビューションを削除するには、DELETE Distribution API アクションを使用します。詳細については、「Amazon CloudFront API リファレンス」の「DELETE Distribution」を参照してください。

• RTMPディストリビューションを削除するには、DELETE Streaming DistributionAPIアクションを使用します。詳細については、「AmazonCloudFront APIリファレンス」の「DELETEStreamingDistribution」を参照してください。

Note

CloudFront では、AWSアカウントごとに、ウェブディストリビューションとRTMPディストリビューションを合わせて計 100 個作成できます。

CloudFront コンソールを使用して CloudFront ディストリビューションを削除するには

1. AWS マネジメントコンソールにサインインし、Amazon CloudFront コンソール(https://console.aws.amazon.com/cloudfront/)を開きます。

2. CloudFront コンソールの右のペインで、削除するディストリビューションを見つけます。3. [State] 列の値が [Disabled] の場合は、このステップをスキップしてステップ 7 に進みます。

[State] の値が [Enabled] であり、[Status] の値が [Deployed] の場合、ステップ4に進んでディストリビューションを無効にしてから、ディストリビューションを削除します。

API Version 2014-01-3132

Amazon CloudFront 開発者ガイドディストリビューションを削除する

Page 38: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

[State] の値が [Enabled] であり、[Status] の値が [InProgress] の場合、[Status] が [Deployed] に変わるまで待機します。次に、ステップ4に進んでディストリビューションを無効にしてから、ディストリビューションを削除します。

4. CloudFront コンソールの右のペインで、削除するディストリビューションのチェックボックスをオンにします。

5. [Disabled] をクリックしてディストリビューションを無効にして、[Yes, Disable] をクリックして確定します。次に、[Close] をクリックします。

6. [State] 列の値が [Disabled] に直ちに変わります。[Status] 列の値が [Deployed] に変わるまで待機します。

7. 削除するディストリビューションのチェックボックスをオンにします。8. [Delete] をクリックし、[Yes, Delete] をクリックして確定します。次に、[Close] をクリックしま

す。

代替ドメイン名(CNAME)を使用するAbstract

CloudFrontに割り当てられたデフォルトの名前ではなく独自のドメイン名を使用する場合に、CNAMEと呼ばれる代替ドメイン名を使用する方法について説明します。

Topics• 代替ドメイン名に * ワイルドカードを使用する (p. 33)• 代替ドメイン名を使用する上での制限 (p. 34)• 代替ドメイン名の追加 (p. 34)

CloudFront では、CNAME とも呼ばれる代替ドメイン名を使用すると、オブジェクトへのリンクに、CloudFront によってディストリビューションに割り当てられたドメイン名ではなく、独自のドメイン名(例: www.example.com)を使用できます。代替ドメイン名は、ウェブディストリビューションとRTMP ディストリビューションの両方でサポートされます。

ディストリビューションを作成すると、ディストリビューションのドメイン名が CloudFront から返されます。例えば、次のようなドメイン名です。

d111111abcdef8.cloudfront.net

オブジェクトにCloudFront ドメイン名を使用した場合、/images/image.jpgというオブジェクトのURL は次のようになります。

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

オブジェクトの URL に、CloudFront によってディストリビューションに割り当てられたcloudfront.netドメイン名ではなく、www.example.comなどの独自のドメイン名を使用する場合、www.example.comのディストリビューションに代替ドメイン名を追加できます。したがって、/images/image.jpgには次の URL を使用できます。

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

代替ドメイン名に * ワイルドカードを使用する代替ドメイン名を追加するとき、サブドメインを個別に指定する代わりに、ドメイン名の最初に*ワイルドカードを使用できます。例えば、代替ドメイン名を *.example.comにしている場合は、www.example.com、product-name.example.com、marketing.product-name.example.comな

API Version 2014-01-3133

Amazon CloudFront 開発者ガイド代替ドメイン名(CNAME)を使用する

Page 39: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

ど、末尾がexample.comであればどんなドメイン名でもオブジェクトURLに使用できます。オブジェクトの名前は、ドメイン名に関係なく同じです。例えば、次のようになります。

www.example.com/images/image.jpg

product-name.example.com/images/image.jpg

marketing.product-name.example.com/images/image.jpg

代替ドメイン名は、アスタリスクとドット(*.)で始まる必要があります。*domain.example.comのように、サブドメインの一部を置き換えるためにワイルドカードを使用することはできません。また、subdomain.*.example.comのように、ドメイン名の真ん中のサブドメインを置き換えることもできません。

ワイルドカード代替ドメイン名と別の代替ドメイン名が同じ CloudFront ディストリビューション内にある限り、その両方が重複してもかまいません。例えば、www.example.comと *.example.comの両方を代替ドメイン名として使用することはできますが、これらは同じディストリビューション内にある必要があります。

代替ドメイン名を使用する上での制限代替ドメイン名の使用には、以下の制限があることに注意してください。

• ディストリビューションに追加できる代替ドメイン名の数に関する現在の制限については、『AmazonWeb Services General Reference』の「Amazon CloudFrontの上限」を参照してください。制限の引き上げを要求するには、https://aws.amazon.com/support/createCase?type=service_limit_increase&serviceLimitIncreaseType=cloudfront-distributionsを参照してください。

• ドメインのDNSサービスプロバイダーのあるCNAMEレコードを作成する許可が必要です。通常、これはドメインを所有していることを指しますが、ドメイン所有者向けにアプリケーションを開発している場合にも当てはまります。

• 代替ドメイン名が別のCloudFrontディストリビューションにすでに存在する場合は、AWSアカウントがその他のディストリビューションを所有していても、代替ドメイン名を CloudFront ディストリビューションに追加することはできません。

• DNSプロトコルでは、Zone Apexとも呼ばれる、DNS名前空間の最上位ノードに対してCNAMEレコードを作成することができません。例えば、example.comという DNS 名を登録した場合、ZoneApex は example.comになります。example.comの CNAME レコードを作成することはできませんが、www.example.com、newproduct.example.comなどの CNAME レコードを作成することはできます。

DNS サービスとして Route 53 を使用する場合、CNAME の代わりにエイリアスリソースレコードセットを作成できます。エイリアスリソースレコードセットを使用した場合、Route 53 クエリに対する料金はかかりません。また、Zone Apex のドメイン名(example.com)に対してエイリアスリソースレコードセットを作成することもできます。詳細については、「Amazon Route 53 開発者ガイド」の「Routing Queries to an Amazon CloudFront Distribution」を参照してください。

• 代替ドメイン名を含む HTTPS をビューアが使用するように構成する場合は、追加の構成が必要です。詳細については、「代替ドメイン名と HTTPS の使用 (p. 181)」を参照してください。

代替ドメイン名の追加以下のタスクリストでは、CloudFront コンソールを使用して代替ドメイン名をディストリビューションに追加するプロセスを説明します。これにより、ディストリビューションに関連付けられたCloudFrontドメインの代わりに、独自のドメイン名をリンクの中で使用できます。

API Version 2014-01-3134

Amazon CloudFront 開発者ガイド代替ドメイン名を使用する上での制限

Page 40: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

Note

ビューアで代替ドメイン名を含む HTTPS を使用する場合は、「代替ドメイン名と HTTPS の使用 (p. 181)」を参照してください。

CloudFront API を使用したディストリビューションの更新については、「ディストリビューションの使用 (p. 28)」を参照してください。

CloudFront コンソールを使用して代替ドメイン名を追加するプロセス

1. AWS マネジメントコンソールにサインインし、Amazon CloudFront コンソール(https://console.aws.amazon.com/cloudfront/)を開きます。

2. CloudFront コンソールで、以下の手順を使用して、ドメイン名を代替ドメイン名として [AlternateDomain Names (CNAMEs)] フィールドに含めるようにディストリビューションを更新します。

a. CloudFront コンソールの上部のペインで、更新するディストリビューションを選択し、[Distribution Settings] をクリックします。

b. [General] タブで、[Edit] をクリックします。c. 該当の代替ドメイン名を [Alternate Domain Names (CNAMEs)] フィールドに追加します。ド

メイン名をコンマで区切るか、新しい行にドメイン名を 1 つずつ設定します。d. ウェブディストリビューションのみ: [SSL Certificate] で該当するオプションを選択します。

• SSL を使用しない場合: [Default CloudFront Certificate] をクリックします。• SSL を使用する場合: [Custom SSL Certificate Stored in IAM] をクリックし、リストから証明書を選択します。

必要な証明書がリストに表示されない場合、「HTTPS で代替ドメイン名を使用するには (p. 184)」の手順を参照して、IAM証明書ストアに証明書を正しくアップロードしたことを確認します。

この設定を選択した場合、オブジェクト URL でのみ代替ドメイン名を使用することをお勧めします(https://example.com/logo.jpg)。CloudFrontのディストリビューションドメイン名(https://d111111abcdef8.cloudfront.net/logo.jpg)を使用した場合、ビューアがSNIをサポートしていると、CloudFront は正常に動作します。しかし、ビューアが SNI をサポートしていないと、[Clients Supported] の値に応じてビューアは次のいずれかの動作を示します。• [All Clients]: ビューアが SNI をサポートしていない場合、CloudFront ドメイン名が SSL証明書のドメイン名と一致しないため、警告が表示されます。

• [Only Clients that Support Server Name Indication (SNI)]: CloudFront はオブジェクトを返さないでビューアとの接続を中断します。

e. ウェブディストリビューションのみ: [ClientsSupported]で該当するオプションを選択します。

• [All Clients]: CloudFront が専用の IPアドレスを使用してHTTPSコンテンツを供給します。このオプションを選択した場合、有効になっているディストリビューションに SSL 証明書を関連付けると、追加料金がかかります。詳細については、http://aws.amazon.com/cloudfront/pricing を参照してください。

• [Only Clients that Support Server Name Indication (SNI)]: 古いブラウザなど SNI をサポートしないクライアントは、別の方法を使用してコンテンツにアクセスする必要があります。

詳細については、「CloudFront で HTTPS リクエストを供給する方法の選択 (p. 182)」を参照してください。

f. [Yes, Edit] をクリックします。

API Version 2014-01-3135

Amazon CloudFront 開発者ガイド代替ドメイン名の追加

Page 41: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

3. CloudFrontコンソールで、対象のディストリビューションの [General] タブに移動し、ディストリビューションのステータスが[Deployed]に変わっていることを確認します。ディストリビューションに対する更新がデプロイされる前に代替ドメインの使用を試みた場合、以下のステップで作成するリンクは機能しません。

4. DNS サービスプロバイダーから提供された方法を使用して、CNAME リソースレコードセットをドメインのホストゾーンに追加します。この新しい CNAME リソースレコードセットによって、DNSクエリがドメイン(例: www.example.com)からディストリビューションのCloudFront ドメイン名(例: d111111abcdef8.cloudfront.net)にリダイレクトされます。詳細については、DNSサービスプロバイダーから提供されたドキュメントを参照してください。

DNSサービスとしてAmazon Route 53 を使用する場合、CNAMEの代わりにエイリアスリソースレコードセットを作成できます。エイリアスリソースレコードセットを使用した場合、Route 53クエリに対する料金はかかりません。また、ZoneApexのドメイン名(example.com)に対してエイリアスリソースレコードセットを作成することもできます。Zone Apex では、DNS によってCNAME の使用が許可されていません。詳細については、「Amazon Route 53 開発者ガイド」の「Routing Queries to an Amazon CloudFront Distribution」を参照してください。

Important

ドメイン名用のCNAMEレコードがすでに存在する場合は、そのリソースレコードセットを更新するか、ディストリビューションの CloudFront ドメイン名を指す新しいリソースレコードセットで置き換えます。

また、CNAME リソースレコードセットがディストリビューションのドメイン名を指しており、どのオリジンサーバーも指していないことを確認します。

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

以下の例は、images.example.com ドメインへの dig リクエストと、応答のうちの関連する部分を示しています。

[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.......

Answer Section の行は、CloudFront ディストリビューションのドメイン名であるd111111abcdef8.cloudfront.net に images.example.com のクエリをルーティングする CNAME リソースレコードセットを示しています。CNAMEの右側の名前がCloudFront ディストリビューションのドメイン名になっている場合、CNAMEリソースレコードセットは適切に構成されています。名前が、Amazon S3 バケットのドメイン名など、別の値になっている場合、CNAME リソースレコードセットの構成が誤っています。この場合、ステップ4に戻り、ディストリビューションのドメイン名を指すように CNAME レコードを修正します。

API Version 2014-01-3136

Amazon CloudFront 開発者ガイド代替ドメイン名の追加

Page 42: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

6. いくつかのテストリンクを作成し、そのURLの中でディストリビューションのCloudFrontドメイン名ではなく独自のドメイン名を使用することで、代替ドメイン名をテストします。

7. アプリケーションで CloudFront ディストリビューションのドメイン名ではなく代替ドメイン名を使用するように、オブジェクトへのリンクを変更します。

CloudFront ディストリビューションの価格クラスを選択する

Abstract

CloudFront ディストリビューションの作成時に価格クラスを選択します。または、CloudFront コンソールまたはCloudFront API を使用して、既存のディストリビューションを更新します。

CloudFront では、世界中にエッジロケーションがあります。各エッジロケーションのコストは異なるため、請求する料金は、リクエストの供給元のエッジロケーションによって異なります。

CloudFront エッジロケーションは地理的リージョンに分類され、リージョンは価格クラスに分類されます。デフォルトの価格クラスにはすべてのリージョンが含まれます。また、ほとんどのリージョン(米国リージョン、ヨーロッパリージョン、香港リージョン、韓国リージョン、およびシンガポールリージョン、日本リージョン、およびインドリージョン)が含まれ、最もコストのかかるリージョンが除外されている別の価格クラスがあります。さらに、最もコストの低いリージョン(米国リージョンおよびヨーロッパリージョン)のみが含まれる価格クラスもあります。

デフォルトでは、CloudFront はパフォーマンスのみに基づいてオブジェクトのリクエストに応答します。つまり、オブジェクトは、ビューアにとってレイテンシーが最も低いエッジロケーションから供給されます。コスト削減を優先し、一部の地理的リージョンにおけるレイテンシーの延長を容認できるのであれば、使用する CloudFront リージョンが限定された価格クラスを選択することもできます。オブジェクトは、この価格クラス内のエッジロケーションからのみ供給されますが、さらに、選択された価格クラス内のエッジロケーションのうちレイテンシーが最も短いエッジロケーションからコンテンツが供給されます。ただし、一部のユーザー、特に、価格クラスに含まれない地理的リージョンのユーザーについては、コンテンツが供給されるどの CloudFront エッジロケーションよりもレイテンシーが長くなる場合があります。例えば、米国とヨーロッパのみを含む価格クラスを選択した場合、オーストラリアとアジアのビューアのレイテンシーは、オーストラリアとアジアを含む価格クラスを選択した場合よりも長くなります。

一部のエッジロケーションを含まない価格クラスを選択した場合も、コンテンツのリクエストが、価格クラスに含まれないリージョンのエッジロケーションから処理されることがあります。この場合、オブジェクトの供給元である、コストの高いリージョンの料金は請求されません。代わりに、選択された価格クラスのリージョンの中で最もコストの低いリージョンの料金が請求されます。

価格クラスは、CloudFront ディストリビューションの作成時に選択できます。また、CloudFront コンソールまたはCloudFrontAPIを使用して、既存のディストリビューションを更新することもできます。CloudFront コンソールまたは API を使用して、ウェブディストリビューションまたはRTMPディストリビューションを作成または更新する方法に関する各トピックについては、「ディストリビューションの使用 (p. 28)」を参照してください。

CloudFront 料金および価格クラスの詳細については、「Amazon CloudFront 料金表」を参照してください。

API Version 2014-01-3137

Amazon CloudFront 開発者ガイドCloudFrontディストリビューションの価格クラスを選択す

Page 43: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

Amazon S3 での CloudFront の使用Abstract

すでに Amazon S3 を使用してコンテンツを配信している場合は、CloudFront を追加してコストを下げます。

現在、CNAME を使用して Amazon S3 バケットからコンテンツを配信している場合は、以下の手順を行うことにより、CloudFront への移行を支障なく行うことができます。

お客様のオブジェクトが Amazon S3 に保存されている場合、ユーザーがオブジェクトを Amazon S3バケットから直接取得するか、またはオブジェクトを Amazon S3 から取得するように CloudFront を構成してユーザーがオブジェクトを CloudFront から取得するか指定できます。

使用量が多ければ、Amazon S3 データ転送よりも CloudFront データ転送のほうが料金が安いので、ユーザーがオブジェクトに頻繁にアクセスする場合は、CloudFront を追加することにより、オブジェクトの配信にかかる費用を抑えることができます。また、Amazon S3 だけからダウンロードするよりも、CloudFront を使用したほうが、ユーザーにより近い場所にオブジェクトが保存されているので、より速くダウンロードできます。

Important

現在のところ、CloudFront は Amazon S3 Cross-Origin Resource Sharing(CORS)をサポートしていません。

現在、コンテンツをお客様の Amazon S3 バケットのドメイン名(MyAWSBucket.s3.amazonaws.comなど)からではなくお客様自身のドメイン名(example.comなど)を使用してお客様のAmazon S3バケットから直接配信している場合は、以下の手順を行うことにより、支障なく CloudFront を追加できます。

コンテンツをすでに Amazon S3 から配信している場合に CloudFront を追加する手順

1. 該当するトピックで説明されているプロセスを使用して、CloudFront ディストリビューションを作成します。

• ウェブディストリビューションを作成するためのタスクリスト (p. 42)• RTMP を使用するストリーミングメディアファイルのタスクリスト (p. 69)

ディストリビューションを作成するときに、オリジンサーバーとして Amazon S3 バケットの名前を指定します。

Important

バケットがCloudFront で正常に機能するには、その名前がDNS命名要件に沿ったものでなければなりません。詳細については、「AmazonSimpleStorageService開発者ガイド」の「バケットの制約と制限」を参照してください。

Amazon S3 で CNAMEを使用している場合、ディストリビューションにもそのCNAMEを指定します。

2. Amazon S3 バケット内にあるパブリックに読み出し可能なオブジェクトへのリンクを含むテストウェブページを作成して、リンクをテストします。この初期テストでは、オブジェクト URL にお客様のディストリビューションの CloudFront ドメイン名(例:http://d111111abcdef8.cloudfront.net/images/image.jpg)を使用します。

CloudFront URL の形式の詳細については、「CloudFront オブジェクトの URL の形式 (p. 81)」を参照してください。

API Version 2014-01-3138

Amazon CloudFront 開発者ガイドAmazon S3 での CloudFront の使用

Page 44: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

3. Amazon S3 の CNAME を使用している場合、アプリケーションでは、バケットの名前(例:myawsbucket.s3.amazonaws.com)を使用する代わりにお客様のドメイン名(例: example.com)を使用して、AmazonS3バケットのオブジェクトを参照しています。引き続き、ディストリビューションのCloudFront ドメイン名(例: d111111abcdef8.cloudfront.net)を使用する代わりにお客様のドメイン名を使用してオブジェクトを参照する場合、DNS サービスプロバイダーを使用して設定を更新する必要があります。

Amazon S3のCNAMEを適切に機能させるために、DNSサービスプロバイダーには、ドメインに対するエンドユーザークエリを Amazon S3 バケットに現在ルーティングしている、ドメインのCNAME リソースレコードセットがあります。次のオブジェクトが要求されたとします。

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

このリクエストは自動的に再ルーティングされ、次のオブジェクトが表示されます。

http://myawsbucket.s3.amazonaws.com/images/image.jpg

クエリを Amazon S3 バケットではなく CloudFront ディストリビューションにルーティングするには、DNS サービスプロバイダーから提供された方法を使用して、ドメインの CNAME リソースレコードセットを更新する必要があります。この更新された CNAME レコードによって、お客様のドメインからディストリビューションのCloudFrontドメイン名に、DNSクエリのリダイレクトが開始されます。詳細については、DNS サービスプロバイダーから提供されたドキュメントを参照してください。

Note

DNSサービスとしてRoute 53 を使用している場合のCNAMEリソースレコードセットの更新方法については、「Creating, Changing, and Deleting Resource Record Sets」を参照してください。

CloudFront での CNAME の使用の詳細については、「代替ドメイン名(CNAME)を使用する (p. 33)」を参照してください。

CNAME リソースレコードセットを更新してから変更が DNS システム全体に伝達されるまで最大で 72 時間かかりますが、通常は、それよりも早く終了します。この間、コンテンツに対する一部の要求は引き続きAmazonS3バケットにルーティングされ、それ以外の要求はCloudFrontにルーティングされます。

CloudFront API の変更点Abstract

CloudFront API に関して注意する必要のある変更点を示します。

ウェブディストリビューションまたは RTMP ディストリビューションの作成または更新を行ったり、オブジェクトを無効にしたりする場合に、リクエストの本文に含める XML ドキュメントの形式が、CloudFront API の 2012-05-05バージョンから大幅に変更されました。以前のバージョンのAPIでは、複数値を受け付けるエレメント(CNAME、信頼された署名者など)の 1つ以上の値が誤って容易に削除されることが確認されていました。2012-05-05 リリースに加えられた変更の目的は、偶発的な削除を防止することと、ユーザーが Quantityエレメントに指定したと考えている値の数と実際に指定された値の数に不一致が生じた場合に通知することです。

2012-05-05 API バージョン以降を、それよりも前の API バージョンで作成されたウェブディストリビューションおよびRTMPディストリビューションで使用する場合は、以下の点に注意してください。

• 2012-05-05 以降のCloudFront API を使用して作成または更新されたウェブディストリビューションを、2012-05-05 よりも前のバージョンの API を使用して更新することはできません。

API Version 2014-01-3139

Amazon CloudFront 開発者ガイドCloudFront API の変更点

Page 45: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

• 新しい API バージョンを使用して、ディストリビューションのリストや、ディストリビューションに関する情報、ディストリビューション構成を取得できます。CloudFront は XMLドキュメントを新しい XML 形式で返します。

• 以前の API バージョンを使用して作成されたディストリビューションを更新するには、2012-05-05以降のバージョンの GET Distribution または GET Streaming Distribution を使用して新しい XML 形式で XML ドキュメントを取得し、必要に応じてデータを変更した後に、2012-05-05 以降の PUTDistribution Config または PUT Streaming Distribution Config を使用して CloudFront に変更を送信します。

• 以前の API バージョンを使用して作成されたディストリビューションを、新しい API を使用して削除することができます。この場合、ディストリビューションを無効にしておく必要があります。

API Version 2014-01-3140

Amazon CloudFront 開発者ガイドCloudFront API の変更点

Page 46: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

ウェブディストリビューションの使用

Abstract

CloudFront ウェブディストリビューションを構成して管理します。

Topics• ウェブディストリビューションを作成するためのタスクリスト (p. 42)• CloudFront コンソールを使用したウェブディストリビューションの作成 (p. 43)• ウェブディストリビューションのテスト (p. 44)• Amazon S3 オリジンおよびカスタムオリジンを使用したウェブディストリビューション (p. 44)• ウェブディストリビューションを作成または更新する場合に指定する値 (p. 46)• ウェブディストリビューションを作成または更新する場合に CloudFront がコンソールに表示する値 (p. 61)

• Amazon EC2 と他のカスタムオリジンの使用に関する要件および推奨事項 (p. 63)• コンテンツの地理的ディストリビューションの制限 (p. 63)• オンデマンドスムーズストリーミングの構成 (p. 65)• オンデマンドプログレッシブダウンロードの構成 (p. 66)• オンデマンド Apple HTTP Live Streaming(HLS)の構成 (p. 66)

このセクションでは、CloudFront ウェブディストリビューションを構成して管理する方法について説明します。ディストリビューションの基本的な説明については、「ディストリビューションの使用(p.28)」を参照してください。CloudFrontRTMPディストリビューションの詳細については、「RTMPディストリビューションの使用 (p. 67)」を参照してください。

API Version 2014-01-3141

Amazon CloudFront 開発者ガイド

Page 47: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

ウェブディストリビューションを作成するためのタスクリスト

Abstract

CloudFront のウェブディストリビューションを作成します。

以下のタスクリストでは、ウェブディストリビューションの作成処理の概要について説明します。

ウェブディストリビューションを作成するには

1. 1 つ以上の Amazon S3 バケットを作成するか、HTTP サーバーをオリジンサーバーとして構成します。オリジンとは、ウェブコンテンツのオリジナルバージョンを保存する場所です。CloudFrontは、ファイルに対するリクエストを受け取ると、オリジンにアクセスし、エッジロケーションに配信するファイルを取得します。オリジンサーバーとして、最大で 10 個の Amazon S3 バケットとHTTP サーバーの任意の組み合わせを使用できます。

Amazon S3 を使用する場合は、バケット名をすべて小文字にする必要があります。また、バケット名にスペースを含めることはできません。

Amazon EC2 サーバーまたは別のカスタムオリジンを使用する場合は、「Amazon EC2 と他のカスタムオリジンの使用に関する要件および推奨事項 (p. 63)」を確認してください。

2. コンテンツをオリジンサーバーにアップロードします。CloudFront の署名付きURLを使用して、コンテンツへのアクセスを制限しない場合は、オブジェクトをパブリックに読み出し可能にします。

Caution

オリジンサーバーのセキュリティを確保する責任はお客様にあります。サーバーへのアクセス許可を CloudFront に持たせる必要があります。また、コンテンツを保護するためのセキュリティ設定を適切に行う必要があります。

3. CloudFront ウェブディストリビューションを作成します。

• CloudFront コンソールを使用してウェブディストリビューションを作成する方法については、「CloudFront コンソールを使用したウェブディストリビューションの作成 (p. 43)」を参照してください。

• CloudFrontAPIを使用してウェブディストリビューションを作成する方法については、「AmazonCloudFront API リファレンス」の「POST Distribution」を参照してください。

4. オプション: CloudFront コンソールを使用してディストリビューションを作成している場合は、ディストリビューションのキャッシュ動作またはオリジンをさらに作成します。詳細については、「CloudFrontコンソールを使用して、CloudFrontディストリビューションの一覧表示、詳細表示、および更新を行うには (p. 31)」を参照してください。

5. ウェブディストリビューションをテストします。詳細については、「ウェブディストリビューションのテスト (p. 44)」を参照してください。

6. ステップ 3 でディストリビューションを作成した後に CloudFront から返されたドメイン名を使用して、お客様のコンテンツにアクセスするためのウェブサイトまたはアプリケーションを開発します。例えば、CloudFront がディストリビューションのドメイン名としてd111111abcdef8.cloudfront.net を返した場合、Amazon S3 バケット内または HTTP サーバーのルートディレクトリ内のファイル image.jpgの URL はhttp://d111111abcdef8.cloudfront.net/image.jpgになります。

API Version 2014-01-3142

Amazon CloudFront 開発者ガイドウェブディストリビューションを作成するためのタスクリ

スト

Page 48: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

ディストリビューションの作成時に 1つ以上の代替ドメイン名(CNAME)を指定した場合、独自のドメイン名を使用できます。この場合、image.jpgの URL をhttp://www.example.com/image.jpgにすることができます。

次の点に注意してください。

• 署名付きURLを使用してコンテンツへのアクセスを制限する場合は、「CloudFront を使用してプライベートコンテンツを供給する (p. 126)」を参照してください。

• 圧縮されたコンテンツを供給する場合は、「圧縮ファイルの供給(p.107)」を参照してください。• Amazon S3オリジンおよびカスタムオリジンに対するCloudFrontのリクエスト動作およびレスポンス動作については、「リクエストとレスポンスの動作 (p. 110)」を参照してください。

CloudFront コンソールを使用したウェブディストリビューションの作成

Abstract

CloudFront コンソールを使用して CloudFront のウェブディストリビューションを作成します。

以下の手順では、CloudFront コンソールを使用してウェブディストリビューションを作成する方法を説明します。CloudFront APIを使用してウェブディストリビューションを作成する場合は、「AmazonCloudFront API リファレンス」の「POST Distribution」を参照してください。

AWSアカウントごとに作成できるウェブディストリビューションの数に関する現在の制限については、『AmazonWeb Services General Reference』の「Amazon CloudFront の上限」を参照してください。制限の引き上げを要求するには、https://aws.amazon.com/support/createCase?type=service_limit_increase&serviceLimitIncreaseType=cloudfront-distributionsを参照してください。

CloudFront コンソールを使用して CloudFront ウェブディストリビューションを作成するには

1. AWS マネジメントコンソールにサインインし、Amazon CloudFront コンソール(https://console.aws.amazon.com/cloudfront/)を開きます。

2. [Create Distribution] をクリックします。3. [Create Distribution Wizard] の最初のページで、デフォルトの選択である [Web] をそのまま選択

し、[Continue] をクリックします。4. ディストリビューションの設定項目を指定します。詳細については、「ウェブディストリビュー

ションを作成または更新する場合に指定する値 (p. 46)」を参照してください。5. [Create Distribution] をクリックします。6. CloudFront がディストリビューションを作成すると、ディストリビューションの [Status] 列の値

が、[InProgress]から[Deployed]に変わります。配信を有効にするよう選択すると、リクエストの処理を行えるようになります。この所要時間は 15 分以内となります。

CloudFrontによってディストリビューションに割り当てられたドメイン名がディストリビューションの一覧に表示されます。(ドメイン名は、選択されたディストリビューションの [General] タブにも表示されます)。

ディストリビューションをデプロイする場合は、新しいCloudFront URLまたはCNAMEを使用してコンテンツにアクセスできることを確認します。詳細については、「ウェブディストリビューションのテスト (p. 44)」を参照してください。

API Version 2014-01-3143

Amazon CloudFront 開発者ガイドCloudFrontコンソールを使用したウェブディストリビュー

ションの作成

Page 49: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

ウェブディストリビューションのテストAbstract

CloudFront 用のウェブディストリビューションをテストします。

ディストリビューションの作成が終わると、CloudFront に オリジンサーバーの場所が記憶され、ドメイン名がディストリビューションに関連付けられます。CloudFront ドメイン名を使用してオブジェクトへのリンクを作成できます。これで、CloudFrontは、オブジェクトをウェブページまたはアプリケーションに供給できます。

Note

リンクのテストを行う前に、ディストリビューションのステータスが[Deployed]に変わるまで待つ必要があります。

ウェブディストリビューション内のオブジェクトへのリンクを作成するには

1. 以下のHTMLコードを新しいファイルにコピーし、domain-nameをディストリビューションのドメイン名で置き換えて、object-nameをオブジェクトの名前で置き換えます。

<html><head>My CloudFront Test</head><body><p>My text content goes here.</p><p><img src="http://domain-name/object-name" alt="my test image"</body></html>

例えば、ドメイン名が d111111abcdef8.cloudfront.netで、オブジェクトが image.jpgの場合、リンクの URL は次のようになります。

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

オブジェクトがオリジンサーバー内のフォルダにある場合は、そのフォルダも URL に含める必要があります。例えば、image.jpgがオリジンサーバーのイメージフォルダにある場合、URLは次のようになります。

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

2. HTML コードを、html ファイル名拡張子の付いたファイルに保存します。3. ブラウザでウェブページを開いて、オブジェクトが見られるかどうかを確認します。

ブラウザに、イメージファイルが埋め込まれたページが表示されます。これは CloudFront がオブジェクトを供給するのに適切と判断したエッジロケーションから供給されたものです。

Amazon S3オリジンおよびカスタムオリジンを使用したウェブディストリビューション

ウェブディストリビューションを作成する場合、エッジロケーションに配信するファイルに対するリクエストを CloudFront がどの場所に送信するかを指定します。CloudFront は、オリジンとして AmazonS3 バケットおよび HTTP サーバー(ウェブサーバーなど)を使用することをサポートします。

API Version 2014-01-3144

Amazon CloudFront 開発者ガイドウェブディストリビューションのテスト

Page 50: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

オリジンとしての Amazon S3 バケットの使用ディストリビューションのオリジンとしてAmazon S3を使用する場合、CloudFrontが配信するすべてのオブジェクトを、AmazonS3バケットに配置します。オブジェクトをAmazonS3に格納するには、Amazon S3 でサポートされる任意の方法を使用できます(例: Amazon S3 コンソールや API、サードパーティツール)。他の Amazon S3 バケットと同様に、バケット内に階層を作成してオブジェクトを保存できます。

既存の Amazon S3 バケットを CloudFront オリジンサーバーとして使用してもバケットに変更は一切ありません。Amazon S3 オブジェクトの保存やアクセスで通常使用しているとおりに通常の AmazonS3 価格でバケットを使用できます。バケットへのオブジェクトの保存には、通常の Amazon S3 料金が発生します。CloudFront の使用料の詳細については、「CloudFront の請求および使用状況レポート (p. 8)」を参照してください。

Important

バケットがCloudFront で正常に機能するには、その名前がDNS命名要件に沿ったものでなければなりません。詳細については、「Amazon Simple Storage Service 開発者ガイド」の「バケットの制約と制限」を参照してください。

CloudFront が オブジェクトを取得する Amazon S3 バケットを指定するとき、バケット名を指定する方法は、バケットをウェブサイトエンドポイントとして構成しているかどうかによって変わります。

バケットはウェブサイトエンドポイントとして構成されていない一般に、次の形式を使用します。

bucket-name.s3.amazonaws.com

バケットが米国スタンダードリージョンにあり、バージニア北部にリクエストをルーティングする場合は、次の形式を使用します。

bucket-name.s3-external-1.amazonaws.com

この形式でバケット名を指定した場合、以下の CloudFront 機能を使用することができます。• SSL を使用して Amazon S3 バケットと通信するように CloudFront を構成します。詳細については、「HTTPS 接続を使用したオブジェクトへのアクセス (p. 178)」を参照してください。

• オリジンアクセスアイデンティティを使用して、ユーザーにAmazonS3URLではなくCloudFrontURL を使用してコンテンツにアクセスするよう要求します。詳細については、「オリジンアクセスアイデンティティを使用してAmazonS3コンテンツへのアクセスを制限する(p. 131)」を参照してください。

• POSTリクエストと PUTリクエストを CloudFront に送信して、バケットのコンテンツを更新します。詳細については、トピック「CloudFront がリクエストを処理して Amazon S3 オリジンサーバーに転送する方法 (p. 110)」の「HTTP メソッド (p. 113)」を参照してください。

バケットはウェブサイトエンドポイントとして構成されているバケットの Amazon S3 静的ウェブサイトホスティングエンドポイントを入力します。この値は、Amazon S3 コンソールの [Static Website Hosting] の [Properties] ページに表示されます。

この形式でバケット名を指定すると、Amazon S3 リダイレクトと Amazon S3 カスタムエラードキュメントを使用できます。(CloudFront でもカスタムエラーページが提供されています。詳細については、「エラーレスポンスのカスタマイズ (p. 99)」を参照してください。)Amazon S3 の諸機能について詳しくは、「Amazon S3 ドキュメント」を参照してください。.

以下の形式を使用してバケットを指定しないでください。

• Amazon S3 のパススタイル(s3.amazonaws.com/bucket-name)• Amazon S3 の CNAME (ある場合)

API Version 2014-01-3145

Amazon CloudFront 開発者ガイドオリジンとしての Amazon S3 バケットの使用

Page 51: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

Amazon EC2 または他のカスタムオリジンの使用カスタムオリジンは、HTTPサーバーです(例:ウェブサーバー)。HTTPサーバーには、AmazonEC2インスタンス、またはプライベートで管理する HTTP サーバーを使用できます。カスタムオリジンを使用する場合、サーバーのDNS名に加えて、オリジンからオブジェクトを取得するときにCloudFrontが使用する HTTP ポート、HTTPS ポート、およびプロトコルを指定します。

カスタムオリジンを使用する場合、以下の機能を除いて、ほとんどの CloudFront 機能がサポートされます。

• RTMP ディストリビューション – サポートされません。• プライベートコンテンツ – 署名付き URL を使用してカスタムオリジンからコンテンツを配信できますが、CloudFront の場合、カスタムオリジンにアクセスするには、オリジンがパブリックにアクセス可能な状態になっている必要があります。詳細については、「CloudFront を使用してプライベートコンテンツを供給する (p. 126)」を参照してください。

カスタムオリジンを使用する場合の要件および推奨事項については、「Amazon EC2 と他のカスタムオリジンの使用に関する要件および推奨事項 (p. 63)」を参照してください。

ウェブディストリビューションを作成または更新する場合に指定する値

新しいウェブディストリビューションの作成や、既存のディストリビューションの更新を行う場合、以下の値を指定します。CloudFront コンソールを使用したウェブディストリビューションの作成または更新について詳しくは、該当するトピックを参照してください。

• ウェブディストリビューションの使用 (p. 41)• CloudFront ディストリビューションの一覧表示、詳細表示、および更新を行う (p. 31)

配信形式 (p. 47)

オリジンの設定 (p. 48)

• オリジンドメイン名 (p. 48)• オリジン ID (p. 49)• バケットアクセスの制限(Amazon S3 のみ) (p. 49)• オリジンアクセスアイデンティティ(Amazon S3 のみ) (p. 49)• 新しいアイデンティティに関するコメント(Amazon S3 のみ) (p. 49)• アイデンティティ(Amazon S3 のみ) (p. 49)• バケットに読み取り許可を付与する(Amazon S3 のみ) (p. 50)• HTTP ポート(Amazon EC2および他のカスタムオリジンのみ) (p. 51)• HTTPS ポート(Amazon EC2および他のカスタムオリジンのみ) (p. 51)• オリジンプロトコルポリシー(AmazonEC2、ウェブサイトエンドポイントとして構成されたAmazonS3 バケット、および他のカスタムオリジンのみ) (p. 50)

キャッシュ動作の設定 (p. 51)

• パスパターン (p. 51)• オリジン(既存のディストリビューションのみ) (p. 53)

API Version 2014-01-3146

Amazon CloudFront 開発者ガイドAmazon EC2 または他のカスタムオリジンの使用

Page 52: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

• ビューアプロトコルポリシー (p. 53)• 許可される HTTP メソッド (p. 53)• オブジェクトキャッシュ (p. 54)• 最小 TTL (p. 54)• Cookie の転送(Amazon EC2および他のカスタムオリジンのみ) (p. 54)• ホワイトリスト Cookie (Amazon EC2および他のカスタムオリジンのみ) (p. 55)• 転送クエリ文字列 (p. 55)• スムーズストリーミング (p. 55)• ビューアのアクセス制限(署名付き URL の使用) (p. 55)• 信頼された署名者 (p. 55)• AWS アカウント番号 (p. 56)

ディストリビューションの詳細 (p. 56)

• 価格クラス (p. 56)• 代替ドメイン名(CNAME) (p. 56)• SSL 証明書 (p. 57)• Clients Supported(サポートされるクライアント) (p. 58)• デフォルトのルートオブジェクト (p. 58)• ログ作成 (p. 58)• ログ用のバケット (p. 58)• ログのプレフィックス (p. 59)• Cookie のログ作成 (p. 59)• コメント (p. 59)• ディストリビューションの状態 (p. 59)

Custom Error Pages(カスタムエラーページ)と Error Caching(エラーキャッシュ) (p. 60)

• Error Code(エラーコード) (p. 60)• Response Page Path(レスポンスページのパス) (p. 60)• Response Code(レスポンスコード) (p. 60)• Error Caching Minimum TTL(エラーキャッシュ最小 TTL) (p. 60)

制限 (p. 60)

• Enable Geo Restriction(地域制限の有効化) (p. 61)• Restriction Type(制限タイプ) (p. 61)• Countries(国) (p. 61)

配信形式ディストリビューションを作成する場合、配信方法を指定します。ウェブディストリビューションの場合、この値は常に [Web] です。既存のディストリビューションの配信方法を変更することはできません。

API Version 2014-01-3147

Amazon CloudFront 開発者ガイド配信形式

Page 53: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

オリジンの設定ディストリビューションを作成または更新する場合、1つ以上の場所に関する情報を指定します。これは、オリジンと呼ばれるものであり、ウェブコンテンツのオリジナルバージョンを保存する場所です。CloudFront はオリジンからウェブコンテンツを取得し、世界中のエッジサーバーネットワーク経由でビューアにウェブコンテンツを供給します。各オリジンは、AmazonS3バケットまたはHTTPサーバー(ウェブサーバーなど)です。

ディストリビューションに作成できるオリジンの数に関する現在の制限については、『Amazon WebServices General Reference』の「Amazon CloudFront の上限」を参照してください。制限の引き上げを要求するには、https://aws.amazon.com/support/createCase?type=service_limit_increase&serviceLimitIncreaseType=cloudfront-distributionsを参照してください。

オリジンを削除する場合は、まず、そのオリジンに関連付けられたキャッシュ動作を編集または削除する必要があります。

Caution

オリジンを削除する場合は、そのオリジンによって以前供給されていたファイルが別のオリジンで利用可能であり、現在、そのファイルへのリクエストがキャッシュ動作によって新しいオリジンにルーティングされていることを確認します。

ディストリビューションを作成または更新する場合、オリジンごとに以下の値を指定します。

オリジンドメイン名CloudFrontがこのオリジンのオブジェクトの取得先としているAmazon S3バケットまたはHTTPサーバーの DNS ドメイン名(例: myawsbucket.s3.amazonaws.comや www.example.com)。

オリジンが HTTP サーバーである場合は、リソースのドメイン名を入力します。ファイルはパブリックに読み取り可能である必要があります。

オリジンが Amazon S3 バケットである場合、CloudFront コンソールで [Origin Domain Name] フィールドをクリックすると、現在の AWS アカウントに関連付けられた Amazon S3 バケットの一覧が表示されます。次の点に注意してください。

• バケットがウェブサイトとして構成されている場合は、バケットの Amazon S3 静的ウェブサイトホスティングエンドポイントを入力します。[Origin Domain Name] フィールドの一覧からバケット名を選択しないでください。静的ウェブサイトホスティングエンドポイントは、Amazon S3 コンソールの [Static Website Hosting] の [Properties] ページに表示されます。

• 使用しているバケットが別のAWSアカウントのものであり、そのバケットがウェブサイトとして構成されていない場合は、次の形式で名前を入力します。

bucket-name.s3.amazonaws.com

バケットが米国スタンダードリージョンにあり、バージニア北部にリクエストをルーティングする場合は、次の形式を使用します。

bucket-name.s3-external-1.amazonaws.com

• CloudFrontのオリジンアクセスアイデンティティを使用してAmazon S3内のコンテンツを保護しない限り、ファイルをパブリックに読み出し可能とする必要があります。詳細については、「オリジンアクセスアイデンティティを使用してAmazonS3コンテンツへのアクセスを制限する(p. 131)」を参照してください。

API Version 2014-01-3148

Amazon CloudFront 開発者ガイドオリジンの設定

Page 54: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

Important

オリジンがAmazon S3バケットの場合、バケット名はDNS命名要件に準拠する必要があります。詳細については、「Amazon Simple Storage Service 開発者ガイド」の「バケットの制約と制限」を参照してください。

オリジンの [Origin Domain Name] の値を変更すると、CloudFront エッジロケーションに変更が直ちに複製されます。CloudFront は、該当のエッジロケーションでディストリビューション構成が更新されるまで、リクエストを以前のHTTPサーバーまたはAmazon S3バケットに引き続き転送します。該当のエッジロケーションでディストリビューション構成が更新されると、CloudFrontは新しいHTTPサーバーまたは Amazon S3 バケットへのリクエストの転送を直ちに開始します。

オリジンを変更しても、CloudFront が、新しいオリジンからのオブジェクトでエッジキャッシュを再生成する必要はありません。アプリケーション内でビューアのリクエストが変更されていない限り、各オブジェクトのTTLの有効期限が切れるか、要求頻度の低いオブジェクトが削除されるまで、CloudFrontは、引き続き、エッジキャッシュにすでに保持されているオブジェクトを供給します。

オリジン IDこのディストリビューション内でこのオリジンを他のオリジンから一意に区別する文字列。デフォルトのキャッシュ動作に加えてキャッシュ動作を作成する場合、ここで指定したオリジン ID を使用し、作成したキャッシュ動作のパスパターンにリクエストが一致した場合にリクエストのルーティング先とするオリジンを識別します。詳細については、「キャッシュ動作の設定 (p. 51)」を参照してください。

バケットアクセスの制限(Amazon S3 のみ)Amazon S3 URLではなくCloudFront URL のみを使用して&S3バケット内のオブジェクトにアクセスするようエンドユーザーに要求する場合は、[Yes] をクリックします。次に、適用可能な値を指定します。

エンドユーザーが CloudFront URL または Amazon S3 URL を使用してオブジェクトにアクセスできるようにするには、[No] をクリックします。

詳細については、「オリジンアクセスアイデンティティを使用して Amazon S3 コンテンツへのアクセスを制限する (p. 131)」を参照してください。

オリジンアクセスアイデンティティ(Amazon S3 のみ)[Restrict Bucket Access] で [Yes] を選択した場合、新しいオリジンアクセスアイデンティティを作成するか、AWS アカウントに関連付けられた既存のオリジンアクセスアイデンティティを使用するかを選択します。オリジンアクセスアイデンティティがすでにある場合は、それを再利用し、メンテナンスを簡素化することをお勧めします。オリジンアクセスアイデンティティの詳細については、「オリジンアクセスアイデンティティを使用してAmazonS3コンテンツへのアクセスを制限する(p. 131)」を参照してください。

新しいアイデンティティに関するコメント(AmazonS3のみ)[Origin Access Identity] で [Create a New Identity] を選択した場合、新しいオリジンアクセスアイデンティティを識別するコメントを入力します。このディストリビューションが作成されると、CloudFrontはオリジンアクセスアイデンティティを作成します。

アイデンティティ(Amazon S3 のみ)[Origin Access Identity] で [Use an Existing Identity] を選択した場合、使用するオリジンアクセスアイデンティティを選択します。別のAWSアカウントに関連付けられたオリジンアクセスアイデンティティを使用することはできません。

API Version 2014-01-3149

Amazon CloudFront 開発者ガイドオリジンの設定

Page 55: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

バケットに読み取り許可を付与する(Amazon S3 のみ)CloudFrontで、オリジンアクセスアイデンティティにAmazon S3バケット内のオブジェクトの読み取り許可を自動的に付与するには、[Yes, Update Bucket Policy] をクリックします。

Important

[Yes, Update Bucket Policy] をクリックすると、CloudFront は、指定されたオリジンアクセスアイデンティティにバケット内のオブジェクトの読み取り許可を付与するようにバケットポリシーを更新します。ただし、CloudFrontがバケットポリシー内の既存の許可、または個々のオブジェクトに対する許可を削除することはありません。現在、Amazon S3 URL を使用してバケット内のオブジェクトにアクセスするための許可を持っているユーザーは、CloudFrontがバケットポリシーを更新した後もその許可を依然として持っています。既存のバケットポリシー、およびバケット内のオブジェクトに対する既存の許可を表示または変更するには、AmazonS3から提供される方法を使用します。詳細については、「オリジンアクセスアイデンティティにAmazon S3バケット内のオブジェクトの読み取り許可を付与する (p. 134)」を参照してください。

許可を手動で更新する場合、例えば、バケットの許可を更新する代わりにオブジェクトに対する ACLを更新する場合は、[No, I will Update Permissions] をクリックします。

オリジンプロトコルポリシー(Amazon EC2、ウェブサイトエンドポイントとして構成された Amazon S3 バケット、および他のカスタムオリジンのみ)CloudFrontがオリジンサーバーからオブジェクトをフェッチするときに使用するプロトコルポリシー。適用可能な値を選択します。

• [HTTP Only]: CloudFront は HTTP のみを使用してオリジンにアクセスします。

Important

Amazon S3 バケットをウェブサイトエンドポイントとして構成している場合、[HTTP Only]を指定する必要があります。Amazon S3はこの構成ではHTTPS接続をサポートしていません。

• [Match Viewer]: CloudFront は、ビューアのリクエストのプロトコルに応じて HTTP または HTTPSを使用し、オリジンからオブジェクトをフェッチします。ビューアがHTTPとHTTPSの両方のプロトコルを使用してリクエストを行った場合も、CloudFront がオブジェクトをキャッシュするのは 1回だけです。

Important

CloudFront がこのオリジンに転送する HTTPS ビューアリクエストの場合、オリジンサーバーの SSL 証明書のドメイン名のうち 1 つは、[Origin Domain Name] で指定したドメイン名に一致する必要があります。それ以外の場合、CloudFrontは、ビューアリクエストに対して、リクエストされたオブジェクトではなく、HTTP ステータスコード 502(不正なゲートウェイ)を返します。詳細については、「ビューア、CloudFront、およびオリジン間の通信に対して HTTPS を要求する方法 (p. 179)」を参照してください。

API Version 2014-01-3150

Amazon CloudFront 開発者ガイドオリジンの設定

Page 56: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

HTTPポート(AmazonEC2および他のカスタムオリジンのみ)オプション。カスタムオリジンがリッスンしている HTTP ポート。有効な値には、ポート 80、443、および 1024 ~ 65535 が含まれます。デフォルト値はポート 80 です。

HTTPS ポート(Amazon EC2および他のカスタムオリジンのみ)オプション。カスタムオリジンがリッスンしているHTTPSポート。有効な値には、ポート80、443、および 1024 ~ 65535 が含まれます。デフォルト値はポート 443 です。

キャッシュ動作の設定キャッシュ動作を使用すると、ウェブサイトにあるファイルの特定の URL パスパターンに応じてさまざまなCloudFront 機能を構成できます。例えば、CloudFront のオリジンサーバーとして使用しているウェブサーバーの imagesディレクトリ内にあるすべての .jpgファイルに1つのキャッシュ動作を適用することができます。キャッシュ動作ごとに構成可能な機能として以下が含まれます。

• パスパターン。• CloudFront ディストリビューションに対して複数のオリジンを構成した場合、CloudFront でリクエストをどのオリジンに転送するか。

• クエリ文字列をオリジンに転送するかどうか。• 指定したファイルへのアクセスに署名付き URL を必要とするかどうか。• これらのファイルへのアクセスに HTTPS を使用するようエンドユーザーに要求するかどうか。• オリジンがファイルに追加する Cache-Controlヘッダーの値に関係なく、これらのファイルをCloudFront キャッシュに保持する最小時間。

新しいディストリビューションを作成する場合、デフォルトのキャッシュ動作の設定を指定します。デフォルトのキャッシュ動作では、ディストリビューションの作成時に指定されたオリジンにすべてのリクエストが自動的に転送されます。ディストリビューションを作成した後、追加のキャッシュ動作を作成し、パスパターン(例:*.jpg)に一致するオブジェクトのリクエストを受け取ったときにCloudFrontがどのように応答するかを定義できます。追加のキャッシュ動作を定義した場合、デフォルトのキャッシュ動作は常に最後に処理されます。他のキャッシュ動作は、CloudFront コンソールに表示された順序で処理されるか、CloudFront API が使用されている場合は、ディストリビューションのDistributionConfigエレメントに示された順序で処理されます。詳細については、「パスパターン (p. 51)」を参照してください。

キャッシュ動作を作成する場合、CloudFront がオブジェクトの取得先とする 1 つのオリジンを指定します。結果として、CloudFront がすべてのオリジンからオブジェクトを配信する場合、少なくともオリジンと同じ数のキャッシュ動作(デフォルトのキャッシュ動作を含む)が必要です。例えば、2つのオリジンとデフォルトのキャッシュ動作のみがある場合、デフォルトのキャッシュ動作によって、CloudFront は 1 つのオリジンからオブジェクトを取得します。その他のオリジンは一切使用されません。

ディストリビューションに追加できるキャッシュ動作の数に関する現在の制限については、『AmazonWeb Services General Reference』の「Amazon CloudFrontの上限」を参照してください。制限の引き上げを要求するには、https://aws.amazon.com/support/createCase?type=service_limit_increase&serviceLimitIncreaseType=cloudfront-distributionsを参照してください。

パスパターンパスパターン(例: /images/*.jpg)を使用して、このキャッシュ動作をどのリクエストに割り当てるかを指定します。CloudFront がエンドユーザーリクエストを受け取ると、要求されたパスは、ディ

API Version 2014-01-3151

Amazon CloudFront 開発者ガイドキャッシュ動作の設定

Page 57: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

ストリビューションに含まれるキャッシュ動作の順序でパスパターンと照合されます。最初の一致によって、そのリクエストに適用されるキャッシュ動作が決まります。例えば、以下の3つのパスパターンを持つ 3 つのキャッシュ動作がこの順序で設定されているとします。

• /images/*.jpg

• /images/*

• /*.gif

ファイル /images/sample.gifのリクエストは 1 番目のパスパターンを満たさないため、関連付けられたキャッシュ動作はこのリクエストに適用されません。ファイルは2番目のパスパターンを満たします。リクエストは3番目のパスパターンにも一致しますが、2番目のパスパターンに関連付けられたキャッシュ動作が適用されます。

Note

新しいディストリビューションを作成すると、デフォルトのキャッシュ動作の [Path Pattern]の値が *(すべてのファイル)に設定され、変更することはできません。この値によって、CloudFront は、オブジェクトに対するすべてのリクエストを、オリジンドメイン名 (p. 48)フィールドに指定されたオリジンに転送します。オブジェクトのリクエストが、他のどのキャッシュ動作のパスパターンにも一致しない場合、CloudFrontは、デフォルトのキャッシュ動作に指定された動作を適用します。

Caution

パスパターンとその順序を慎重に定義します。適切に定義されていない場合、コンテンツへの意図されないアクセスがエンドユーザーに与えられる場合があります。例えば、リクエストが、2 つのキャッシュ動作のパスパターンに一致したと仮定します。最初のキャッシュ動作は署名付き URL を要求しませんが、2 番目のキャッシュ動作は署名付き URL を要求します。エンドユーザーは署名付き URL を使用せずにオブジェクトにアクセスできます。これは、CloudFront が、最初の一致に関連付けられたキャッシュ動作を処理するためです。

指定されたパスは、指定されたディレクトリ内のあらゆるファイル、および指定されたディレクトリ以下のサブディレクトリ内のあらゆるファイルのリクエストに適用されます。CloudFront はパスパターンを評価する際にクエリ文字列やCookieを考慮しません。例えば、/imagesディレクトリにproduct1および product2サブディレクトリが含まれる場合、パスパターン /images/*.jpgは、/images、/images/product1、および/images/product2ディレクトリ内のあらゆる.jpgファイルのリクエストに適用されます。異なるキャッシュ動作を、/imagesおよび /images/product2ディレクトリのファイルではなく /images/product1ディレクトリのファイルに割り当てる場合、/images/product1用の独立したキャッシュ動作を作成し、そのキャッシュ動作を/imagesディレクトリ用のキャッシュ動作の上(前)の位置に移動します。

パスパターンには、以下のワイルドカード文字を使用できます。

• *は、0 個以上の文字に一致します。• ?は、正確に 1 個の文字に一致します。

以下の例を使用して、ワイルドカード文字がどのように機能するかを示します。

パスパターンに一致するファイルパスパターン

すべての .jpg ファイル。/*.jpg

/imagesディレクトリ内、および/imagesディレクトリ下のサブディレクトリ内のすべての .jpg ファイル。

/images/*.jpg

API Version 2014-01-3152

Amazon CloudFront 開発者ガイドキャッシュ動作の設定

Page 58: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

パスパターンに一致するファイルパスパターン

• ファイル名が aで始まるすべての .jpg ファイル(例: apple.jpg、appalachian_trail_2012_05_21.jpg)。

• ファイルパスが aで始まるすべての .jpg ファイル(例:/abra/cadabra/magic.jpg)。

/a*.jpg

ファイル名が aで始まり、ファイル名の後に正確に他の 2 文字が続くすべての.jpg ファイル(例: ant.jpg、abe.jpg)。

/a??.jpg

ファイル名拡張子が.docで始まるすべてのファイル(例:.doc、.docx、.docmファイル)。この場合、パスパターン*.doc?を使用することはできません。このパスパターンは .docファイルのリクエストに適用されないためです。?ワイルドカード文字は正確に 1 個の文字を置き換えるものです。

/*.doc*

パスパターンの最大長は 255 文字です。値には以下の文字を含めることができます。

• A ~ Z、a ~ z

パスパターンでは大文字と小文字が区別されるので、パスパターン /*.jpgはファイル /LOGO.JPGには適用されません。

• 0-9• _ - . * $ / ~ " ' @ : +• &。&amp;として受け渡しされます

オリジン(既存のディストリビューションのみ)既存のオリジンの [Origin ID] の値を入力します。これは、リクエスト(http://example.com/logo.jpg など)がキャッシュ動作(*.jpg)またはデフォルトキャッシュ動作(*)のパスパターンに一致するときに、CloudFront にリクエストをルーティングさせる宛先となるオリジンです。

ビューアプロトコルポリシーCloudFront エッジロケーションのコンテンツへのアクセスに使用するビューアのプロトコルポリシーを選択します。

• [HTTP and HTTPS]: ビューアは両方のプロトコルを使用できます。• [Redirect HTTP to HTTPS]: ビューアは両方のプロトコルを使用できますが、HTTP リクエストは自動的に HTTPS リクエストにリダイレクトされます。

• [HTTPS Only]: ビューアは、HTTPS を使用している場合にのみ、コンテンツにアクセスできます。

詳細については、「HTTPS接続を使用したオブジェクトへのアクセス(p. 178)」を参照してください。

許可される HTTP メソッドCloudFront が処理してオリジンに転送する HTTP メソッドを指定します。

• GET、HEAD:オリジンからのオブジェクトの取得またはオブジェクトヘッダーの取得は、CloudFrontを使用した場合のみ可能です。

• GET、HEAD、PUT、POST、PATCH、DELETE、OPTIONS:CloudFrontを使用してオブジェクトの取得、追加、更新、削除、オブジェクトヘッダーの取得を行えます。また、ウェブフォームからのデータの送信など、その他の POST 操作も実行できます。

API Version 2014-01-3153

Amazon CloudFront 開発者ガイドキャッシュ動作の設定

Page 59: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

Note

CloudFront は GETリクエストと HEADリクエストへのレスポンスをキャッシュします。CloudFront はその他のメソッドを使用するリクエストへのレスポンスをキャッシュしません。

Caution

GET、HEAD、PUT、POST、PATCH、DELETE、OPTIONS を選択する場合は、すべきでない操作をユーザーが実行できないようにするために、AmazonS3バケットまたはカスタムオリジンへのアクセスを制限することが必要になる場合があります。

• AmazonS3をディストリビューションのオリジンとして使用している場合:AmazonS3コンテンツへのアクセスを制限するCloudFrontオリジンアクセスアイデンティティを作成して、そのオリジンアクセスアイデンティティに適切な許可を付与します。例えば、PUTを使用したいというだけの理由で、上記のメソッドを受け入れて転送するように CloudFront を構成するという場合は、Amazon S3 バケットのポリシーまたは ACL を DELETEリクエストを適切に処理するように引き続き構成する必要があります。詳細については、「オリジンアクセスアイデンティティを使用してAmazonS3コンテンツへのアクセスを制限する(p. 131)」を参照してください。

• カスタムオリジンを使用している場合:すべてのメソッドを処理するようにオリジンサーバーを構成します。例えば、POSTを使用したいというだけの理由で、上記のメソッドを受け入れて転送するように CloudFront を構成するという場合は、オリジンサーバーを DELETEリクエストを適切に処理するように引き続き構成する必要があります。

オブジェクトキャッシュオリジンサーバーで Cache-Controlヘッダーをオブジェクトに追加することで、オブジェクトをCloudFront キャッシュに保持する時間を制御する場合、[Use Origin Cache Headers] を選択します。

Cache-Controlヘッダーに関係なく、オブジェクトを CloudFront キャッシュに保持する最小時間を指定するには、[Customize]を選択します。次に、オブジェクトをCloudFrontキャッシュに保持する最小秒数を[MinimumTTL]フィールドに指定します。Cache-Controlヘッダーにこれより低い値が指定されている場合でもこのフィールドの値が適用されます。

最小 TTLオブジェクトが更新されたかどうかを CloudFront がオリジンに照会するまでに、オブジェクトをCloudFront キャッシュに保持する最小時間(秒)を指定します。詳細については、「CloudFront エッジキャッシュにオブジェクトを保持する時間の指定(有効期限切れ) (p. 90)」を参照してください。

Cookie の転送(Amazon EC2および他のカスタムオリジンのみ)CloudFrontからオリジンサーバーにCookieを転送するかどうかと、転送する場合にどれを転送するかを指定します。選択されたCookie(Cookieのホワイトリスト)のみを転送するように選択した場合、Cookie名を [Whitelist Cookies]フィールドに入力します。[All]を選択した場合、アプリケーションで使用されている Cookie の数に関係なく、CloudFront はすべての Cookie を転送します。

API Version 2014-01-3154

Amazon CloudFront 開発者ガイドキャッシュ動作の設定

Page 60: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

Amazon S3 は、Cookie を処理しません。オリジンに Cookie を転送するとキャッシュ可能性が低下します。リクエストを Amazon S3 オリジンに転送するキャッシュ動作の場合、[Forward Cookies] で[None] を選択します。

オリジンへの Cookie の転送の詳細については、「CloudFront が Cookie の転送、キャッシュ、およびログ作成を行う方法 (p. 86)」を参照してください。

ホワイトリスト Cookie (Amazon EC2および他のカスタムオリジンのみ)[Forward Cookies] リストで [Whitelist] を選択した場合、このキャッシュ動作に応じてCloudFront がオリジンサーバーに転送するCookieの名前を [Whitelist Cookies] フィールドに入力します。各Cookie名を新しい行に入力します。

キャッシュ動作ごとにホワイトリストに登録できる Cookie 名の数に関する現在の制限については、『AmazonWeb Services General Reference』の「Amazon CloudFront の上限」を参照してください。制限の引き上げを要求するには、https://aws.amazon.com/support/createCase?type=service_limit_increase&serviceLimitIncreaseType=cloudfront-distributionsを参照してください。

転送クエリ文字列オリジンサーバーが URL 内のクエリ文字列に基づいてオブジェクトの別のバージョンを返す場合、[Yes] をクリックします。オリジンがクエリ文字列に関係なくオブジェクトの同じバージョンを返す場合、[No] をクリックします。これにより、CloudFront がキャッシュからリクエストを処理できる可能性が高くなり、パフォーマンスが向上し、オリジンの負荷が低下します。クエリ文字列の詳細については、「CloudFrontがクエリ文字列パラメータの転送、キャッシュ、およびログ作成を行う方法(p. 84)」を参照してください。

スムーズストリーミングこのキャッシュ動作に関連付けられたオリジンを使用して Microsoft スムーズストリーミング形式のメディアファイルを配信する場合、[Yes] をクリックします。それ以外の場合、[No] をクリックします。

Note

[Yes] を指定した場合でも、コンテンツが [Path Pattern] の値と一致すれば、このキャッシュ動作を使用してそのほかのコンテンツを配信できます。

詳細については、「オンデマンドスムーズストリーミングの構成 (p. 65)」を参照してください。

ビューアのアクセス制限(署名付き URL の使用)このキャッシュ動作の PathPatternに一致するオブジェクトのリクエストでパブリック URL を使用する場合、[No] をクリックします。

このキャッシュ動作の PathPatternに一致するオブジェクトのリクエストで署名付き URL を使用する場合、[Yes] をクリックします。次に、署名付きURLの作成に使用するAWSアカウントを指定します。このアカウントは信頼された署名者として知られています。

信頼された署名者の詳細については、「署名付き URL (信頼された署名者)の作成が可能な AWS アカウントの指定 (p. 137)」を参照してください。

信頼された署名者このキャッシュ動作の信頼された署名者として使用する AWS アカウントを選択します。

API Version 2014-01-3155

Amazon CloudFront 開発者ガイドキャッシュ動作の設定

Page 61: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

• Self: 信頼されたアカウントとして AWS Management Console へのサインインに現在使用しているアカウントを使用します。現在、IAM ユーザーとしてサインインしている場合は、関連付けられたAWS アカウントを、信頼された署名者として追加します。

• Specify Accounts: 信頼された署名者のアカウント番号を [AWS Account Numbers] フィールドに入力します。

署名付き URL を作成するには、AWS アカウント番号に少なくとも 1 つのアクティブな CloudFrontキーペアが必要です。

Caution

コンテンツの配信ですでに使用されているディストリビューションを更新する場合は、オブジェクトの署名付き URL の生成を開始する準備ができたときにのみ、信頼された署名者を追加します。信頼された署名者がディストリビューションに追加されると、ユーザーは、このキャッシュ動作の PathPatternに一致するオブジェクトへのアクセスに、署名付き URL を使用する必要があります。

AWS アカウント番号現在のアカウントに加えて、または現在のアカウントの代わりに、AWS アカウントを使用して署名付き URL を作成する場合、このフィールドの行ごとに 1 つの AWS アカウント番号を入力します。次の点に注意してください。

• 指定するアカウントに少なくとも 1 つのアクティブな CloudFront キーペアが必要です。詳細については、「信頼された署名者の CloudFront キーペアを作成する (p. 138)」を参照してください。

• IAMユーザーのCloudFront キーペアを作成できないため、信頼された署名者として IAMユーザーを使用することはできません。

• アカウントの AWS アカウント番号を取得する方法については、「Amazon Web Services GeneralReference」の「How Do I Get Security Credentials?」を参照してください。

• 現在のアカウントのアカウント番号を入力した場合、CloudFrontは、自動的に[Self]チェックボックスをオンにして、[AWS Account Numbers] リストからアカウント番号を削除します。

ディストリビューションの詳細以下の値はディストリビューション全体に適用されます。

価格クラスCloudFrontサービスに支払う上限価格に対応する価格クラスを選択します。デフォルトでは、CloudFrontは、すべての CloudFront リージョンのエッジロケーションからオブジェクトを供給します。

価格クラスの詳細、および選択した価格クラスがディストリビューションの CloudFront パフォーマンスに与える影響の詳細については、「CloudFront ディストリビューションの価格クラスを選択する(p. 37)」を参照してください。価格クラスとCloudFrontリージョンのマッピングを含め、CloudFront料金表の詳細については、「Amazon CloudFront 料金表」を参照してください。

代替ドメイン名(CNAME)オプション。ディストリビューションを作成するときにCloudFrontが割り当てるドメイン名ではなく、オブジェクトの URL に使用する 1 つ以上のドメイン名を指定します。例えば、次のオブジェクトのURL があります。

/images/image.jpg

API Version 2014-01-3156

Amazon CloudFront 開発者ガイドディストリビューションの詳細

Page 62: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

この URL を次のように表示します。

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

次のようには指定しません。

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

この場合、www.example.comの CNAME を追加します。

Important

www.example.comの CNAME をディストリビューションに追加する場合、DNS サービスを使用して CNAME レコードを作成(または更新)し、www.example.comのクエリをd111111abcdef8.cloudfront.netにルーティングする必要もあります。ドメインの DNSサービスプロバイダーのあるCNAMEレコードを作成する許可が必要です。通常、これはドメインを所有していることを指しますが、ドメイン所有者向けにアプリケーションを開発している場合にも当てはまります。

ディストリビューションに追加できる代替ドメイン名の数に関する現在の制限については、『AmazonWeb Services General Reference』の「Amazon CloudFrontの上限」を参照してください。制限の引き上げを要求するには、https://aws.amazon.com/support/createCase?type=service_limit_increase&serviceLimitIncreaseType=cloudfront-distributionsを参照してください。

代替ドメイン名の詳細については、「代替ドメイン名(CNAME)を使用する (p. 33)」を参照してください。CloudFront URL の詳細については、「CloudFront オブジェクトの URL の形式 (p. 81)」を参照してください。

SSL 証明書ビューアがオブジェクトへのアクセスにHTTPSを使用する場合、該当するSSL証明書を選択します。

• デフォルトのCloudFront 証明書(*.cloudfront.net): オブジェクトのURL 内で CloudFront ドメイン名を使用する場合(例: https://d111111abcdef8.cloudfront.net/image1.jpg)、このオプションを選択します。また、ビューアが HTTP を使用してオブジェクトにアクセスする場合も、このオプションを選択します。

• IAM証明書ストア内の証明書の名前:オブジェクトのURL内で独自のドメイン名を使用する場合(例:https://example.com/image1.jpg)、IAM 証明書ストアに以前アップロードした適用可能な証明書を選択します。詳細については、「代替ドメイン名とHTTPSの使用(p. 181)」を参照してください。

この設定を選択した場合、オブジェクト URL でのみ代替ドメイン名を使用することをお勧めします(https://example.com/logo.jpg)。CloudFront のディストリビューションドメイン名(https://d111111abcdef8.cloudfront.net/logo.jpg)を使用した場合、ビューアがSNIをサポートしていると、CloudFrontは正常に動作します。しかし、ビューアがSNIをサポートしていないと、[ClientsSupported] の値に応じてビューアは次のいずれかの動作を示します。• [All Clients]: ビューアが SNI をサポートしていない場合、CloudFront ドメイン名が SSL 証明書のドメイン名と一致しないため、警告が表示されます。

• [Only Clients that Support Server Name Indication (SNI)]: CloudFront はオブジェクトを返さないでビューアとの接続を中断します。

API Version 2014-01-3157

Amazon CloudFront 開発者ガイドディストリビューションの詳細

Page 63: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

Clients Supported(サポートされるクライアント)代替ドメイン名を指定し、IAM 証明書ストア内の SSL 証明書を指定した場合、CloudFront が HTTPSリクエストを処理する方法を、すべてのクライアントで動作する方法にするか、それともほとんどのクライアントで動作する方法にするかを選択します。

• [All Clients]: どのクライアントもコンテンツにアクセスできます。ただし、この機能を使用するには許可を得る必要があり、追加の月額料金が発生します。

• [Only Clients that Support Server Name Indication (SNI)]: 最新のブラウザはすべて SNI をサポートするため、コンテンツにアクセスできます。しかし、まだ使用されている一部のブラウザは SNI をサポートしていません。このようなブラウザのユーザーは、他の方法を使用して、たとえばオリジンからオブジェクトを直接取得することで、コンテンツにアクセスする必要があります。

詳細については、「代替ドメイン名と HTTPS の使用 (p. 181)」を参照してください。

デフォルトのルートオブジェクトオプション。ビューアがディストリビューション内のオブジェクト(http://www.example.com/product-description.html)ではなくディストリビューションのルート URL (http://www.example.com/)を要求するときに、CloudFront が要求する、オリジンからのオブジェクト(index.htmlなど)。デフォルトのルートオブジェクトを指定すると、ディストリビューションのコンテンツが公開されなくなります。

名前の最大長は 255 文字です。名前には以下の文字を含めることができます。

• A ~ Z、a ~ z• 0-9• _ - . * $ / ~ " '• &。&amp;として受け渡しされます

デフォルトのルートオブジェクトを指定する場合、オブジェクト名のみを指定します(例:index.html)。オブジェクト名の前に /を追加しないでください。

詳細については、「デフォルトルートオブジェクトの指定(ウェブディストリビューションのみ) (p. 104)」を参照してください。

ログ作成CloudFront がオブジェクトに対する各リクエストの情報をログに記録し、ログファイルを Amazon S3バケットに保存するかどうか。ログ作成はいつでも有効または無効にできます。ログ作成を有効にしても追加料金はかかりませんが、Amazon S3 バケットへのファイルの保存と Amazon S3 バケット内のファイルへのアクセスについては通常の Amazon S3 料金が発生します。ログの削除はいつでも行うことができます。CloudFrontアクセスログの詳細については、「アクセスログ(p. 194)」を参照してください。

ログ用のバケット[Logging] で [On] を選択した場合に、CloudFront がアクセスログを保存するAmazon S3バケット(例:myawslogbucket.s3.amazonaws.com)。ログ作成を有効にした場合、CloudFront はオブジェクトに対する各エンドユーザーリクエストの情報を記録し、ファイルを、指定された Amazon S3 バケットに保存します。ログ作成はいつでも有効または無効にできます。CloudFront アクセスログの詳細については、「アクセスログ (p. 194)」を参照してください。

API Version 2014-01-3158

Amazon CloudFront 開発者ガイドディストリビューションの詳細

Page 64: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

ログのプレフィックスオプション。[Logging] で [On] を選択した場合、このディストリビューションのアクセスログファイル名の先頭に CloudFront が追加する文字列(ある場合)を指定します(例: exampleprefix/)。末尾のスラッシュ(/)はオプションですが、ログファイルの参照を容易にするためにこれを使用することをお勧めします。CloudFrontアクセスログの詳細については、「アクセスログ(p. 194)」を参照してください。

Cookie のログ作成CloudFront で Cookie をアクセスログに含めるようにするには、[On] を選択します。Cookie をログに含めるように選択した場合、CloudFrontはすべてのCookieをログに記録します。このディストリビューションのキャッシュ動作がどのように構成されているか(オリジンにすべての Cookie を転送するか、Cookie を転送しないか、指定された一連の Coolie を転送するか)は関係ありません。

Amazon S3 は Cookie を処理しません。したがって、ディストリビューションに Amazon EC2 または他のカスタムオリジンも含まれていない限り、[Cookie Logging] の値に [Off] を選択することをお勧めします。

Cookie の詳細については、「CloudFront が Cookie の転送、キャッシュ、およびログ作成を行う方法 (p. 86)」を参照してください。

コメントオプション。ディストリビューションを作成するときに、最大で 128 文字のコメントを含めることができます。コメントの更新はいつでも行うことができます。

ディストリビューションの状態ディストリビューションがデプロイされた後にディストリビューションを有効または無効のどちらにするかを示します。

• Enabled: ディストリビューションが完全にデプロイされた後、ディストリビューションのドメイン名を使用するリンクをデプロイでき、エンドユーザーがコンテンツを取り込むことができます。ディストリビューションを有効(Enabled)にすると、CloudFrontは、そのディストリビューションに関連付けられたドメイン名を使用するコンテンツへのエンドユーザーすべてのリクエストを受け付けて処理します。

CloudFront ディストリビューションの作成、変更、削除を行った場合、その変更がCloudFront データベースに伝達されるまで時間がかかります。変更直後に出したディストリビューションに関する情報のリクエストには、変更が反映されていない可能性があります。通常、伝達は数分以内で完了しますが、システムの高負荷またはネットワークパーティションによっては、それより時間がかかる可能性があります。

• Disabled: ディストリビューションがデプロイされ、その使用準備ができていても、エンドユーザーはディストリビューションを使用できません。ディストリビューションを無効にするときはいつでも、そのディストリビューションに関連付けられたドメイン名を使用するコンテンツへのエンドユーザーリクエストを CloudFront は受け付けません。(ディストリビューションの構成を更新することで)ディストリビューションを無効から有効に切り替えるまで、誰もディストリビューションを使用できません。

ディストリビューションの無効と有効は何度でも切り替えることができます。ディストリビューションの構成を更新するプロセスに従います。詳細については、「CloudFront ディストリビューションの一覧表示、詳細表示、および更新を行う (p. 31)」を参照してください。

API Version 2014-01-3159

Amazon CloudFront 開発者ガイドディストリビューションの詳細

Page 65: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

Custom Error Pages(カスタムエラーページ)とError Caching(エラーキャッシュ)Amazon S3またはカスタムオリジンがHTTP 4xx または 5xxステータスコードをCloudFront に返す場合、CloudFront にオブジェクトをビューアーに返させることができます(例: HTMLファイル)。オリジンまたはカスタムエラーページからのエラーレスポンスを CloudFront エッジキャッシュにキャッシングする時間を指定することもできます。詳細については、「エラーレスポンスのカスタマイズ(p.99)」を参照してください。

Note

以下の値は[CreateDistribution]ウィザードに含まれていないため、ディストリビューションを更新するときにのみ、カスタムエラーページを構成することができます。

Error Code(エラーコード)CloudFront から対応するカスタムエラーページが返されるようにする HTTP ステータスコード。CloudFrontがキャッシュするHTTPステータスコードの全部または一部に対応するカスタムエラーページを返すように、または全く返さないように、CloudFront を構成できます。

Response Page Path(レスポンスページのパス)オリジンがError Codeに指定されたHTTPステータスコード(例: 403)を返すときに、CloudFront がビューアに返すカスタムエラーページのパス(例:/4xx-errors/403-forbidden.html)。オブジェクトとカスタムエラーページを別の場所に保存する場合は、次の状況に該当するときに適用されるキャッシュ動作をディストリビューションに組み込む必要があります。

• Path Pattern の値が、カスタムエラーメッセージのパスと一致する。例えば、4xx エラーのカスタムエラーページを /4xx-errorsというディレクトリーの Amazon S3 バケットに保存したとします。このとき、パスパターンによってカスタムエラーページのリクエストがルーティングされる場所のキャッシュ動作を、ディストリビューションに組み込む必要があります(例: /4xx-errors/*)。

• Origin の値が、カスタムエラーページを含むオリジンの Origin ID の値を指定している。

Response Code(レスポンスコード)CloudFront からカスタムエラーページとともにビューアに返す HTTP ステータスコード。

Error Caching Minimum TTL(エラーキャッシュ最小 TTL)CloudFront がオリジンサーバーからのエラーレスポンスをキャッシュする最小時間。

制限特定の国のユーザーをコンテンツにアクセスできなくする必要がある場合、CloudFront ディストリビューションを構成して、ホワイトリストに指定した国のユーザーだけにコンテンツへのアクセスを許可したり、またはブラックリストに指定した国のユーザーにはコンテンツへのアクセスを許可しないようにしたりできます。詳細については、「コンテンツの地理的ディストリビューションの制限(p. 63)」を参照してください。

Note

以下の値は[CreateDistribution]ウィザードに含まれていないため、ディストリビューションを更新するときにのみ、地域制限を構成できます。

API Version 2014-01-3160

Amazon CloudFront 開発者ガイドCustom Error Pages(カスタムエラーページ)と Error

Caching(エラーキャッシュ)

Page 66: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

Enable Geo Restriction(地域制限の有効化)特定の国のユーザーをコンテンツにアクセスできなくするかどうか。地域制限の構成に追加料金は発生しません。

Restriction Type(制限タイプ)どの国のユーザーがコンテンツにアクセスできるかを指定する方法。

• ホワイトリスト:Countriesリストには、その国のユーザーはコンテンツにアクセスできると指定するすべての国が含まれます。

• ブラックリスト: [Countries] リストには、その国のユーザーはコンテンツにアクセスできないと指定するすべての国が含まれます。

Countries(国)ホワイトリストまたはブラックリストに追加する国。国を追加するには、左のリストで国を選択して、[Add] をクリックします。次の点に注意してください。

• 連続する複数の国を追加するには、最初の国を選択し、Shiftキーを押したまま最後の国を選択して、[Add] をクリックします。

• 連続しない複数の国を追加するには、最初の国を選択肢、Ctrl キーを押したまま残りの国を選択して、[Add] をクリックします。

• 左のリストで国を見つけるには、国のフルネームの最初の2、3文字を入力します。• 各国名の前の 2 文字のコードは、CloudFront API を使用してディストリビューションを作成または更新する場合に入力する値です。国際標準化機構の国コードが使用されています。コード順、国順に並べ替えることのできる使いやすい一覧については、Wikipedia の ISO 3166-1 alpha-2 の項目を参照してください。

ウェブディストリビューションを作成または更新する場合にCloudFrontがコンソールに表示する値

新しいウェブディストリビューションの作成や、既存のディストリビューションの更新を行う場合、CloudFront は以下の情報を CloudFront コンソールに表示します。

Note

有効な信頼済み署名者、つまり有効なCloudFrontキーペアを持つAWSアカウントのうち有効な署名付き URL の作成に使用できる AWS アカウントは、CloudFront コンソールに現在表示されません。

ディストリビューション ID ([General] タブ)CloudFront API を使用してディストリビューションに対するアクションを実行する場合、ディストリビューション ID を使用して、どのディストリビューションに対してアクションを実行するかを指定します(例: EDFDVBD6EXAMPLE)。ディストリビューション ID を変更することはできません。

API Version 2014-01-3161

Amazon CloudFront 開発者ガイドウェブディストリビューションを作成または更新する場合

に CloudFront がコンソールに表示する値

Page 67: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

ディストリビューションのステータス([General] タブ)ディストリビューションのステータス値として考えられるものを次の表に示します。

説明値

ディストリビューションは依然として作成中または更新中です。InProgress

ディストリビューションの作成または更新が完了し、変更が CloudFront システム全体に完全に伝達されました。

Deployed

Note

エンドユーザーが CloudFront を使用してコンテンツにアクセスできるようにするには、ディストリビューションのステータスが[Deployed]であることを確認するのに加えて、ディストリビューションを有効にする必要があります。詳細については、「ディストリビューションの状態 (p. 59)」を参照してください。

最終更新日時([General] タブ)ディストリビューションが最後に変更された日時。ISO 8601 形式が使用されます(例:2012-05-19T19:37:58Z)。詳細については、http://www.w3.org/TR/NOTE-datetime を参照してください。

ドメイン名([General] タブ)オブジェクトへのリンク内で、ディストリビューションのドメイン名を使用します。例えば、ディストリビューションのドメイン名が d111111abcdef8.cloudfront.netの場合、/images/image.jpgへのリンクは http://d111111abcdef8.cloudfront.net/images/image.jpgになります。ディストリビューションの CloudFront ドメイン名を変更することはできません。オブジェクトへのリンクの CloudFront URL の詳細については、「CloudFront オブジェクトの URL の形式 (p. 81)」を参照してください。

1 つ以上の代替ドメイン名(CNAME)を指定した場合、オブジェクトへのリンクに、CloudFront ドメイン名ではなく独自のドメイン名を使用できます。CNAME の詳細については、「代替ドメイン名(CNAME) (p. 56)」を参照してください。

Note

CloudFrontドメイン名は一意です。ディストリビューションのドメイン名は以前のディストリビューションで使用されておらず、今後の別のディストリビューションでも再利用されません。

API Version 2014-01-3162

Amazon CloudFront 開発者ガイドディストリビューションのステータス([General] タブ)

Page 68: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

Amazon EC2 と他のカスタムオリジンの使用に関する要件および推奨事項

Abstract

Amazon EC2 インスタンスおよび他のカスタムオリジンを CloudFront と共に使用する際は、ここで説明した推奨事項と要件に従います。

Amazon EC2 インスタンスおよび他のカスタムオリジンを CloudFront とともに使用するには、次のガイドラインに従います。

• すべてのサーバーで同じコンテンツをホストし、供給します。• すべてのサーバーで X-Amz-Cf-Idヘッダーエントリをログに記録します。CloudFront はデバッグのためにこの情報を必要とします。

• カスタムオリジンがリッスンしているHTTPおよびHTTPSポートへのアクセスリクエストを制限します。

• 実装内のすべてのサーバーの時計を同期します。• 冗長サーバーを使用して障害に対処します。• リクエストとレスポンス動作、およびサポートされる HTTP ステータスコードについては、「リクエストとレスポンスの動作 (p. 110)」を参照してください。

カスタムオリジンで Amazon Elastic Compute Cloud を使用する場合は、以下の点に従うことをお勧めします。

1. ウェブサーバーのソフトウェアを自動的にインストールする Amazon マシンイメージを使用します。詳細については、Amazon EC2 に関するドキュメントを参照してください。

2. Elastic Load Balancing ロードバランサーを使用して、複数のAmazon EC2 インスタンスにわたるトラフィックを処理するほかに、Amazon EC2 インスタンスの変更からアプリケーションを隔離します。例えば、ロードバランサーを使用する場合、アプリケーションを変更せずにAmazonEC2インスタンスの追加と削除ができます。詳細については、Elastic Load Balancing に関するドキュメントを参照してください。

3. CloudFront ディストリビューションを作成する場合は、オリジンサーバーのドメイン名にロードバランサーのURLを指定します。詳細については、「ウェブディストリビューションの使用(p.41)」を参照してください。

コンテンツの地理的ディストリビューションの制限

エンドユーザーがコンテンツをリクエストすると、通常 CloudFront はユーザーがいる場所に関係なくリクエストされたコンテンツを供給します。特定の国のユーザーをお客様のコンテンツにアクセスできなくする必要がある場合、CloudFront ウェブディストリビューションを構成して次のいずれかに設定することができます。

• ホワイトリストに指定された国のユーザーだけにコンテンツのアクセスを許可します。• ブラックリストに指定された国のユーザーがコンテンツにアクセスできないようにします。

例えば、お客様のコンテンツを配信することが著作権上の理由で許可されていない国からリクエストが届いた場合、そのリクエストをブロックすることができます。これを地域制限または地理的ブロッキングと呼びます。

API Version 2014-01-3163

Amazon CloudFront 開発者ガイドAmazon EC2と他のカスタムオリジンの使用に関する要件

および推奨事項

Page 69: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

Note

CloudFront は、サードパーティーの GeoIP データベースを使用して、ユーザーがいる場所を判別します。IPアドレスと国とのマッピングの正確さは、リージョンによって異なります。最近のテストによれば、AWS での全体的な正確性は 99.8% です。

地域制限は次のような仕組みになっています。

1. 仮に、自分のコンテンツをリヒテンシュタイン王国でのみ配信する権限を持っているとしましょう。自分のCloudFront ウェブディストリビューションを更新して、リヒテンシュタイン王国のみを含むホワイトリストを追加します。(または、リヒテンシュタイン王国以外のすべての国を含むブラックリストを追加することもできます。)

2. モナコ王国に住むユーザーがお客様のコンテンツをリクエストすると、DNS はそのリクエストをイタリア、ミラノにある CloudFront エッジロケーションにルーティングします。

3. ミラノのエッジロケーションはお客さまのディストリビューションを検索し、モナコ王国のユーザーはコンテンツをダウンロードすることは許可されていないと判断します。

4. CloudFront はユーザーに HTTP ステータスコード 403(Forbidden)を返します。

オプションで、ユーザーにカスタムエラーメッセージを返すよう CloudFront を構成することができますし、リクエストされたオブジェクトのエラーレスポンスを CloudFront がキャッシュする時間を指定することもできます(デフォルト値は 5 分)。詳細については、「エラーレスポンスのカスタマイズ (p. 99)」を参照してください。

地域制限はディストリビューション全体に適用されます。ある一部のコンテンツに特定の制限を適用し、別の部分のコンテンツに別の制限を適用する(または制限を適用しない)必要がある場合は、別々の CloudFront ウェブディストリビューションを作成する必要があります。

CloudFront アクセスログの作成を有効にすれば、CloudFront が HTTPステータスコード 403 を出して拒否したリクエストを識別することができます。しかし、アクセスログだけでは、ユーザーのいる場所に基づいてCloudFrontが拒否したリクエストと、別の理由でオブジェクトへのアクセス許可がユーザーになかったために CloudFront が拒否したリクエストとを区別することができません。Digital ElementやMaxMindなどの地理位置情報サービスを利用していれば、アクセスログのc-ip(クライアントIP)列にある IP アドレスに基づいてリクエストの場所を識別できます。CloudFront アクセスログの詳細については、「アクセスログ (p. 194)」を参照してください。

Note

国境に従わない地理的リージョンでコンテンツの配信を制限する必要がある場合、個別のファイルの配信を制限したい場合、地域制限をアプリケーションに組み込みたい場合は、CloudFrontをサードパーティー製のサービスと組み合わせることができます。詳細については、チュートリアルの「CloudFrontディストリビューション内のファイルへのアクセスを地理的場所に基づいて制限する(地理的ブロッキング) (p. 258)」を参照してください。

以下の手順では、CloudFront コンソールを使用して、地域制限を既存のウェブディストリビューションに追加する方法を説明します。コンソールを使用してウェブディストリビューションを作成する方法の詳細については、「ウェブディストリビューションの使用 (p. 41)」を参照してください。

CloudFront コンソールを使用して、地域制限を CloudFront ウェブディストリビューションに追加するには

1. AWS マネジメントコンソールにサインインし、Amazon CloudFront コンソール(https://console.aws.amazon.com/cloudfront/)を開きます。

2. CloudFront コンソールの上部ペインで、更新するディストリビューションを選択します。

API Version 2014-01-3164

Amazon CloudFront 開発者ガイドコンテンツの地理的ディストリビューションの制限

Page 70: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

Note

上部のペインには、CloudFront コンソールへのサインイン時に使用されたAWSアカウントに関連付けられたすべてのディストリビューションの一覧が表示されます。

3. [Distribution Settings] ペインで、[Restrictions] タブをクリックします。 tab.4. [Edit] をクリックします。5. 適切な値を入力します。詳細については、「制限 (p. 60)」を参照してください。6. [Yes, Edit] をクリックします。

オンデマンドスムーズストリーミングの構成CloudFront を使用して、Microsoft スムーズストリーミング形式に変換したメディアファイルのオンデマンドストリーミングを実行できます。スムーズストリーミングコンテンツをオンデマンドで配信するには、2 種類の方法があります。

• ディストリビューションのオリジンとして、Microsoft スムーズストリーミング形式に変換したファイルをストリーミングできるウェブサーバーを指定します。

• CloudFront ディストリビューションでスムーズストリーミングを有効にします。スムーズストリーミングはキャッシュ動作のプロパティです。つまり、1つのディストリビューションで、他のコンテンツに加えてスムーズストリーミングメディアファイルも配信できます。

スムーズストリーミングを有効にする場合は、以下に注意してください。

• 他のコンテンツがキャッシュ動作の [Path Pattern] の値と一致した場合、同じキャッシュ動作を使用して、そのコンテンツも配信できます。

• CloudFrontは、スムーズストリーミングメディアファイルでAmazon S3バケットまたはカスタムオリジンを使用できます。ただし、サーバーがスムーズストリーミング用に構成されている場合、CloudFront でオリジンとして Microsoft IIS Server を使用することはできません。

• スムーズストリーミング形式のメディアファイルを無効にすることはできません。有効期限が切れる前にファイルを更新する場合は、ファイルの名前を変更する必要があります。詳細については、「ディストリビューション内のオブジェクトの追加、削除、または置換 (p. 88)」を参照してください。

スムーズストリーミングクライアントについては、Microsoft ウェブサイトの「Smooth StreamingPrimer」を参照してください。

CloudFront を使用して、スムーズストリーミング形式でファイルをストリーミングできるウェブサーバーを使用しないで、Microsoft スムーズストリーミング形式でエンコードされたメディアファイルのストリーミングを行うには、以下の作業を実行します。

1. スムーズストリーミングでフラグメント化された MP4 形式にメディアファイルを変換します。スムーズストリーミング形式に変換できるアプリケーションの一覧については、Microsoft ウェブサイトの「Smooth Streaming Primer」を参照してください。

2. 次のいずれかを行ってください。

• CloudFront コンソールを使用している場合:デフォルトのキャッシュ動作、または、既存のウェブディストリビューションのカスタムキャッシュ動作を更新して、スムーズストリーミングを有効にします(ディストリビューションの作成時にスムーズストリーミングを構成することはできません。そのため既存のディストリビューションを更新する必要があります)。コンソールを使用してディストリビューションを更新する方法については、「CloudFrontディストリビューションの一覧表示、詳細表示、および更新を行う (p. 31)」を参照してください。

API Version 2014-01-3165

Amazon CloudFront 開発者ガイドオンデマンドスムーズストリーミングの構成

Page 71: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

• CloudFront API を使用している場合: デフォルトのキャッシュ動作またはカスタムキャッシュ動作の DistributionConfig複合型に SmoothStreamingエレメントを追加します。

3. スムーズストリーミングプレゼンテーションのファイルを該当するオリジンにアップロードします。

4. clientaccesspolicy.xmlまたは crossdomainpolicy.xmlファイルを作成し、それをディストリビューションのルートのアクセスできる場所に追加します(例:http://d111111abcdef8.cloudfront.net/clientaccesspolicy.xml)。詳細については、Microsoft Developer Network ウェブサイトの「Making a Service Available Across DomainBoundaries」を参照してください。

5. アプリケーションでリンクする場合は、次の形式でクライアントマニフェストを指定します。

http://d111111abcdef8.cloudfront.net/video/presentation.ism/Manifest

オンデマンドプログレッシブダウンロードの構成CloudFront で、プログレッシブダウンロードを使用してメディアファイルを配信するには、以下の作業を実行します。

1. 該当する場合、メディアファイルを変換します。2. CloudFront ウェブディストリビューションを作成します。特別な設定は必要ありません。3. ディストリビューションの作成時に指定したオリジンにファイルをアップロードします。4. アプリケーション(メディアプレーヤーなど)でリンクする場合、CloudFront を使って配信する

他のオブジェクトと同じ形式でメディアファイルの名前を指定します。詳細については、「CloudFront オブジェクトの URL の形式 (p. 81)」を参照してください。

オンデマンドApple HTTP Live Streaming(HLS)の構成

CloudFront で、Apple HTTP Live Streaming(HLS)形式を使用してメディアファイルをストリーミング配信するには、以下の作業を実行します。

1. HLS形式にメディアファイルを変換します。Amazon Elastic Transcoder など、HLS形式をサポートする任意の変換アプリケーションを使用できます。

2. CloudFront ウェブディストリビューションを作成します。特別な設定は必要ありません。3. ディストリビューションの作成時に指定したオリジンにファイルをアップロードします。4. アプリケーション(メディアプレーヤーなど)でリンクする場合、CloudFront を使って配信する

他のオブジェクトと同じ形式でマスタープレイリストを指定します。詳細については、「CloudFrontオブジェクトの URL の形式 (p. 81)」を参照してください。

API Version 2014-01-3166

Amazon CloudFront 開発者ガイドオンデマンドプログレッシブダウンロードの構成

Page 72: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

RTMP ディストリビューションの使用

Abstract

Amazon CloudFront を使用して RTMP ディストリビューションを構成して管理します。

Topics• RTMP ディストリビューションの機能 (p. 67)• RTMP を使用するストリーミングメディアファイルのタスクリスト (p. 69)• CloudFront コンソールを使用した RTMP ディストリビューションの作成 (p. 70)• RTMP ディストリビューションを作成または更新する場合に指定する値 (p. 71)• RTMP ディストリビューションを作成または更新する場合に CloudFront がコンソールに表示する値 (p. 76)

• メディアプレーヤーを構成する (p. 77)• RTMP ディストリビューションのオリジンとして Amazon S3 バケットを使用する (p. 78)• 1 つのオリジンサーバーに対して複数の RTMP ディストリビューションを作成する (p. 79)• Crossdomain.xml を使用してアクセスを制限する (p. 79)• RTMP ディストリビューションのエラーコード (p. 79)• RTMP ディストリビューションをトラブルシューティングする (p. 79)

このセクションでは、RTMP ディストリビューションを構成して管理する方法について説明します。RTMPディストリビューションを作成する方法については、「RTMPを使用するストリーミングメディアファイルのタスクリスト (p. 69)」を参照してください。

RTMP ディストリビューションの機能CloudFrontを使用してメディアファイルのストリーミングを行うには、2種類のファイルをエンドユーザーに提供します。

• メディアファイル• メディアプレーヤー(例: JW Player、Flowplayer、Adobe Flash)

API Version 2014-01-3167

Amazon CloudFront 開発者ガイドRTMP ディストリビューションの機能

Page 73: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

エンドユーザーは、メディアファイルを、そのメディアファイル用に提供されたメディアプレーヤーを使用して視聴します。エンドユーザーは、自分のコンピューターまたは他のデバイスにすでにインストールされているメディアプレーヤー(ある場合)を使用しません。

エンドユーザーがメディアファイルのストリーミングを実行すると、メディアプレーヤーは、CloudFrontからファイルをダウンロードしながら、ファイルのコンテンツの再生を開始します。メディアファイルはエンドユーザーのシステムにローカルに保存されません。

CloudFrontを使用してメディアプレーヤーとメディアファイルの両方を供給するには、2種類のディストリビューションが必要です。メディアプレーヤー用のウェブディストリビューションとメディアファイル用の RTMP ディストリビューションです。ウェブディストリビューションでは HTTP 経由でファイルが供給されます。RTMPディストリビューションではRTMP(またはRTMPの変種)経由でメディアファイルのストリーミングが行われます。

以下の例では、メディアファイルとメディアプレーヤーを Amazon S3 内の異なるバケットに保存することを前提としていますが、これは必須ではありません。メディアファイルとメディアプレーヤーは、同じAmazon S3バケットに保存できます。また、CloudFrontとカスタムオリジンを使用するなど、別の方法を使用して、メディアプレーヤーをエンドユーザーが使用できるようにできます。ただし、メディアファイルでは、Amazon S3 バケットをオリジンとして使用する必要があります。

以下の図では、お客様のサイトは、メディアプレーヤーのキャッシュされたコピーをd1234.cloudfront.netドメイン経由で各エンドユーザーに供給します。次に、メディアプレーヤーが、メディアファイルのキャッシュされたコピーに s5678.cloudfront.netドメイン経由でアクセスします。

メディアプレーヤーバケットは、メディアプレーヤーを保持しており、通常のHTTPディストリビューションのオリジンサーバーになっています。この例では、ディストリビューションのドメイン名は d1234.cloudfront.netです。(d1234.cloudfront.netの dは、これがウェブディストリビューションであることを示します。)

API Version 2014-01-3168

Amazon CloudFront 開発者ガイドRTMP ディストリビューションの機能

Page 74: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

ストリーミングメディアバケットは、メディアファイルを保持しており、RTMP ディストリビューションのオリジンサーバーになっています。この例では、ディストリビューションのドメイン名は s5678.cloudfront.netです。(s5678.cloudfront.netの sは、これがRTMP ディストリビューションであることを示します。)

メディアファイルを配信するようにCloudFrontを構成すると、CloudFrontはAdobe FlashMedia Server3.5 をストリーミングサーバーとして使用し、Adobe の Real-Time Messaging Protocol (RTMP)を使用してメディアファイルのストリーミングを行います。CloudFront は、ポート 1935 およびポート 80経由で RTMP リクエストを受け取ります。

CloudFront は、以下の RTMP プロトコルの変種をサポートします。

• RTMP – Adobe の Real-Time Message Protocol• RTMPT – HTTP でトンネルされた Adobe ストリーミング• RTMPE – 暗号化された Adobe• RTMPTE – 暗号化され、HTTP でトンネルされた Adobe

RTMP の基本概要、および Adobe Flash Media Server でサポートされるファイル形式については、Adobeウェブサイトにある「Flash Media Server 3を使用したストリーミングの概要」を参照してください。概要には、サポートされるコーデックやコンテナに関する情報が含まれます。

インターネットで入手可能なリソースが、Flashファイルで使用するビットレートの決定に役立つ場合があります。例えば、Adobe ウェブサイトに「Flash ビデオ(FLV)のビットレート計算」という資料があります。

CloudFront は、動的ストリーミングに関する、Adobe Flash Media Server 3.5のすべての機能をサポートします。動的ストリーミングを使用すると、再生中に、異なる品質のストリームに切り替えることができます。詳細については、Adobe ウェブサイトにある「Flash Media Server 3.5 の動的ストリーミング: パート 1」を参照してください。

ストリームコンテンツを供給するには、エンドユーザーにメディアプレーヤーを提供する必要があります。Adobe Flash を使用して、独自のプレーヤーを作成することもできます。詳細については、http://www.adobe.com/products/flashplayer/ を参照してください。既存のプレーヤーを使用することもできます。詳細については、以下のチュートリアルを参照してください。

• CloudFront および Adobe Flash Player を使用したオンデマンドビデオストリーミング (p. 284)• CloudFront、およびAdobeFlash向けFlowplayerを使用したオンデマンドビデオストリーミング(p.289)• CloudFront および JW Player を使用したオンデマンドビデオストリーミング (p. 294)

RTMP を使用するストリーミングメディアファイルのタスクリスト

Abstract

オンデマンドストリーミング用の RTMP ディストリビューションを作成して構成します。

このセクションは、メディアプレーヤーで Adobe RTMP プロトコルを使用してオンデマンドストリーミングを構成するための一般的なプロセスをまとめたものです。メディアプレーヤーとして AdobeFlash Player、Flowplayer、または JW Player を使用している場合は、代わりに、該当するチュートリアルを参照してください。

• CloudFront および Adobe Flash Player を使用したオンデマンドビデオストリーミング (p. 284)

API Version 2014-01-3169

Amazon CloudFront 開発者ガイドRTMPを使用するストリーミングメディアファイルのタス

クリスト

Page 75: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

• CloudFront、およびAdobeFlash向けFlowplayerを使用したオンデマンドビデオストリーミング(p.289)• CloudFront および JW Player を使用したオンデマンドビデオストリーミング (p. 294)

以下のタスクリストでは、ウェブディストリビューションの作成処理の概要について説明します。

RTMP ディストリビューションを作成するには

1. メディアファイル用の Amazon S3 バケットを作成します。メディアプレーヤー用に別の AmazonS3 バケットを使用している場合、そのメディアプレーヤーファイル用の Amazon S3 バケットも作成します。

バケット名をすべて小文字にする必要があります。また、バケット名にスペースを含めることはできません。

2. メディアファイルを再生するメディアプレーヤーを選択して構成します。詳細については、メディアプレーヤーに関するドキュメントを参照してください。

3. CloudFront がファイルを取得するオリジンに、メディアプレーヤー用のファイルをアップロードします。メディアプレーヤーのオリジンとして Amazon S3 バケットを使用している場合は、ファイル(バケットではない)をパブリックに読み出し可能にします。

4. メディアプレーヤー用のウェブディストリビューションを作成します。(既存のディストリビューションを使用することもできます)。詳細については、「ウェブディストリビューションを作成するためのタスクリスト (p. 42)」を参照してください。

5. メディアプレーヤー用に作成した Amazon S3 バケットにメディアファイルをアップロードし、コンテンツ(バケットではない)をパブリックに読み出し可能にします。

Important

FlashVideoコンテナ内のメディアファイルには.flvファイル名拡張子が含まれている必要があります。含まれていない場合、メディアのストリーミングが行われません。

メディアプレーヤーファイルとメディアファイルは、同じバケットに配置できます。6. メディアファイル用の RTMP ディストリビューションを作成します。

• CloudFront コンソールを使用してウェブディストリビューションを作成する方法については、「CloudFront コンソールを使用したRTMPディストリビューションの作成 (p. 70)」を参照してください。

• CloudFrontAPIを使用してウェブディストリビューションを作成する方法については、「AmazonCloudFront API リファレンス」の「POST Streaming Distribution」を参照してください。

7. メディアプレーヤーを構成します。詳細については、「メディアプレーヤーを構成する (p. 77)」を参照してください。

再生するコンテンツの取得に問題がある場合は、「RTMP ディストリビューションをトラブルシューティングする (p. 79)」を参照してください。

CloudFrontコンソールを使用したRTMPディストリビューションの作成

以下の手順では、CloudFront コンソールを使用して RTMP ディストリビューションを作成する方法を説明します。CloudFront API,を使用してRTMPディストリビューションを作成する場合は、「AmazonCloudFront API リファレンス」の「POST Streaming Distribution」を参照してください。

API Version 2014-01-3170

Amazon CloudFront 開発者ガイドCloudFrontコンソールを使用したRTMPディストリビュー

ションの作成

Page 76: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

AWS アカウントごとに作成できる RTMP ディストリビューションの数に関する現在の制限については、『AmazonWeb Services General Reference』の「Amazon CloudFront の上限」を参照してください。制限の引き上げを要求するには、https://aws.amazon.com/support/createCase?type=service_limit_increase&serviceLimitIncreaseType=cloudfront-distributionsを参照してください。

CloudFront コンソールを使用して RTMP ディストリビューションを作成するには

1. AWS マネジメントコンソールにサインインし、Amazon CloudFront コンソール(https://console.aws.amazon.com/cloudfront/)を開きます。

2. [Create Distribution] をクリックします。3. [Create DistributionWizard] の最初のページで、[RTMP]をクリックし、[Continue]をクリックしま

す。4. ディストリビューションの設定項目を指定します。詳細については、「RTMP ディストリビュー

ションを作成または更新する場合に指定する値 (p. 71)」を参照してください。5. [Create Distribution] をクリックします。6. CloudFront がディストリビューションを作成すると、ディストリビューションの [Status] 列の値

が、[InProgress]から[Deployed]に変わります。配信を有効にするよう選択すると、リクエストの処理を行えるようになります。この所要時間は 15 分以内となります。

CloudFrontによってディストリビューションに割り当てられたドメイン名がディストリビューションの一覧に表示されます。ドメイン名は、選択されたディストリビューションの [General] タブにも表示されます。

RTMP ディストリビューションを作成または更新する場合に指定する値

CloudFront を使用してメディアファイルのストリーミングを行うには、RTMP ディストリビューションを作成し、以下の値を指定します。

Topics• オリジンドメイン名(Amazon S3 バケット) (p. 72)• バケットアクセスの制限(Amazon S3 のみ) (p. 72)• オリジンアクセスアイデンティティ(Amazon S3 のみ) (p. 73)• 新しいアイデンティティに関するコメント(Amazon S3 のみ) (p. 73)• アイデンティティ(Amazon S3 のみ) (p. 73)• バケットに読み取り許可を付与する(Amazon S3 のみ) (p. 73)• 価格クラス (p. 73)• 代替ドメイン名(CNAME) (p. 74)• ログ作成 (p. 74)• ログ用のバケット (p. 74)• ログのプレフィックス (p. 74)• コメント (p. 74)• ディストリビューションの状態 (p. 74)• ビューアのアクセス制限(署名付き URL の使用) (p. 75)• 信頼された署名者 (p. 75)• AWS アカウント番号 (p. 75)

API Version 2014-01-3171

Amazon CloudFront 開発者ガイドRTMPディストリビューションを作成または更新する場合

に指定する値

Page 77: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

オリジンドメイン名(Amazon S3 バケット)CloudFront がこのオリジンのオブジェクトの取得先としている Amazon S3 バケットの DNS ドメイン名(例: myawsbucket.s3.amazonaws.com)。CloudFrontコンソールで[Origin Domain Name]フィールドをクリックすると、現在の AWS アカウントに関連付けられた Amazon S3 バケットの一覧が表示されます。異なるAWSアカウントからのバケットを使用するには、バケットのドメイン名を次の形式で入力します。

bucket-name.s3.amazonaws.com

バケットが米国スタンダードリージョンにあり、バージニア北部にリクエストをルーティングする場合は、次の形式を使用します。

bucket-name.s3-external-1.amazonaws.com

CloudFrontのオリジンアクセスアイデンティティを使用してAmazon S3内のコンテンツを保護しない限り、ファイルをパブリックに読み出し可能とする必要があります。詳細については、「オリジンアクセスアイデンティティを使用してAmazonS3コンテンツへのアクセスを制限する(p. 131)」を参照してください。

Important

バケット名は DNS 命名要件に準拠する必要があります。詳細については、「Amazon SimpleStorage Service 開発者ガイド」の「バケットの制約と制限」を参照してください。

CloudFrontが現在のオリジンのオブジェクトの取得先としているバケットが変更されると、CloudFrontエッジロケーションに対して変更の複製が直ちに開始されます。CloudFront は、該当のエッジロケーションでディストリビューション構成が更新されるまで、引き続き、リクエストを以前の Amazon S3バケットに転送します。該当のエッジロケーションでディストリビューション構成が更新されると、CloudFront は新しい Amazon S3 バケットへのリクエストの転送を直ちに開始します。

バケットを変更しても、CloudFront が、新しいオリジンからのオブジェクトでエッジキャッシュを再生成する必要はありません。アプリケーション内でビューアのリクエストが変更されていない限り、各オブジェクトのTTLの有効期限が切れるか、要求頻度の低いオブジェクトが削除されるまで、CloudFrontは、引き続き、エッジキャッシュにすでに保持されているオブジェクトを供給します。

詳細については、「RTMP ディストリビューションのオリジンとして Amazon S3 バケットを使用する (p. 78)」を参照してください。

バケットアクセスの制限(Amazon S3 のみ)Amazon S3 URLではなくCloudFront URL のみを使用して&S3バケット内のオブジェクトにアクセスするようエンドユーザーに要求する場合は、[Yes] をクリックします。次に、適用可能な値を指定します。

エンドユーザーが CloudFront URL または Amazon S3 URL を使用してオブジェクトにアクセスできるようにするには、[No] をクリックします。

詳細については、「オリジンアクセスアイデンティティを使用して Amazon S3 コンテンツへのアクセスを制限する (p. 131)」を参照してください。

API Version 2014-01-3172

Amazon CloudFront 開発者ガイドオリジンドメイン名(Amazon S3 バケット)

Page 78: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

オリジンアクセスアイデンティティ(Amazon S3のみ)[Restrict Bucket Access] で [Yes] を選択した場合、新しいオリジンアクセスアイデンティティを作成するか、AWS アカウントに関連付けられた既存のオリジンアクセスアイデンティティを使用するかを選択します。オリジンアクセスアイデンティティがすでにある場合は、それを再利用し、メンテナンスを簡素化することをお勧めします。オリジンアクセスアイデンティティの詳細については、「オリジンアクセスアイデンティティを使用してAmazonS3コンテンツへのアクセスを制限する(p. 131)」を参照してください。

新しいアイデンティティに関するコメント(AmazonS3 のみ)[Origin Access Identity] で [Create a New Identity] を選択した場合、新しいオリジンアクセスアイデンティティを識別するコメントを入力します。このディストリビューションが作成されると、CloudFrontはオリジンアクセスアイデンティティを作成します。

アイデンティティ(Amazon S3 のみ)[Origin Access Identity] で [Use an Existing Identity] を選択した場合、使用するオリジンアクセスアイデンティティを選択します。別のAWSアカウントに関連付けられたオリジンアクセスアイデンティティを使用することはできません。

バケットに読み取り許可を付与する(Amazon S3のみ)CloudFrontで、オリジンアクセスアイデンティティにAmazon S3バケット内のオブジェクトの読み取り許可を自動的に付与するには、[Yes, Update Bucket Policy] をクリックします。

Important

[Yes, Update Bucket Policy] をクリックすると、CloudFront は、指定されたオリジンアクセスアイデンティティにバケット内のオブジェクトの読み取り許可を付与するようにバケットポリシーを更新します。ただし、CloudFrontがバケットポリシー内の既存の許可、または個々のオブジェクトに対する許可を削除することはありません。現在、Amazon S3 URL を使用してバケット内のオブジェクトにアクセスするための許可を持っているユーザーは、CloudFrontがバケットポリシーを更新した後もその許可を依然として持っています。既存のバケットポリシー、およびバケット内のオブジェクトに対する既存の許可を表示または変更するには、AmazonS3から提供される方法を使用します。詳細については、「オリジンアクセスアイデンティティにAmazon S3バケット内のオブジェクトの読み取り許可を付与する (p. 134)」を参照してください。

許可を手動で更新する場合、例えば、バケットの許可を更新する代わりにオブジェクトに対する ACLを更新する場合は、[No, I will Update Permissions] をクリックします。

価格クラスCloudFront サービスに支払う上限価格に対応する価格クラス。デフォルトでは、CloudFront は、すべての CloudFront リージョンのエッジロケーションからオブジェクトを供給します。

API Version 2014-01-3173

Amazon CloudFront 開発者ガイドオリジンアクセスアイデンティティ(Amazon S3 のみ)

Page 79: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

価格クラスの詳細、および選択した価格クラスがディストリビューションの CloudFront パフォーマンスに与える影響の詳細については、「CloudFront ディストリビューションの価格クラスを選択する(p. 37)」を参照してください。価格クラスとCloudFrontリージョンのマッピングを含め、CloudFront料金表の詳細については、「Amazon CloudFront 料金表」を参照してください。

代替ドメイン名(CNAME)オプション。1つ以上のCNAMEエイリアスをディストリビューションに関連付けることができます。これにより、ディストリビューションの作成時に CloudFront によって割り当てられたドメイン名を使用する代わりに、お客様のドメイン名(例:example.com)をオブジェクトのURL内で使用できます。詳細については、「代替ドメイン名(CNAME)を使用する (p. 33)」を参照してください。

ログ作成CloudFront がオブジェクトに対する各リクエストの情報をログに記録し、ログファイルを Amazon S3バケットに保存するかどうか。ログ作成はいつでも有効または無効にできます。ログ作成を有効にしても追加料金はかかりませんが、Amazon S3 バケットへのファイルの保存と Amazon S3 バケット内のファイルへのアクセスについては通常の Amazon S3 料金が発生します。ログの削除はいつでも行うことができます。CloudFrontアクセスログの詳細については、「アクセスログ(p. 194)」を参照してください。

ログ用のバケット[Logging] で [On] を選択した場合に、CloudFront がアクセスログを保存するAmazon S3バケット(例:myawslogbucket.s3.amazonaws.com)。ログ作成を有効にした場合、CloudFront はオブジェクトに対する各エンドユーザーリクエストの情報を記録し、ファイルを、指定された Amazon S3 バケットに保存します。ログ作成はいつでも有効または無効にできます。CloudFront アクセスログの詳細については、「アクセスログ (p. 194)」を参照してください。

ログのプレフィックスオプション。[Logging] で [On] を選択した場合、このディストリビューションのアクセスログファイル名の先頭に CloudFront が追加する文字列(ある場合)を指定します(例: exampleprefix/)。末尾のスラッシュ(/)はオプションですが、ログファイルの参照を容易にするためにこれを使用することをお勧めします。CloudFrontアクセスログの詳細については、「アクセスログ(p. 194)」を参照してください。

コメントオプション。ディストリビューションを作成するときに、最大で 128 文字のコメントを含めることができます。コメントの更新はいつでも行うことができます。

ディストリビューションの状態ディストリビューションを作成する場合、作成後にディストリビューションを有効または無効のどちらにするかを指定する必要があります。

• Enabled: ディストリビューションが完全にデプロイされた後、ディストリビューションのドメイン名を使用するリンクをデプロイでき、エンドユーザーがコンテンツを取り込むことができます。ディストリビューションを有効(Enabled)にすると、CloudFrontは、そのディストリビューションに関連付けられたドメイン名を使用するコンテンツへのエンドユーザーのすべてのリクエストを受け付けて処理することができます。

API Version 2014-01-3174

Amazon CloudFront 開発者ガイド代替ドメイン名(CNAME)

Page 80: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

CloudFront ディストリビューションの作成、変更、削除を行った場合、その変更がCloudFront データベースに伝達されるまで時間がかかります。変更直後に出したディストリビューションに関する情報のリクエストには、変更が反映されていない可能性があります。通常、伝達は数分以内で完了しますが、システムの高負荷またはネットワークパーティションによっては、それより時間がかかる可能性があります。

• Disabled: ディストリビューションがデプロイされ、その使用準備ができていても、エンドユーザーはディストリビューションを使用できません。ディストリビューションを無効にすると、そのディストリビューションに関連付けられたドメイン名を使用するコンテンツへのエンドユーザーリクエストを CloudFront は受け付けません。(ディストリビューションの構成を更新することで)ディストリビューションを無効から有効に切り替えるまで、誰もディストリビューションを使用できません。

ディストリビューションの無効と有効は何度でも切り替えることができます。ディストリビューションの構成の更新方法については、「CloudFront ディストリビューションの一覧表示、詳細表示、および更新を行う (p. 31)」を参照してください。

ビューアのアクセス制限(署名付き URL の使用)このディストリビューションによって供給されるオブジェクトへのリクエストでパブリック URL が使用される場合、[No] をクリックします。リクエストで署名付き URL を使用する場合、[Yes] をクリックします。次に、署名付き URL の作成に使用する AWS アカウントを指定します。このアカウントは信頼された署名者として知られています。

信頼された署名者の詳細については、「署名付き URL (信頼された署名者)の作成が可能な AWS アカウントの指定 (p. 137)」を参照してください。

信頼された署名者このディストリビューションの信頼された署名者として使用する AWS アカウントを選択します。

• Self: 信頼されたアカウントとして AWS Management Console へのサインインに現在使用しているアカウントを使用します。現在、IAM ユーザーとしてサインインしている場合は、関連付けられたAWS アカウントを、信頼された署名者として追加します。

• Specify Accounts: 信頼された署名者のアカウント番号を [AWS Account Numbers] フィールドに入力します。

署名付き URL を作成するには、AWS アカウント番号に少なくとも 1 つのアクティブな CloudFrontキーペアが必要です。

Caution

コンテンツの配信ですでに使用されているディストリビューションを更新する場合は、オブジェクトの署名付き URL の生成を開始する準備ができたときにのみ、信頼された署名者を追加します。信頼された署名者がディストリビューションに追加されると、ユーザーは、このディストリビューションで供給されるオブジェクトへのアクセスに、署名付き URL を使用する必要があります。

AWS アカウント番号現在のアカウントに加えて、または現在のアカウントの代わりに、AWS アカウントを使用して署名付き URL を作成する場合、このフィールドの行ごとに 1 つの AWS アカウント番号を入力します。次の点に注意してください。

• 指定するアカウントに少なくとも 1 つのアクティブな CloudFront キーペアが必要です。詳細については、「信頼された署名者の CloudFront キーペアを作成する (p. 138)」を参照してください。

API Version 2014-01-3175

Amazon CloudFront 開発者ガイドビューアのアクセス制限(署名付き URL の使用)

Page 81: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

• IAMユーザーのCloudFront キーペアを作成できないため、信頼された署名者として IAMユーザーを使用することはできません。

• アカウントの AWS アカウント番号を取得する方法については、「Amazon Web Services GeneralReference」の「How Do I Get Security Credentials?」を参照してください。

• 現在のアカウントのアカウント番号を入力した場合、CloudFrontは、自動的に[Self]チェックボックスをオンにして、[AWS Account Numbers] リストからアカウント番号を削除します。

RTMP ディストリビューションを作成または更新する場合にCloudFrontがコンソールに表示する値

新しい RTMP ディストリビューションの作成や、既存のディストリビューションの更新を行う場合、CloudFront は以下の情報を CloudFront コンソールに表示します。

Note

有効な信頼済み署名者、つまり有効なCloudFrontキーペアを持つAWSアカウントのうち有効な署名付き URL の作成に使用できる AWS アカウントは、CloudFront コンソールに現在表示されません。

ディストリビューション IDCloudFront API を使用してディストリビューションに対するアクションを実行する場合、ディストリビューション ID を使用して、どのディストリビューションに対してアクションを実行するかを指定します(例: EDFDVBD6EXAMPLE)。ディストリビューション ID を変更することはできません。

ステータスディストリビューションのステータス値として考えられるものを次の表に示します。

説明値

ディストリビューションは依然として作成中または更新中です。InProgress

ディストリビューションの作成または更新が完了し、変更が CloudFront システム全体に完全に伝達されました。

Deployed

エンドユーザーが CloudFront を使用してコンテンツにアクセスできるようにするには、ディストリビューションのステータスが [Deployed] であることを確認するのに加えて、ディストリビューションを有効にする必要があります。詳細については、「ディストリビューションの状態 (p. 74)」を参照してください。

最終更新日時ディストリビューションが最後に変更された日時。ISO 8601 形式が使用されます(例:2012-05-19T19:37:58Z)。詳細については、http://www.w3.org/TR/NOTE-datetime を参照してください。

API Version 2014-01-3176

Amazon CloudFront 開発者ガイドRTMPディストリビューションを作成または更新する場合

に CloudFront がコンソールに表示する値

Page 82: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

ドメイン名オブジェクトへのリンクには、代替ドメイン名(CNAME)を使用しない限り、ディストリビューションのドメイン名を使用します。例えば、ディストリビューションのドメイン名がd111111abcdef8.cloudfront.netの場合、例の /images/image.jpgファイルへのリンクはhttp://d111111abcdef8.cloudfront.net/images/image.jpgになります。ディストリビューションのCloudFront ドメイン名を変更することはできません。オブジェクトへのリンクのCloudFrontURL の詳細については、「CloudFront オブジェクトの URL の形式 (p. 81)」を参照してください。

1 つ以上の代替ドメイン名(CNAME)を指定した場合、オブジェクトへのリンクに、CloudFront ドメイン名ではなく独自のドメイン名を使用できます。CNAME の詳細については、「代替ドメイン名(CNAME) (p. 56)」を参照してください。

Note

CloudFrontドメイン名は一意です。ディストリビューションのドメイン名は以前のディストリビューションで使用されておらず、今後の別のディストリビューションでも再利用されません。

メディアプレーヤーを構成するメディアファイルを再生するには、ファイルへの正しいパスを使用してメディアプレーヤーを構成する必要があります。メディアの構成方法は、使用するメディアプレーヤーと、メディアプレーヤーの使用方法によって異なります。

メディアプレーヤーを構成する場合、メディアファイルに指定するパスのドメイン名の直後に文字cfx/stを含める必要があります。次に例を示します。

rtmp://s5c39gqb8ow64r.cloudfront.net/cfx/st/mediafile.flv。

Note

CloudFront は、Adobe の FMS命名要件に従います。各プレーヤーには、ストリームの指定方法に関して独自のルールがあります。上の例は、JW Player 用です。プレーヤーのドキュメントを確認してください。例えば、Adobe の Flash Media Server は、.flv拡張子が再生パスに含まれることを許可しません。多くのプレーヤーが .flv拡張子を自動で削除します。

メディアプレーヤーが、ファイル名から切り離されたパスを要求する場合があります。例えば、JWPlayer ウィザードでは、変数 streamerおよび fileを指定します。

• streamer – rtmp://s5c39gqb8ow64r.cloudfront.net/cfx/st(末尾のスラッシュなし)• file – mediafile.flv

バケット内のディレクトリにメディアファイルを保存している場合(例:videos/mediafile.flv)、JW Player の変数は次のようになります。

• streamer – rtmp://s5c39gqb8ow64r.cloudfront.net/cfx/st(末尾のスラッシュなし)• file – videos/mediafile.flv

JW Player ウィザードを使用するには、JW Player ウェブサイトの「Setup Wizard」ページにアクセスします。

API Version 2014-01-3177

Amazon CloudFront 開発者ガイドドメイン名

Page 83: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

MPEG ファイルMP3 オーディオファイルまたは H.264/MPEG-4 ビデオファイルを供給するには、ファイル名の先頭にプレフィックス mp3:または mp4:を追加することが必要になる場合があります。メディアプレーヤーによっては、プレフィックスを自動で追加するように構成できます。メディアプレーヤーは、ファイル拡張子のないファイル名の指定を要求する場合もあります(例: magicvideo.mp4ではなくmagicvideo)。

RTMP ディストリビューションのオリジンとしてAmazon S3 バケットを使用する

ディストリビューションを作成するときに、CloudFront がエッジロケーションに配信するファイルをCloudFront がどの場所で取得するかを指定します。RTMP ディストリビューションの場合、AmazonS3 バケットを使用する必要があります。カスタムオリジンはサポートされません。オブジェクトをバケットに挿入するには、Amazon S3 でサポートされる任意の方法を使用できます(例: Amazon S3API、サードパーティツール)。他の Amazon S3 バケットと同様に、バケット内に階層を作成できます。バケットへのオブジェクトの保存には、通常のAmazon S3料金が発生します。CloudFrontの使用料の詳細については、「CloudFront の請求および使用状況レポート (p. 8)」を参照してください。

既存の Amazon S3 バケットを CloudFront オリジンサーバーとして使用してもバケットに変更は一切ありません。AmazonS3オブジェクトの保存やアクセスで通常使用しているとおりに(通常のAmazonS3 価格で)バケットを使用できます。

RTMPディストリビューションとウェブディストリビューションに同じAmazon S3バケットを使用できます。

Note

RTMPディストリビューションを作成した後で、そのオリジンサーバーを変更することはできません。RTMPディストリビューションのAmazonS3バケットを変更する必要がある場合は、新しいバケットを使用する新しいディストリビューションを作成し、新しいディストリビューションのドメイン名を使用するようにリンクまたはDNSレコードを更新する必要があります。その後、オリジナルのディストリビューションを削除できます。詳細については、「ディストリビューションを削除する (p. 32)」を参照してください。

CloudFrontがオブジェクトの取得先としているAmazon S3バケットの名前をお客様が指定する場合、一般に次の形式を使用します。

bucket-name.s3.amazonaws.com

バケットが米国スタンダードリージョンにあり、バージニア北部にリクエストをルーティングする場合は、次の形式を使用します。

bucket-name.s3-external-1.amazonaws.com

以下の値を使用してバケットの名前を指定しないでください。

• Amazon S3 のパススタイル(s3.amazonaws.com/bucket-name)• Amazon S3 の CNAME (ある場合)

API Version 2014-01-3178

Amazon CloudFront 開発者ガイドMPEG ファイル

Page 84: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

Important

バケットがCloudFront で正常に機能するには、その名前がDNS命名要件に沿ったものでなければなりません。詳細については、「Amazon Simple Storage Service 開発者ガイド」の「バケットの制約と制限」を参照してください。

1つのオリジンサーバーに対して複数のRTMPディストリビューションを作成する

通常、Amazon S3バケットごとに1つのRTMPディストリビューションを作成しますが、同じバケットに対して複数の RTMP ディストリビューションを作成するように選択できます。例えば、1 つのAmazon S3 バケットに 2 つのディストリビューションがある場合、どちらかのディストリビューションを使用して1つのメディアファイルを参照できます。この場合、オリジンサーバーに media.flvというメディアファイルがあると、CloudFrontは、個々のmedia.flvオブジェクトを参照したかのように、各ディストリビューションを操作します。1つのディストリビューションで 1つの media.flvにアクセスでき、もう 1 つのディストリビューションで別の media.flvにアクセスできます。

Crossdomain.xml を使用してアクセスを制限するAdobe Flash Media Server の crossdomain.xmlファイルには、特定のドメイン内のメディアファイルにどのドメインがアクセスできるかを指定します。CloudFrontはデフォルトファイルを提供します。デフォルトファイルでは、すべてのドメインが RTMP ディストリビューション内のメディアファイルにアクセスすることが許可されます。この動作を変更することはできません。より制限のあるcrossdomain.xmlファイルをAmazon S3バケットに含めた場合、CloudFrontはそれを無視します。

RTMP ディストリビューションのエラーコード以下の表に、CloudFront がメディアプレーヤーに送信する可能性があるエラーコードを示します。エラーコードは、Event.info.application.messageまたは Event.info.descriptionで返される文字列の一部です。

説明エラー

ディストリビューションが見つかりませんでした。DistributionNotFound

ディストリビューションがRTMPディストリビューションではありません。

DistributionTypeMismatch

インスタンスが無効です。InvalidInstance

URI が無効です。InvalidURI

RTMP ディストリビューションをトラブルシューティングする

メディアファイルの再生に問題がある場合、以下の項目を確認してください。

API Version 2014-01-3179

Amazon CloudFront 開発者ガイド1つのオリジンサーバーに対して複数のRTMPディストリ

ビューションを作成する

Page 85: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

説明確認項目

メディアプレーヤーは通常の HTTP ディストリビューションによって供給される必要があり(例: ドメイン名 d111111abcdef8.cloudfront.net)、メディアファイルは RTMP ディストリビューションによって供給される必要があります(例: ドメイン名 s5c39gqb8ow64r.cloudfront.net)。この 2 つに対して同じディストリビューションを使用していないことを確認します。

メディアプレーヤーファイル用のディストリビューションとメディアファイル用のディストリビューションを分けます。

ファイルのパスに/cfx/stが含まれていることを確認します。AmazonS3バケット内のオブジェクトへのパスに、/cfx/stを含める必要はありません。詳細については、「メディアプレーヤーを構成する (p. 77)」を参照してください。

ファイルパス内の/cfx/st

一部のメディアプレーヤーでは、ファイル名の前にmp4:が必要です。.mp4拡張子の除外を要求するメディアプレーヤーもあります。詳細については、「MPEG ファイル (p. 78)」を参照してください。

MPEG-4 ファイル名

Adobe FlashMedia Serverは、RTMP用にポート1935を使用します。ファイアウォールでこのポートが開かれていることを確認します。開かれていない場合、"ビデオを再生できない" ことを示す一般的なメッセージが返されます。ポート 80を使用してHTTPでトンネルするように、RTMPTに切り替えることもできます。

ファイアウォールのポート 1935

デフォルトでは、AdobeFlashPlayerは、再生しようとしているビデオファイルがない場合にメッセージを表示しません。代わりに、AdobeFlashPlayerは、ファイルが現れるまで待機します。エンドユーザーの操作性を高めるには、この動作の変更が必要になる場合があります。ビデオがない場合にプレーヤーからメッセージを送信するには、play("vid")の代わりに play("vid",0,-1)を使用します。

Adobe Flash Playerメッセージング

API Version 2014-01-3180

Amazon CloudFront 開発者ガイドRTMPディストリビューションをトラブルシューティング

する

Page 86: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

オブジェクトの使用

Abstract

CloudFront でオブジェクトを使用する方法の基本について説明します。

Topics• CloudFront オブジェクトの URL の形式 (p. 81)• CloudFront が HTTP および HTTPS リクエストを処理する方法 (p. 84)• CloudFront がクエリ文字列パラメータの転送、キャッシュ、およびログ作成を行う方法 (p. 84)• CloudFront が Cookie の転送、キャッシュ、およびログ作成を行う方法 (p. 86)• ディストリビューション内のオブジェクトの追加、削除、または置換 (p. 88)• エラーレスポンスのカスタマイズ (p. 99)• CloudFront がオブジェクトの部分的リクエスト(レンジ GET)を処理する方法 (p. 103)• デフォルトルートオブジェクトの指定(ウェブディストリビューションのみ) (p. 104)• 圧縮ファイルの供給 (p. 107)

このセクションでは、CloudFront でオブジェクトを使用する方法について説明します。

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

CloudFront オブジェクトを操作するときに使用できる URL の形式について説明します。

Topics• Amazon S3 内のオブジェクトのパブリック URL の形式 (p. 82)• カスタムオリジン内のオブジェクトのパブリック URL の形式 (p. 83)• パブリック URL がディレクトリの無効化に与える影響 (p. 83)• 署名付き URL の形式 (p. 84)

ディストリビューションを作成すると、そのディストリビューションに関連付けられた CloudFront ドメイン名を受け取ります。オブジェクトへのリンクを作成する場合にこのドメイン名を使用します。別

API Version 2014-01-3181

Amazon CloudFront 開発者ガイドCloudFront オブジェクトの URL の形式

Page 87: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

のドメイン名(例: www.example.com)があり、それを使用する場合は、CNAME エイリアスを追加できます。詳細については、「代替ドメイン名(CNAME)を使用する (p. 33)」を参照してください。

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

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

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

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

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

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

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

Important

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

例えば、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 ディストリビューションにおけるオリジンおよびキャッシュ動作

API Version 2014-01-3182

Amazon CloudFront 開発者ガイドAmazon S3 内のオブジェクトのパブリック URL の形式

Page 88: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

の設定の詳細については、「ウェブディストリビューションを作成または更新する場合に指定する値 (p. 46)」を参照してください。

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.jpgが imagesフォルダにある場合、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ディストリビューションにおけるオリジンおよびキャッシュ動作の設定の詳細については、「ウェブディストリビューションを作成または更新する場合に指定する値 (p. 46)」を参照してください。

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

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

http://d111111abcdef8.cloudfront.net/images

ブラウザおよび他のウェブアプリケーションは、この両方の形式を同じディレクトリに解決します。ただし、CloudFront は、パブリックURLを指定されたとおりに正確に保存します。ディレクトリを無効にする場合は、全く同じディレクトリを指定する必要があります。スラッシュを含めるかどうかについても正確に指定します。ディレクトリの指定方法に関して標準がない場合は、スラッシュを付けた形式

API Version 2014-01-3183

Amazon CloudFront 開発者ガイドカスタムオリジン内のオブジェクトのパブリック URL の

形式

Page 89: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

とスラッシュを付けない形式を使用してディレクトリを無効にして、CloudFrontがディレクトリをエッジロケーションから削除したことを確認する必要があります。1か月の無料の無効化回数の上限に達した場合、この 2 つのディレクトリのうち 1 つしか存在しない場合でも、お客様は両方の無効化に対して料金を支払う必要があります。

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

CloudFront が HTTP および HTTPS リクエストを処理する方法

Abstract

CloudFront が HTTP および HTTPS プロトコルの両方でリクエストを処理する方法について説明します。

Amazon S3 オリジンの場合、デフォルトでは、CloudFrontは、HTTP および HTTPS プロトコルで、CloudFrontディストリビューション内のオブジェクトのリクエストを受け取ります。次に、CloudFrontは、リクエストと同じプロトコルを使用して、リクエストを Amazon S3 バケットに転送します。

カスタムオリジンでは、ディストリビューションを作成する場合、CloudFront がオリジンにアクセスする方法を指定できます(HTTPのみか、ビューアが使用しているプロトコルと一致させる)。カスタムオリジンにおいて CloudFront が HTTP および HTTPS リクエストを処理する方法については、「プロトコル (p. 119)」を参照してください。

エンドユーザーがHTTPSを使用してのみオブジェクトにアクセスできるようにウェブディストリビューションを制限する方法については、「HTTPS接続を使用したオブジェクトへのアクセス(p. 178)」を参照してください。(このオプションは、RTMP プロトコルを使用する RTMP ディストリビューションには適用されません)。

Note

HTTPS リクエストの料金は HTTP リクエストの料金よりも高くなります。請求料率の詳細については、CloudFront 料金表体系を参照してください。

CloudFront がクエリ文字列パラメータの転送、キャッシュ、およびログ作成を行う方法

Abstract

CloudFront がクエリ文字列パラメータのオリジンへの転送、キャッシュ、ログ作成を行う方法について説明します。

ウェブディストリビューションでは、CloudFront からクエリ文字列パラメータがオリジンに転送されるようにするかどうかを選択できます。RTMPディストリビューションでは、クエリ文字列パラメータがオリジンに転送されるように CloudFront を構成することはできません。

この両方の種類のディストリビューションにおいて、ログ作成を有効にした場合、CloudFront は、クエリ文字列パラメータを含め、完全なURLをログに記録します。ウェブディストリビューションでは、

API Version 2014-01-3184

Amazon CloudFront 開発者ガイド署名付き URL の形式

Page 90: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

クエリ文字列が転送されるように CloudFront を構成したかどうかに関係なく、そのようになります。CloudFront ログ作成の詳細については、「アクセスログ (p. 194)」を参照してください。

詳細については、該当するトピックを参照してください。

• クエリ文字列パラメータとウェブディストリビューション (p. 85)• クエリ文字列パラメータと RTMP ディストリビューション (p. 86)

クエリ文字列パラメータとウェブディストリビューションウェブディストリビューションでは、CloudFront がオリジンにリクエストを転送するときにクエリ文字列を含めるかどうかを指定できます。例えば、次の URL の ?parameter1=a パートを CloudFront から転送するかどうかを指定できます。

http://d111111abcdef8.cloudfront.net/images/image.jpg?parameter1=a

クエリ文字列をオリジンに転送するようにCloudFront を構成した場合、CloudFront は、オブジェクトをキャッシュするときに URL のクエリ文字列部分を含めます。例えば、以下のクエリ文字列によってCloudFront は 3 つのオブジェクトをキャッシュします。これは、オリジンがクエリ文字列に関係なく常に同じ image.jpgを返す場合も当てはまります。

• http://d111111abcdef8.cloudfront.net/images/image.jpg?parameter1=a

• http://d111111abcdef8.cloudfront.net/images/image.jpg?parameter1=b

• http://d111111abcdef8.cloudfront.net/images/image.jpg?parameter1=c

オリジンがクエリ文字列に基づいてオブジェクトの別のバージョン(例: /images/image.jpg)を返す場合は、CloudFrontコンソールの[ForwardQuery Strings]で [Yes]を選択します。または、CloudFrontAPI を使用する場合は、DistributionConfig複合型の QueryStringエレメントの値に trueを指定します。

オリジンがクエリ文字列に関係なくオブジェクトの同じバージョンを返す場合は、[No]を選択するか、falseを指定します。これにより、CloudFront がキャッシュからリクエストを処理できる可能性が高くなり、パフォーマンスが向上し、オリジンの負荷が低下します。

クエリ文字列では、パラメータの順序が重要になります。クエリ文字列をオリジンに転送するようにCloudFront を構成した場合、以下のクエリ文字列によってCloudFront は 2つのオブジェクトをキャッシュします。

• http://d111111abcdef8.cloudfront.net/images/image.jpg?parameter1=a&parameter2=b

• http://d111111abcdef8.cloudfront.net/images/image.jpg?parameter2=b&parameter1=a

また、クエリ文字列では、大文字小文字も重要になります。クエリ文字列をオリジンに転送するようにCloudFront を構成した場合、以下のクエリ文字列によってCloudFront は 2つのオブジェクトをキャッシュします。

• http://d111111abcdef8.cloudfront.net/images/image.jpg?parameter1=a

• http://d111111abcdef8.cloudfront.net/images/image.jpg?parameter1=A

署名付き URL を使用してコンテンツへのアクセスを制限している場合(信頼された署名者をディストリビューションに追加した場合)、CloudFront は以下のクエリ文字列パラメータを削除してから URLの残りをオリジンに転送します。

API Version 2014-01-3185

Amazon CloudFront 開発者ガイドクエリ文字列パラメータとウェブディストリビューション

Page 91: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

• Expires

• Key-Pair-Id

• Policy

• Signature

つまり、署名付きURLを使用しており、クエリ文字列パラメータをオリジンに転送するようにCloudFrontを構成している場合、独自のクエリ文字列パラメータに Expires、Key-Pair-Id、Policy、またはSignatureという名前を付けることはできません。

クエリ文字列パラメータとRTMPディストリビューションRTMP ディストリビューションでは、CloudFront は、オリジンサーバーからのオブジェクトをリクエストする場合にすべてのクエリ文字列パラメータを削除します。例えば、CloudFront が次のリクエストを受け取り、media.flvが CloudFront キャッシュにまだ存在していないと仮定します。

http://d111111abcdef8.cloudfront.net/media/media.flv?parameter1=a

この場合、次の URL がオリジンサーバーに送信されます。

http://d111111abcdef8.cloudfront.net/media/media.flv

CloudFront が Cookie の転送、キャッシュ、およびログ作成を行う方法

Abstract

CloudFront が Cookie のオリジンへの転送、キャッシュ、ログ作成を行う方法について説明します。

HTTP および HTTPS のウェブディストリビューションでは、CloudFront で Cookie をオリジンに転送するかどうかを選択できます。RTMPディストリビューションでは、Cookieを処理するようにCloudFrontを構成することはできません。

Important

Amazon S3 および一部の HTTP サーバーは Cookie を処理しません。Cookie を処理しないオリジンにCookieを転送するようにCloudFrontキャッシュ動作を構成しないでください。キャッシュ可能性が低下します。つまり、パフォーマンスが低下します。

Cookie とウェブディストリビューションウェブディストリビューションでは、CloudFrontでCookieをオリジンに転送するかどうかを選択できます。転送するように選択した場合は、CloudFrontですべてのCookieを転送するか、または指定されたCookieのみを転送するかを選択できます。指定されたCookieのみを転送する場合、転送するCookieのホワイトリストを指定します。Cookie 設定は、CloudFront がどの Cookie をオリジンに転送するかにのみ影響します。オリジンが Cookie を CloudFront に返す場合、CloudFront は、ディストリビューションの Cookie 設定に関わらず、それをすべてビューアに転送します。

キャッシュ動作ごとにホワイトリストに登録できる Cookie 名の数に関する現在の制限については、『AmazonWeb Services General Reference』の「Amazon CloudFront の上限」を参照してください。制限の引き上げを要求するには、

API Version 2014-01-3186

Amazon CloudFront 開発者ガイドクエリ文字列パラメータとRTMPディストリビューション

Page 92: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

https://aws.amazon.com/support/createCase?type=service_limit_increase&serviceLimitIncreaseType=cloudfront-distributionsを参照してください。

Note

オリジンにCookieを転送するようにCloudFrontを構成していない場合、CloudFrontは、オリジンに転送するリクエストから Cookieヘッダーを削除し、クライアントに返すレスポンスから Set-Cookieヘッダーを削除します。

Cookie をオリジンに転送するように CloudFront を構成した場合、以下の処理が行われます。

• CloudFront は、リクエストをオリジンに転送するときに、Cookie の名前と値のペアを含めますが、Cookie の属性(パス、有効期限切れ時間など)を含めません。例えば、以下の Cookieヘッダーでは、CloudFrontは、Cookieの名前と値のペア country=ataを転送しますが、Cookie属性 $Path=/を転送しません。

Cookie: country=ata; $Path=/;

• 指定された Cookie のリストのみを転送するように CloudFront を構成した場合、CloudFront は、リクエストをオリジンに転送する前に、リストにないすべての Cookie を削除します。

• If-Modified-Sinceおよび If-None-Matchの条件付きリクエストはサポートされません。• CloudFront は、リクエストをオリジンに転送する前に、Cookie 名の自然な順序で Cookie を並べ替えます。

オリジンから CloudFront に Cookie が返されると、以下の処理が行われます。

• 特定のキャッシュ動作においてすべての Cookie をオリジンに転送するように CloudFront を構成している場合、CloudFront は、オリジンから返された応答およびすべての Cookie と Cookie 属性をキャッシュします。また、CloudFront は、オブジェクトおよびすべての Cookie と Cookie 属性をビューアに返します。

• 特定のキャッシュ動作において、指定された Cookie のみをオリジンに転送するように CloudFrontを構成している場合、CloudFront は、応答、指定された Cookie、および関連する Cookie 属性をキャッシュします。また、CloudFront は、指定された Cookie と Cookie 属性を含めて、オブジェクトをビューアに返します。

オリジンがホワイトリストに登録された Cookie と登録されていない Cookie の両方を返した場合、CloudFrontはホワイトリストに登録されたCookieのみをキャッシュします。ただし、ホワイトリストに登録されているかどうかにかかわらず、Cookie はすべてビューアに返されます。

• CloudFront で Cookie と Cookie 属性をキャッシュしない場合は、CloudFront への応答に以下のヘッダーを追加するようにオリジンサーバーを構成します。

no-cache="Set-Cookie"

Cookieをオリジンに転送するようにCloudFrontを構成した場合、CloudFrontは、ビューアがリクエストに含めた Cookie を使用して、キャッシュ内のオブジェクトを一意に識別します。例えば、オブジェクト /images/image1.jpgに対する 3 つのリクエストがあり、それらに 3 つの異なる名前と値のペアが含まれる場合、CloudFront は、名前と値のペアごとに 1 回ずつ、同じオブジェクトを 3 回キャッシュします。これは、オリジンがリクエスト内のCookie値を無視し、同じimage1.jpgオブジェクトを CloudFront に常に返す場合にも当てはまります。結果として、同じオブジェクトのリクエストをCloudFront がオリジンサーバーに転送する回数が多くなり、パフォーマンスが低下し、オリジンサーバーの負荷が高くなります。特定の Cookie の値に基づいてオリジンサーバーの応答が変わることがない場合は、その Cookie をオリジンに転送しないように CloudFront を構成することをお勧めします。

Cookie 名と値は、大文字と小文字を区別します。例えば、同じオブジェクトに対する 2 つの Cookieがあり、それらの名前が、大文字小文字が異なる以外は同一の場合、CloudFront はそのオブジェクトを 2 回キャッシュします。

API Version 2014-01-3187

Amazon CloudFront 開発者ガイドCookie とウェブディストリビューション

Page 93: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

Cookie をオリジンに転送しないように CloudFront を構成した場合や、指定された Cookie のリストのみを転送するように CloudFront を構成した場合でも、リクエストと Cookie をログに記録するようにCloudFront を構成した場合、CloudFront はすべての Cookie とすべての Cookie 属性をログに記録します。CloudFront ログ作成の詳細については、「アクセスログ (p. 194)」を参照してください。

CloudFrontコンソールを使用し、CloudFrontでCookieをオリジンに転送するようにディストリビューションを更新する方法については、「CloudFront ディストリビューションの一覧表示、詳細表示、および更新を行う (p. 31)」を参照してください。CloudFront API を使用してディストリビューションを更新する方法については、「Amazon CloudFront API リファレンス」の「PUT Distribution Config」を参照してください。

Cookie と RTMP ディストリビューションRTMP ディストリビューションでは、CloudFront は、オリジンサーバーからのオブジェクトを要求する場合、すべての Cookie を削除してからリクエストをオリジンに転送します。オリジンがオブジェクトとともに何らかの Cookie を返した場合、CloudFront は、オブジェクトをビューアに返す前にそのCookieを削除します。RTMPディストリビューションでは、CloudFrontはCookieをエッジキャッシュにキャッシュしません。

RTMPディストリビューションでは、Cookieをログに記録するようにCloudFrontを構成することはできません。

ディストリビューション内のオブジェクトの追加、削除、または置換

Abstract

CloudFront ディストリビューションのオブジェクトを追加、削除、置換します。

オブジェクトをディストリビューションに追加する方法については、「CloudFront ディストリビューションへのオブジェクトの追加 (p. 88)」を参照してください。

ディストリビューション内のオブジェクトを置き換える場合は、バージョン付きのオブジェクト名を使用することをお勧めします。詳細については、「バージョン付きのオブジェクト名を使用した既存オブジェクトの更新 (p. 89)」を参照してください。同じ名前のオブジェクトでオブジェクトを置き換えることもできます。「同じオブジェクト名を使用した既存オブジェクトの更新 (p. 89)」を参照してください。ディストリビューション内のオブジェクトを置き換えるのにどのような方法を選択したかに関係なく、オブジェクトをCloudFrontキャッシュから削除するタイミングを指定することをお勧めします。詳細については、「CloudFront エッジキャッシュにオブジェクトを保持する時間の指定(有効期限切れ) (p. 90)」を参照してください。

オブジェクトをディストリビューションから直ちに削除する必要がある場合は、オブジェクトを無効にすることができます。詳細については、「オブジェクトの無効化(ウェブディストリビューションのみ) (p. 94)」を参照してください。

CloudFront ディストリビューションへのオブジェクトの追加

Abstract

CloudFront で配布するオブジェクトを追加します。

API Version 2014-01-3188

Amazon CloudFront 開発者ガイドCookie と RTMP ディストリビューション

Page 94: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

オブジェクトをオリジンに追加する場合、オブジェクトをディストリビューション内の Amazon S3 バケットの1つに追加しているか、カスタムオリジンの場合は指定されたドメイン内のディレクトリに追加していることを確認してください。

オブジェクトをオリジンに追加し、オブジェクトへの CloudFront リンクを公開する場合、CloudFrontエッジロケーションは、オブジェクトのエンドユーザーリクエストを受け取るまで、オリジンからオブジェクトをフェッチしません。

CloudFront サーバーは、供給するオブジェクトの MIME タイプを判別しません。オブジェクトをオリジンにアップロードする場合、オブジェクトの Content-Typeヘッダーフィールドを設定する必要があります。

バージョン付きのオブジェクト名を使用した既存オブジェクトの更新

Abstract

コンテンツを識別するバージョン付きのオブジェクト名を使用して、CloudFrontで現在配布しているオブジェクトを更新します。

CloudFront ディストリビューション内の既存のオブジェクトを更新する場合、何らかのバージョン識別名をオブジェクト名またはディレクトリ名に含めて、コンテンツを容易に制御できるようにすることをお勧めします。この識別名には、日付タイムスタンプ、連番など、同じオブジェクトの 2 つのバージョンを区別する方法を使用できます。

例えば、グラフィックファイルに image.jpg ではなく image_1.jpg という名前を付けることができます。ファイルの新しいバージョンを供給する場合は、新しいファイルにimage_2.jpgという名前を付けて、image_2.jpgを指すようにリンクを更新します。また、すべてのグラフィックをimages_v1ディレクトリに配置することもできます。1つ以上のグラフィックの新しいバージョンを供給する場合は、新しいimages_v2ディレクトリを作成し、そのディレクトリを指すようにリンクを更新します。バージョニングを行うことで、CloudFront で新しいバージョンの供給を開始するのにオブジェクトの有効期限切れを待つ必要がなくなり、オブジェクトの無効化に対して料金を支払う必要もなくなります。

オブジェクトにバージョンを設定した場合も、有効期限切れ日付を設定することをお勧めします。詳細については、「CloudFront エッジキャッシュにオブジェクトを保持する時間の指定(有効期限切れ) (p. 90)」を参照してください。

Note

バージョン付きのオブジェクト名またはディレクトリ名の指定は、AmazonS3オブジェクトのバージョニングとは関係がありません。

同じオブジェクト名を使用した既存オブジェクトの更新

Abstract

同じオブジェクト名を使用して、CloudFront で現在配布しているオブジェクトを更新します。

CloudFront ディストリビューション内の既存のオブジェクトを更新し、同じオブジェクト名を使用することできますが、これはお勧めしません。CloudFront は、オブジェクトが要求された場合にのみ、オブジェクトをエッジロケーションに配信します。新しいまたは更新されたオブジェクトがオリジンに配置された場合ではありません。オリジン内の既存のオブジェクトを同じ名前の新しいバージョンで更新した場合、以下の両方のイベントが発生するまで、エッジロケーションはオリジンから新しいバージョンを取得しません。

API Version 2014-01-3189

Amazon CloudFront 開発者ガイドバージョン付きのオブジェクト名を使用した既存オブジェ

クトの更新

Page 95: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

• キャッシュ内にあるオブジェクトの旧バージョンが有効期限切れになった。詳細については、「CloudFront エッジキャッシュにオブジェクトを保持する時間の指定(有効期限切れ) (p. 90)」を参照してください。

• エッジロケーションにオブジェクトのエンドユーザーリクエストが存在する。

オブジェクトを置き換えるときに同じ名前を使用した場合、CloudFront で新しいファイルの供給を開始するタイミングを制御できません。デフォルトでは、CloudFrontはエッジロケーションのキャッシュにオブジェクトを24時間保持します。(詳細については、「CloudFrontエッジキャッシュにオブジェクトを保持する時間の指定(有効期限切れ) (p. 90)」を参照してください)。例えば、ウェブサイト全体のすべてのオブジェクトを置き換えると仮定します。

• 人気のないページのオブジェクトは、どのエッジロケーションにも存在しない可能性があります。これらのオブジェクトの新しいバージョンについては、次回のリクエストで供給が開始されます。

• ページによっては、そのオブジェクトが一部のエッジロケーションに存在し、他のエッジロケーションに存在しない場合があります。したがって、供給元のエッジロケーションによって、エンドユーザーに表示されるバージョンが異なります。

• 最も人気のあるページの新しいバージョンのオブジェクトは、最大で 24 時間供給されない可能性があります。そのようなページのオブジェクトは、新しいバージョンで置き換えられる直前に、CloudFront が取り込んでいる可能性があるためです。

CloudFront エッジキャッシュにオブジェクトを保持する時間の指定(有効期限切れ)

Abstract

オブジェクトが CloudFront キャッシュとブラウザキャッシュに保持される時間を制御します。

Topics• ウェブディストリビューションで CloudFront がキャッシュにオブジェクトを保持する最小時間の指定 (p. 92)

• RTMP ディストリビューションで CloudFront がキャッシュにオブジェクトを保持する最小時間の指定 (p. 93)

• Amazon S3 コンソールを使用したオブジェクトへのヘッダーの追加 (p. 93)

CloudFront が別のリクエストをオリジンに転送するまでにオブジェクトをCloudFront キャッシュに保持する時間を制御できます。この期間を短くすると、動的なコンテンツを供給できます。この期間を長くすると、カスタマーはより良いパフォーマンスを得ることができます。オブジェクトがエッジキャッシュから直接供給される可能性が高くなるためです。期間を長くすると、オリジンの負荷も軽減されます。

Note

CloudFrontがオリジンに別のリクエストを転送して、リクエストされたオブジェクトを再度取得することを試みるまでに、エラー(例: 404 Not found)がCloudFrontキャッシュに保持される時間を制御することもできます。詳細については、「CloudFront が HTTP 4xxおよび5xxステータスコードを処理およびキャッシュする方法 (p. 123)」を参照してください。

通常、CloudFront は、オブジェクトが有効期限切れになるまで、エッジロケーションからオブジェクトを供給します。オブジェクトが有効期限切れになると、エッジロケーションがオブジェクトのエンドユーザーリクエストを次に受け取ったときに、CloudFront は、リクエストをオリジンサーバーに転送し、キャッシュにオブジェクトの最新バージョンが含まれていることを確認します。

API Version 2014-01-3190

Amazon CloudFront 開発者ガイドCloudFrontエッジキャッシュにオブジェクトを保持する時

間の指定(有効期限切れ)

Page 96: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

• CloudFront に最新バージョンがすでにある場合、オリジンはステータスコード 304 (変更なし)のみを返します。

• CloudFrontに最新バージョンがない場合、オリジンはステータスコード200(OK)とオブジェクトの最新バージョンを返します。

エッジロケーションにあるオブジェクトのうち、頻繁に要求されないオブジェクトは、CloudFront によって削除される場合があります。つまり、オブジェクトが有効期限切れ日付前に削除されます。これにより、人気のあるオブジェクト用にスペースが確保されます。

デフォルトでは、各オブジェクトは 24 時間後に自動的に有効期限切れになります。別の有効期限切れ時間を指定するには、Cache-Control max-ageディレクティブまたは Expiresヘッダーフィールドの値を各オブジェクトに追加するようにオリジンを構成します。

• Cache-Control max-ageディレクティブでは、CloudFront がオリジンサーバーからオブジェクトを再度取得するまでにオブジェクトをキャッシュに保持する時間(秒)を指定できます。CloudFrontがサポートする最小の有効期限切れ時間は、ウェブディストリビューションで 0 秒、RTMP ディストリビューションで 3600 秒です。最大で 2038 年までです。値は次の形式で指定します。

Cache-Control: max-age= 

例えば、次のディレクティブはCloudFrontに関連付けられているオブジェクトを3600秒(1時間)キャッシュに保持するよう指示します。

Cache-Control: max-age=3600

ブラウザキャッシュに保持される期間とは異なる期間、オブジェクトをCloudFrontエッジキャッシュに保持する場合、Cache-Control max-ageディレクティブと Cache-Control s-maxageディレクティブを併用できます。詳細については、「ウェブディストリビューションでCloudFrontがキャッシュにオブジェクトを保持する最小時間の指定 (p. 92)」を参照してください。

• Expiresヘッダーフィールドでは、「RFC 2616、ハイパーテキスト転送プロトコル––HTTP/1.1セクション 3.3.1、完全な日付」に規定された形式を使用して、有効期限切れ日時を指定できます。

Sat, 30 Jun 2012 23:59:59 GMT

Important

Expiresヘッダー内の有効期限切れ日時が経過すると、エッジロケーションがオブジェクトのリクエストを受け取るたびに、CloudFrontはオリジンサーバーからオブジェクトを再取得します。

オブジェクトのキャッシュを制御するには、Expiresヘッダーフィールドではなく、Cache-Controlmax-ageディレクティブを使用することをお勧めします。Cache-Control max-ageと Expiresの両方の値を指定した場合、CloudFront は max-ageの値のみを使用します。

エンドユーザーからのGETリクエスト内にあるHTTPCache-ControlまたはPragmaヘッダーフィールドを使用して、オリジンサーバーに戻ってオブジェクトを取得するように CloudFront を強制することはできません。CloudFrontは、エンドユーザーからのそのようなヘッダーフィールドを無視します。

Cache-ControlおよびExpiresヘッダーフィールドの詳細については、「RFC2616、ハイパーテキスト転送プロトコル –– HTTP/1.1」の以下のセクションを参照してください。

• セクション 14.9 キャッシュ制御• セクション 14.21 期限

API Version 2014-01-3191

Amazon CloudFront 開発者ガイドCloudFrontエッジキャッシュにオブジェクトを保持する時

間の指定(有効期限切れ)

Page 97: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

AWS SDK for PHP を使用して Cache-Controlおよび Expiresヘッダーフィールドを追加する方法の例については、「Amazon Simple Storage Service 開発者ガイド」の「AWS SDK for PHP を使用した1つのオブジェクトのアップロード」を参照してください。これらのフィールドを追加できるサードパーティツールもあります。

ウェブディストリビューションでCloudFrontがキャッシュにオブジェクトを保持する最小時間の指定ウェブディストリビューションでは、Cache-Controlまたは Expiresヘッダーをオブジェクトに追加する場合、別のリクエストをオリジンに転送するまでに CloudFront がキャッシュにオブジェクトを保持する最小時間を指定できます。これらのヘッダーは、別のリクエストを CloudFront に転送するまでにブラウザがオブジェクトをキャッシュに保持する期間に影響します。

最小 TTL > 0最小 TTL = 0 (デフォルト)

• CloudFront キャッシュ: オブジェクトは、Cache-Controlmax-ageディレクティブの値、または CloudFront の[MinimumTTL]の値のうち、どちらか大きいほうの時間、キャッシュに保持されます。

• ブラウザキャッシュ: オブジェクトは、Cache-Controlmax-ageディレクティブの値の間、キャッシュに保持されます。

CloudFront とブラウザーは、Cache-Control max-ageディレクティブのオブジェクトをキャッシュします。

オリジンが Cache-Controlmax-ageディレクティブをオブジェクトに追加する

• CloudFront キャッシュ: 24 時間または CloudFront の[MinimumTTL]のうち、どちらか大きいほうの時間、オブジェクトがキャッシュに保持されます。

• ブラウザキャッシュ: ブラウザによります。

• CloudFront キャッシュ: オブジェクトが24時間キャッシュされます。

• ブラウザキャッシュ:ブラウザによります。

オリジンが Cache-Controlmax-ageディレクティブを追加しない

• CloudFront キャッシュ: オブジェクトは、Cache-Controls-maxageディレクティブの値、または CloudFront の[MinimumTTL]の値のうち、どちらか大きいほうの時間、キャッシュに保持されます。

• ブラウザキャッシュ: オブジェクトは、Cache-Controlmax-ageディレクティブの値の間、キャッシュに保持されます。

• CloudFront キャッシュ: オブジェクトは、Cache-Controls-maxageディレクティブの値の間、キャッシュに保持されます。

• ブラウザキャッシュ:オブジェクトは、Cache-Controlmax-ageディレクティブの値の間、キャッシュに保持されます。

オリジンが Cache-Controlmax-ageと Cache-Controls-maxageディレクティブをオブジェクトに追加する

API Version 2014-01-3192

Amazon CloudFront 開発者ガイドCloudFrontエッジキャッシュにオブジェクトを保持する時

間の指定(有効期限切れ)

Page 98: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

最小 TTL > 0最小 TTL = 0 (デフォルト)

• CloudFront キャッシュ:Expiresヘッダーの日付までオブジェクトがキャッシュに保持されます。この日付を超えると、オブジェクトは、CloudFront の [Minimum TTL]の値の間、キャッシュに保持されます。

• ブラウザキャッシュ: Expiresヘッダーの日付までオブジェクトがキャッシュに保持されます。この日付を超えると、ブラウザはリクエストをすべてCloudFront に転送します。

CloudFront およびブラウザーはExpiresヘッダーの日付までオブジェクトをキャッシュします。この日付を超えると、CloudFront は各リクエストをオリジンに転送します。

オリジンがExpiresヘッダーを追加する

• CloudFront キャッシュ: 最小TTL の期間、オブジェクトがキャッシュに保持されます。

• ブラウザキャッシュ: ブラウザはヘッダーを優先します。

CloudFront とブラウザはヘッダーを尊重します。

オリジンが、Cache-Controlno-cache、no-store、およびprivateディレクティブ、またはこのいずれかをオブジェクトに追加する

CloudFront コンソールを使用してウェブディストリビューションの設定を変更する方法については、「CloudFront ディストリビューションの一覧表示、詳細表示、および更新を行う (p. 31)」を参照してください。CloudFront API を使用してウェブディストリビューションの設定を変更する方法については、「PUT Config」を参照してください。

RTMP ディストリビューションで CloudFront がキャッシュにオブジェクトを保持する最小時間の指定RTMP ディストリビューションでは、CloudFront はオブジェクトをエッジキャッシュにデフォルトで24時間保持します。Cache-ControlまたはExpiresヘッダーをオブジェクトに追加して、CloudFrontが別のリクエストをオリジンに転送するまでのキャッシュ保持期間を 1 時間(3600 秒)までに減らすことができます。それより低い値を指定しても、CloudFront は 3600 秒を使用します。

AmazonS3コンソールを使用したオブジェクトへのヘッダーの追加

Note

Amazon S3コンソールを使用した場合、1回で1つのオブジェクトにのみヘッダーを追加できますが、一部のサードパーティツールを使用した場合、1 回で複数の Amazon S3 オブジェクトにヘッダーを追加できます。AmazonS3をサポートするサードパーティツールの詳細については、ウェブで AWS S3           を検索してください。

API Version 2014-01-3193

Amazon CloudFront 開発者ガイドCloudFrontエッジキャッシュにオブジェクトを保持する時

間の指定(有効期限切れ)

Page 99: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

Amazon S3 コンソールを使用して、Cache-Controlまたは ExpiresヘッダーフィールドをAmazon S3 オブジェクトに追加するには

1. AWS マネジメントコンソールにサインインして Amazon S3 コンソール(https://console.aws.amazon.com/s3/)を開きます。

2. AmazonS3コンソールの[Buckets]ペインで、ファイルを含むバケットの名前をクリックします。3. [Objects and Folders] ペインで、ヘッダーフィールドの追加先とする最初のオブジェクトを選択し

ます。4. [Objects and Folders] ペインの上部で、[Actions]、[Properties] の順にクリックします。5. [Properties] ペインで、[Metadata] タブをクリックします。6. [Metadata] タブで、[Add More Metadata] をクリックします。7. [Key] リストで、必要に応じて [Cache-Control] または [Expires] をクリックします。8. [Value] フィールドに適用可能な値を入力します。

• [Cache-Control] フィールドでは、次のように入力します。

max-age=number of seconds that you want objects to stay in a CloudFrontedge cache

• [Expires] フィールドでは、日時を HTML 形式で入力します。

9. [Save] をクリックします。10. ヘッダーフィールドを他のオブジェクトに追加する場合は、[Objects and Folders] ペインで、次の

オブジェクトの名前をクリックし、ステップ 6 ~ 9 を繰り返します。

オブジェクトの無効化(ウェブディストリビューションのみ)

Abstract

有効期限が切れる前にオブジェクトを無効にすることで、CloudFrontディストリビューションキャッシュからオブジェクトを削除します。

Topics• オブジェクトを無効化するか、バージョン付きオブジェクト名を使用するかの選択 (p. 95)• 無効にするオブジェクトの決定 (p. 95)• オブジェクトの無効化および無効化に関する情報の表示 (p. 95)• オブジェクトを無効にするためのサードパーティツール (p. 98)• 無効化の制限 (p. 98)• オブジェクトの無効化に対する支払い (p. 99)

オブジェクトが有効期限切れになる前に CloudFront エッジサーバーキャッシュからオブジェクトを削除する場合、以下のどちらかの処理を行うことができます。

• オブジェクトを無効にします。エンドユーザーが次にオブジェクトを要求したときに、CloudFrontはオリジンに戻ってオブジェクトの最新バージョンをフェッチします。

• オブジェクトのバージョニングを使用して、異なる名前を持つ異なるバージョンのオブジェクトを供給します。詳細については、「バージョン付きのオブジェクト名を使用した既存オブジェクトの更新 (p. 89)」を参照してください。

API Version 2014-01-3194

Amazon CloudFront 開発者ガイドオブジェクトの無効化(ウェブディストリビューションの

み)

Page 100: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

Important

ウェブディストリビューションで提供されるほとんどの種類は無効にできます。しかし、該当するキャッシュ動作についてスムーズストリーミングを有効にしても、Microsoftスムーズストリーミング形式のメディアファイルを無効にすることはできません。さらに、RTMPディストリビューションで供給されるオブジェクトを無効にすることはできません。

月ごとに、指定された数のオブジェクトを無料で無効にできます。この制限を超えると、無効にするオブジェクトごとに料金が発生します。例えば、ディレクトリとディレクトリ内のすべてのファイルを無効にする場合、ディレクトリと各ファイルを個々に無効にする必要があります。多数のファイルを無効にする必要がある場合は、新しいディストリビューションを作成し、その新しいディストリビューションを参照するようにオブジェクトパスを変更する方法が、容易で安価な場合があります。無効化に関する料金の詳細については、「オブジェクトの無効化に対する支払い (p. 99)」を参照してください。

オブジェクトを無効化するか、バージョン付きオブジェクト名を使用するかの選択ディストリビューションから供給されるオブジェクトのバージョンを制御するには、オブジェクトを無効にするか、バージョン付きファイル名をオブジェクトに設定します。オブジェクトを頻繁に更新する必要がある場合は、以下の理由で、オブジェクトのバージョニングを第一に使用することをお勧めします。

• バージョニングを使用すると、ローカルにキャッシュされている、または企業のキャッシュプロキシの背後にキャッシュされているバージョンをエンドユーザーが保持している場合でも、リクエストがどのオブジェクトを返すかを制御できます。オブジェクトを無効にした場合、キャッシュ内でオブジェクトが有効期限切れになるまで、ユーザーに旧バージョンが引き続き表示されることがあります。

• CloudFront アクセスログにファイル名が含まれるので、バージョニングを使用すると、オブジェクトの変更結果の分析が容易になります。

• バージョニングは、さまざまなバージョンのオブジェクトをさまざまなエンドユーザーに供給する方法を提供します。

• バージョニングによって、オブジェクトのリビジョン間のロールフォワードとロールバックが簡素化されます。

• バージョニングのほうがコストが安くなります。CloudFront が新しいバージョンのオブジェクトをエッジロケーションに転送することに関して料金を支払う必要がありますが、オブジェクトの無効化に関してファイル単位で料金を支払う必要はありません。

オブジェクトのバージョニングの詳細については、「バージョン付きのオブジェクト名を使用した既存オブジェクトの更新 (p. 89)」を参照してください。

無効にするオブジェクトの決定すべての CloudFront エッジキャッシュ内のすべてのオブジェクトを無効にする必要があり、ユーザーがオリジンのすべてのオブジェクトに必ずしもアクセスしない場合は、ビューアが CloudFront からどのオブジェクトを要求したかを確認し、そのオブジェクトのみを無効にできます。ビューアがどのオブジェクトを要求したかを確認するには、CloudFront アクセスログの作成を有効にします。アクセスログの詳細については、「アクセスログ (p. 194)」を参照してください。

オブジェクトの無効化および無効化に関する情報の表示CloudFront コンソールまたは CloudFront API アクションを使用して、無効化の作成と実行、以前に送信された無効化のリストの表示、および個々の無効化に関する詳細情報の表示を行うことができます。また、既存の無効化のコピー、オブジェクトパスのリストの編集、および編集された無効化の実行を行うこともできます。

API Version 2014-01-3195

Amazon CloudFront 開発者ガイドオブジェクトの無効化(ウェブディストリビューションの

み)

Page 101: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

該当するトピックを参照してください。

• CloudFront コンソールを使用したオブジェクトの無効化 (p. 96)• CloudFront コンソールを使用した既存の無効化のコピー、編集、および再実行 (p. 97)• CloudFront コンソールを使用した無効化のリストの表示 (p. 98)• CloudFront コンソールを使用した無効化に関する情報の表示 (p. 98)• CloudFront API を使用したオブジェクトの無効化および無効化に関する情報の表示 (p. 98)

CloudFront コンソールを使用したオブジェクトの無効化

作成する無効化の数に制限はありませんが、進行中のディストリビューションごとに含めることができる無効化は1回につき3個のみです。各リクエストには、無効にするオブジェクトを最大で1000個含めることができます。これらの制限を超えた場合、CloudFront コンソールにエラーメッセージが表示されます。現在進行中の無効化の数を確認するには、[Invalidations] タブの [Status] 列を確認します。

CloudFront コンソールを使用してオブジェクトを無効にするには

1. AWS マネジメントコンソールにサインインし、Amazon CloudFront コンソール(https://console.aws.amazon.com/cloudfront/)を開きます。

2. 無効にするオブジェクトのディストリビューションをクリックします。3. [Distribution Settings] をクリックします。4. [Invalidations] タブをクリックします。5. [Create Invalidation] をクリックします。6. 無効にするオブジェクトのパスを入力します。次の点に注意してください。

• ウェブディストリビューションに関連付けられたオブジェクトのみを無効にできます。• CloudFront からの供給を停止する各オブジェクトおよび各ディレクトリを明示的に無効にする必要があります。ワイルドカードを使用してオブジェクトのグループを無効にすることはできません。また、ディレクトリパスを指定してディレクトリ内のすべてのオブジェクトを無効することもできません。

• パスはディストリビューションを基準とする相対パスです。先頭の / はオプションです。例えば、http://d111111abcdef8.cloudfront.net/images/image2.jpgのオブジェクトを無効にするには、次のように指定します。

/images/image2.jpg

または

images/image2.jpg

• クエリ文字列をオリジンに転送するように CloudFront を構成している場合、オブジェクトを無効にするときにクエリ文字列を含める必要があります。例えば、次のように指定します。• images/image.jpg?parameter1=a

• images/image.jpg?parameter1=b

同じオブジェクトに対する5つの異なるクエリ文字列がクライアントリクエストに含まれている場合、そのオブジェクトを、クエリ文字列ごとに1回ずつ、5回無効にする必要があります。詳細については、「CloudFront がクエリ文字列パラメータの転送、キャッシュ、およびログ作成を行う方法 (p. 84)」を参照してください。使用中のクエリ文字列を確認するには、CloudFrontログ作成を有効にすることができます。詳細については、「アクセスログ (p. 194)」を参照してください。

• 署名付き URL を使用している場合は、URL の疑問符(?)の前の部分のみを含めてオブジェクトを無効にします。

• オブジェクトがディレクトリであり、ディレクトリの指定方法(末尾のスラッシュ(/)を付けるかどうか)に関して標準化されていない場合、末尾のスラッシュを付けたものと付けないもの

API Version 2014-01-3196

Amazon CloudFront 開発者ガイドオブジェクトの無効化(ウェブディストリビューションの

み)

Page 102: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

を使用してディレクトリを無効にすることをお勧めします(例: imagesおよび images/)。詳細については、「パブリック URL がディレクトリの無効化に与える影響 (p. 83)」を参照してください。

• 最大で 1000 個のオブジェクトを指定できます。• パスの最大長は 4000 文字です。• デフォルトルートオブジェクトを無効にする場合、他のオブジェクトのパスを指定する場合と同じ方法でパスを指定します。

• パスに ASCII 以外の文字が含まれるか、RFC 1783 (http://www.ietf.org/rfc/rfc1738.txt)に規定された安全でない文字が含まれる場合、その文字を URL エンコードします。パスに含まれる他の文字をURLエンコードしないでください。URLエンコードした場合、CloudFrontは、更新されたオブジェクトの旧バージョンを無効にしません。

• オリジンにCookieを転送するようにCloudFrontを構成した場合、CloudFrontエッジキャッシュにオブジェクトの複数のバージョンが含まれている場合があります。オブジェクトを無効にすると、CloudFrontは、関係付けられたCookieに関係なく、そのオブジェクトのキャッシュされたあらゆるバージョンを無効にします。一部のバージョンを選択して無効にすることも、関連付けられた Cookie に基づいてその他のバージョンを選択して無効にすることもできません。詳細については、「CloudFrontがCookieの転送、キャッシュ、およびログ作成を行う方法(p. 86)」を参照してください。

7. [Invalidate] をクリックします。

CloudFrontコンソールを使用した既存の無効化のコピー、編集、および再実行

以前に作成した無効化をコピーし、オブジェクトパスのリストを更新して、更新した有効化を実行することができます。既存の無効化をコピーし、オブジェクトパスを更新して、更新した無効化を実行せずに保存することはできません。

Important

進行中の無効化をコピーし、オブジェクトパスのリストを更新して、更新した無効化を実行した場合、コピーした無効化を CloudFront が停止または削除することはありません。あるオブジェクトパスがオブジェクトとコピーの両方に含まれる場合、CloudFrontはこのオブジェクトの無効化を2回試みます。この2回の無効化は月ごとの無料の無効化の最大数に対してカウントされます。無料で行うことができる有効化の最大数にすでに達している場合は、各オブジェクトの両方の無効化に対して料金が発生します。詳細については、「無効化の制限(p. 98)」を参照してください。

CloudFront コンソールを使用して、既存の無効化のコピー、編集、および再実行を行う

1. AWS マネジメントコンソールにサインインし、Amazon CloudFront コンソール(https://console.aws.amazon.com/cloudfront/)を開きます。

2. コピーする無効化が含まれるディストリビューションをクリックします。3. [Distribution Settings] をクリックします。4. [Invalidations] タブをクリックします。5. コピーする無効化をクリックします。

コピーする無効化が不明な場合は、無効化をクリックし、[Details]をクリックすると、その無効化の詳細情報が表示されます。

6. [Copy] をクリックします。7. 必要に応じて、オブジェクトパスのリストを更新します。8. [Invalidate] をクリックします。

API Version 2014-01-3197

Amazon CloudFront 開発者ガイドオブジェクトの無効化(ウェブディストリビューションの

み)

Page 103: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

CloudFront コンソールを使用した無効化のリストの表示

コンソールを使用して、ディストリビューションにおいて作成および実行された最後の 100 個の無効化のリストを表示できます。100 個を超える無効化のリストを取得する場合は、GET Invalidation ListAPI アクションを使用します。詳細については、「Amazon CloudFront API リファレンス」の「GETInvalidation List」を参照してください。

CloudFront コンソールを使用して、無効化のリストを表示するには

1. AWS マネジメントコンソールにサインインし、Amazon CloudFront コンソール(https://console.aws.amazon.com/cloudfront/)を開きます。

2. 無効化リストの表示の対象となるディストリビューションをクリックします。3. [Distribution Settings] をクリックします。4. [Invalidations] タブをクリックします。

CloudFront コンソールを使用した無効化に関する情報の表示

ディストリビューション ID、無効化 ID、無効化のステータス、無効化が作成された日時、オブジェクトパスの完全リストを含め、無効化に関する詳細情報を表示できます。

CloudFront コンソールを使用して、無効化に関する情報を表示するには

1. AWS マネジメントコンソールにサインインし、Amazon CloudFront コンソール(https://console.aws.amazon.com/cloudfront/)を開きます。

2. 詳細情報の表示の対象となる無効化が含まれるディストリビューションをクリックします。3. [Distribution Settings] をクリックします。4. [Invalidations] タブをクリックします。5. 詳細情報の表示の対象となる無効化をクリックします。6. [Details] をクリックします。

CloudFront API を使用したオブジェクトの無効化および無効化に関する情報の表示

オブジェクトの無効化に関する情報、および CloudFront API, を使用して無効化に関する情報を表示する方法については、「Amazon CloudFront API リファレンス」の該当するトピックを参照してください。

• オブジェクトの無効化: POST Invalidation• 無効化のリストの取得: GET Invalidation List• 特定の無効化に関する情報の取得: GET Invalidation

オブジェクトを無効にするためのサードパーティツールCloudFront から提供される無効化方法に加えて、いくつかのサードパーティツールでオブジェクトを無効にするための方法が提供されます。ツールのリストについては、「オブジェクトの無効化(p.301)」を参照してください。

無効化の制限実行する無効化リクエストの数に制限はありませんが、進行中のディストリビューションごとに含めることができる無効化リクエストは 1 回につき 3 個のみです。各リクエストには、無効にするオブジェ

API Version 2014-01-3198

Amazon CloudFront 開発者ガイドオブジェクトの無効化(ウェブディストリビューションの

み)

Page 104: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

クトを最大で1000個含めることができます。この制限を超えた場合、CloudFrontはエラーメッセージを返します。

Note

通常、CloudFrontが無効化リクエストを完了するまで、リクエストのサイズに応じて10~15分かかります。

オブジェクトの無効化に対する支払い1 か月に要求したオブジェクトの無効化のうち、最初の 1000 個は無料です。1 か月に 1000 個を超える、オブジェクトの各無効化に対して支払いが発生します。この上限は、1 つの AWS アカウントで作成されたすべてのディストリビューションにおいて行われたオブジェクトの無効化の総数に適用されます。例えば、AWS アカウント [email protected]を使用して 3 個のディストリビューションを作成したとします。ある月に、各ディストリビューションに600個のオブジェクトの無効化(合計で1,800個の無効化)が含まれました。この場合、AWSは、その月に 800個のオブジェクトの無効化に対して料金を請求します。無効化の料金表に関する具体的な情報については、「AmazonCloudFront料金表」を参照してください。

Note

無効化の料金表の目的上、オブジェクトの無効化リクエストは 1 つの Pathエレメントオブジェクトとして定義されます。Pathエレメントの詳細については、「オブジェクトの無効化および無効化に関する情報の表示 (p. 95)」を参照してください。

エラーレスポンスのカスタマイズAbstract

オブジェクトを使用できないときにカスタムエラーメッセージを表示します。

Topics• カスタムエラーページのキャッシュ動作を作成または更新する (p. 100)• レスポンスコードを変更する (p. 101)• CloudFront がエラーをキャッシュする時間を制御する (p. 101)• カスタムエラーページが利用不可である場合の CloudFront の応答 (p. 102)• カスタムエラーページの料金 (p. 102)• エラーレスポンス動作を構成する (p. 102)

CloudFront から供給されているオブジェクトが何らかの理由で使用できなくなったとき、通常、ウェブサーバーは CloudFront に HTTP ステータスコードを返します。例えば、ビューアが無効な URL を指定している場合、ウェブサーバーは404ステータスコードをCloudFront に返し、CloudFront はそのステータスコードをビューアに返します。ビューアには、次のような簡潔で特に書式設定されていないデフォルトメッセージが表示されます。

Not Found: The requested URL /myfilename.html was not found on this server.

デフォルトメッセージはなく、お客様のウェブサイトの他のページと同じ書式設定のカスタムエラーメッセージを表示することを希望する場合は、カスタムエラーメッセージを含むオブジェクト(例:HTML ファイル)が CloudFront からビューアに返されるようにすることができます。

API Version 2014-01-3199

Amazon CloudFront 開発者ガイドエラーレスポンスのカスタマイズ

Page 105: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

サポートされている HTTP ステータスコードごとに異なるオブジェクトを指定することができます。または、サポートされているすべてのステータスコードに同じオブジェクトを使用することもできます。一部のステータスコードにオブジェクトを指定して、それ以外には指定しないことも可能です。

CloudFrontを通して供給されているオブジェクトは、様々な理由で使用できなくなることがあります。理由は、大きく 2 つに分類できます。以下にそれぞれを説明します。

• クライアントエラーは、リクエストに問題があります。例えば、指定した名前のオブジェクトを取得できない、または Amazon S3 バケット内のオブジェクトを取得するために必要な許可をユーザーが持っていないという場合です。クライアントエラーが発生すると、オリジンは 400 番台の HTTP ステータスコードを CloudFront に返します。

• サーバーエラーは、オリジンサーバーに問題があります。例えば、HTTPサーバーが混雑していたり使用不能であったりする場合です。サーバーエラーが発生すると、オリジンサーバーから 500 番台の HTTP ステータスコードが CloudFront に返されるか、または一定の時間オリジンサーバーからCloudFront へのレスポンスがなくなり(ゲートウェイタイムアウトと見なされて)504 ステータスコードが返されます。

CloudFront がカスタムエラーページを返すことのできる HTTP ステータスコードは、以下のとおりです。

• 400、403、404、405、414• 500、501、502、503、504

CloudFrontがオリジンからのエラーレスポンスを処理する方法の詳細な説明は、「CloudFrontがHTTP4xx および 5xx ステータスコードを処理およびキャッシュする方法 (p. 123)」を参照してください。

カスタムエラーページのキャッシュ動作を作成または更新するオブジェクトとカスタムエラーページを別の場所に保存する場合は、次の状況に該当するときに適用されるキャッシュ動作をディストリビューションに組み込む必要があります。

API Version 2014-01-31100

Amazon CloudFront 開発者ガイドカスタムエラーページのキャッシュ動作を作成または更新

する

Page 106: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

• Path Pattern の値が、カスタムエラーメッセージのパスと一致する。例えば、4xx エラーのカスタムエラーページを /4xx-errorsというディレクトリーの Amazon S3 バケットに保存したとします。このとき、パスパターンによってカスタムエラーページのリクエストがルーティングされる場所のキャッシュ動作を、ディストリビューションに組み込む必要があります(例: /4xx-errors/*)。

• Origin の値が、カスタムエラーページを含むオリジンの Origin ID の値を指定している。

詳細については、トピック「ウェブディストリビューションを作成または更新する場合に指定する値 (p. 46)」の「キャッシュ動作の設定 (p. 51)」を参照してください。

レスポンスコードを変更するCloudFront から返される HTTP ステータスコードを選択するとともに、特定の HTTP ステータスコードにカスタムエラーページを指定することができます。例えば、オリジンから 500 ステータスコードが CloudFront に返されるときに、CloudFront からカスタムエラーページと 200 ステータスコード(OK)がビューアに返されるようにしたいことがあります。オリジンから返されるステータスコードとは異なるステータスコードがCloudFrontから返されるようにしたいのには、様々な理由があります。

• インターネットデバイス(一部のファイアウォールやコーポレートプロキシーなど)の中には、HTTP4xxと5xxを遮断して、レスポンスをビューアに返さないものがあります。200に置き換えるなら、レスポンスが遮断されることはほぼなくなります。

• 各種のクライアントエラーとサーバーエラーを区別しなくてよいのであれば、4xxおよび5xxのすべてのステータスコードに対して400または 500をCloudFront が返す値として指定することができます。

• 200ステータスコード(OK)と静的ウェブサイトが返されるようにして、お客様のウェブサイトが停止していることをカスタマーに気づかれないようにすることもできます。

CloudFront からカスタムエラーページとともにビューアに返せる HTTP ステータスコードは、以下のとおりです。

• 200• 400、403、404、405、414• 500、501、502、503、504

CloudFront がエラーをキャッシュする時間を制御するデフォルトでは、オリジンから HTTP 4xx または 5xx ステータスコードが返されると、CloudFront はこれらのエラーレスポンスを5分間キャッシュし、その後オブジェクトに対する次のリクエストをオリジンに送信して、エラーの原因となった問題が解決され、リクエストしたオブジェクトが利用可能になったかどうか確認します。

CloudFront がキャッシュする 4xx および 5xx ステータスコードそれぞれに対して、エラーキャッシュ期間(エラーキャッシュ最小TTL)を指定 (p. 102)することができます。期間を指定する場合は、以下の点に注意してください。

• 短いエラーキャッシュ期間を指定すると、長い期間を指定した場合に比べて CloudFront からオリジンに転送されるリクエストの数が多くなります。5xxエラーの場合、期間を短く設定することによって、オリジンからエラーが返されることになった問題が悪化する可能性があります。

• オリジンがオブジェクトに関するエラーを返すと、CloudFront は、エラーキャッシュ期間が終了するまで、オブジェクトのリクエストにエラーレスポンスで応答するか、またはカスタムエラーページで応答します。長いエラーキャッシュ期間を指定するなら、オブジェクトが再び利用可能になった後

API Version 2014-01-31101

Amazon CloudFront 開発者ガイドレスポンスコードを変更する

Page 107: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

も、CloudFront は長い間、リクエストにエラーレスポンスまたはカスタムエラーページで引き続き応答するかもしれません。

CloudFront がエラーをキャッシュする時間を個別のオブジェクトに対して制御することを希望する場合は、以下のようにして、対象のオブジェクトのエラーレスポンスに適切なヘッダーを追加するようにオリジンサーバーを構成できます。

• オリジンが Cache-Control max-ageまたは Cache-Control s-maxageディレクティブ、あるいは Expiresヘッダーを追加する場合: CloudFront は、ヘッダーの値と [Error Caching MinimumTTL] の値を比較してより大きい値の期間、エラーレスポンスをキャッシュします。

• オリジンが他の Cache-Controlディレクティブを追加し、ヘッダーは追加しない場合: CloudFrontは、[Error Caching Minimum TTL] の値の期間、エラーレスポンスをキャッシュします。

オブジェクトに対する 4xx または 5xx ステータスコードの有効期限切れ時間が必要な待機時間よりも長い場合は、リクエストされたオブジェクトのURLを使ってそのステータスコードを無効化できます。オリジンが複数のオブジェクトに対してエラーレスポンスを返している場合は、各オブジェクトについて個別に無効化する必要があります。オブジェクトの無効化については、「オブジェクトの無効化(ウェブディストリビューションのみ) (p. 94)」を参照してください。

カスタムエラーページが利用不可である場合のCloudFront の応答HTTP ステータスコードに対してカスタムエラーページを返すように CloudFront を構成したのに、カスタムエラーページが利用不可である場合、CloudFront は CloudFront がカスタムエラーページを持つオリジンから受信したステータスコードをビューアに返します。例えば、カスタムオリジンから 500ステータスコードが返され、500 ステータスコードのためのカスタムエラーページを Amazon S3 バケットから取得するように CloudFront を構成してあるとします。ところが、だれかがうっかりカスタムエラーページをバケットから削除してしまいました。そのオブジェクトをリクエストしたビューアに対して、CloudFront は HTTP 404 ステータスコード(Not found)を返します。

カスタムエラーページの料金CloudFront がカスタムエラーページをビューアに返したときに、リクエストしたオブジェクトの料金ではなく、カスタムエラーページの標準CloudFront 料金を支払います。CloudFront 料金の詳細については、「CloudFront の請求および使用状況レポート (p. 8)」を参照してください。

エラーレスポンス動作を構成するCloudFront API またはCloudFront コンソールを使用して、CloudFront エラーレスポンスを構成できます。CloudFront API を使用してエラーレスポンスを構成する方法については、「Amazon CloudFrontAPI リファレンス」の「PUT Distribution Config」に記載されている CustomErrorResponsesエレメントの箇所を参照してください。

コンソールを使用して CloudFront エラーレスポンスを構成するには

1. オリジンから HTTP 4xx または 5xx エラーが返されたときに CloudFront がビューアに返すカスタムエラーページを作成します。ページは CloudFront からアクセス可能な場所に保存します。

カスタムオリジンを使用していない場合であっても、カスタムエラーページは Amazon S3 バケットに保存することをお勧めします。カスタムエラーページを HTTP サーバーに保存した場合、このサーバーが5xxエラーを返し始めるなら、オリジンサーバーが利用不可であるために、CloudFrontはビューアに返すべきファイルを取得できません。

API Version 2014-01-31102

Amazon CloudFront 開発者ガイドカスタムエラーページが利用不可である場合のCloudFront

の応答

Page 108: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

2. 少なくとも、カスタムエラーページに対する read許可が CloudFront に付与されていることを確認してください。

Amazon S3許可の詳細については、「Amazon Simple Storage Service開発者ガイド」の「アクセスコントロール」を参照してください。Amazon S3 コンソールを使用して許可を更新する方法については、「Amazon Simple Storage Service Console User Guide」を参照してください。

3. (オプション)可能であれば、Cache-Controlディレクティブまたは Expiresヘッダーを、特定のオブジェクトに対するエラーレスポンスとともに追加するようにオリジンサーバーを構成します。詳細については、「CloudFrontがエラーをキャッシュする時間を制御する(p. 101)」を参照してください。

4. AWS マネジメントコンソールにサインインし、Amazon CloudFront コンソール(https://console.aws.amazon.com/cloudfront/)を開きます。

5. ディストリビューションのリストで、更新するディストリビューションを選択して、[DistributionSettings] をクリックします。

6. [Error Pages] タブをクリックします。その後、[Create Custom Error Response] をクリックするか、または既存のエラーコードをクリックするかして、[Edit] をクリックします。

7. 適切な値を入力します。詳細については、「CustomErrorPages(カスタムエラーページ)とErrorCaching(エラーキャッシュ) (p. 60)」を参照してください。

8. カスタムエラーページを返すように CloudFront を構成した場合は、該当するキャッシュ動作を追加または更新します。詳細については、「カスタムエラーページのキャッシュ動作を作成または更新する (p. 100)」を参照してください。

9. 変更を保存するには、[Yes, Edit] をクリックします。

CloudFrontがオブジェクトの部分的リクエスト(レンジ GET)を処理する方法

Abstract

CloudFront がオブジェクトの部分的リクエスト(レンジ GET)を処理する方法について説明します。

大きなオブジェクトの場合、エンドユーザーのブラウザまたはクライアントは、複数の GETリクエストを実行し、Rangeリクエストヘッダーを使用して、小さい単位でオブジェクトをダウンロードする

API Version 2014-01-31103

Amazon CloudFront 開発者ガイドCloudFront がオブジェクトの部分的リクエスト(レンジ

GET)を処理する方法

Page 109: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

場合があります。Range GETリクエストとも呼ばれるこのバイト範囲のリクエストでは、部分的なダウンロードの効率、および部分的に失敗した転送からの回復の効率が向上します。

CloudFrontはRange GETリクエストを受け取ると、そのリクエストを受け取ったエッジロケーションのキャッシュをチェックします。そのエッジロケーションのキャッシュにオブジェクト全体またはオブジェクトの要求された部分がすでに含まれる場合、CloudFront は要求された範囲をキャッシュから直ちに供給します。

要求された範囲がキャッシュに含まれない場合、CloudFront はリクエストをオリジンに転送します。(パフォーマンスを最適化するために、CloudFront は、Range GETでクライアントから要求された範囲よりも大きい範囲を要求する場合があります)。次に実行される処理は、オリジンが Range GETリクエストをサポートするかどうかによって異なります。

• オリジンが Range GETリクエストをサポートする場合: 要求された範囲が返されます。CloudFrontは、要求された範囲を供給します。また、その範囲をキャッシュして、今後のリクエストに備えます。(Amazon S3は、Apache、IISなど、一部のHTTPサーバーと同様に、Range GETリクエストをサポートします。使用している HTTP サーバーがこれをサポートしているかどうかについては、使用している HTTP サーバーに関するドキュメントを参照してください)。

• オリジンがRange GETリクエストをサポートしない場合:オブジェクト全体が返されます。CloudFrontは、オブジェクト全体を供給します。また、そのオブジェクト全体をキャッシュして、今後のリクエストに備えます。CloudFront はオブジェクト全体をエッジキャッシュにキャッシュした後、要求された範囲を供給することで Range GETリクエストに応答します。

どちらの場合も、CloudFront は、オリジンから 1 バイト目が到着した直後に、要求された範囲またはオブジェクトをエンドユーザーに供給します。

通常、CloudFront は、Rangeヘッダーの RFC 仕様に準拠します。ただし、Rangeヘッダーが以下の要件に準拠しない場合、CloudFront は、指定された範囲とステータスコード 206 を返す代わりに、完全なオブジェクトと HTTP ステータスコード 200 を返します。

• 範囲は昇順に指定されている必要があります。例えば、100-200,300-400は有効で、300-400,100-200は無効です。

• 範囲は重複できません。例えば、100-200,150-250は無効です。• すべての範囲指定が有効である必要があります。例えば、範囲の一部に負の値を指定することはできません。

Rangeリクエストヘッダーの詳細については、「ハイパーテキスト転送プロトコル –– HTTP//1.1」(http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35)の「セクション 14.35 範囲」を参照してください。

デフォルトルートオブジェクトの指定(ウェブディストリビューションのみ)

Abstract

CloudFrontを構成して、特定のオブジェクト(デフォルトはルートオブジェクト)を返し、ディストリビューションのコンテンツを公開しないようにします。

エンドユーザーがディストリビューション内のオブジェクトではなくディストリビューションのルートURLを要求した場合に特定のオブジェクト(デフォルトルートオブジェクト)を返すようにCloudFrontを構成できます。デフォルトのルートオブジェクトを指定すると、ディストリビューションのコンテンツが公開されなくなります。

API Version 2014-01-31104

Amazon CloudFront 開発者ガイドデフォルトルートオブジェクトの指定(ウェブディストリ

ビューションのみ)

Page 110: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

例えば、次のリクエストはオブジェクト image.jpgを指します。

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

次のリクエストは、特定のオブジェクトではなく、同じディストリビューションのルート URL を指します。

http://d111111abcdef8.cloudfront.net/

デフォルトルートオブジェクトを定義した場合、ディストリビューションのルートを呼び出すエンドユーザーリクエストはデフォルトルートオブジェクトを返します。例えば、ファイル index.htmlをデフォルトルートオブジェクトとして指定したと仮定します。

http://d111111abcdef8.cloudfront.net/

上のリクエストは次のオブジェクトを返します。

http://d111111abcdef8.cloudfront.net/index.html

ただし、デフォルトルートオブジェクトを定義しても、ディストリビューションのサブディレクトリに対するエンドユーザーリクエストはデフォルトルートオブジェクトを返しません。例えば、index.htmlがデフォルトルートオブジェクトであり、CloudFront が CloudFront ディストリビューション下のinstallディレクトリに対するエンドユーザーリクエストを受け取ったと仮定します。

http://d111111abcdef8.cloudfront.net/install/

index.htmlのコピーが installディレクトリ内にあっても、CloudFront はデフォルトルートオブジェクトを返しません。

CloudFront がサポートするすべての HTTP メソッドを許可するようにディストリビューションを構成する場合、デフォルトのルートオブジェクトがすべてのメソッドに適用されます。たとえば、デフォルトのルートオブジェクトが index.php であり、POSTリクエストをドメインのルート(http://example.com)に送信するようにアプリケーションを作成するなら、CloudFront はリクエストを http://example.com/index.php に送信します。

CloudFront のデフォルトルートオブジェクトの動作は、Amazon S3 のインデックスドキュメントの動作とは異なります。Amazon S3 バケットをウェブサイトとして構成し、インデックスドキュメントを指定した場合、ユーザーがバケット内のサブディレクトリを要求しても、Amazon S3 はインデックスドキュメントを返します。(インデックスドキュメントのコピーがすべてのサブディレクトリに含まれる必要があります)。Amazon S3 バケットをウェブサイトとして構成する方法およびインデックスドキュメントの詳細については、「Amazon Simple Storage Service開発者ガイド」の「Amazon S3での静的ウェブサイトのホスティング」を参照してください。

Important

デフォルトルートオブジェクトは CloudFront ディストリビューションにのみ適用されることに注意してください。オリジンのセキュリティを依然として管理する必要があります。例えば、Amazon S3オリジンを使用する場合、Amazon S3バケットのACLも依然として適切に設定する必要があり、バケットに対する必要なアクセスレベルを確保する必要があります。

デフォルトルートオブジェクトを定義しない場合、ディストリビューションのルートの要求はオリジンサーバーに渡されます。Amazon S3 オリジンを使用する場合、以下のいずれかが返される場合があります。

• Amazon S3 バケットのコンテンツのリスト – 以下のいずれかの条件が満たされる場合、CloudFrontを使用してディストリビューションにアクセスするユーザーにオリジンのコンテンツが表示されます。• バケットが適切に構成されていない。

API Version 2014-01-31105

Amazon CloudFront 開発者ガイドデフォルトルートオブジェクトの指定(ウェブディストリ

ビューションのみ)

Page 111: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

• ディストリビューションに関連付けられたバケットに対する Amazon S3 許可、およびバケット内のオブジェクトに対する Amazon S3 許可で、すべてのユーザーへのアクセスが付与されている。

• エンドユーザーがオリジンのルート URL を使用してオリジンにアクセスしている。• オリジンのプライベートコンテンツのリスト–オリジンをプライベートディストリビューション(構成者と CloudFront のみがアクセス可能)として構成している場合、ディストリビューションに関連付けられたAmazon S3バケットのコンテンツは、CloudFront経由でディストリビューションにアクセスできる認証情報を持っているユーザーにも表示されます。この場合、ユーザーは、オリジンのルート URL を使用してコンテンツにアクセスできません。プライベートコンテンツの配信の詳細については、「CloudFrontを使用してプライベートコンテンツを供給する(p. 126)」を参照してください。

• エラー 403 アクセス不可 – CloudFront は、ディストリビューションに関連付けられた Amazon S3バケットに対する許可またはそのバケット内のオブジェクトに対する許可によって CloudFront およびすべてのユーザーのアクセスが拒否された場合にこのエラーを返します。

ウェブディストリビューションのコンテンツが公開されたり、エラーが返されたりすることを回避するには、以下の手順を実行して、ディストリビューションのデフォルトルートオブジェクトを指定します。

ディストリビューションのデフォルトルートオブジェクトを指定するには

1. デフォルトルートオブジェクトを、ディストリビューションが指しているオリジンにアップロードします。

ファイルには、CloudFront でサポートされるあらゆるタイプを使用できます。ファイル名に対する制約事項のリストについては、「DistributionConfig Complex Type」の DefaultRootObjectエレメントの説明を参照してください。

Note

デフォルトルートオブジェクトのファイル名が長すぎるか、そのファイル名に無効な文字が含まれている場合、CloudFront はエラー HTTP 400 Bad Request -InvalidDefaultRootObjectを返します。また、CloudFront はコードをキャッシュに5 分間保持し、結果をアクセスログに書き込みます。

2. オブジェクトの許可によって CloudFront に少なくとも readアクセスが付与されていることを確認します。

Amazon S3許可の詳細については、「Amazon Simple Storage Service開発者ガイド」の「アクセスコントロール」を参照してください。Amazon S3 コンソールを使用して許可を更新する方法については、「Amazon Simple Storage Service Console User Guide」を参照してください。

3. CloudFront コンソールまたは CloudFront API を使用して、デフォルトルートオブジェクトを参照するようにディストリビューションを更新します。

CloudFront コンソールを使用して、デフォルトルートオブジェクトを指定するには、次を実行します。

a. AWS マネジメントコンソールにサインインし、Amazon CloudFront コンソール(https://console.aws.amazon.com/cloudfront/)を開きます。

b. 上部ペインにあるディストリビューションのリストで、更新するディストリビューションを選択します。

c. [Distribution Details] ペインの [General] タブで、[Edit] をクリックします。d. [Edit Distribution] ダイアログボックスの [Default Root Object] フィールドに、デフォルトルー

トオブジェクトのファイル名を入力します。

API Version 2014-01-31106

Amazon CloudFront 開発者ガイドデフォルトルートオブジェクトの指定(ウェブディストリ

ビューションのみ)

Page 112: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

オブジェクト名のみを入力します(例: index.html)。オブジェクト名の前に /を追加しないでください。

e. 変更を保存するには、[Yes, Edit] をクリックします。

CloudFrontAPIを使用して、構成を更新するには、ディストリビューションのDefaultRootObjectエレメントの値を指定します。CloudFrontAPIを使用してデフォルトルートオブジェクトを指定する方法については、「Amazon CloudFront API リファレンス」の「PUT Distribution Config」を参照してください。

4. ルート URL を要求することで、デフォルトルートオブジェクトが有効になっていることを確認します。ブラウザにデフォルトルートオブジェクトが表示されない場合、以下のステップを実行します。

a. CloudFront コンソールにディストリビューションのステータスを表示し、ディストリビューションが完全にデプロイされていることを確認します。

b. ステップ 2 と 3 を繰り返し、適切な許可を付与したこと、およびデフォルトルートオブジェクトを指定するようにディストリビューションの構成を適切に更新したことを確認します。

圧縮ファイルの供給Abstract

圧縮ファイルを供給してユーザーが高速にダウンロードできるようにします。

Amazon CloudFront は、オリジンサーバーから圧縮ファイルと非圧縮ファイルを供給できます。CloudFront は、オリジンサーバーを使用して、ファイルを圧縮したり、ファイルの圧縮バージョンと非圧縮バージョンを利用したりします。CloudFront がオリジンサーバーに代わって圧縮を実行することはありません。いくつかの条件を満たした場合、CloudFrontは圧縮コンテンツをAmazon S3から供給することもできます。詳細については、「圧縮するファイルタイプの選択 (p. 109)」を参照してください。

圧縮コンテンツを供給することで、ダウンロード時間が短縮されます。ファイルが小さくなるためです。場合によって、オリジナルの半分以下のサイズになることがあります。特に、JavaScript およびCSS ファイルでは、ダウンロード時間が短縮されると、ユーザーにウェブページが表示されるまでの時間が短縮されます。また、CloudFrontのデータ転送コストは供給されたデータの総量に基づくので、圧縮ファイルを供給すると、非圧縮ファイルを供給するよりもコストが安くなります。

CloudFront は、ビューア(ウェブブラウザ、メディアプレーヤーなど)がリクエストヘッダーにAccept-Encoding: gzipを含めることで圧縮コンテンツを要求した場合にのみ圧縮データを供給できます。コンテンツは、gzip; を使用して圧縮される必要があります。他の圧縮アルゴリズムはサポートされません。リクエストヘッダーに追加のコンテンツエンコード(deflate、sdchなど)が含まれる場合、CloudFront はそれらを削除してからリクエストをオリジンサーバーに転送します。gzipがAccept-Encodingフィールドにない場合、CloudFront はファイルの非圧縮バージョンのみを供給します。Accept-Encodingリクエストヘッダーフィールドの詳細については、「ハイパーテキスト転送プロトコル–– HTTP//1.1」(http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html)の「セクション14.3 エンコードの受け入れ」を参照してください。

詳細については、以下のトピックを参照してください。

Topics• CloudFront がカスタムオリジンから圧縮コンテンツを供給する方法 (p. 108)• Amazon S3 からの圧縮ファイルの供給 (p. 108)• 圧縮するファイルタイプの選択 (p. 109)

API Version 2014-01-31107

Amazon CloudFront 開発者ガイド圧縮ファイルの供給

Page 113: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

CloudFront がカスタムオリジンから圧縮コンテンツを供給する方法ここでは、通常、CloudFront が圧縮コンテンツをカスタムオリジンからウェブアプリケーションにどのように供給するかについて説明します。

1. 選択されたファイルタイプを圧縮するようにウェブサーバーを構成します。詳細については、「圧縮するファイルタイプの選択 (p. 109)」を参照してください。

2. CloudFront ディストリビューションを作成します。3. CloudFront URL を使用してファイルにアクセスするようにウェブアプリケーションのプログラム

を作成します。4. ユーザーがウェブブラウザでアプリケーションにアクセスします。5. CloudFront は、ユーザーにとって最も低いレイテンシーのエッジロケーションにウェブリクエス

トを転送します。これは、地理的に最も近いエッジロケーションではない場合があります。6. エッジロケーションで、CloudFront は、各リクエスト内で参照されているオブジェクトがキャッ

シュにあるかどうかを確認します。ブラウザが Accept-Encoding: gzipをリクエストヘッダーに含めている場合、CloudFront はファイルの圧縮バージョンがあるかどうかを確認します。圧縮バージョンがない場合、CloudFront は非圧縮バージョンがあるかどうかを確認します。

7. ファイルがキャッシュにある場合、CloudFront はファイルをウェブブラウザに返します。ファイルがキャッシュにない場合は、以下の処理が行われます。

a. CloudFront は、リクエストをオリジンサーバーに転送します。b. 圧縮して供給する必要があるファイルタイプ(ステップ1を参照)をリクエストが要求してい

る場合、ウェブサーバーはファイルを圧縮します。c. ウェブサーバーは、(必要に応じて圧縮または非圧縮した)ファイルを CloudFront に返しま

す。d. CloudFrontはファイルをキャッシュに追加し、ファイルをユーザーのブラウザに供給します。

Amazon S3 からの圧縮ファイルの供給Amazon S3から圧縮ファイルを供給する場合は、以下の手順を実行します。

1. ファイルごとに圧縮ファイルと非圧縮ファイルの 2 つのバージョンを作成します。CloudFrontキャッシュ内でファイルの圧縮バージョンと非圧縮バージョンが互いに上書きしないように、各ファイルに一意の名前を付けます(例: welcome.js と welcome.js.gz)。

2. Amazon S3 コンソール(https://console.aws.amazon.com/s3/)を開きます。3. 両方のバージョンを Amazon S3 にアップロードします。4. 圧縮ファイルごとに Content-Encodingヘッダーフィールドを追加し、フィールド値を gzipに

設定します。

AWS SDK for PHP を使用して Content-Encodingヘッダーフィールドを追加する方法の例については、「Amazon Simple Storage Service 開発者ガイド」の「AWS SDK for PHP を使用した 1つのオブジェクトのアップロード」を参照してください。このフィールドを追加できるサードパーティツールもあります。

AmazonS3コンソールを使用して、Content-Encodingヘッダーフィールドを追加し、フィールド値を設定するには、以下の手順を実行します。

a. AmazonS3コンソールの[Buckets]ペインで、圧縮ファイルを含むバケットの名前をクリックします。

API Version 2014-01-31108

Amazon CloudFront 開発者ガイドCloudFrontがカスタムオリジンから圧縮コンテンツを供給

する方法

Page 114: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

b. [Objects and Folders] ペインの上部で [Actions] をクリックし、[Actions] リストで [Properties]をクリックします。

c. [Properties] ペインで、[Metadata] タブをクリックします。d. [Objects and Folders] ペインで、Content-Encodingヘッダーフィールドの追加の対象とな

るファイルの名前をクリックします。e. [Metadata] タブで、[Add More Metadata] をクリックします。f. [Key] リストで、[Content-Encoding] をクリックします。g. [Value] フィールドに「gzip」と入力します。h. [Save] をクリックします。i. 残りの圧縮ファイルに対して、ステップ 4d ~ 4h を繰り返します。

5. (例えば、php、asp、または jsp を使用して)CloudFront 内のコンテンツにリンクするHTMLを生成する場合、ビューアからのリクエストにより、リクエストヘッダーに Accept-Encoding:gzipが含まれているかどうかを評価します。含まれる場合、圧縮オブジェクトの名前を指すように、対応するリンクを書き換えます。

圧縮するファイルタイプの選択HTML、CSS、JavaScript ファイルなど、いくつかのファイルタイプでは十分な圧縮が行われます。また、ファイルタイプによっては、数パーセントの圧縮が行われる場合がありますが、これは、コンテンツを圧縮するためにウェブサーバーで必要とされる追加のプロセッサーサイクルを正当化するのに十分な圧縮率ではありません。さらに、いくつかのタイプのファイルでは、圧縮されると大きくなるものもあります。通常、十分に圧縮されないファイルタイプとして、すでに圧縮されているグラフィックファイル(.jpg、.gif)、ビデオ形式、およびオーディオ形式があります。ディストリビューション内にあるファイルタイプの圧縮をテストして、圧縮による十分なメリットがあることを確認することをお勧めします。

API Version 2014-01-31109

Amazon CloudFront 開発者ガイド圧縮するファイルタイプの選択

Page 115: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

リクエストとレスポンスの動作

Abstract

CloudFront がリクエストとレスポンスを処理する方法について説明します。

以下のセクションでは、CloudFrontがビューアリクエストを処理してそのリクエストをAmazon S3またはカスタムオリジンに転送する方法、および CloudFront がオリジンからのレスポンスを処理する方法(CloudFront が 4xx および 5xx HTTP ステータスコードを処理およびキャッシュする方法を含む)について説明します。

Topics• Amazon S3 オリジンにおけるリクエストとレスポンスの動作 (p. 110)• カスタムオリジンの場合のリクエストとレスポンスの動作 (p. 116)• CloudFront が HTTP 4xx および 5xx ステータスコードを処理およびキャッシュする方法 (p. 123)

Amazon S3オリジンにおけるリクエストとレスポンスの動作

Abstract

オリジンサーバーとして Amazon S3 を使用している場合に、CloudFront がリクエストとレスポンスを処理する方法について説明します。

Topics• CloudFront がリクエストを処理して Amazon S3 オリジンサーバーに転送する方法 (p. 110)• CloudFront が Amazon S3 オリジンサーバーからのレスポンスを処理する方法 (p. 114)

CloudFront がリクエストを処理して Amazon S3 オリジンサーバーに転送する方法CloudFrontがビューアリクエストを処理してAmazon S3オリジンに転送する方法については、該当するトピックを参照してください。

API Version 2014-01-31110

Amazon CloudFront 開発者ガイドAmazonS3オリジンにおけるリクエストとレスポンスの動

Page 116: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

Topics• キャッシュ期間および最小 TTL (p. 111)• クライアント IP アドレス (p. 111)• 条件付きの GET (p. 111)• Cookie (p. 112)• Cross-Origin Resource Sharing (CORS) (p. 112)• CloudFront が削除または更新するヘッダーフィールド (p. 112)• HTTP メソッド (p. 113)• リクエストの最大長と URL の最大長 (p. 113)• プロトコル (p. 114)• クエリ文字列 (p. 114)• リクエストのタイムアウト (p. 114)

キャッシュ期間および最小 TTLウェブディストリビューションでは、CloudFront が別のリクエストをオリジンに転送するまでにオブジェクトを CloudFront キャッシュに保持する時間を制御できます。これを行うには、次の手順を実行します。

• Cache-Controlまたは Expiresヘッダーフィールドを各オブジェクトに追加するようにオリジンを構成します。

• CloudFront キャッシュ動作で、最小 TTL の値を指定します。• デフォルト値の 24 時間を使用します。

詳細については、「CloudFront エッジキャッシュにオブジェクトを保持する時間の指定(有効期限切れ) (p. 90)」を参照してください。

クライアント IP アドレスCloudFront は、X-Forwarded-Forリクエストヘッダーでクライアント IP アドレスを Amazon S3 に転送します。X-Forwarded-Forリクエストヘッダーは次のようになります。

X-Forwarded-For: 192.0.2.235

X-Forwarded-Forリクエストヘッダーに IP アドレスが複数含まれる場合、最初のアドレスは常にクライアント IP アドレスです。他のアドレスは、リクエストが渡された後続の各プロキシを示します。最後の IP アドレスは、リクエストを CloudFront に転送したプロキシを示します。

X-Forwarded-For: client-IP-address, proxy-IP-address, another-proxy-IP-address

条件付きの GETCloudFront は、エッジキャッシュで有効期限切れになっているオブジェクトに対するリクエストを受け取ると、リクエストを Amazon S3 オリジンに転送し、オブジェクトの最新バージョンを取得するか、CloudFront エッジキャッシュに最新バージョンがすでに存在することを Amazon S3 に確認します。Amazon S3 はオブジェクトを CloudFront に最初に送信するときに、ETag値と LastModified値をレスポンスに含めます。CloudFrontがAmazon S3に転送する新しいリクエストには、次のどちらかまたは両方が追加されます。

• オブジェクトの有効期限切れバージョンの ETag値が含まれる If-Matchまたは If-None-Matchヘッダー。

API Version 2014-01-31111

Amazon CloudFront 開発者ガイドCloudFront がリクエストを処理して Amazon S3 オリジン

サーバーに転送する方法

Page 117: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

• オブジェクトの有効期限切れバージョンのLastModified値が含まれるIf-Modified-Sinceヘッダー。

AmazonS3は、この情報を使用して、オブジェクトが更新されているかどうかを判別します。つまり、オブジェクト全体を CloudFront に返すか、または HTTP 304 ステータスコード(変更なし)のみを返すかを判別します。

CookieAmazon S3 は Cookie を処理しません。Cookie を Amazon S3 オリジンに転送するようにキャッシュ動作を構成した場合、CloudFront は Cookie を転送しますが、Amazon S3 は Cookie を無視します。

Cross-Origin Resource Sharing (CORS)現在のところ、CloudFront は Amazon S3 Cross-Origin Resource Sharing をサポートしていません。

CloudFront が削除または更新するヘッダーフィールドCloudFrontは、リクエストをAmazon S3オリジンに転送する前に、以下のヘッダーフィールドを削除または更新します。

• Accept

• Accept-Charset

• Accept-Encoding:値がgzipを含む場合、CloudFrontはAmazonS3オリジンにAccept-Encoding:gzipを転送します。値が gzip含まない場合、CloudFront はリクエストをオリジンに転送する前にAccept-Encodingヘッダーフィールドを削除します。

• Accept-Language

• Authorization:• GET、HEADの各リクエスト:CloudFrontは、リクエストをオリジンに転送する前にAuthorizationヘッダーフィールドを削除します。

• DELETE、OPTIONS、PATCH、POST、PUTの各リクエスト: CloudFront は、リクエストをオリジンに転送する前にヘッダーフィールドを削除しません。

• Connection: CloudFront は、Amazon S3 オリジンにリクエストを転送する前にこのヘッダーをConnection: Keep-Aliveヘッダーに置き換えます。

• Cookie: Cookieを転送するようにCloudFrontを構成している場合、Amazon S3オリジンに Cookieヘッダーフィールドが転送されます。そうでない場合、CloudFront は Cookieヘッダーフィールドを削除します。詳細については、「CloudFrontがCookieの転送、キャッシュ、およびログ作成を行う方法 (p. 86)」を参照してください。

• Expect

• Host: CloudFront は、リクエストされたオブジェクトに関連付けられたAmazon S3バケットの名前に値を設定します。

• Proxy-Authenticate

• Proxy-Authorization

• Proxy-Connection

• Referer

• TE

• Trailer

• Transfer-Encoding:• GET、HEADの各リクエスト:CloudFrontは、リクエストをオリジンに転送する前にヘッダーフィールドを削除します。

API Version 2014-01-31112

Amazon CloudFront 開発者ガイドCloudFront がリクエストを処理して Amazon S3 オリジン

サーバーに転送する方法

Page 118: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

• DELETE、OPTIONS、PATCH、POST、PUTの各リクエスト:値が Transfer-Encoding: chunkedの場合、CloudFront はリクエストをオリジンに転送する前に、ヘッダーフィールドを削除しません。それ以外の値の場合、CloudFront はリクエストをオリジンに転送する前に、ヘッダーフィールドを削除します。

• Upgrade

• User-Agent: CloudFrontはこのヘッダーフィールドの値をAmazon CloudFrontに置き換えます。

HTTP メソッドサポートするすべてのHTTPメソッドを処理するようCloudFront を構成すると、CloudFront はビューアからの以下のリクエストを受け入れて Amazon S3 オリジンに転送します。

• DELETE

• GET

• HEAD

• OPTIONS

• PATCH

• POST

• PUT

CloudFront はレスポンスを GETリクエストと HEADリクエストにキャッシュし、それ以外のメソッドを使用するリクエストにはレスポンスをキャッシュしません。

マルチパートアップロードを使用してオブジェクトをAmazonS3バケットに追加する場合は、CloudFrontオリジンアクセスアイデンティティをディストリビューションに追加して、そのオリジンアクセスアイデンティティに適切な許可を付与する必要があります。詳細については、「オリジンアクセスアイデンティティを使用して Amazon S3 コンテンツへのアクセスを制限する (p. 131)」を参照してください。

Caution

CloudFront がサポートするすべてのHTTPメソッドを受け入れて Amazon S3 に転送するように CloudFront を構成する場合、お客様の Amazon S3 コンテンツへのアクセスを制限するCloudFront オリジンアクセスアイデンティティを作成して、そのオリジンアクセスアイデンティティに適切な許可を付与する必要があります。たとえば、PUTを使用したいので、上記のメソッドを受け入れて転送するように CloudFront を構成するという場合は、削除すべきでないリソースをビューアが削除できないようにするために、DELETEリクエストを適切に処理する Amazon S3 バケットポリシーまたは ACL を構成する必要があります。詳細については、「オリジンアクセスアイデンティティを使用して Amazon S3 コンテンツへのアクセスを制限する (p. 131)」を参照してください。

Amazon S3 がサポートする操作の詳細については、「Amazon S3 ドキュメント」を参照してください。

リクエストの最大長と URL の最大長パス、クエリ文字列(ある場合)、ヘッダーを含め、リクエストの最大長は 20480 バイトです。

CloudFront はリクエストから URL を構築します。この URL の最大長は 8192 文字です。

リクエストまたは URL がこの制限を超過した場合、CloudFront はリクエストを破棄します。

API Version 2014-01-31113

Amazon CloudFront 開発者ガイドCloudFront がリクエストを処理して Amazon S3 オリジン

サーバーに転送する方法

Page 119: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

プロトコルCloudFront は、ビューアリクエストのプロトコル(HTTP または HTTPS)に基づいて、HTTP またはHTTPS リクエストをオリジンサーバーに転送します。

クエリ文字列ウェブディストリビューションでは、CloudFrontでクエリ文字列パラメータをAmazon S3オリジンに転送するかどうかを構成できます。RTMP ディストリビューションでは、CloudFront はクエリ文字列パラメータを転送しません。詳細については、「CloudFrontがクエリ文字列パラメータの転送、キャッシュ、およびログ作成を行う方法 (p. 84)」を参照してください。

リクエストのタイムアウトCloudFront が Amazon S3オリジンにデータをリクエストしたときに、Amazon S3が 30秒以内に応答しない場合、CloudFront は接続を中断して、オリジンに対する接続をさらに 2 回試みます。3 回目の試みでもオリジンが応答しない場合、CloudFront は同じオリジンのコンテンツに対する別のリクエストを受け取るまで接続を試みません。

CloudFront が Amazon S3 オリジンサーバーからのレスポンスを処理する方法Topics• 取り消されたリクエスト (p. 121)• Cross-Origin Resource Sharing (CORS) (p. 114)• CloudFront が削除または更新するヘッダーフィールド (p. 114)• 最大ファイルサイズ (p. 115)• リダイレクト (p. 115)

取り消されたリクエストオブジェクトがエッジキャッシュになく、CloudFrontがオブジェクトをオリジンから取得したものの、リクエストされたそのオブジェクトを配信する前にビューアがセッションを終了すると(ブラウザを閉じるなど)、CloudFront はそのオブジェクトをエッジロケーションにキャッシュしません。

Cross-Origin Resource Sharing (CORS)現在のところ、CloudFront は Amazon S3 Cross-Origin Resource Sharing をサポートしていません。

CloudFront が削除または更新するヘッダーフィールドCloudFront は、Amazon S3 オリジンからのレスポンスをビューアに転送する前に、以下のヘッダーフィールドを削除または更新します。

• Proxy-Connection

• Set-Cookie: Cookie を転送するように CloudFront を構成している場合、Set-Cookieヘッダーフィールドがクライアントに転送されます。詳細については、「CloudFrontがCookieの転送、キャッシュ、およびログ作成を行う方法 (p. 86)」を参照してください。

• Trailer

• Transfer-Encoding: Amazon S3 オリジンがこのヘッダーフィールドを返す場合、CloudFront は値を chunkedに設定してビューアにレスポンスを返します。

API Version 2014-01-31114

Amazon CloudFront 開発者ガイドCloudFront が Amazon S3 オリジンサーバーからのレスポ

ンスを処理する方法

Page 120: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

• Upgrade

• Vary

• Via: CloudFront は値を次のように設定します。

Via: 1.1 alphanumeric-string.cloudfront.net (CloudFront)

その後、ビューアにこのレスポンスを返します。以下に例を示します。

Via: 1.1 1026589cc7887e7a0dc7827b4example.cloudfront.net (CloudFront)

最大ファイルサイズCloudFrontがビューアに返すレスポンス本文の最大サイズは20GBです。これには、Content-Lengthヘッダーの値を指定しないチャンク転送レスポンスが含まれます。

リダイレクトすべてのリクエストを別のホスト名にリダイレクトするように Amazon S3 バケットを構成できます。別のホスト名には、別のAmazon S3バケットまたはHTTPサーバーを使用できます。すべてのリクエストをリダイレクトするようにバケットを構成しており、バケットがCloudFrontディストリビューションのオリジンの場合、ディストリビューションのドメイン名(例: d111111abcdef8.cloudfront.net)またはディストリビューションに関連付けられた代替ドメイン名(CNAME)(例:example.com)を使用してすべてのリクエストを CloudFront ディストリビューションにリダイレクトするようにバケットを構成することをお勧めします。このように構成しない場合、ビューアリクエストは CloudFront をバイパスし、オブジェクトは新しいオリジンから直接提供されます。

Note

代替ドメイン名にリクエストをリダイレクトする場合は、CNAME レコードを追加してドメインのDNSサービスを更新する必要もあります。詳細については、「代替ドメイン名(CNAME)を使用する (p. 33)」を参照してください。

すべてのリクエストをリダイレクトするようにバケットを構成した場合の動作を以下に示します。

1. ビューア(例: ブラウザ)が CloudFront にオブジェクトを要求します。2. CloudFrontは、ディストリビューションのオリジンであるAmazon S3バケットにリクエストを転

送します。3. Amazon S3 は、HTTP ステータスコード 301 (Moved Permanently)と新しい場所を返します。4. CloudFront は、リダイレクトのステータスコードと場所をキャッシュし、ビューアに値を返しま

す。CloudFront がリダイレクトに従って新しい場所からオブジェクトを取得することはありません。

5. ビューアはオブジェクトに対する別のリクエストを送信しますが、今回は、CloudFront から取得した新しい場所を指定します。

• Amazon S3 バケットがディストリビューションのドメイン名または代替ドメイン名を使用してすべてのリクエストをCloudFrontディストリビューションにリダイレクトする場合、CloudFrontは新しい場所にあるAmazon S3バケットまたはHTTPサーバーのオブジェクトを要求します。新しい場所からオブジェクトが返されると、CloudFrontはオブジェクトをビューアに返し、エッジロケーションにオブジェクトをキャッシュします。

• Amazon S3 バケットがリクエストを別の場所にリダイレクトする場合、2 番目のリクエストはCloudFrontをバイパスします。新しい場所にあるAmazon S3バケットまたはHTTPサーバーがオブジェクトをビューアに直接返すので、オブジェクトは CloudFront エッジキャッシュに一切キャッシュされません。

API Version 2014-01-31115

Amazon CloudFront 開発者ガイドCloudFront が Amazon S3 オリジンサーバーからのレスポ

ンスを処理する方法

Page 121: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

カスタムオリジンの場合のリクエストとレスポンスの動作

Abstract

CloudFrontがカスタムオリジンサーバーのビューアリクエストとレスポンスを処理する方法について説明します。

Topics• CloudFront がリクエストを処理してカスタムオリジンサーバーに転送する方法 (p. 116)• CloudFront がカスタムオリジンサーバーからのレスポンスを処理する方法 (p. 120)

CloudFront がリクエストを処理してカスタムオリジンサーバーに転送する方法CloudFront がビューアリクエストを処理してカスタムオリジンに転送する方法については、該当するトピックを参照してください。

Topics• 認証 (p. 116)• キャッシュ期間および最小 TTL (p. 116)• クライアント IP アドレス (p. 117)• 圧縮 (p. 117)• 条件付きリクエスト (p. 117)• Cookie (p. 117)• 暗号化 (p. 117)• CloudFront が削除または更新するヘッダーフィールド (p. 118)• HTTP メソッド (p. 118)• HTTP バージョン (p. 119)• リクエストの最大長と URL の最大長 (p. 119)• プロトコル (p. 119)• クエリ文字列 (p. 120)• リクエストのタイムアウト (p. 120)• ユーザーエージェントヘッダー (p. 120)

認証CloudFront には認証情報をビューアからオリジンに転送する方法がないため、クライアント認証をリクエストするようにはオリジンサーバーを構成しないでください。HTTP または HTTPS のいずれかを使用してオリジンにリクエストを転送するように CloudFront を構成することができます。詳細については、「ビューア、CloudFront、およびオリジン間の通信に対してHTTPSを要求する方法(p. 179)」を参照してください。

キャッシュ期間および最小 TTLウェブディストリビューションでは、CloudFront が別のリクエストをオリジンに転送するまでにオブジェクトを CloudFront キャッシュに保持する時間を制御できます。これを行うには、次の手順を実行します。

API Version 2014-01-31116

Amazon CloudFront 開発者ガイドカスタムオリジンの場合のリクエストとレスポンスの動作

Page 122: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

• Cache-Controlまたは Expiresヘッダーフィールドを各オブジェクトに追加するようにオリジンを構成します。

• CloudFront キャッシュ動作で、最小 TTL の値を指定します。• デフォルト値の 24 時間を使用します。

詳細については、「CloudFront エッジキャッシュにオブジェクトを保持する時間の指定(有効期限切れ) (p. 90)」を参照してください。

クライアント IP アドレスCloudFront は、X-Forwarded-Forリクエストヘッダーでクライアント IPアドレスをオリジンに転送します。X-Forwarded-Forリクエストヘッダーは次のようになります。

X-Forwarded-For: 192.0.2.235

X-Forwarded-Forリクエストヘッダーに IP アドレスが複数含まれる場合、最初のアドレスは常にクライアント IP アドレスです。他のアドレスは、リクエストが渡された後続の各プロキシを示します。最後の IP アドレスは、リクエストを CloudFront に転送したプロキシを示します。

X-Forwarded-For: client-IP-address, proxy-IP-address, another-proxy-IP-address

圧縮CloudFront は、"identity"および "gzip"の Accept-Encodingフィールド値を持つリクエストを転送します。詳細については、「圧縮ファイルの供給 (p. 107)」を参照してください。

条件付きリクエストCloudFront は、エッジキャッシュで有効期限切れになっているオブジェクトに対するリクエストを受け取ると、リクエストをオリジンに転送し、オブジェクトの最新バージョンを取得するか、CloudFrontエッジキャッシュに最新バージョンがすでに存在することをオリジンに確認します。通常、オリジンはオブジェクトを CloudFront に最後に送信するときに、ETag値または LastModified値、あるいはその両方の値をレスポンスに含めます。CloudFront がオリジンに転送する新しいリクエストには、次のどちらかまたは両方が追加されます。

• オブジェクトの有効期限切れバージョンの ETag値が含まれる If-Matchまたは If-None-Matchヘッダー。

• オブジェクトの有効期限切れバージョンのLastModified値が含まれるIf-Modified-Sinceヘッダー。

オリジンは、この情報を使用して、オブジェクトが更新されているかどうかを判別します。つまり、オブジェクト全体を CloudFront に返すか、または HTTP 304 ステータスコード(変更なし)のみを返すかを判別します。

CookieCookie をオリジンに転送するように CloudFront を構成できます。詳細については、「CloudFront がCookie の転送、キャッシュ、およびログ作成を行う方法 (p. 86)」を参照してください。

暗号化CloudFront は、SSLv3 または TLSv1 プロトコルと、AES128-SHA1 または RC4-MD5 暗号を使用して、HTTPS リクエストをオリジンサーバーに転送します。オリジンサーバーが AES128-SHA1 とRC4-MD5 のいずれの暗号もサポートしていない場合、CloudFront はオリジンへの SSL 接続を確立することができません。

API Version 2014-01-31117

Amazon CloudFront 開発者ガイドCloudFrontがリクエストを処理してカスタムオリジンサー

バーに転送する方法

Page 123: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

オリジンへの HTTPS 接続を確立すると、CloudFront は Server Name Indication(SNI)拡張機能を追加し、ご使用のディストリビューションに適したOrigin Domain Nameの値を組み込みます。SNI の詳細については、「RFC 4366, Transport Layer Security (TLS) Extensions」のセクション 3.1 を参照してください。

CloudFront が削除または更新するヘッダーフィールドCloudFront は、リクエストをオリジンに転送する前に、以下のヘッダーフィールドを削除または更新します。

• Accept

• Accept-Charset

• Accept-Encoding: 値が gzipを含む場合、CloudFront はオリジンに Accept-Encoding: gzipを転送します。値が gzip含まない場合、CloudFront はリクエストをオリジンに転送する前にAccept-Encodingヘッダーフィールドを削除します。

• Accept-Language

• Authorization:• GET、HEADの各リクエスト:CloudFrontは、リクエストをオリジンに転送する前にAuthorizationヘッダーフィールドを削除します。

• DELETE、OPTIONS、PATCH、POST、PUTの各リクエスト: CloudFront は、リクエストをオリジンに転送する前にヘッダーフィールドを削除しません。

• Connection: CloudFront は、オリジンにリクエストを転送する前にこのヘッダーを Connection:Keep-Aliveヘッダーに置き換えます。

• Cookie: Cookie を転送するように CloudFront を構成している場合、オリジンに Cookieヘッダーフィールドが転送されます。そうでない場合、CloudFront は Cookieヘッダーフィールドを削除します。詳細については、「CloudFront が Cookie の転送、キャッシュ、およびログ作成を行う方法 (p. 86)」を参照してください。

• Expect

• Host: CloudFrontは、リクエストされたオブジェクトに関連付けられたオリジンのドメイン名に値を設定します。

• Proxy-Authenticate

• Proxy-Authorization

• Proxy-Connection

• Referer

• TE

• Trailer

• Transfer-Encoding:• GET、HEADの各リクエスト:CloudFrontは、リクエストをオリジンに転送する前にヘッダーフィールドを削除します。

• DELETE、OPTIONS、PATCH、POST、PUTの各リクエスト:値が Transfer-Encoding: chunkedの場合、CloudFront はリクエストをオリジンに転送する前に、ヘッダーフィールドを削除しません。それ以外の値の場合、CloudFront はリクエストをオリジンに転送する前に、ヘッダーフィールドを削除します。

• Upgrade

• User-Agent: CloudFrontはこのヘッダーフィールドの値をAmazon CloudFrontに置き換えます。

HTTP メソッドサポートするすべてのHTTPメソッドを処理するようCloudFront を構成すると、CloudFront はビューアからの以下のリクエストを受け入れてカスタムオリジンに転送します。

API Version 2014-01-31118

Amazon CloudFront 開発者ガイドCloudFrontがリクエストを処理してカスタムオリジンサー

バーに転送する方法

Page 124: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

• DELETE

• GET

• HEAD

• OPTIONS

• PATCH

• POST

• PUT

CloudFront はレスポンスを GETリクエストと HEADリクエストにキャッシュし、それ以外のメソッドを使用するリクエストにはレスポンスをキャッシュしません。

カスタムオリジンが上記のメソッドを処理するかどうかを構成する方法の詳細については、オリジンのドキュメントを参照してください。

Caution

CloudFront がサポートするすべての HTTP メソッドを受け入れてオリジンに転送するようにCloudFrontを構成する場合、オリジンサーバーがすべてのメソッドを処理するように構成します。たとえば、POSTを使用したいので、上記のメソッドを受け入れて転送するようにCloudFrontを構成する場合は、削除すべきでないリソースをビューアが削除できないようにするために、DELETEリクエストを適切に処理するようオリジンサーバーを構成する必要があります。詳細については、HTTP サーバーのドキュメントを参照してください。

HTTP バージョンCloudFront は HTTP/1.1 を使用してカスタムオリジンにリクエストを転送します。

リクエストの最大長と URL の最大長パス、クエリ文字列(ある場合)、ヘッダーを含め、リクエストの最大長は 20480 バイトです。

CloudFront はリクエストから URL を構築します。この URL の最大長は 8192 文字です。

リクエストまたは URL がこの制限を超過した場合、CloudFront はリクエストを破棄します。

プロトコルCloudFrontは、以下の項目に基づいて、HTTPまたはHTTPSリクエストをオリジンサーバーに転送します。

• ビューアが CloudFront に送信したリクエストのプロトコル(HTTP または HTTPS)。• CloudFront コンソールの [Origin Protocol Policy] フィールドの値。または、CloudFront API を使用する場合は、DistributionConfig複合型の OriginProtocolPolicyエレメントの値。CloudFrontコンソールでは、オプションは [HTTP Only] と [Match Viewer] です。

[HTTP Only] を指定した場合、CloudFront は、ビューアリクエストのプロトコルに関係なく、HTTPプロトコルのみを使用してリクエストをオリジンサーバーに転送します。

[Match Viewer] を指定した場合、ビューアリクエストのプロトコルを使用してリクエストをオリジンサーバーに転送します。ビューアがHTTPとHTTPSの両方のプロトコルを使用してリクエストを行った場合も、CloudFront がオブジェクトをキャッシュするのは 1 回だけです。

API Version 2014-01-31119

Amazon CloudFront 開発者ガイドCloudFrontがリクエストを処理してカスタムオリジンサー

バーに転送する方法

Page 125: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

Caution

ビューアリクエストで HTTPS プロトコルが使用されており、オリジンサーバーから無効な証明書または自己署名証明書が返された場合、CloudFront は TCP 接続を中断します。

使用しているプロトコルが不明な場合は、HTTP のみを指定することをお勧めします。

CloudFront コンソールを使用してディストリビューションを更新する方法については、「CloudFrontディストリビューションの一覧表示、詳細表示、および更新を行う (p. 31)」を参照してください。CloudFrontAPIを使用してディストリビューションを更新する方法については、「AmazonCloudFrontAPI リファレンス」の「PUT Distribution Config」を参照してください。

クエリ文字列CloudFront でクエリ文字列パラメータをオリジンに転送するかどうかを構成できます。詳細については、「CloudFrontがクエリ文字列パラメータの転送、キャッシュ、およびログ作成を行う方法(p. 84)」を参照してください。

リクエストのタイムアウトCloudFront がオリジンにデータをリクエストしたときに、オリジンが 30 秒以内に応答しない場合、CloudFront は接続を中断して、オリジンに対する接続をさらに 2 回試みます。3 回目の試みでもオリジンが応答しない場合、CloudFront は同じオリジンのコンテンツに対する別のリクエストを受け取るまで接続を試みません。

ユーザーエージェントヘッダーCloudFront は、リクエストをオリジンに転送する前に、次の値が指定された User-Agentヘッダーを追加します。

User-Agent = Amazon CloudFront

CloudFront は、ビューアからのリクエストに User-Agentヘッダーが含まれているかどうかに関係なく、このヘッダーを追加します。ビューアからのリクエストにUser-Agentヘッダーが含まれる場合、CloudFront はそのヘッダーを削除します。

CloudFront がカスタムオリジンサーバーからのレスポンスを処理する方法CloudFrontがカスタムオリジンサーバーからのレスポンスを処理する方法については、該当するトピックを参照してください。

Topics• キャッシュ (p. 121)• 取り消されたリクエスト (p. 121)• コンテンツネゴシエーション (p. 121)• Cookie (p. 121)• 中断された TCP 接続 (p. 121)• CloudFront が削除または更新するヘッダーフィールド (p. 121)• 最大ファイルサイズ (p. 122)• オリジンが使用できない場合 (p. 122)• リダイレクト (p. 122)• 転送エンコード (p. 123)

API Version 2014-01-31120

Amazon CloudFront 開発者ガイドCloudFrontがカスタムオリジンサーバーからのレスポンス

を処理する方法

Page 126: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

キャッシュ• オリジンサーバーがDateおよびLast-Modifiedヘッダーフィールドに有効かつ正確な値を設定していることを確認します。

• ビューアからのリクエストに If-Matchまたは If-None-Matchリクエストヘッダーフィールドが含まれる場合、ETagレスポンスヘッダーフィールドを設定します。ETagの値が指定されていない場合、CloudFront は以降の If-Matchまたは If-None-Matchヘッダーを無視します。

取り消されたリクエストオブジェクトがエッジキャッシュになく、CloudFrontがオブジェクトをオリジンから取得したものの、リクエストされたそのオブジェクトを配信する前にビューアがセッションを終了すると(ブラウザを閉じるなど)、CloudFront はそのオブジェクトをエッジロケーションにキャッシュしません。

コンテンツネゴシエーションVaryヘッダーで受け付けられる唯一の値は Accept-Encodingです。CloudFront は他の値を無視します。

Cookieキャッシュ動作のCookieを有効にしており、オリジンがCookieとオブジェクトを返す場合、CloudFrontはオブジェクトと Cookie の両方をキャッシュします。これにより、オブジェクトのキャッシュ可能性が低下します。詳細については、「CloudFrontがCookieの転送、キャッシュ、およびログ作成を行う方法 (p. 86)」を参照してください。

中断された TCP 接続オリジンがオブジェクトを CloudFront に返している間に CloudFront とオリジン間の TCP 接続が中断した場合、CloudFrontの動作は、オリジンがContent-Lengthヘッダーをレスポンスに含めたかどうかによって異なります。

• Content-Lengthヘッダーあり:CloudFrontは、オブジェクトをオリジンから取得すると、ビューアにオブジェクトを返します。ただし、Content-Lengthヘッダーの値がオブジェクトのサイズに一致しない場合、CloudFront はオブジェクトをキャッシュしません。

• Transfer-Encoding: Chunked: CloudFront は、オブジェクトをオリジンから取得すると、ビューアにオブジェクトを返します。ただし、チャンクレスポンスが完了していない場合、CloudFront はオブジェクトをキャッシュしません。

• Content-Lengthヘッダーなし:CloudFrontはオブジェクトをビューアに返して、オブジェクトをキャッシュしますが、オブジェクトが完全でない場合があります。Content-Lengthヘッダーがない場合、CloudFront は、TCP 接続が誤って中断されたか、または故意に中断されたかを判断できません。

Content-Lengthヘッダーを追加して、不完全なオブジェクトがキャッシュされないように HTTPサーバーを構成することをお勧めします。

CloudFront が削除または更新するヘッダーフィールドCloudFront は、オリジンからのレスポンスをビューアに転送する前に、以下のヘッダーフィールドを削除または更新します。

• Proxy-Connection

API Version 2014-01-31121

Amazon CloudFront 開発者ガイドCloudFrontがカスタムオリジンサーバーからのレスポンス

を処理する方法

Page 127: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

• Set-Cookie: Cookie を転送するように CloudFront を構成している場合、Set-Cookieヘッダーフィールドがクライアントに転送されます。詳細については、「CloudFrontがCookieの転送、キャッシュ、およびログ作成を行う方法 (p. 86)」を参照してください。

• Trailer

• Transfer-Encoding:オリジンがこのヘッダーフィールドを返す場合、CloudFrontは値を chunkedに設定してビューアにレスポンスを返します。

• Upgrade

• Vary

• Via:オリジンがこのヘッダーフィールドをCloudFrontに返すかどうかにかかわらず、CloudFrontは次の値を設定します。

Via: 1.1 alphanumeric-string.cloudfront.net (CloudFront)

その後、ビューアにこのレスポンスを返します。以下に例を示します。

Via: 1.1 1026589cc7887e7a0dc7827b4example.cloudfront.net (CloudFront)

最大ファイルサイズCloudFrontがビューアに返すレスポンス本文の最大サイズは20GBです。これには、Content-Lengthヘッダーの値を指定しないチャンク転送レスポンスが含まれます。

オリジンが使用できない場合オリジンサーバーが使用できないときに、CloudFront がエッジキャッシュに存在するオブジェクトのリクエストを受け取り、そのオブジェクトが(例えば、Cache-Control max-ageディレクティブに指定された期間が経過しているために)有効期限切れになっている場合、CloudFront は有効期限切れバージョンのオブジェクトを供給するか、またはカスタムエラーページを供給します。詳細については、「CloudFrontがHTTP4xxおよび5xxステータスコードを処理およびキャッシュする方法(p. 123)」を参照してください。

場合によって、要求頻度の低いオブジェクトは削除されてエッジキャッシュで使用できなくなることがあります。CloudFront は、削除されたオブジェクトを供給することはできません。

リダイレクトオリジンサーバーでオブジェクトの場所を変更した場合、リクエストを新しい場所にリダイレクトするようにウェブサーバーを構成できます。リダイレクトが構成された後、ビューアがオブジェクトのリクエストを最初に送信したときに、CloudFront はリクエストをオリジンに送信し、オリジンはリダイレクトで応答します(例: 302 Moved Temporarily)。CloudFront はリダイレクトをキャッシュし、ビューアにリダイレクトを返します。CloudFront はリダイレクトに従いません。

リクエストを以下のどちらかの場所にリダイレクトするようにウェブサーバーを構成できます。

• オリジンサーバーのオブジェクトの新しいURL。ビューアが新しいURLへのリダイレクトに従う場合、ビューアは CloudFront をバイパスし、オリジンに直接アクセスします。つまり、オリジンにあるオブジェクトの新しい URL にリクエストをリダイレクトしないことをお勧めします。

• オブジェクトの新しい CloudFront URL。新しい CloudFront URL を含むリクエストがビューアから送信されると、CloudFrontは、オリジンの新しい場所からオブジェクトを取得し、エッジロケーションにキャッシュした後、ビューアにオブジェクトを返します。オブジェクトに対する以降のリクエストはエッジロケーションによって処理されます。これにより、オリジンのオブジェクトを要求するビューアに関連するレイテンシーと負荷が回避されます。ただし、オブジェクトに対する新しいすべてのリクエストに、CloudFront への 2 つのリクエストに対する料金がかかります。

API Version 2014-01-31122

Amazon CloudFront 開発者ガイドCloudFrontがカスタムオリジンサーバーからのレスポンス

を処理する方法

Page 128: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

転送エンコードCloudFront は、Transfer-Encodingヘッダーの chunked値のみをサポートします。オリジンがTransfer-Encoding: chunkedを返した場合、CloudFront は、エッジロケーションで受け取ったオブジェクトをクライアントに返し、そのオブジェクトをチャンク形式でキャッシュして以降のリクエストに備えます。

レスポンスのコンテンツ長を事前に決定できない場合は、チャンクエンコーディングを使用することをお勧めします。詳細については、「中断された TCP 接続 (p. 121)」を参照してください。

CloudFront が HTTP 4xx および 5xx ステータスコードを処理およびキャッシュする方法

Abstract

エラーが発生したときにCloudFrontがHTTPステータスコードを処理しキャッシュする方法について説明します。

Topics• カスタムエラーページが構成されている場合に CloudFront がエラーを処理する方法 (p. 124)• カスタムエラーページが構成されていない場合に CloudFront がエラーを処理する方法 (p. 124)• CloudFront がキャッシュする HTTP 4xx および 5xx ステータスコード (p. 125)

CloudFrontがAmazon S3バケットまたはカスタムオリジンサーバーのオブジェクトをリクエストすると、オリジンサーバーはHTTP4xxまたは5xxステータスコードを返すことがあります。このステータスコードは、エラーが発生したことを示します。CloudFront の動作は、以下の条件によって左右されます。

• カスタムエラーページが構成されているかどうか。• オリジンからのエラーレスポンスをCloudFrontがキャッシュする時間(エラーキャッシュ最小TTL)が構成されているかどうか。

• ステータスコード。• 5xx ステータスコードの場合、リクエストされたオブジェクトが現在 CloudFront エッジキャッシュにあるかどうか。

CloudFrontコンソールでのカスタムエラーページの設定の詳細については、「CustomError Pages(カスタムエラーページ)とErrorCaching(エラーキャッシュ)(p. 60)」を参照してください。CloudFrontコンソールでのエラーキャッシュ最小TTLの詳細については、「Error Caching Minimum TTL(エラーキャッシュ最小 TTL) (p. 60)」を参照してください。

CloudFrontがキャッシュするHTTPステータスコードのリストについては、「CloudFrontがキャッシュする HTTP 4xx および 5xx ステータスコード (p. 125)」を参照してください。

ログ作成を有効にしている場合、CloudFrontは、HTTPステータスコードに関係なく結果をログに書き込みます。

API Version 2014-01-31123

Amazon CloudFront 開発者ガイドCloudFront が HTTP 4xxおよび5xxステータスコードを処

理およびキャッシュする方法

Page 129: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

カスタムエラーページが構成されている場合にCloudFront がエラーを処理する方法オリジンが HTTP 4xx または 5xx ステータスコードを返したとき、リクエストされたオブジェクトがエッジキャッシュに存在せず、カスタムエラーページが構成されている場合、CloudFront は以下のように動作します。

1. 最初のリクエストを受け取った CloudFront エッジキャッシュで、CloudFront はディストリビューション構成を確認して、オリジンサーバーから返されたステータスコードに対応するカスタムエラーページのパスを取得します。

2. CloudFrontは、カスタムエラーページのパスと一致するパスパターンを持つ、ディストリビューション内の最初のキャッシュ動作を検索します。

3. CloudFront エッジロケーションは、キャッシュ動作に指定されているオリジンに、カスタムエラーページのリクエストを送信します。

4. オリジンはカスタムエラーページをエッジロケーションに返します。5. CloudFront は、リクエストを送信したビューアにカスタムエラーページを返し、エラーキャッシュ

最小 TTL(デフォルトで 5 分)に指定された時間カスタムエラーページのキャッシュも行います。6. エラーキャッシュ最小 TTLが経過すると、CloudFront はオリジンに別のリクエストを転送して、リ

クエストされたオブジェクトを再度取得することを試みます。

オリジンがHTTP5xxステータスコードを返したとき、リクエストされたオブジェクトがエッジキャッシュに存在し、カスタムエラーページが構成されている場合、CloudFrontは以下のように動作します。

1. オブジェクトは失効していますが、CloudFront はそのオブジェクトを返します。エラーキャッシュ最小 TTLの期間、CloudFront はビューアリクエストに対してエッジキャッシュのオブジェクトを返してレスポンスを続けます。

2. エラーキャッシュ最小 TTLが経過すると、CloudFront はオリジンに別のリクエストを転送して、リクエストされたオブジェクトを再度取得することを試みます。オブジェクトが頻繁に要求されない場合、CloudFront はそのオブジェクトをエッジキャッシュから削除することがありますが、オリジンサーバーは 5xx レスポンスを依然として返します。オブジェクトがCloudFront エッジキャッシュに保持される期間については、「CloudFront エッジキャッシュにオブジェクトを保持する時間の指定(有効期限切れ) (p. 90)」を参照してください。

カスタムエラーページが構成されていない場合にCloudFront がエラーを処理する方法リクエストされたオブジェクトがエッジキャッシュに存在せず、オリジンがHTTP4xxステータスコードまたはHTTP 5xx ステータスコードを返したとき、カスタムエラーページを構成していない場合、CloudFront は以下のように動作します。

1. CloudFront は 4xx または 5xx ステータスコードをビューアに返します。2. また、CloudFront は、リクエストを受け取ったエッジキャッシュにステータスコードをキャッシュ

します。3. エラーキャッシュ最小 TTL(デフォルトで 5 分)の期間、CloudFront はそれ以後に同じオブジェク

トを要求するビューアリクエストに、キャッシュされた 4xx または 5xx ステータスコードでレスポンスします。

4. エラーキャッシュ最小 TTLが経過すると、CloudFront はオリジンに別のリクエストを転送して、リクエストされたオブジェクトを再度取得することを試みます。

API Version 2014-01-31124

Amazon CloudFront 開発者ガイドカスタムエラーページが構成されている場合にCloudFront

がエラーを処理する方法

Page 130: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

オリジンがHTTP5xxステータスコードを返したとき、リクエストされたオブジェクトがエッジキャッシュに存在し、カスタムエラーページを構成していない場合、CloudFrontは以下のように動作します。

1. オブジェクトは失効していますが、CloudFront はそのオブジェクトを返します。エラーキャッシュ最小 TTLの期間、CloudFront はビューアリクエストに対してエッジキャッシュのオブジェクトを返してレスポンスを続けます。

2. エラーキャッシュ最小 TTLが経過すると、CloudFront はオリジンに別のリクエストを転送して、リクエストされたオブジェクトを再度取得することを試みます。オブジェクトが頻繁に要求されない場合、CloudFront はそのオブジェクトをエッジキャッシュから削除することがありますが、オリジンサーバーは 5xx レスポンスを依然として返します。オブジェクトがCloudFront エッジキャッシュに保持される期間については、「CloudFront エッジキャッシュにオブジェクトを保持する時間の指定(有効期限切れ) (p. 90)」を参照してください。

CloudFront がキャッシュする HTTP 4xx および 5xxステータスコードCloudFront は、Amazon S3 またはカスタムオリジンサーバーから返される以下の HTTP 4xx および5xx ステータスコードをキャッシュします。HTTPステータスコードのカスタムエラーページを構成してある場合は、CloudFront はカスタムエラーページをキャッシュします。

Bad Request400

Forbidden403

Not Found404

Method Not Allowed405

Request-URI Too Large414

Internal Service Error500

Not Implemented501

Bad Gateway502

Service Unavailable503

Gateway Time-out504

API Version 2014-01-31125

Amazon CloudFront 開発者ガイドCloudFront がキャッシュするHTTP 4xxおよび5xxステー

タスコード

Page 131: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

CloudFront を使用してプライベートコンテンツを供給する

Abstract

コンテンツにアクセスするときにCloudFront URL を必須にすることで、CloudFront を使用してプライベートコンテンツへのアクセスを制限します。

インターネットを通じてコンテンツを配信する多くの企業が、選ばれたユーザー(料金を支払っているユーザーなど)のドキュメント、ビジネスデータ、メディアストリーム、またはコンテンツに対して、アクセスを制限する必要があると考えています。CloudFront を使用してこのプライベートコンテンツを安全に供給するには、以下の方法を使用できます。

• コンテンツへのアクセスにユーザーが標準のCloudFrontパブリックURLではなく特別なCloudFront署名付き URL を使用するよう要求します。

• Amazon S3 コンテンツへのアクセスにユーザーが Amazon S3 URL ではなく CloudFront URL を使用するよう要求します。

プライベートコンテンツの概要プライベートコンテンツへのエンドユーザーアクセスは 2 つの方法を使用して制御可能です。

API Version 2014-01-31126

Amazon CloudFront 開発者ガイドプライベートコンテンツの概要

Page 132: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

CloudFront エッジキャッシュ内のオブジェクトへのアクセスを制限できます。オブジェクトへのアクセスにユーザーが特別な署名付き URL を使用するよう要求する CloudFront を構成できます。次に、署名付きURLを(手動またはプログラムで)作成してユーザーに配信します。

オブジェクトの署名付き URL を作成する場合、以下の項目を指定できます。

• 最終日時。この日時以降、URL が有効ではなくなります。• (オプション)URL が有効になる日時。• (オプション)コンテンツへのアクセスに使用可能なコンピューターのIPアドレスまたはアドレス範囲。

署名付き URL の 1 つのパートは、パブリック/プライベートキーペアからのプライベートキーを使用してハッシュ化および署名されます。ユーザーが署名付きURLを使用してオブジェクトにアクセスすると、CloudFront は URL の署名部分と無署名部分を比較します。これらが一致しない場合、CloudFront はオブジェクトを供給しません。

Amazon S3 バケット内のオブジェクトへのアクセスを制限できます。Amazon S3 バケット内のコンテンツにエンドユーザーがCloudFront URLを使用してアクセスでき、AmazonS3 URL を使用してアクセスできないように、Amazon S3 バケット内のコンテンツを保護できます。これにより、アクセスを制限しようとしているコンテンツに対して、ユーザーが CloudFront をバイパスし、Amazon S3 URL を使用してアクセスできなくなります。ユーザーが CloudFront URL を使用するよう要求するには、以下の処理を行います。

• オリジンアクセスアイデンティティと呼ばれる特別な CloudFront ユーザーを作成します。

• バケット内のオブジェクトの読み取り許可をオリジンアクセスアイデンティティに与えます。

• 他のユーザーに与えられているそれらのオブジェクトの読み取り許可を削除します。

プライベートコンテンツの機能プライベートコンテンツを使用して Amazon S3 コンテンツへのアクセスを保護する方法の概要を以下に示します。各ステップの詳細については後で説明します。

API Version 2014-01-31127

Amazon CloudFront 開発者ガイドプライベートコンテンツの機能

Page 133: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

Note

プライベートコンテンツをセットアップするには、CloudFront コンソールまたは CloudFrontAPI バージョン 2009-09-09 以降を使用する必要があります。

1. アクセスを制限しようとしているコンテンツに対して、ユーザーが CloudFront をバイパスし、Amazon S3 URL を使用してアクセスできないように、Amazon S3 のコンテンツを保護します。このステップはオプションですが、ユーザーがコンテンツのAmazon S3URLを覚えた場合に備えて、このステップを実行することをお勧めします。

a. 特別な CloudFront ユーザーであるオリジンアクセスアイデンティティを作成します。b. オリジンアクセスアイデンティティをディストリビューションに関連付けます。(ウェブディ

ストリビューションでは、オリジンアクセスアイデンティティをオリジンに関連付けます。そうすることで、Amazon S3 コンテンツのすべてまたは一部のみの保護が可能です)。

c. オリジンアクセスアイデンティティのみがオブジェクトにアクセスできるように Amazon S3内の許可を変更します。

詳細については、「オリジンアクセスアイデンティティを使用して Amazon S3 コンテンツへのアクセスを制限する (p. 131)」を参照してください。

2. CloudFrontディストリビューションで、1つ以上の信頼された署名者を指定します。これは、署名付き URL の作成許可が与えられる AWS アカウントです。

詳細については、「署名付き URL (信頼された署名者)の作成が可能な AWS アカウントの指定 (p. 137)」を参照してください。

3. 署名付きURLを必要とするオブジェクトやアプリケーションのパートに対して署名付きURLを作成するようにアプリケーションを開発します。

署名付き URL の詳細については、「署名付き URL の概要 (p. 143)」を参照してください。4. 署名付き URL を必要とするオブジェクトをエンドユーザーが要求します。5. アプリケーションは、オブジェクトにアクセスするための資格がエンドユーザーにあることを検証

します。例えば、エンドユーザーがサインインしていること、コンテンツへのアクセス料を支払っていること、他のいくつかのアクセス要件を満たしていることを検証します。

6. アプリケーションは署名付き URL を作成してエンドユーザーに返します。7. 署名付きURLを使用すると、ユーザーはコンテンツのダウンロードやストリーミングができます。

このステップは自動で実行されます。ユーザーは、コンテンツにアクセスする以外に、何も行う必要はありません。例えば、ユーザーがウェブブラウザでコンテンツにアクセスすると、アプリケーションは署名付き URL をブラウザに返します。ブラウザは、直ちに、署名付き URL を使用してCloudFront エッジキャッシュ内のオブジェクトにアクセスします。ユーザーからの介入はありません。

8. CloudFront は、URL が改ざんされておらず、依然として有効であることを確認します。例えば、URLの開始日時と終了日時を指定した場合、CloudFrontは、アクセスが許可されている期間にユーザーがコンテンツへのアクセスを試みていることを確認します。URL が有効な場合、CloudFrontは標準の操作を実行します。つまり、オブジェクトがエッジキャッシュにすでに存在するかどうかを確認し、必要に応じてリクエストをオリジンに転送して、オブジェクトをユーザーに返します。

プライベートコンテンツ用の HTTP サーバーの使用オリジンが Amazon S3 バケットまたは HTTP サーバーのどちらであるかに関係なく、あらゆるCloudFront ディストリビューションで署名付き URL を使用できます。ただし、CloudFront で HTTPサーバーのオブジェクトにアクセスするには、オブジェクトがパブリックにアクセス可能な状態で維持されている必要があります。オブジェクトがパブリックにアクセス可能であるため、HTTPサーバーのオブジェクトの URL を知っているユーザーは、CloudFront 署名付き URL によって提供される保護な

API Version 2014-01-31128

Amazon CloudFront 開発者ガイドプライベートコンテンツ用の HTTP サーバーの使用

Page 134: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

しで、オブジェクトにアクセスできます。署名付き URL を使用し、オリジンが HTTP サーバーの場合は、HTTP サーバーのオブジェクトの URL をカスタマーまたは組織外部のユーザーに提供しないでください。

署名付き URL の有効期間の選択短期間(おそらく数分)のみ有効な署名付きURLを使用してプライベートコンテンツを配信できます。このように短期間有効な署名付き URL は、限定された目的で、コンテンツをエンドユーザーにオンザフライで配信する場合に適しています。例えば、映画レンタルや音楽ダウンロードをカスタマーにオンデマンドで配信する場合に適しています。署名付き URL を短期間だけ有効にする場合、開発したアプリケーションを使用して、署名付き URL を自動生成することが必要になる場合があります。ユーザーがオブジェクトのダウンロードまたはメディアファイルの再生を開始すると、CloudFront は、URL 内の有効期限切れ時刻と現在の時刻を比較して、URL が依然として有効かどうかを判別します。

これよりも有効期間の長い(おそらく数年間の)署名付き URL を使用して、プライベートコンテンツを配信できます。有効期間の長い署名付き URL は、プライベートコンテンツを既知のエンドユーザーに配信する場合に役立ちます。例えば、事業計画を投資家に配信したり、教育資料を従業員に配信したりする場合に役立ちます。この長い期間の署名付き URL を自動で生成するアプリケーションを開発するか、プライベートコンテンツの構成ツール(p. 301)に示されたサードパーティGUIツールの1つを使用できます。

サンプルコードおよびサードパーティツール署名付き URL の、ハッシュ化および署名されたパートを作成するサンプルコードについては、以下のトピックを参照してください。

• Perl を使用して URL 署名を作成する (p. 163)• PHP を使用して URL 署名を作成する (p. 165)• C# と .NET Framework を使用して URL 署名を作成する (p. 167)• Java を使用して URL 署名を作成する (p. 175)

署名付きURLを作成するその他のサンプルコードは、Amazon CloudFront の「サンプルコード&ライブラリ」ページで取得できます。

署名付き URL の作成を含め、プライベートコンテンツをサポートするサードパーティツールの詳細については、「プライベートコンテンツの構成ツール (p. 301)」を参照してください。

API Version 2014-01-31129

Amazon CloudFront 開発者ガイド署名付き URL の有効期間の選択

Page 135: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

タスクリスト:プライベートコンテンツを供給するAbstract

ステップに従って CloudFront を構成してプライベートコンテンツを供給します。

プライベートコンテンツを供給するように CloudFront を構成するには、以下のタスクを実行します。

1. オプション: CloudFront ディストリビューションとAmazon S3バケットを構成し、Amazon S3コンテンツへのアクセスにユーザーがCloudFront URLのみを使用するよう要求します。詳細については、「オリジンアクセスアイデンティティを使用して Amazon S3 コンテンツへのアクセスを制限する (p. 131)」を参照してください。

2. 署名付き URL の作成に使用する AWS アカウントを指定します。詳細については、「署名付きURL(信頼された署名者)の作成が可能なAWSアカウントの指定(p.137)」を参照してください。

3. 署名付き URL を手動またはプログラムで作成し、認可されたエンドユーザーに与えます。詳細については、「署名付き URL の概要 (p. 143)」を参照してください。

API Version 2014-01-31130

Amazon CloudFront 開発者ガイドタスクリスト: プライベートコンテンツを供給する

Page 136: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

オリジンアクセスアイデンティティを使用してAmazon S3 コンテンツへのアクセスを制限する

Abstract

オリジンアクセスアイデンティティを作成して使用することで、Amazon S3 コンテンツへのアクセスを制限します。

Topics• CloudFrontオリジンアクセスアイデンティティを作成してディストリビューションに追加する(p.132)• オリジンアクセスアイデンティティに Amazon S3 バケット内のオブジェクトの読み取り許可を付与する (p. 134)

通常、Amazon S3バケットをCloudFrontディストリビューションのオリジンとして使用する場合、すべてのユーザーにバケット内のオブジェクトの読み取り許可を与えます。これにより、すべてのユーザーがCloudFrontURLまたはAmazonS3URLを使用してオブジェクトにアクセスできます。CloudFrontは Amazon S3 URL を公開しませんが、アプリケーションが何らかのオブジェクトを Amazon S3 から直接供給したり、Amazon S3 内の特定のオブジェクトへの直接リンクが公言されたりした場合、ユーザーは Amazon S3 URL を知ることができます。

CloudFront 署名付き URL を使用して Amazon S3 バケット内のオブジェクトへのアクセスを提供する場合は、ユーザーが Amazon S3 URL を使用して Amazon S3 オブジェクトにアクセスできないようにすることが必要になる場合もあります。ユーザーが Amazon S3 内のオブジェクトに直接アクセスすると、ユーザーはCloudFront署名付きURLによって提供される制御をバイパスします。これには、URLが有効期限切れになった場合の制御や、オブジェクトへのアクセスに使用可能な IP アドレスの制御が含まれます。また、ユーザーが CloudFront URL と Amazon S3 URL の両方を使用してオブジェクトにアクセスする場合、CloudFront アクセスログが不完全になり、役に立たなくなります。

特別な CloudFront ユーザーであるオリジンアクセスアイデンティティを作成することで、Amazon S3コンテンツへのアクセスを制限します。オリジンアクセスアイデンティティにオブジェクトへのアクセス許可を与え、他のすべてのユーザーから許可を削除するように、AmazonS3許可を変更します。ユーザーが CloudFront URL を使用して Amazon S3 オブジェクトにアクセスすると、CloudFront オリジンアクセスアイデンティティがユーザーに代わってオブジェクトを取得します。ユーザーが Amazon S3URL を使用してオブジェクトへのアクセスを試みると、ユーザーはアクセスを拒否されます。オリジンアクセスアイデンティティには、Amazon S3 バケット内のオブジェクトにアクセスするための許可がありますが、ユーザーにはありません。

Note

オリジンアクセスアイデンティティを作成するには、CloudFrontコンソールまたはCloudFrontAPI バージョン 2009-09-09 以降を使用する必要があります。

URLが署名されているかどうかに関係なく、ユーザーがオブジェクトにCloudFront URLのみを使用してアクセスしていることを確認するには、以下のタスクを実行します。

1. オリジンアクセスアイデンティティを作成してディストリビューションに追加します。詳細については、「CloudFront オリジンアクセスアイデンティティを作成してディストリビューションに追加する (p. 132)」を参照してください。

Note

ディストリビューションを作成するときに、オリジンアクセスアイデンティティを作成してディストリビューションに追加することもできます。

API Version 2014-01-31131

Amazon CloudFront 開発者ガイドオリジンアクセスアイデンティティを使用してAmazonS3

コンテンツへのアクセスを制限する

Page 137: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

2. オリジンアクセスアイデンティティのみが読み取り許可(または読み取りとダウンロードの許可)を持つように、Amazon S3 バケットに対する許可またはバケット内のオブジェクトに対する許可を変更します。

詳細については、「オリジンアクセスアイデンティティに Amazon S3 バケット内のオブジェクトの読み取り許可を付与する (p. 134)」を参照してください。

CloudFront オリジンアクセスアイデンティティを作成してディストリビューションに追加するAWS アカウントは最大で 100 個の CloudFront オリジンアクセスアイデンティティを持つことができます。ただし、1つのオリジンアクセスアイデンティティを、必要な数のディストリビューションに追加できるため、通常は 1 つのオリジンアクセスアイデンティティで十分です。

ディストリビューションの作成時にオリジンアクセスアイデンティティを作成してディストリビューションに追加しなかった場合は、ここで、CloudFront コンソールまたは CloudFront API を使用して、作成と追加を行うことができます。

• CloudFrontコンソールを使用する場合:オリジンアクセスアイデンティティの作成とディストリビューションへの追加を同時に行えます。詳細については、「CloudFront コンソールを使用して、オリジンアクセスアイデンティティを作成してディストリビューションに追加する (p. 132)」を参照してください。

• CloudFront API を使用する場合: オリジンアクセスアイデンティティを作成した後に、それをディストリビューションに追加します。以下の各トピックの手順を実行します。• CloudFront API を使用してオリジンアクセスアイデンティティを作成する (p. 133)• CloudFrontAPIを使用してディストリビューションにオリジンアクセスアイデンティティを追加する (p. 134)

CloudFrontコンソールを使用して、オリジンアクセスアイデンティティを作成してディストリビューションに追加するディストリビューションの作成時にオリジンアクセスアイデンティティを作成しなかった場合、以下の手順を実行します。

CloudFront コンソールを使用して CloudFront オリジンアクセスアイデンティティを作成するには

1. AWS マネジメントコンソールにサインインし、Amazon CloudFront コンソール(https://console.aws.amazon.com/cloudfront/)を開きます。

2. オリジンアクセスアイデンティティの追加先であるディストリビューションの アイコンをクリックします。

3. 編集モードに変更します。

• ウェブディストリビューション: [Origins] タブをクリックし、編集するオリジンをクリックし、[Edit] をクリックします。[Origin Type] が [S3 Origin] となっているオリジンに対してのみ、オリジンアクセスアイデンティティを作成できます。

• RTMP ディストリビューション: [Edit] をクリックします。

4. [Restrict Bucket Access] では、[Yes] をクリックします。5. 使用するオリジンアクセスアイデンティティがすでにある場合は、[Use an Existing Identity] をク

リックします。次に、[Your Identities] リストでアイデンティティを選択します。

API Version 2014-01-31132

Amazon CloudFront 開発者ガイドCloudFrontオリジンアクセスアイデンティティを作成して

ディストリビューションに追加する

Page 138: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

Note

オリジンアクセスアイデンティティがすでにある場合は、それを再利用し、メンテナンスを簡素化することをお勧めします。

アイデンティティを作成する場合は、[Create a New Identity] をクリックします。次に、アイデンティティの説明を [Comment] フィールドに入力します。

6. [Origin Domain Name] に指定された Amazon S3 バケット内のオブジェクトの読み取り許可を、CloudFront でオリジンアクセスアイデンティティに自動的に与える場合は、[Yes, Update BucketPolicy] をクリックします。

Important

[Yes, Update Bucket Policy] をクリックすると、CloudFront は、指定されたオリジンアクセスアイデンティティにバケット内のオブジェクトの読み取り許可を付与するようにバケット許可を更新します。ただし、CloudFront は既存の許可を削除しません。現在、Amazon S3 URL を使用してバケット内のオブジェクトにアクセスするための許可を持っているユーザーは、CloudFrontがバケット許可を更新した後もその許可を依然として持っています。既存のバケット許可を表示または削除するには、AmazonS3によって提供される方法を使用します。詳細については、「オリジンアクセスアイデンティティに AmazonS3バケット内のオブジェクトの読み取り許可を付与する(p. 134)」を参照してください。

Amazon S3 バケットに対する許可を手動で更新する場合は、[No, I Will Update Permissions] をクリックします。

7. [Yes, Edit] をクリックします。8. オリジンアクセスアイデンティティをウェブディストリビューションに追加しており、複数のオリ

ジンがある場合は、必要な回数だけステップ 3 ~ 7 を繰り返します。

CloudFront API を使用してオリジンアクセスアイデンティティを作成するオリジンアクセスアイデンティティがすでにあり、別のオリジンアクセスアイデンティティを作成するのではなくそれを再利用する場合は、このステップをスキップして「CloudFrontAPIを使用してディストリビューションにオリジンアクセスアイデンティティを追加する (p. 134)」に進んでください。

CloudFront API を使用して CloudFront オリジンアクセスアイデンティティを作成するには、POSTOrigin Access IdentityAPIアクションを使用します。レスポンスに新しいオリジンアクセスアイデンティティの Idと S3CanonicalUserIdが含まれます。これらの値をプロセスの後半で使用するため、これらの値を書き留めておきます。

• Id エレメント: Idエレメントの値を使用して、オリジンアクセス ID をディストリビューションと関連付けます。

• S3CanonicalUserId エレメント: CloudFront に Amazon S3 バケットまたはオブジェクトへのアクセスを与える場合に S3CanonicalUserIdエレメントの値を使用します。

POST Origin Access Identity APIアクションの詳細については、「Amazon CloudFront API リファレンス」の「POST Origin Access Identity」を参照してください。オリジンアクセスアイデンティティに対して実行可能な他のアクションのリストについては、「Amazon CloudFront API リファレンス」の「Actions on Origin Access Identities」を参照してください。

API Version 2014-01-31133

Amazon CloudFront 開発者ガイドCloudFrontオリジンアクセスアイデンティティを作成して

ディストリビューションに追加する

Page 139: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

CloudFront API を使用してディストリビューションにオリジンアクセスアイデンティティを追加するCloudFront APIを使用して、CloudFrontオリジンアクセスアイデンティティを既存のディストリビューションに追加したり、オリジンアクセスアイデンティティを含む新しいディストリビューションを作成したりできます。どちらの場合も、OriginAccessIdentityエレメントを含めます。このエレメントには、オリジンアクセスアイデンティティの作成時にPOST Origin Access IdentityAPIアクションによって返された Idエレメントの値が含まれます。ウェブディストリビューションの場合、OriginAccessIdentityエレメントを 1 つ以上のオリジンに追加します。RTMP ディストリビューションの場合、OriginAccessIdentityエレメントをディストリビューションに追加します。

「Amazon CloudFront API リファレンス」の該当するトピックを参照してください。

• 新しいウェブディストリビューションを作成する:「POST Distribution」• 既存のウェブディストリビューションを更新する:「PUT Distribution Config」• 新しい RTMP ディストリビューションを作成する:「POST Streaming Distribution」• 既存の RTMP ディストリビューションを更新する:「PUT Streaming Distribution Config」

オリジンアクセスアイデンティティにAmazonS3バケット内のオブジェクトの読み取り許可を付与するディストリビューションの作成または更新を行う場合、オリジンアクセスアイデンティティを追加するとともに、オリジンアクセスアイデンティティにバケットへのアクセス許可を与えるようにバケットポリシーを自動的に更新できます。また、バケットポリシーまたは ACL を手動で変更するように選択することもできます。ACL とは、バケット内の個々のオブジェクトに対する許可を制御するものです。

どちらの方法を使用する場合も、バケットに対するバケットポリシーと、オブジェクトに対する許可を見直して、以下の点を確認する必要があります。

• CloudFront URL を使用してオブジェクトを要求するユーザーに代わって、CloudFront がバケット内のオブジェクトにアクセスできること。

• ユーザーが Amazon S3 URL を使用してオブジェクトにアクセスできないこと。

Caution

CloudFront がサポートするすべてのHTTPメソッドを受け入れて Amazon S3 に転送するように CloudFront を構成する場合、お客様の Amazon S3 コンテンツへのアクセスを制限するCloudFront オリジンアクセスアイデンティティを作成して、そのオリジンアクセスアイデンティティに適切な許可を付与します。例えば、PUTメソッドを使用したいので、上記のメソッドを受け入れて転送するようにCloudFrontを構成するという場合は、削除すべきでないリソースをユーザーが削除できないようにするために、DELETEリクエストを適切に処理するAmazonS3 バケットポリシーまたは ACL を構成する必要があります。

次の点に注意してください。

• 許可を更新しなくてもオブジェクトをバケットに追加できるため、ACL を更新するよりも AmazonS3 バケットポリシーを更新するほうが簡単な場合があります。ただし、ACLを使用すると、各オブジェクトに対する許可を付与できるため、より詳細な制御が可能になります。

• デフォルトでは、AmazonS3バケットと、バケット内のすべてのオブジェクトはプライベートです。バケットを作成したAWSアカウントのみが、バケット内のオブジェクトの読み取りまたは書き込み許可を有しています。

API Version 2014-01-31134

Amazon CloudFront 開発者ガイドオリジンアクセスアイデンティティに Amazon S3 バケッ

ト内のオブジェクトの読み取り許可を付与する

Page 140: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

• オリジンアクセスアイデンティティを既存のディストリビューションに追加する場合、バケットポリシーまたはすべてのオブジェクト ACL を必要に応じて変更し、オブジェクトがパブリックに公開されないようにします。

• Amazon S3 バケットのコンテンツを引き続き更新できるように、追加の許可を 1 つ以上のセキュア管理者アカウントに付与します。

Important

AmazonS3許可への変更を保存してから変更が有効になるまでわずかな遅延が生じる場合があります。変更が有効になるまでは、バケット内のオブジェクトにアクセスしようとすると、許可が拒否されたことを示すエラーを受け取ることがあります。

S3 バケットポリシーを更新するAWS Management Console または Amazon S3 API を使用して Amazon S3 バケットポリシーを更新できます。

• バケットに対する適切な許可を CloudFront オリジンアクセスアイデンティティに付与します。

オリジンアクセスアイデンティティを指定するには、CloudFrontコンソールの[Origin Access Identity]ページにある [Amazon S3 Canonical User ID] の値を使用します。CloudFront API を使用する場合は、オリジンアクセスアイデンティティの作成時に返された S3CanonicalUserIdエレメントの値を使用します。

• Amazon S3 URL を使用したアクセスが望まれないすべてのユーザーへのアクセスを拒否します。

詳細については、「Amazon Simple Storage Service 開発者ガイド」の「バケットポリシーの使用」を参照してください。

例えば、同じ「Amazon Simple Storage Service 開発者ガイド」にあるトピック「Amazon S3バケットポリシーの参考例」の「正規IDを使用したCloudFrontオリジンアクセスアイデンティティへのアクセス許可の付与」を参照してください。

Amazon S3 ACL を更新するAWS Management Console または Amazon S3 API を使用して、Amazon S3 ACL を変更します。

• CloudFront ディストリビューションによって供給される各オブジェクトに対する適切な許可をCloudFront オリジンアクセスアイデンティティに付与します。

オリジンアクセスアイデンティティを指定するには、CloudFrontコンソールの[Origin Access Identity]ページにある [Amazon S3 Canonical User ID] の値を使用します。CloudFront API を使用する場合は、オリジンアクセスアイデンティティの作成時に返された S3CanonicalUserIdエレメントの値を使用します。

• Amazon S3 URL を使用したアクセスが望まれないすべてのユーザーへのアクセスを拒否します。

別のAWSアカウントでオブジェクトをバケットにアップロードする場合、そのアカウントはオブジェクトの所有者です。デフォルトでは、バケット内のオブジェクトを所有するアカウントが、そのオブジェクトに許可を付与できる唯一のアカウントです。ただし、オブジェクトを所有するAWSアカウントは、任意のユーザーを所有者とすることもできます。これにより、そのユーザーはオブジェクトに対する許可を変更できます。

詳細については、「Amazon Simple Storage Service 開発者ガイド」の「ACLの使用」を参照してください。

API Version 2014-01-31135

Amazon CloudFront 開発者ガイドオリジンアクセスアイデンティティに Amazon S3 バケッ

ト内のオブジェクトの読み取り許可を付与する

Page 141: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

コードと、AWS SDK の 1 つを使用して、ACL を変更することもできます。例えば、「C# と .NETFrameworkを使用してURL署名を作成する(p. 167)」にあるダウンロード可能なサンプルコードを参照してください。

API Version 2014-01-31136

Amazon CloudFront 開発者ガイドオリジンアクセスアイデンティティに Amazon S3 バケッ

ト内のオブジェクトの読み取り許可を付与する

Page 142: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

署名付きURL(信頼された署名者)の作成が可能な AWS アカウントの指定

Abstract

どの AWSアカウントがAmazon S3 バケットのオブジェクトにアクセスできるかを指定する署名付きURLを作成します。

Topics• 信頼された署名者の CloudFront キーペアを作成する (p. 138)• CloudFront プライベートキーの形式を変更する(.NET および Java のみ) (p. 139)• 信頼された署名者をディストリビューションに追加する (p. 139)• 信頼された署名者が有効になっていることを確認する(オプション) (p. 141)• CloudFront キーペアを更新する (p. 142)

Amazon S3 バケット内のオブジェクトの署名付き URL を作成するには、有効な CloudFront キーペアを持つ少なくとも1つのAWSアカウントが必要です。このアカウントは信頼された署名者と呼ばれます。信頼された署名者には 2 つの目的があります。

• 信頼された署名者のAWSアカウント番号がディストリビューションに追加された直後から、CloudFrontは、Amazon S3バケット内のオブジェクトへのアクセスにユーザーが署名付きURLを使用するよう要求します。

• 署名付きURLを作成する場合、信頼された署名者のキーペアからプライベートキーを使用して、URLの一部を署名します。ユーザーが署名付きURLを使用してオブジェクトにアクセスすると、CloudFrontはURLの署名部分を無署名部分と比較して、URLが改ざんされていないことを確認します。CloudFrontは、URL が有効であることも確認します。例えば、URL 内の有効期限切れ日時が経過していないことを確認します。

信頼された署名者を指定する場合、署名付き URL を必要とするオブジェクトも間接的に指定します。

• ウェブディストリビューション:信頼された署名者をキャッシュ動作に追加します。ディストリビューションに1つのキャッシュ動作のみが含まれる場合、ユーザーは、ディストリビューションに関連付けられたオブジェクトへのアクセスに署名付き URL を使用する必要があります。複数のキャッシュ動作を作成し、信頼された署名者を一部のキャッシュ動作に追加し、それ以外のキャッシュ動作に追加しなかった場合、一部のオブジェクトへのアクセスについては、ユーザーが署名付き URL を使用するよう要求し、その他のオブジェクトへのアクセスについては要求しないということが可能になります。

• RTMP ディストリビューション: 信頼された署名者をディストリビューションに追加します。信頼された署名者を RTMP ディストリビューションに追加した後、ユーザーは、ディストリビューションに関連付けられたすべてのオブジェクトへのアクセスに署名付き URL を使用する必要があります。

Note

信頼された署名者をディストリビューションに指定するには、CloudFront コンソールまたはCloudFront API バージョン 2009-09-09 以降を使用する必要があります。

署名付きURLの作成と、CloudFront ディストリビューションへのアカウントの追加が許可されるアカウントを指定するには、以下のタスクを実行します。

1. 信頼された署名者として使用する AWS アカウントを決定します。ほとんどの CloudFront カスタマーは、ディストリビューションの作成に使用したアカウントを使用します。

API Version 2014-01-31137

Amazon CloudFront 開発者ガイド署名付きURL(信頼された署名者)の作成が可能なAWS

アカウントの指定

Page 143: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

2. ステップ 1 で選択したアカウントごとに、CloudFront キーペアを作成します。詳細については、「信頼された署名者の CloudFront キーペアを作成する (p. 138)」を参照してください。

3. 署名付き URL の作成に .NET または Java を使用する場合は、CloudFront プライベートキーの形式を変更します。詳細については、「CloudFront プライベートキーの形式を変更する(.NETおよび Java のみ) (p. 139)」を参照してください。

4. 作成している署名付き URL の対象となるディストリビューションで、信頼された署名者の AWSアカウント番号を指定します。詳細については、「信頼された署名者をディストリビューションに追加する (p. 139)」を参照してください。

5. オプション: 信頼された署名者に有効な CloudFront キーペアがあることを CloudFront が認識していることを確認します。信頼された署名者に有効な CloudFront キーペアがある場合、CloudFrontは、その署名者を有効な信頼済み署名者として認識します。詳細については、「信頼された署名者が有効になっていることを確認する(オプション) (p. 141)」を参照してください。

信頼された署名者のCloudFrontキーペアを作成するCloudFront 署名付き URL の作成に使用する各 AWS アカウント(信頼された署名者)によって独自のCloudFront キーペアが作成される必要があり、キーペアが有効になっている必要があります。次の点に注意してください。

• 現在、IAM ユーザーは CloudFront キーペアの作成を許可されていません。したがって、信頼された署名者として IAM ユーザーを使用することはできません。

• CloudFront キーペアの代わりにAmazon EC2キーペアを使用することはできません。CloudFront 署名付きURLを作成する場合、信頼された署名者のキーペアのキーペアIDをURLに含めます。AmazonEC2 では、キーペア ID を使用可能にすることはできません。

アプリケーションのセキュリティを維持するには、CloudFrontキーペアを90日おきに、またはそれより多くの頻度で変更することをお勧めします。詳細については、「CloudFront キーペアを更新する (p. 142)」を参照してください。

信頼された署名者の CloudFront キーペアを作成するには

1. AWS Management Console にサインインし、セキュリティ認証情報ページ(https://console.aws.amazon.com/iam/home?#security_credential)を開きます。

2. [CloudFront Key Pairs] を展開します。3. [Create new Key Pair] をクリックします。4. [Create Key Pair] ダイアログボックスで、[Download Private Key File] をクリックします。5. [Opening <filename>]ダイアログボックスで、[Save File]のデフォルト値を受け入れます。[OK]を

クリックし、CloudFront キーペアのプライベートキーをダウンロードして保存します。

Important

CloudFront キーペアのプライベートキーを安全な場所に保存します。必要な管理者ユーザーだけがそのプライベートキーを読み取ることができるように、ファイルに対する許可を設定します。別のユーザーがこのプライベートキーを取得すると、そのユーザーは有効な署名付き URL を生成し、コンテンツのダウンロードが可能になります。プライベートキーを再取得することはできません。したがって、プライベートキーを削除したか失った場合は、新しい CloudFront キーペアを作成する必要があります。

6. キーペアのキーペアIDを記録しておきます。この情報は、署名付きURLを作成するときに使用します。

API Version 2014-01-31138

Amazon CloudFront 開発者ガイド信頼された署名者の CloudFront キーペアを作成する

Page 144: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

CloudFrontプライベートキーの形式を変更する(.NETおよび Java のみ).NET または Java を使用して署名付き URL を作成する場合、キーペアからのプライベートキーをデフォルトの .pem 形式のまま使用して署名を作成することはできません。

• .NET Framework: .NET Framework で使用する XML 形式にプライベートキーを変換します。いくつかのツールを利用できます。C#と .NET Frameworkを使用してURL署名を作成する (p. 167)の例では、.NET 2.0 OpenSSL パブリックおよびプライベートキーパーサー(http://www.jensign.com/opensslkey/opensslkey.cs)を使用しました。

• Java: DER 形式にプライベートキーを変換します。これを行うには、OpenSSL を使用できます。

$ openssl pkcs8 -topk8 -nocrypt -in origin.pem -inform PEM -out new.der-outform DER

エンコーダが正常に機能するように、Bouncy Castle の Java 用暗号 API の jar をプロジェクトに追加してから Bouncy Castle プロバイダーを追加します。

信頼された署名者をディストリビューションに追加する信頼された署名者とは、ディストリビューションの署名付き URL の作成を許可された AWS アカウントです。デフォルトでは、どのアカウントも(ディストリビューションを作成したアカウントも)、ディストリビューションの署名付き URL の作成を許可されていません。信頼された署名者として使用する AWS アカウントを指定するには、そのアカウントをディストリビューションに追加します。

• ウェブディストリビューション: 信頼された署名者はキャッシュ動作に関連付けられます。これにより、同じディストリビューション内で、一部のオブジェクトに署名付き URL を要求し、その他のオブジェクトには要求しないということが可能になります。信頼された署名者は、対応するキャッシュ動作に関連付けられたオブジェクトに対してのみ署名付き URL を作成できます。例えば、1 つのキャッシュ動作に対して1つの信頼された署名者があり、別のキャッシュ動作に対して別の信頼された署名者がある場合、どちらの信頼された署名者も、もう一方のキャッシュ動作に関連付けられたオブジェクトに対して署名付き URL を作成できません。

• RTMP ディストリビューション: 信頼された署名者はディストリビューションに関連付けられます。信頼された署名者を RTMP ディストリビューションに追加した後、ユーザーは、ディストリビューションに関連付けられたすべてのオブジェクトへのアクセスに署名付き URL を使用する必要があります。

CloudFront が必要に応じて署名付きURLを要求したり、要求しなかったりするように、キャッシュ動作のパスパターンを慎重に定義する必要があります。

Caution

コンテンツへの意図されないアクセスがエンドユーザーに与えられないように、パスパターンとその順序を慎重に定義します。例えば、リクエストが、2 つのキャッシュ動作のパスパターンに一致したと仮定します。最初のキャッシュ動作は署名付きURLを要求しませんが、2番目のキャッシュ動作は署名付きURLを要求します。エンドユーザーは署名付きURLを使用せずにオブジェクトにアクセスできます。これは、CloudFront が、最初の一致に関連付けられたキャッシュ動作を処理するためです。

パスパターンの詳細については、「パスパターン (p. 51)」を参照してください。

API Version 2014-01-31139

Amazon CloudFront 開発者ガイドCloudFront プライベートキーの形式を変更する(.NET お

よび Java のみ)

Page 145: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

Caution

コンテンツの配信ですでに使用されているディストリビューションを更新する場合は、オブジェクトの署名付き URL の生成を開始する準備ができたときにのみ、信頼された署名者を追加します。信頼された署名者を RTMP ディストリビューションに追加した後、ユーザーは、ディストリビューションに関連付けられたすべてのオブジェクトへのアクセスに署名付きURLを使用する必要があります。信頼された署名者をウェブディストリビューションのキャッシュ動作に追加した後、ユーザーは、キャッシュ動作に関連付けられたオブジェクトへのアクセスに署名付き URL を使用する必要があります。

信頼された署名者の最大数は、ディストリビューションの種類によって異なります。

• ウェブディストリビューション: キャッシュ動作ごとに最大 5• RTMP ディストリビューション: ディストリビューションごとに最大 5

CloudFront コンソールまたは CloudFront API を使用して、信頼された署名者をディストリビューションに追加できます。該当のトピックを参照してください。

• CloudFrontコンソールを使用して、信頼された署名者をディストリビューションに追加する(p. 140)• CloudFront API を使用して、信頼された署名者をディストリビューションに追加する (p. 141)

CloudFrontコンソールを使用して、信頼された署名者をディストリビューションに追加するCloudFrontコンソールを使用して、信頼された署名者をディストリビューションに追加するには

1. ディストリビューションを作成したAWSアカウントのみを、信頼された署名者として使用する場合は、このステップをスキップしてステップ 2 に進んでください。

他の AWS アカウントを使用する場合、アカウントごとに AWS アカウント番号を取得します。

a. 信頼された署名者として使用するアカウントを使用して、AWS Management Console(https://console.aws.amazon.com/console/home)にサインインします。

b. コンソールの右上で、アカウントに関連付けられた名前をクリックし、[MyAccount]をクリックします。

c. ページの右上に表示されたアカウント番号を書き留めます。d. [Sign Out] をクリックします。e. 信頼された署名者として使用する他のアカウントについて、ステップa~dを繰り返します。

2. Amazon CloudFront コンソール(https://console.aws.amazon.com/cloudfront/)を開きます。信頼された署名者の追加先のディストリビューションを作成したときに使用したアカウントを使用して、サインインします。

3. ディストリビューションの アイコンをクリックします。4. 編集モードに変更します。

• ウェブディストリビューション: [Behaviors]タブをクリックし、編集する動作をクリックして、[Edit] をクリックします。

• RTMP ディストリビューション: [Edit] をクリックします。

5. [Restrict Viewer Access (Use Signed URLs)] で、[Yes] をクリックします。

API Version 2014-01-31140

Amazon CloudFront 開発者ガイド信頼された署名者をディストリビューションに追加する

Page 146: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

6. [Trusted Signers] で、該当のチェックボックスをオンにします。

• Self: 現在のアカウント(ディストリビューションの作成に使用したアカウント)を使用する場合、このチェックボックスをオンにします。

• Specify Accounts: 他の AWS アカウントを使用する場合、このチェックボックスをオンにします。

7. [SpecifyAccounts]チェックボックスをオンにした場合、AWSアカウント番号(ハイフン付きまたはハイフンなし)を [AWS Account Number] フィールドに入力します。行ごとに 1 つのアカウント番号を入力します。

8. [Yes, Edit] をクリックします。9. 信頼された署名者をウェブディストリビューションに追加しており、複数のキャッシュ動作がある

場合は、必要に応じてステップ 4 ~ 8 を繰り返します。

CloudFront API を使用して、信頼された署名者をディストリビューションに追加するCloudFront APIを使用して、信頼された署名者のAWSアカウント番号を既存のディストリビューションに追加したり、信頼された署名者を含む新しいディストリビューションを作成したりできます。どちらの場合も、適用可能な値を TrustedSignersエレメントに指定します。ウェブディストリビューションの場合、TrustedSignersエレメントを 1つ以上のキャッシュ動作に追加します。RTMP ディストリビューションの場合、TrustedSignersエレメントをディストリビューションに追加します。

「Amazon CloudFront API リファレンス」の該当するトピックを参照してください。

• 新しいウェブディストリビューションを作成する:「POST Distribution」• 既存のウェブディストリビューションを更新する:「PUT Distribution Config」• 新しい RTMP ディストリビューションを作成する:「POST Streaming Distribution」• 既存の RTMP ディストリビューションを更新する:「PUT Streaming Distribution Config」

信頼された署名者が有効になっていることを確認する(オプション)信頼された署名者をディストリビューションに追加した後、その署名者が有効になっていることを確認することをお勧めします。信頼された署名者を有効にするには、以下の条件が満たされている必要があります。

• AWS アカウントに少なくとも 1 つの有効なキーペアが必要です。キーペアを更新する場合、アカウントは、一時的に 2 つの有効なキーペア(古いキーペアと新しいキーペア)を持ちます。

• CloudFront が有効なキーペアを認識する必要があります。キーペアを作成してから CloudFront がキーペアの存在を認識するまで、わずかな期間が生じる可能性があります。

Note

現在、ディストリビューションで有効な信頼済み署名者のリストを表示するには、CloudFrontAPIを使用する必要があります。有効な信頼済み署名者のリストはCloudFrontコンソールでは利用できません。

API Version 2014-01-31141

Amazon CloudFront 開発者ガイド信頼された署名者が有効になっていることを確認する(オ

プション)

Page 147: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

CloudFront API を使用して、信頼された署名者が有効であることを確認する有効なキーペアを持つ信頼された署名者(有効な信頼済み署名者)を確認するには、ディストリビューションを取得し、ActiveTrustedSignersエレメントの値を確認します。このエレメントには、信頼された署名者としてディストリビューションで識別されている各アカウントのAWSアカウント番号が含まれます。信頼された署名者に 1 つ以上の有効な CloudFront キーペアがある場合、ActiveTrustedSignersエレメントにはそのキーペアIDも含まれます。詳細については、「AmazonCloudFront API リファレンス」の該当するトピックを参照してください。

• ウェブディストリビューション:「GET Distribution」• RTMP ディストリビューション:「GET Streaming Distribution」

CloudFront キーペアを更新するAWS は、有効な CloudFront キーペアを 90 日おきに更新(変更)することをお勧めします。有効期限がまだ切れていない URL を無効にすることなく、署名付き URL の作成に使用している &CF;キーペアを更新するには、以下のタスクを実行します。

1. 署名付き URL の作成に使用しているアカウントごとに新しいキーペアを作成します。詳細については、「信頼された署名者の CloudFront キーペアを作成する (p. 138)」を参照してください。

2. CloudFront が新しいキーペアを認識していることを確認します。詳細については、「信頼された署名者が有効になっていることを確認する(オプション) (p. 141)」を参照してください。

3. 新しいキーペアからのプライベートキーを使用して署名を作成するようにアプリケーションを更新します。

4. 新しいプライベートキーを使用して署名する署名付き URL が正常に機能することを確認します。5. 古いCloudFrontキーペアを使用して署名された署名付きURLの有効期限切れ日付が経過するまで

待ちます。6. 古い CloudFront キーペアを [Inactive] に変更します。

a. セキュリティ認証情報ページに移動します。b. [CloudFront Key Pairs] を展開します。c. 該当のキーペアで、[Make Inactive] をクリックします。

7. 新しいプライベートキーを使用して署名する署名付き URL が正常に機能することを再度確認します。

8. 古い CloudFront キーペアを削除します。

a. セキュリティ認証情報ページに移動します。b. [CloudFront Key Pairs] を展開します。c. 該当のキーペアで、[Delete] をクリックします。

9. 古いプライベートキーの保存場所から古いプライベートキーを削除します。

API Version 2014-01-31142

Amazon CloudFront 開発者ガイドCloudFront キーペアを更新する

Page 148: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

署名付き URL の概要Abstract

オブジェクトへのアクセスを制御する特別な署名付き URL を使用する際の基本情報について説明します。

Topics• 既定ポリシーを使用して作成する署名付き URL (p. 143)• カスタムポリシーを使用して作成する署名付き URL (p. 143)• 署名付き URL の各パート (p. 144)• CloudFront が署名付き URL 内の有効期限切れ日時を確認するタイミング (p. 146)

これで、オブジェクトへのアクセスにエンドユーザーが特別な署名付き URL を使用するよう要求するCloudFront が構成されました。次に、署名付きURLを(手動またはプログラムで)作成し、オブジェクトへのアクセスが付与されるユーザーに署名付き URL を配信できます。

署名付き URL には、有効期限切れ日時など、追加の情報も含まれており、コンテンツへのアクセスをより詳細に制御できます。この追加情報は、既定ポリシーまたはカスタムポリシーに基づくポリシーステートメントに含まれます。既定ポリシーとカスタムポリシーの違いを以下の2つのセクションで説明します。

Note

同じディストリビューションで、一部の署名付き URL を既定ポリシーを使用して作成し、一部の署名付き URL をカスタムポリシーを使用して作成することができます。

既定ポリシーを使用して作成する署名付き URL以下の場合に、既定ポリシーを使用して CloudFront 署名付き URL を作成します。

• 1 つのオブジェクトにアクセスを制限する。• ユーザーのアクセスを停止する日時に基づいて、オブジェクトへのアクセスを制御する。

ポリシーをURLに含めないので、既定ポリシーではURLが短くなります。署名を含めます。この署名に対してポリシーをハッシュ化して署名します。

ユーザーが、既定ポリシーによって作成された署名付き URL を使用してオブジェクトを要求すると、CloudFront は、URL 内の情報に基づいて既定ポリシーのステートメントを再構築します。次に、CloudFrontは、再構築されたポリシーステートメントと署名内のポリシーステートメントを比較して、コンテンツへのエンドユーザーのアクセスを許可するかどうかを決定します。2つのステートメントが正確に一致しない場合、CloudFront はコンテンツへのアクセスを拒否します。

既定ポリシーを使用して署名付き URL を作成する方法については、「既定ポリシーを使用して署名付き URL を作成する (p. 147)」を参照してください。

カスタムポリシーを使用して作成する署名付き URL以下の場合に、カスタムポリシーを使用して CloudFront 署名付き URL を作成します。

• 年次報告書ディレクトリのすべての.pdfファイルなど、1つ以上のオブジェクトへのアクセスを制限する。これにより、複数のオブジェクトの署名付き URL に 1 つのポリシーステートメントだけを使用できます。

• 以下の情報に基づいて、オブジェクトへのアクセスを制御する。

API Version 2014-01-31143

Amazon CloudFront 開発者ガイド署名付き URL の概要

Page 149: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

• ユーザーのアクセスを停止する日時。• ユーザーのアクセスを開始する日時。(オプション)• オブジェクトへのアクセスが与えられるユーザーの IP アドレスまたは IP アドレス範囲。(オプション)

カスタムポリシーを使用して作成する署名付き URL では、既定ポリシーを使用して作成する署名付きURL と同様に、ポリシーをハッシュ化および署名し、署名を含めます。また、ポリシーの Base64 エンコードバージョンをURLに含めます。これは、URLで使用可能な圧縮を提供します。結果的に、カスタムポリシーを使用すると、既定ポリシーよりも URL が長くなります。

ユーザーが、既定ポリシーで作成された署名付きURLを使用してオブジェクトを要求すると、CloudFrontは、署名付き URL 内のカスタムポリシーステートメントを署名内のポリシーステートメントと比較して、コンテンツへのエンドユーザーのアクセスを許可するかどうかを決定します。2つのステートメントが正確に一致しない場合、CloudFront はコンテンツへのアクセスを拒否します。

カスタムポリシーを使用して署名付き URL を作成する方法については、「カスタムポリシーを使用して署名付き URL を作成する (p. 153)」を参照してください。

署名付き URL の各パートCloudFront 署名付き URL には以下のコンポーネントが含まれます。

ベース URLベースURLは、署名付きURLを使用しなかった場合にオブジェクトへのアクセスに使用するCloudFrontURL であり、独自のクエリ文字列パラメータを含みます(ある場合)。ウェブディストリビューション用の URL 形式の詳細については、「CloudFront オブジェクトの URL の形式 (p. 81)」を参照してください。

以下の例は、ウェブディストリビューションで指定する値を示しています。

• 以下のCloudFrontURLは、ウェブディストリビューション内のオブジェクトのURLです(CloudFrontドメイン名を使用)。image.jpgは imagesディレクトリにあります。URL内のオブジェクトへのパスは、HTTP サーバーまたは Amazon S3 バケットのオブジェクトへのパスに一致する必要があります。

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

• 以下の CloudFront URL には、クエリ文字列が含まれます。

http://d111111abcdef8.cloudfront.net/images/image.jpg?size=large

• 以下の CloudFront URL は、ウェブディストリビューション内のオブジェクトの URL です。両方のURL で代替ドメイン名が使用されており、2 番目の URL にはクエリ文字列が含まれています。

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

http://www.example.com/images/image.jpg?color=red

• 以下のCloudFrontURLは、代替ドメイン名とHTTPSプロトコルを使用するウェブディストリビューション内のオブジェクトの URL です。

https://www.example.com/images/image.jpg

以下の例は、RTMP ディストリビューションの場合の、2 つの異なるビデオ形式(MP4 と FLV)のオブジェクトの例です。

• MP4: mp4:sydney-vacation.mp4

API Version 2014-01-31144

Amazon CloudFront 開発者ガイド署名付き URL の各パート

Page 150: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

• FLV: sydney-vacation• FLV: sydney-vacation.flv

Note

.flvファイルの場合、.flvファイル名拡張子を含めるかどうかは、使用するプレーヤーによって決まります。MP3 オーディオファイルまたは H.264/MPEG-4 ビデオファイルを供給するには、ファイル名の先頭にプレフィックス mp3:または mp4:を追加することが必要になる場合があります。メディアプレーヤーによっては、プレフィックスを自動で追加するように構成できます。メディアプレーヤーがファイル拡張子のないファイル名の指定を要求する場合もあります(例: sydney-vacation.mp4 ではなく sydney-vacation)。

有効期限切れ日時(既定ポリシーのみ)該当のURLによるオブジェクトへのアクセスを禁止する日時。Unix時間形式(秒単位)および協定世界時(UTC)で表されます。例えば、UTC の 2013 年 1 月 1 日午前 10 時 00 分は、Unix 時間形式の1357034400に変換されます。UTCの詳細については、「RFC3339、インターネットでの日付と時間:タイムスタンプ」(http://tools.ietf.org/html/rfc3339)を参照してください。

カスタムポリシーを使用する場合も、該当の署名付き URL によるオブジェクトへのアクセスを禁止する日時を指定できますが、日時は署名付き URL 内に独立したクエリ文字列パラメータとして存在するのではなく、ポリシーステートメントに含まれます。

ポリシーステートメントポリシーステートメントは、署名付きURLの特性を決定する JSON形式のテキスト文字列です。既定ポリシーおよびカスタムポリシーのどちらにおいても、ポリシーステートメントには、オブジェクトのURL(ウェブディストリビューションの場合)またはストリーム名(RTMPディストリビューションの場合)、および有効期限切れ日時が含まれます。次の点に注意してください。

• 既定ポリシー:ポリシーステートメントを署名付きURLに含めずに(ポリシーステートメントをハッシュ化して署名できるようにポリシーステートメントを作成するだけであり)、署名を URL に含めます。「署名 (p. 145)」を参照してください。

• カスタムポリシー:また、オプションで、URLが有効になる日時や、オブジェクトへのアクセスが許可されるIPアドレスまたは IPアドレス範囲を含めることもできます。次に、ポリシーステートメントを Base64 エンコードして、エンコードされたポリシーステートメントを署名付き URL に含めます。

署名署名とは、ハッシュ化および署名されたバージョンのポリシーステートメントです。

署名付き URL を作成する AWS アカウントの CloudFront キーペア IDCloudFront キーペア ID は、署名付きURL の検証に使用するパブリックキーをCloudFront に指示します。CloudFront は、署名内の情報をポリシーステートメント内の情報と比較して、URL が改ざんされていないことを確認します。

CloudFront 署名付き URL に含めるキーペア ID は、いずれかの信頼された署名者の有効なキーペア IDである必要があります。詳細については、「署名付きURL(信頼された署名者)の作成が可能なAWSアカウントの指定 (p. 137)」を参照してください。

API Version 2014-01-31145

Amazon CloudFront 開発者ガイド署名付き URL の各パート

Page 151: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

署名付きURLをプログラムで生成しており、CloudFront キーペアを更新している間にキーペアを無効にした場合、いずれかの信頼された署名者の新しい有効なキーペアを使用するようにアプリケーションを更新する必要があります。署名付きURLを手動で生成している場合は、新しい署名付きURLを作成する必要があります。キーペアの更新の詳細については、「CloudFrontキーペアを更新する(p. 142)」を参照してください。

CloudFrontが署名付きURL内の有効期限切れ日時を確認するタイミングCloudFrontが署名付きURL内の有効期限切れ日時を確認し、URLが依然として有効であるかどうかを判別するタイミングは、URL がウェブディストリビューション用または RTMP ディストリビューション用のどちらであるかによって異なります。

• ウェブディストリビューション: CloudFront は、HTTP リクエスト時に署名付き URL 内の有効期限切れ日時を確認します。有効期限切れ時刻の直前にクライアントが大きなオブジェクトのダウンロードを開始した場合、ダウンロード中に有効期限切れ時刻が経過してもダウンロードは完了します。TCP接続が中断し、有効期限切れ時刻が経過した後にクライアントがダウンロードを再開した場合、ダウンロードは失敗します。

クライアントが、オブジェクトを断片的に取得するレンジ GET を使用した場合、有効期限切れ時刻が経過した後に実行された GET リクエストは失敗します。レンジ GET の詳細については、「CloudFrontがオブジェクトの部分的リクエスト(レンジGET)を処理する方法(p. 103)」を参照してください。

• RTMP ディストリビューション: CloudFront は、再生イベントの開始時に署名付き URL 内の有効期限切れ時刻を確認します。有効期限切れ時刻が経過する前にクライアントがメディアファイルの再生を開始した場合、CloudFrontはメディアファイル全体の再生を許可します。ただし、メディアプレーヤーによっては、一時停止および再開によって別の再生イベントがトリガーされる場合があります。メディアファイル内の別の場所へのスキップによって別の再生イベントがトリガーされます。有効期限切れ時刻が経過した後、以降の再生イベントが発生した場合、CloudFront はメディアファイルを供給しません。

API Version 2014-01-31146

Amazon CloudFront 開発者ガイドCloudFront が署名付き URL 内の有効期限切れ日時を確認

するタイミング

Page 152: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

既定ポリシーを使用して署名付きURLを作成するAbstract

オブジェクトへのエンドユーザーアクセスを制御する既定ポリシーを使用して署名付き URL を作成します。

既定ポリシーを使用して署名付き URL を作成するには

1. .NET または Java を使用して署名付き URL を作成しており、キーペアのプライベートキーをデフォルトの .pem 形式から .NET または Java 対応の形式に変更していない場合は、それを変換します。詳細については、「CloudFront プライベートキーの形式を変更する(.NET および Java のみ) (p. 139)」を参照してください。

2. 以下の値を指定の順序で連結し、パート間の空白文字を削除します。アプリケーションコード内の文字列にエスケープ文字を含めることが必要になる場合があります。すべての値は文字列型です。

各パートの番号( )は以下の 2 つの例の番号に対応します。

           URL

これは、署名付きURLを使用しない場合にオブジェクトへのアクセスに使用するURLです。例えば、次のようになります。

• ウェブディストリビューション:http://d111111abcdef8.cloudfront.net/images/image.jpg

• RTMP ディストリビューション: videos/mediafile.flv

?

? は、クエリ文字列パラメータがベース URL の後に続いていることを示します。独自のクエリ文字列パラメータがない場合も ? を含めます。

                 &

この値はオプションです。独自のクエリ文字列パラメータ、例えば次のクエリ文字列パラメータを追加すると仮定します。

color=red&size=medium

この場合、?( を参照)の後、かつ Expiresパラメータの前にこのパラメータを追加します。

Important

パラメータに Expires、Signature、または Key-Pair-Idという名前を付けることはできません。

独自のパラメータを追加する場合は、最後のパラメータを含め、各パラメータの後に& を付加します。

Expires= Unix                   UTC    

有効期限切れ日時を Unix 時間形式(秒単位)および協定世界時(UTC)で指定します。例えば、UTCの2013年1月1日午前10時00分は、Unix時間形式の1357034400に変換されます。UTCの詳細については、「RFC3339、インターネットでの日付と時間: タイムスタンプ」(http://tools.ietf.org/html/rfc3339)を参照してください。

API Version 2014-01-31147

Amazon CloudFront 開発者ガイド既定ポリシーを使用して署名付き URL を作成する

Page 153: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

&Signature=                               

ハッシュ化およびされたバージョンのポリシーステートメント。詳細については、「既定ポリシーの署名を作成する (p. 148)」を参照してください。

&Key-Pair-Id=                       CloudFront      ID

有効な CloudFront キーペアの ID (APKA9ONS7QCOWEXAMPLE)。

• ウェブディストリビューション:キーペアは、該当のキャッシュ動作に対するいずれかの信頼された署名者の AWS アカウントに関連付けられる必要があります。

• RTMPディストリビューション:キーペアは、ディストリビューションに対するいずれかの信頼された署名者の AWS アカウントに関連付けられる必要があります。

詳細については、「署名付き URL (信頼された署名者)の作成が可能な AWS アカウントの指定 (p. 137)」を参照してください。

ウェブディストリビューションの署名付き URL の例。

http://d111111abcdef8.cloudfront.net/image.jpg ? color=red&size=medium&

Expires=1357034400 &Signature=nitfHRCrtziwO2HwPfWw~yYDhUF5EwRunQA-j19DzZrvDh6hQ73lDx~-ar3UocvvRQVw6EkC~GdpGQyyOSKQim-TxAnW7d8F5Kkai9HVx0FIu-5jcQb0UEmatEXAMPLE3ReXySpLSMj0yCd3ZAB4UcBCAqEijkytL6f3fVYNGQI6

&Key-Pair-Id=APKA9ONS7QCOWEXAMPLE

RTMP ディストリビューションの署名付き URL の例。

videos/mediafile.flv ? color=red&size=medium& Expires=1357034400

&Signature=nitfHRCrtziwO2HwPfWw~yYDhUF5EwRunQA-j19DzZrvDh6hQ73lDx~-ar3UocvvRQVw6EkC~GdpGQyyOSKQim-TxAnW7d8F5Kkai9HVx0FIu-5jcQb0UEmatEXAMPLE3ReXySpLSMj0yCd3ZAB4UcBCAqEijkytL6f3fVYNGQI6

&Key-Pair-Id=APKA9ONS7QCOWEXAMPLE

既定ポリシーの署名を作成する既定ポリシーを使用する署名付き URL の署名を作成するには、以下の 2 つの手順を実行します。

• 次の最初の手順では、ポリシーステートメントを作成します。• 2番目の手順では、ポリシーステートメントをハッシュ化して署名します。この手順には2つのバージョンがあります。選択するバージョンは、ディストリビューションの種類(ウェブまたはRTMP)によって決まります。また、RTMPディストリビューションの場合は、使用するメディアプレーヤー(AdobeFlashPlayerまたは別のメディアプレーヤー)によって決まります。最初の手順の後にあるリンクを使用して、2 番目の手順で適用されるバージョンを確認します。

カスタムポリシーを使用する署名付きURLとは異なり、既定ポリシーを使用する署名付きURLでは、URL にポリシーステートメントを含めません。

ポリシーステートメントのハッシュ化、署名、およびエンコードを行う方法の詳細および例については、以下の各資料を参照してください。

• Linux コマンドおよび OpenSSL を使用して Base64 エンコードおよび暗号化を行う (p. 161)

API Version 2014-01-31148

Amazon CloudFront 開発者ガイド既定ポリシーの署名を作成する

Page 154: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

• 署名付き URL の署名を作成するためのコードおよび例 (p. 163)• プライベートコンテンツの構成ツール (p. 301)

既定ポリシーを使用する署名付き URL のポリシーステートメントを作成するには

1. 以下のJSON形式およびUTF-8文字エンコードを使用してポリシーステートメントを構築します。すべての句読点および他のリテラル値を、指定されたとおりに正確に含めます。

{"Statement":[{"Resource":"base URL or streamname","Condition":{"DateLessThan":{"AWS:EpochTime":ending date and time inUnix time format and UTC}}}]}

Resourceと DateLessThanについては、以下の値を指定します。

Resource: 指定する値は、ウェブディストリビューションまたは RTMP ディストリビューションのどちらの署名付き URL を作成しているかによって異なります。

• ウェブディストリビューション: クエリ文字列(ある場合)が含まれるベース URL。ただし、CloudFront の Expires、Signature、および Key-Pair-Idパラメータが除外されます。次に例を示します。

http://d111111abcdef8.cloudfront.net/images/horizon.jpg?size=large&license=yes

次の点に注意してください。• 値は http://、https://、または http*://で始まる必要があります。• クエリ文字列パラメータがない場合は疑問符を外します。• ゼロ個以上の文字に一致するワイルドカード文字(*)、または正確に 1 つの文字に一致するワイルドカード文字(?)を文字列のどこにでも含むことができます。次に例を示します。この値は、

http*://d111111abcdef8.cloudfront.net/*game_download.zip*

例えば、次のオブジェクトを含みます。

http://d111111abcdef8.cloudfront.net/example_game_download.zip?license=yes

https://d111111abcdef8.cloudfront.net/example_game_download.zip?license=yes

http://d111111abcdef8.cloudfront.net/test_game_download.zip?license=temp

https://d111111abcdef8.cloudfront.net/test_game_download.zip?license=temp

• URLに代替ドメイン名(CNAME)を指定する場合は、ウェブページまたはアプリケーション内のオブジェクトを参照するときに代替ドメイン名を指定する必要があります。オブジェクトの Amazon S3 URL を指定しないでください。

• RTMP ディストリビューション: ストリーム名のみを含めます。例えば、ストリーミングビデオの完全 URL が次のような URL であったとします。

rtmp://s5c39gqb8ow64r.cloudfront.net/videos/mp3_name.mp3

この場合、Resourceには次の値を使用します。

videos/mp3_name

mp3:や mp4:などのプレフィックスを含めないでください。また、使用するプレーヤーによっては、Resourceの値からファイル拡張子を省略することが必要になる場合があります。例えば、sydney-vacation.flvの代わりに sydney-vacationを使用することが必要になる場合があります。

API Version 2014-01-31149

Amazon CloudFront 開発者ガイド既定ポリシーの署名を作成する

Page 155: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

DateLessThan: URL の有効期限切れ日時。Unix 時間形式(秒単位)および協定世界時(UTC)で指定します。例えば、UTC の 2013 年 1 月 1 日午前 10 時 00 分は、Unix 時間形式の 1357034400に変換されます。UTC の詳細については、「RFC 3339、インターネットでの日付と時間: タイムスタンプ」(http://tools.ietf.org/html/rfc3339)を参照してください。

この値は、署名付きURL内のExpiresクエリ文字列パラメータの値と一致する必要があります。値を引用符で囲まないでください。

詳細については、「CloudFront が署名付き URL 内の有効期限切れ日時を確認するタイミング (p. 146)」を参照してください。

署名付き URL 内の既定ポリシーの以下の例を使用すると、エンドユーザーは、UTC の 2013 年 1月 1 日午前 10 時 00 分までオブジェクトhttp://d111111abcdef8.cloudfront.net/horizon.jpgにアクセスできます。

{"Statement":[{"Resource":"http://d111111abcdef8.cloudfront.net/hori zon.jpg?size=large&license=yes","Condition":{"DateLessThan":{"AWS:Epoch Time":1357034400}}}]}

この例をコピーして貼り付ける場合は、URL と有効期限切れ日時を、使用する値に変更してください。

2. ポリシーステートメントからすべての空白文字を削除します。アプリケーションコード内の文字列にエスケープ文字を含めることが必要になる場合があります。

該当の手順を実行し、署名付き URL の署名を作成します。

• オプション 1: 既定ポリシーを使用して、ウェブディストリビューションまたは RTMP ディストリビューション(Adobe Flash Player を使用しない)の署名を作成する (p. 150)

• オプション 2: 既定ポリシーを使用して RTMP ディストリビューションの署名を作成する(AdobeFlash Player) (p. 151)

オプション 1: 既定ポリシーを使用して、ウェブディストリビューションまたは RTMP ディストリビューション(Adobe Flash Player を使用しない)の署名を作成する

1. 「既定ポリシーを使用する署名付きURLのポリシーステートメントを作成するには(p. 149)」の手順で作成したポリシーステートメントを、SHA-1 ハッシュ関数を使用してハッシュ化し、署名します。ハッシュ関数で必要とされるプライベートキーについては、該当する有効な信頼済み署名者に関連付けられたプライベートキーを使用します。

Note

ポリシーステートメントをハッシュ化および署名するための方法は、プログラミング言語およびプラットフォームによって異なります。サンプルコードについては、「署名付きURL の署名を作成するためのコードおよび例 (p. 163)」を参照してください。

2. ハッシュ化および署名された文字列から空白文字を削除します。3. 文字列を Base64 エンコードします。4. URL クエリ文字列内の無効な文字を有効な文字で置き換えます。次の表に無効な文字と有効な文

字を示します。

API Version 2014-01-31150

Amazon CloudFront 開発者ガイド既定ポリシーの署名を作成する

Page 156: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

有効な文字(置換先)無効な文字(置換元)

- (ハイフン)+

_ (下線)=

~ (チルダ)/

5. 結果の値を署名付き URL の &Signature= の後に付加し、既定ポリシーを使用して署名付き URLを作成するには (p. 147) に戻って、署名付き URL の各パートの連結を終了します。

オプション2:既定ポリシーを使用してRTMPディストリビューションの署名を作成する(AdobeFlash Player)

1. 「既定ポリシーを使用する署名付きURLのポリシーステートメントを作成するには(p. 149)」の手順で作成したポリシーステートメントを、SHA-1 ハッシュ関数を使用してハッシュ化し、署名します。ハッシュ関数で必要とされるプライベートキーについては、該当する有効な信頼済み署名者に関連付けられたプライベートキーを使用します。

Note

ポリシーステートメントをハッシュ化および署名するための方法は、プログラミング言語およびプラットフォームによって異なります。サンプルコードについては、「署名付きURL の署名を作成するためのコードおよび例 (p. 163)」を参照してください。

2. ハッシュ化および署名された文字列から空白文字を削除します。

AdobeFlashPlayerを使用しており、ストリーム名がウェブページから渡される場合は、引き続きステップ 3 に進みます。

AdobeFlashPlayerを使用しており、ストリーム名がウェブページから渡されない場合は、この手順の残りをスキップします。例えば、ストリーム名を Adobe Flash .swf ファイル内からフェッチする独自のプレーヤーを作成した場合は、この手順の残りをスキップします。

3. 文字列を Base64 エンコードします。4. URL クエリ文字列内の無効な文字を有効な文字で置き換えます。次の表に無効な文字と有効な文

字を示します。

有効な文字(置換先)無効な文字(置換元)

- (ハイフン)+

_ (下線)=

~ (チルダ)/

5. Adobe Flash Player の一部のバージョンでは、文字 ?、=、および & を URL エンコードすることが要求されます。使用している Adobe Flash Player のバージョンがこの文字の置換を要求するかどうかについては、Adobe ウェブサイトを参照してください。

使用している Flash のバージョンがこれらの文字の URL エンコードを要求しない場合は、このステップをスキップしてステップ 6 に進んでください。

使用している Flash のバージョンがこれらの文字の URL エンコードを要求する場合は、次の表に示されたとおりに文字を置き換えます。(=については、前のステップですでに置き換えられています)。

API Version 2014-01-31151

Amazon CloudFront 開発者ガイド既定ポリシーの署名を作成する

Page 157: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

URL エンコード(置換先)無効な文字(置換元)

%3F?

%26&

6. 結果の値を署名付き URL の &Signature= の後に付加し、既定ポリシーを使用して署名付き URLを作成するには (p. 147) に戻って、署名付き URL の各パートの連結を終了します。

API Version 2014-01-31152

Amazon CloudFront 開発者ガイド既定ポリシーの署名を作成する

Page 158: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

カスタムポリシーを使用して署名付きURLを作成する

Abstract

オブジェクトへのエンドユーザーアクセスを制御するカスタムポリシーを使用して署名付き URL を作成します。

Topics• カスタムポリシーのポリシーステートメントを作成する (p. 155)• カスタムポリシーのポリシーステートメントの例 (p. 157)• カスタムポリシーの署名を作成する (p. 159)

カスタムポリシーを使用して署名付き URL を作成するには、以下の手順を実行します。

カスタムポリシーを使用して署名付き URL を作成するには

1. .NET または Java を使用して署名付き URL を作成しており、キーペアのプライベートキーをデフォルトの .pem 形式から .NET または Java 対応の形式に変更していない場合は、それを変換します。詳細については、「CloudFront プライベートキーの形式を変更する(.NET および Java のみ) (p. 139)」を参照してください。

2. 以下の値を指定の順序で連結し、パート間の空白文字を削除します。アプリケーションコード内の文字列にエスケープ文字を含めることが必要になる場合があります。すべての値は文字列型です。

各パートの番号( )は以下の 2 つの例の番号に対応します。

           URL

これは、署名付きURLを使用しない場合にオブジェクトへのアクセスに使用するURLです。例えば、次のようになります。

• ウェブディストリビューション:http://d111111abcdef8.cloudfront.net/images/image.jpg

• RTMP ディストリビューション: videos/mediafile.flv

?

? は、クエリ文字列パラメータがベース URL の後に続いていることを示します。独自のクエリ文字列パラメータがない場合も ? を含めます。

API Version 2014-01-31153

Amazon CloudFront 開発者ガイドカスタムポリシーを使用して署名付き URL を作成する

Page 159: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

                 &

この値はオプションです。独自のクエリ文字列パラメータ、例えば次のクエリ文字列パラメータを追加すると仮定します。

color=red&size=medium

この場合、? ( を参照)の後、かつ Policyパラメータの前にこのパラメータを追加します。

Important

パラメータに Policy、Signature、または Key-Pair-Idという名前を付けることはできません。

独自のパラメータを追加する場合は、最後のパラメータを含め、各パラメータの後に& を付加します。

Policy=            

空白文字が削除された、JSON形式のポリシーステートメント。詳細については、「カスタムポリシーのポリシーステートメントを作成する(p. 155)」を参照してください。

&Signature=                               

ハッシュ化およびされたバージョンのポリシーステートメント。詳細については、「カスタムポリシーの署名を作成する (p. 159)」を参照してください。

&Key-Pair-Id=                                CloudFront      ID

有効な CloudFront キーペアの ID (APKA9ONS7QCOWEXAMPLE)。

• ウェブディストリビューション:キーペアは、該当のキャッシュ動作に対するいずれかの信頼された署名者の AWS アカウントに関連付けられる必要があります。

• RTMPディストリビューション:キーペアは、ディストリビューションに対するいずれかの信頼された署名者の AWS アカウントに関連付けられる必要があります。

詳細については、「署名付き URL (信頼された署名者)の作成が可能な AWS アカウントの指定 (p. 137)」を参照してください。

ウェブディストリビューションの署名付き URL の例。

http://d111111abcdef8.cloudfront.net/image.jpg ? color=red&size=medium&

Policy=eyANCiAgICEXAMPLEW1lbnQiOiBbeyANCiAgICAgICJSZXNvdXJjZSI6Imh0dHA6Ly9kemJlc3FtN3VuMW0wLmNsb3VkZnJvbnQubmV0L2RlbW8ucGhwIiwgDQogICAgICAiQ29uZGl0aW9uIjp7IA0KICAgICAgICAgIklwQWRkcmVzcyI6eyJBV1M6U291cmNlSXAiOiIyMDcuMTcxLjE4MC4xMDEvMzIifSwNCiAgICAgICAgICJEYXRlR3JlYXRlclRoYW4iOnsiQVdTOkVwb2NoVGltZSI6MTI5Njg2MDE3Nn0sDQogICAgICAgICAiRGF0ZUxlc3NUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjEyOTY4NjAyMjZ9DQogICAgICB9IA0KICAgfV0gDQp9DQo

&Signature=nitfHRCrtziwO2HwPfWw~yYDhUF5EwRunQA-j19DzZrvDh6hQ73lDx~-ar3UocvvRQVw6EkC~GdpGQyyOSKQim-TxAnW7d8F5Kkai9HVx0FIu-5jcQb0UEmatEXAMPLE3ReXySpLSMj0yCd3ZAB4UcBCAqEijkytL6f3fVYNGQI6

&Key-Pair-Id=APKA9ONS7QCOWEXAMPLE

API Version 2014-01-31154

Amazon CloudFront 開発者ガイドカスタムポリシーを使用して署名付き URL を作成する

Page 160: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

RTMP ディストリビューションの署名付き URL の例。

videos/mediafile.flv ? color=red&size=medium&

Policy=eyANCiAgICEXAMPLEW1lbnQiOiBbeyANCiAgICAgICJSZXNvdXJjZSI6Imh0dHA6Ly9kemJlc3FtN3VuMW0wLmNsb3VkZnJvbnQubmV0L2RlbW8ucGhwIiwgDQogICAgICAiQ29uZGl0aW9uIjp7IA0KICAgICAgICAgIklwQWRkcmVzcyI6eyJBV1M6U291cmNlSXAiOiIyMDcuMTcxLjE4MC4xMDEvMzIifSwNCiAgICAgICAgICJEYXRlR3JlYXRlclRoYW4iOnsiQVdTOkVwb2NoVGltZSI6MTI5Njg2MDE3Nn0sDQogICAgICAgICAiRGF0ZUxlc3NUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjEyOTY4NjAyMjZ9DQogICAgICB9IA0KICAgfV0gDQp9DQo

&Signature=nitfHRCrtziwO2HwPfWw~yYDhUF5EwRunQA-j19DzZrvDh6hQ73lDx~-ar3UocvvRQVw6EkC~GdpGQyyOSKQim-TxAnW7d8F5Kkai9HVx0FIu-5jcQb0UEmatEXAMPLE3ReXySpLSMj0yCd3ZAB4UcBCAqEijkytL6f3fVYNGQI6

&Key-Pair-Id=APKA9ONS7QCOWEXAMPLE

カスタムポリシーのポリシーステートメントを作成するカスタムポリシーのポリシーステートメントを作成するには、以下の手順を実行します。さまざまな方法でオブジェクトへのアクセスを制御するポリシーステートメントのいくつかの例については、「カスタムポリシーのポリシーステートメントの例 (p. 157)」を参照してください。

カスタムポリシーを使用する署名付き URL のポリシーステートメントを作成するには

1. 以下の JSON 形式を使用してポリシーステートメントを構築します。

{ "Statement": [{ "Resource":"URL or stream name of the object", "Condition":{ "DateLessThan":{"AWS:EpochTime":required ending date and time in Unix time format and UTC}, "DateGreaterThan":{"AWS:EpochTime":optional beginning date and time in Unix time format and UTC}, "IpAddress":{"AWS:SourceIp":"optional IP address"} } }]}

次の点に注意してください。

• UTF-8 文字エンコードを使用します。• すべての句読点およびパラメータ名を、指定されたとおりに正確に含めます。パラメータ名の省略形は受け付けられません。

• Conditionセクションのパラメータの順序は問題ではありません。• Resource、DateLessThan、DateGreaterThan、および IpAddressの値については、この手順の後の説明を参照してください。

2. ポリシーステートメントからすべての空白文字を削除します。アプリケーションコード内の文字列にエスケープ文字を含めることが必要になる場合があります。

3. 結果の値を署名付き URL の Policy=の後に付加します。

API Version 2014-01-31155

Amazon CloudFront 開発者ガイドカスタムポリシーのポリシーステートメントを作成する

Page 161: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

4. ポリシーステートメントのハッシュ化、署名、およびBase-64エンコードを行って、署名付きURLの署名を作成します。詳細については、「カスタムポリシーの署名を作成する (p. 159)」を参照してください。

Resource• ウェブディストリビューション(オプション。ただし、推奨): クエリ文字列(ある場合)が含まれるベース URL。ただし、CloudFront の Policy、Signature、および Key-Pair-Idパラメータが除外されます。次に例を示します。

http://d111111abcdef8.cloudfront.net/images/horizon.jpg?size=large&license=yes

Caution

ウェブディストリビューションでResourceパラメータを省略した場合、エンドユーザーは、署名付き URL の作成に使用するキーペアに関連付けられたあらゆるディストリビューションに関連付けられるすべてのオブジェクトにアクセスできます。

次の点に注意してください。• 値は http://、https://、または *で始まる必要があります。• クエリ文字列パラメータがない場合は疑問符を外します。• ゼロ個以上の文字に一致するワイルドカード文字(*)、または正確に 1 つの文字に一致するワイルドカード文字(?)を文字列のどこにでも含むことができます。次に例を示します。この値は、

http*://d111111abcdef8.cloudfront.net/*game_download.zip*

例えば、次のオブジェクトを含みます。

http://d111111abcdef8.cloudfront.net/example_game_download.zip?license=yes

https://d111111abcdef8.cloudfront.net/example_game_download.zip?license=yes

http://d111111abcdef8.cloudfront.net/test_game_download.zip?license=temp

https://d111111abcdef8.cloudfront.net/test_game_download.zip?license=temp

• URLに代替ドメイン名(CNAME)を指定する場合は、ウェブページまたはアプリケーション内のオブジェクトを参照するときに代替ドメイン名を指定する必要があります。オブジェクトのAmazonS3 URL を指定しないでください。

• RTMP ディストリビューション: ストリーム名のみを含めます。例えば、ストリーミングビデオの完全 URL が次のような URL であったとします。

rtmp://s5c39gqb8ow64r.cloudfront.net/videos/mp3_name.mp3

この場合、Resourceには次の値を使用します。

videos/mp3_name

mp3:やmp4:などのプレフィックスを含めないでください。また、使用するプレーヤーによっては、Resourceの値からファイル拡張子を省略することが必要になる場合があります。例えば、sydney-vacation.flvの代わりに sydney-vacationを使用することが必要になる場合があります。

API Version 2014-01-31156

Amazon CloudFront 開発者ガイドカスタムポリシーのポリシーステートメントを作成する

Page 162: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

DateLessThanURL の有効期限切れ日時。Unix 時間形式(秒単位)および協定世界時(UTC)で指定します。値を引用符で囲まないでください。UTC の詳細については、「RFC 3339、インターネットでの日付と時間:タイムスタンプ」(http://tools.ietf.org/html/rfc3339)を参照してください。

例えば、UTCの 2013 年 1月 1日午前 10時 00 分は、Unix 時間形式の 1357034400 に変換されます。

これは、Conditionセクションにおける唯一の必須パラメータです。CloudFrontは、プライベートコンテンツにユーザーが永久的にアクセスできないようにこの値を要求します。

詳細については、「CloudFrontが署名付きURL内の有効期限切れ日時を確認するタイミング(p. 146)」を参照してください。

DateGreaterThan (オプション)オプションのURL開始日時。Unix時間形式(秒単位)および協定世界時(UTC)で指定します。ユーザーは指定された日時よりも前にオブジェクトにアクセスすることを許可されません。値を引用符で囲まないでください。

IpAddress (オプション)GET リクエストを実行するクライアントの IP アドレス。オブジェクトへのアクセスをすべての IP アドレスに許可するには、このパラメータを省略します。

IP アドレス範囲は、標準の IPv4 CIDR 形式(例: 10.52.176.0/24)で指定する必要があります。詳細については、「RFC 4632、クラスレスインタードメインルーティング(CIDR): インターネットアドレスの割り当てと集約計画」(http://tools.ietf.org/html/rfc4632)を参照してください。

条件に対して 1 つの値のみを指定できます。例えば、2 つの別々の範囲のどちらかにクライアントのIP アドレスが入っている場合にアクセスを許可するようなポリシーを設定することはできません。

カスタムポリシーのポリシーステートメントの例以下のポリシーステートメントの例は、特定のオブジェクト、ディレクトリ内のすべてのオブジェクト、またはキーペア ID に関連付けられたすべてのオブジェクトへのアクセスを制御する方法を示しています。また、この例は、個々のIPアドレスまたは IPアドレス範囲からのアクセスを制御する方法、および指定された日時以降にユーザーが署名付きURLを使用することを禁止する方法も示しています。

この例のいずれかをコピーして貼り付ける場合は、すべての空白文字を削除し、適用可能な値を独自の値で置き換えて、右中かっこ( } )の後に改行文字を含めます。

ポリシーステートメントの例: IP アドレス範囲から 1 つのオブジェクトにアクセスする次の署名付き URL 内のカスタムポリシーの例は、UTC の 2013 年 1 月 1 日午前 10 時 00 分まで、範囲 192.0.2.0/24の IP アドレスから、エンドユーザーがオブジェクトhttp://d111111abcdef8.cloudfront.net/game_download.zipにアクセスできることを指定しています。

{ "Statement": [{ "Resource":"http://d111111abcdef8.cloudfront.net/game_download.zip", "Condition":{ "IpAddress":{"AWS:SourceIp":"192.0.2.0/24"},

API Version 2014-01-31157

Amazon CloudFront 開発者ガイドカスタムポリシーのポリシーステートメントの例

Page 163: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

"DateLessThan":{"AWS:EpochTime":1357034400} } }]}

ポリシーステートメントの例: IP アドレス範囲からディレクトリ内のすべてのオブジェクトにアクセスする以下のカスタムポリシーの例では、Resourceパラメータの * ワイルドカード文字が示すとおり、trainingディレクトリ内のあらゆるオブジェクトを対象とする署名付き URL を作成できます。UTCの 2013 年 1 月 1 日午前 10 時 00 分まで、範囲 192.0.2.0/24の IP アドレスから、エンドユーザーはオブジェクトにアクセスできます。

{ "Statement": [{ "Resource":"http://d111111abcdef8.cloudfront.net/training/*", "Condition":{ "IpAddress":{"AWS:SourceIp":"192.0.2.0/24"}, "DateLessThan":{"AWS:EpochTime":1357034400} } }] }

このポリシーを使用する各署名付きURLには、例えば次のように、特定のオブジェクトを識別するベース URL が含まれます。

http://d111111abcdef8.cloudfront.net/training/orientation.pdf

ポリシーステートメントの例:キーペア IDに関連付けられたすべてのオブジェクトに 1 つの IP アドレスからアクセスする以下のカスタムポリシーの例では、Resourceパラメータの*ワイルドカード文字が示すとおり、あらゆるディストリビューションに関連付けられたあらゆるオブジェクトを対象とする署名付き URL を作成できます。エンドユーザーは IP アドレス 192.0.2.10/32を使用する必要があります。(CIDR 表記の値 192.0.2.10/32は 1 つの IP アドレス 192.0.2.10を参照します)。オブジェクトは、UTCの 2013 年 1月 1日午前 10 時 00 分からUTCの 2013 年 1月 2日午前 10 時 00 分まで使用できます。

{ "Statement": [{ "Resource":"http://*", "Condition":{ "IpAddress":{"AWS:SourceIp":"192.0.2.10/32"}, "DateGreaterThan":{"AWS:EpochTime":1357034400}, "DateLessThan":{"AWS:EpochTime":1357120800} } }] }

このポリシーを含める各署名付きURLには、例えば次のように、特定のCloudFrontディストリビューション内の特定のオブジェクトを識別するベース URL が含まれます。

http://d111111abcdef8.cloudfront.net/training/orientation.pdf

API Version 2014-01-31158

Amazon CloudFront 開発者ガイドカスタムポリシーのポリシーステートメントの例

Page 164: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

署名付き URL にはキーペア ID も含まれます。キーペア ID は、ベース URL に指定されたディストリビューション(d111111abcdef8.cloudfront.net)内の信頼された署名者に関連付けられる必要があります。

カスタムポリシーの署名を作成するカスタムポリシーを使用する署名付き URL の署名は、ハッシュ化、署名、および Base64 エンコードが行われたバージョンのポリシーステートメントです。カスタムポリシーの署名を作成するには、該当する手順を実行します。選択するバージョンは、ディストリビューションの種類(ウェブまたはRTMP)によって決まります。また、RTMP ディストリビューションの場合は、使用するメディアプレーヤー(Adobe Flash Player または別のメディアプレーヤー)によって決まります。

• オプション 1: カスタムポリシーを使用して、ウェブディストリビューションまたはRTMPディストリビューション(Adobe Flash Player を使用しない)の署名を作成する (p. 159)

• オプション2:カスタムポリシーを使用してRTMPディストリビューションの署名を作成する(AdobeFlash Player) (p. 160)

ポリシーステートメントのハッシュ化、署名、およびエンコードを行う方法の詳細および例については、以下の各資料を参照してください。

• Linux コマンドおよび OpenSSL を使用して Base64 エンコードおよび暗号化を行う (p. 161)• 署名付き URL の署名を作成するためのコードおよび例 (p. 163)• プライベートコンテンツの構成ツール (p. 301)

オプション1:カスタムポリシーを使用して、ウェブディストリビューションまたはRTMPディストリビューション(Adobe Flash Player を使用しない)の署名を作成する

1. 「カスタムポリシーを使用する署名付きURLのポリシーステートメントを作成するには(p. 155)」の手順で作成したポリシーステートメントを、SHA-1 ハッシュ関数を使用してハッシュ化し、署名します。ハッシュ関数で必要とされるプライベートキーについては、該当する有効な信頼済み署名者に関連付けられたプライベートキーを使用します。

Note

ポリシーステートメントをハッシュ化および署名するための方法は、プログラミング言語およびプラットフォームによって異なります。サンプルコードについては、「署名付きURL の署名を作成するためのコードおよび例 (p. 163)」を参照してください。

2. ハッシュ化および署名された文字列から空白文字を削除します。3. 文字列を Base64 エンコードします。4. URL クエリ文字列内の無効な文字を有効な文字で置き換えます。次の表に無効な文字と有効な文

字を示します。

有効な文字(置換先)無効な文字(置換元)

- (ハイフン)+

_ (下線)=

~ (チルダ)/

5. 結果の値を署名付き URL の &Signature= の後に付加し、カスタムポリシーを使用して署名付きURL を作成するには (p. 153) に戻って、署名付き URL の各パートの連結を終了します。

API Version 2014-01-31159

Amazon CloudFront 開発者ガイドカスタムポリシーの署名を作成する

Page 165: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

オプション 2: カスタムポリシーを使用して RTMP ディストリビューションの署名を作成する(Adobe Flash Player)

1. 「カスタムポリシーを使用する署名付きURLのポリシーステートメントを作成するには(p. 155)」の手順で作成したポリシーステートメントを、SHA-1 ハッシュ関数を使用してハッシュ化し、署名します。ハッシュ関数で必要とされるプライベートキーについては、該当する有効な信頼済み署名者に関連付けられたプライベートキーを使用します。

Note

ポリシーステートメントをハッシュ化および署名するための方法は、プログラミング言語およびプラットフォームによって異なります。サンプルコードについては、「署名付きURL の署名を作成するためのコードおよび例 (p. 163)」を参照してください。

2. ハッシュ化および署名された文字列から空白文字を削除します。

ストリーム名がウェブページから渡される場合は、引き続きステップ 3 に進みます。

ストリーム名がウェブページから渡されない場合は、この手順の残りをスキップします。例えば、ストリーム名を Adobe Flash .swf ファイル内からフェッチする独自のプレーヤーを作成した場合は、この手順の残りをスキップします。

3. 文字列を Base64 エンコードします。4. URL クエリ文字列内の無効な文字を有効な文字で置き換えます。次の表に無効な文字と有効な文

字を示します。

有効な文字(置換先)無効な文字(置換元)

- (ハイフン)+

_ (下線)=

~ (チルダ)/

5. Adobe Flash Player の一部のバージョンでは、文字 ?、=、および & を URL エンコードすることが要求されます。使用している Adobe Flash Player のバージョンがこの文字の置換を要求するかどうかについては、Adobe ウェブサイトを参照してください。

使用している Adobe Flash Player のバージョンで、文字 ?、=、および & の URL エンコードが要求されない場合は、このステップをスキップしてステップ 6 に進みます。

使用しているAdobe Flash Player のバージョンがこれらの文字のURLエンコードを要求する場合は、次の表に示されたとおりに文字を置き換えます。(=については、前のステップですでに置き換えられています)。

URL エンコード(置換先)無効な文字(置換元)

%3F?

%26&

6. 結果の値を署名付き URL の &Signature= の後に付加し、カスタムポリシーを使用して署名付きURL を作成するには (p. 153) に戻って、署名付き URL の各パートの連結を終了します。

API Version 2014-01-31160

Amazon CloudFront 開発者ガイドカスタムポリシーの署名を作成する

Page 166: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

LinuxコマンドおよびOpenSSLを使用してBase64エンコードおよび暗号化を行う

Abstract

Linux のコマンドラインコマンドおよび OpenSSL を使用して、ポリシーステートメントの暗号化および Base64エンコーディングを行います。

Linux コマンドラインコマンドと OpenSSL を使用して、以下の処理を行うことができます。

• ポリシーステートメントを Base64 エンコードし、無効な文字を有効な文字で置き換えます。• ポリシーステートメントを署名に変換します。

OpenSSL の詳細については、http://www.openssl.org を参照してください。

ポリシーステートメントを Base64 エンコードする次のLinuxコマンドは、(ファイルpolicy の)ポリシーステートメントをBase64エンコードし、URLクエリ文字列パラメータの無効な文字を有効な文字に置き換えます。

cat policy | openssl base64 | tr '+=/' '-_~'

各パラメータの意味は次のとおりです。

catは、policy ファイルを openssl に送信します。

OpenSSL は、このファイルを Base64 エンコードします。

trは、URL クエリ文字列パラメータの無効な文字を有効な文字で置き換えます。

ポリシーステートメントを署名に変換する次の Linux コマンドは、ポリシーステートメントのハッシュ化、署名、および Base64 エンコードを行って、署名を作成します。

cat policy | openssl sha1 -sign private-key.pem | openssl base64

| tr '+=/' '-_~'

各パラメータの意味は次のとおりです。

catは、Base64 エンコードされた policyファイルを OpenSSL に送信します。

OpenSSL は、SHA-1 を使用してファイルをハッシュ化し、プライベートキーファイルprivate-key.pemを使用してファイルに署名します。

OpenSSLは、ハッシュ化および署名されたポリシーステートメントをBase64エンコードします。

trは、URL クエリ文字列パラメータの無効な文字を有効な文字で置き換えます。

API Version 2014-01-31161

Amazon CloudFront 開発者ガイドLinux コマンドおよび OpenSSL を使用して Base64 エン

コードおよび暗号化を行う

Page 167: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

Note

作成された署名から空白文字(ある場合)を削除します。

いくつかのプログラミング言語での署名の作成方法を示すコード例については、「署名付き URL の署名を作成するためのコードおよび例 (p. 163)」を参照してください。

API Version 2014-01-31162

Amazon CloudFront 開発者ガイドポリシーステートメントを署名に変換する

Page 168: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

署名付きURLの署名を作成するためのコードおよび例

Abstract

署名付き URL の署名を作成する方法を示すコード例を利用します。

このセクションには、署名付き URL の署名の作成方法を示す、ダウンロード可能なアプリケーションサンプルが含まれます。例は、Perl、PHP、C#、および Java で使用できます。署名付き URL の作成にすべてのサンプルを使用できます。PerlスクリプトはLinux/Macプラットフォームで実行されます。PHPの例は、PHPが実行されているあらゆるサーバーで動作します。C#の例では、.NET Frameworkが使用されます。

Topics• Perl を使用して URL 署名を作成する (p. 163)• PHP を使用して URL 署名を作成する (p. 165)• C# と .NET Framework を使用して URL 署名を作成する (p. 167)• Java を使用して URL 署名を作成する (p. 175)

Perl を使用して URL 署名を作成するAbstract

署名付き CloudFront URL の署名を作成する Perl スクリプトコード例を利用します。

Perl スクリプトでは、コマンドライン引数に CloudFront URL、署名者のプライベートキーへのパス、キー ID、およびURLの有効期限切れ日付を指定することで、プライベートコンテンツの署名を作成します。このツールでは、署名付き URL のデコードを行うこともできます。ツール cfsign.plを取得するには、「Amazon CloudFront 署名付き URL のヘルパーツール」にアクセスしてください。

Note

URL 署名の作成は、署名付き URL を使用してプライベートコンテンツを供給するためのプロセスの1パートにすぎません。プロセス全体の詳細については、「プライベートコンテンツの機能 (p. 127)」を参照してください。

次の例は、cfsign.plを使用してRTMPディストリビューションの署名を作成する方法を示しています。

$ cfsign.pl --action encode --stream example/video.mp4 --private-key /path/to/my-private-key.pem --key-pair-id PK12345EXAMPLE --expires 1265838202

このツールでは、コマンドライン引数を使用してポリシーステートメントを生成します。生成される署名は、ポリシーステートメントの SHA1 ハッシュです。

Base64 エンコードされたストリーム名の例を以下に示します。

mp4:example/video.mp4%3FPolicy%3DewogICJTdGF0ZW1lbnQiOlt7CiAgICAgICJSZXNvdXJjZSI6ImRyciIsCiAgICAgICJDb25kaXRpb24iOnsKICAgICAgICAiSXBBZGRyZXNzIjp7IkFXUzpTb3VyY2VJcCI6IjAuMC4wLjAvMCJ9LAogICAgICAgICJEYXRlTGVzc1RoYW4iOnsiQVdTOkVwb2NoVGltZSI6MjE0NTkxNjgwMH0KICAgICAgfQogICAgEXAMPLE_%26Signature%3DewtHqEXK~68tsZt-eOFnZKGwTf2a

API Version 2014-01-31163

Amazon CloudFront 開発者ガイド署名付き URL の署名を作成するためのコードおよび例

Page 169: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

JlbKhXkK5SSiVqcG9pieCRV3xTEPtc29OzeXlsDvRycOM2WK0cXzcyYZhpl9tv2796ihHiCTAwIHQ8yP17Af4nWtOLIZHoH6wkR3tU1cQHs8R1d-g-SlZGjNBXr~J2MbaJzm8i6EXAMPLE_%26Key-Pair-Id%3DPK12345EXAMPLE

この署名は、プライベートコンテンツ example/video.mp4のストリーミングリクエストを認証します。Adobe Flash Player を使用しており、ストリーム名が JavaScript によってウェブページから渡される場合は、署名を Base64 エンコードして、URL リクエストパラメータの無効な文字(+、=、/)を有効な文字(それぞれ -、_、~)で置き換えます。ストリーム名がウェブページから渡されない場合、署名をBase64エンコードする必要はありません。例えば、独自のプレーヤーを作成し、ストリーム名を Adobe Flash .swf ファイルからフェッチする場合、署名を Base64 エンコードしません。

CloudFront で jwplayer を使用する例を次に示します。

<script type='text/javascript'> var so1 = new SWFObject ('http://d84l721fxaaqy9.cloudfront.net/player/player.swf', 'mpl', '640', '360', '9'); so1.addParam('allowfullscreen','true'); so1.addParam('allowscriptaccess','always'); so1.addParam('wmode','opaque'); so1.addVariable('streamer','rtmp://s33r3xe4ayhhis.cloudfront.net/cfx/st'); so1.addVariable("file","mp4:example/video.mp4%3FPolicy%3DewogICJTdGF0ZW1lbnQi

Olt7CiAgICAgICJSZXNvdXJjZSI6ImRyciIsCiAgICAgICJDb25kaXRpb24iOnsKICAgICAgICA

iSXBBZGRyZXNzIjp7IkFXUzpTb3VyY2VJcCI6IjAuMC4wLjAvMCJ9LAogICAgICAgICJEYXRlTG

Vzc1RoYW4iOnsiQVdTOkVwb2NoVGltZSI6MjE0NTkxNjgwMH0KICAgICAgfQogICAgEXAMPLE_%

26Signature%3DewtHqEXK~68tsZt-eOFnZKGwTf2aJlbKhXkK5SSiVqcG9pieCRV3xTEPtc29O

zeXlsDvRycOM2WK0cXzcyYZhpl9tv2796ihHiCTAwIHQ8yP17Af4nWtOLIZHoH6wkR3tU1cQHs8

R1d-g-SlZGjNBXr~J2MbaJzm8i6EXAMPLE_%26Key-Pair-Id%3DPK12345EXAMPLE so1.write('flv');</script>

Adobe Flash .swfファイル内からストリームを取り込んで再生する場合、例えば次のように、ストリーム名を URL エンコードしないでください。

mp4:example/video.mp4?Policy=ewogICJTdGF0ZW1lbnQiOlt7CiAgICAgICJSZXNvdXJjZSI6ImRyciIsCiAgICAgICJDb25kaXRpb24iOnsKICAgICAgICAiSXBBZGRyZXNzIjp7IkFXUzpTb3VyY2VJcCI6IjAuMC4wLjAvMCJ9LAogICAgICAgICJEYXRlTGVzc1RoYW4iOnsiQVdTOkVwb2NoVGltZSI6MjE0NTkxNjgwMH0KICAgICAgfQogICAgEXAMPLE_&Signature=ewtHqEXK~68tsZt-eOFnZKGwTf2aJlbKhXkK5SSiVqcG9pieCRV3xTEPtc29OzeXlsDvRycOM2WK0cXzcyYZhpl9tv2796ihHiCTAwIHQ8yP17Af4nWtOLIZHoH6wkR3tU1cQHs8R1d-g-SlZGjNBXr~J2MbaJzm8i6EXAMPLE_&Key-Pair-Id=PK12345EXAMPLE

コマンドラインスイッチおよびこのツールの各種機能の詳細については、Perlソースコード内のコメントを参照してください。

以下の資料も参照してください。

• PHP を使用して URL 署名を作成する (p. 165)• C# と .NET Framework を使用して URL 署名を作成する (p. 167)• Java を使用して URL 署名を作成する (p. 175)

API Version 2014-01-31164

Amazon CloudFront 開発者ガイドPerl を使用して URL 署名を作成する

Page 170: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

• プライベートコンテンツの構成ツール (p. 301)

PHP を使用して URL 署名を作成するAbstract

署名付き CloudFront URL の署名を作成する PHP コード例を利用します。

PHPを実行するすべてのウェブサーバーは、PHPデモコードを使用して、CloudFrontのプライベートRTMP ディストリビューション用のポリシーステートメントと署名を作成できます。サンプルは、CloudFront ストリーミングを使用してビデオストリームを再生する署名付きURLリンクが含まれた、機能するウェブページを作成します。サンプルを取得するには、PHP におけるビデオストリーミング用の署名コードをダウンロードしてください。

Note

URL 署名の作成は、署名付き URL を使用してプライベートコンテンツを供給するためのプロセスの1パートにすぎません。プロセス全体の詳細については、「プライベートコンテンツの機能 (p. 127)」を参照してください。

以下のコードセグメントでは、関数 rsa_sha1_signでポリシーステートメントのハッシュ化および署名を行います。必要な引数は、署名を含めるための出力パラメータであるポリシーステートメントと、使用している AWS アカウントまたは指定した信頼済み AWS アカウントのプライベートキーです。次に、url_safe_base64_encode関数で、URL で使用可能なバージョンの署名を作成します。

Example PHP における RSA SHA1 ハッシュ化

function rsa_sha1_sign($policy, $private_key_filename) { $signature = "";

// load the private key $fp = fopen($private_key_filename, "r"); $priv_key = fread($fp, 8192); fclose($fp); $pkeyid = openssl_get_privatekey($priv_key);

// compute signature openssl_sign($policy, $signature, $pkeyid);

// free the key from memory openssl_free_key($pkeyid);

return $signature; }

function url_safe_base64_encode($value) { $encoded = base64_encode($value); // replace unsafe characters +, = and / with // the safe characters -, _ and ~ return str_replace( array('+', '=', '/'), array('-', '_', '~'), $encoded); }

API Version 2014-01-31165

Amazon CloudFront 開発者ガイドPHP を使用して URL 署名を作成する

Page 171: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

以下のコードでは、署名の作成に必要な既定ポリシーステートメントを構築します。既定ポリシーの詳細については、「既定ポリシーを使用して署名付き URL を作成する (p. 147)」を参照してください。

Example PHP における既定署名関数

function get_canned_policy_stream_name($video_path, $private_key_filename, $key_pair_id, $expires) { // this policy is well known by CloudFront, but you still need to sign it,

// since it contains your parameters $canned_policy = '{"Statement":[{"Resource":"' . $video_path . '","Condi tion":{"DateLessThan":{"AWS:EpochTime":'. $expires . '}}}]}'; // the policy contains characters that cannot be part of a URL, // so we Base64 encode it $encoded_policy = url_safe_base64_encode($canned_policy); // sign the original policy, not the encoded version $signature = rsa_sha1_sign($canned_policy, $private_key_filename); // make the signature safe to be included in a url $encoded_signature = url_safe_base64_encode($signature);

// combine the above into a stream name $stream_name = create_stream_name($video_path, null, $encoded_signature, $key_pair_id, $expires); // url-encode the query string characters to work around a flash player bug

return encode_query_params($stream_name); }

以下のコードでは、署名の作成に必要なカスタムポリシーステートメントを構築します。カスタムポリシーの詳細については、「カスタムポリシーを使用して署名付きURLを作成する(p. 153)」を参照してください。

Example PHP におけるカスタム署名関数

function get_custom_policy_stream_name($video_path, $private_key_filename, $key_pair_id, $policy) { // the policy contains characters that cannot be part of a URL, // so we Base64 encode it $encoded_policy = url_safe_base64_encode($policy); // sign the original policy, not the encoded version $signature = rsa_sha1_sign($policy, $private_key_filename); // make the signature safe to be included in a url $encoded_signature = url_safe_base64_encode($signature);

// combine the above into a stream name $stream_name = create_stream_name($video_path, $encoded_policy, $encoded_sig nature, $key_pair_id, null); // url-encode the query string characters to work around a flash player bug

return encode_query_params($stream_name);

}

SHA-1 の OpenSSL 実装の詳細については、「SSL/TLS 用のオープンソースツールキット」を参照してください。

以下の資料も参照してください。

API Version 2014-01-31166

Amazon CloudFront 開発者ガイドPHP を使用して URL 署名を作成する

Page 172: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

• Perl を使用して URL 署名を作成する (p. 163)• C# と .NET Framework を使用して URL 署名を作成する (p. 167)• Java を使用して URL 署名を作成する (p. 175)• プライベートコンテンツの構成ツール (p. 301)

C# と .NET Framework を使用して URL 署名を作成する

Abstract

.NET Framework を使用して署名付き CloudFront URL の署名を作成する C# コード例を利用します。

このセクションのC#の例では、既定およびカスタムのポリシーステートメントを使用してCloudFrontプライベートディストリビューションの署名を作成する方法を示すサンプルアプリケーションを実装します。サンプルには、.NET アプリケーションで役に立つ可能性がある AWS .NET SDK に基づくユーティリティ関数が含まれています。

Note

URL 署名の作成は、署名付き URL を使用してプライベートコンテンツを供給するためのプロセスの1パートにすぎません。プロセス全体の詳細については、「プライベートコンテンツの機能 (p. 127)」を参照してください。

コードをダウンロードするには、C# による署名コードにアクセスしてください。

AWSアカウント/セキュリティで提供されるRSAキーを .NET Frameworkで使用するには、AWSで提供される.pemファイルを、NETFrameworkが使用するXML形式に変換する必要があります。「.NET2.0 OpenSSL のパブリックキーパーサーおよびプライベートキーパーサー」で入手可能な OpenSSLパブリックおよびプライベートキーパーサーを使用して変換を行います。

変換後、RSA プライベートキーファイルの形式は以下のようになります。

API Version 2014-01-31167

Amazon CloudFront 開発者ガイドC# と .NET Framework を使用して URL 署名を作成する

Page 173: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

Example XML .NET Framework 形式の RSA プライベートキー

<RSAKeyValue> <Modulus> wO5IvYCP5UcoCKDo1dcspoMehWBZcyfs9QEzGi6Oe5y+ewGr1oW+vB2GPB ANBiVPcUHTFWhwaIBd3oglmF0lGQljP/jOfmXHUK2kUUnLnJp+oOBL2Ni uFtqcW6h/L5lIpD8Yq+NRHg Ty4zDsyr2880MvXv88yEFURCkqEXAMPLE= </Modulus> <Exponent>AQAB</Exponent> <P> 5bmKDaTz npENGVqz4Cea8XPH+sxt+2VaAwYnsarVUoS BeVt8WLloVuZGG9IZYmH5KteXEu7fZveYd9UEXAMPLE== </P> <Q> 1v9l/WN1a1N3rOK4VGoCokx7kR2SyTMSbZgF9IWJNOugR/WZw7HTnjipO3c9dy1Ms9pUKwUF4 6d7049EXAMPLE== </Q> <DP> RgrSKuLWXMyBH+/l1Dx/I4tXuAJIrlPyo+VmiOc7b5NzHptkSHEPfR9s1 OK0VqjknclqCJ3Ig86OMEtEXAMPLE== </DP> <DQ> pjPjvSFw+RoaTu0pgCA/jwW/FGyfN6iim1RFbkT4 z49DZb2IM885f3vf35eLTaEYRYUHQgZtChNEV0TEXAMPLE== </DQ> <InverseQ> nkvOJTg5QtGNgWb9i cVtzrL/1pFEOHbJXwEJdU99N+7sMK+1066DL/HSBUCD63qD4USpnf0myc24in0EXAMPLE==</In verseQ> <D> Bc7mp7XYHynuPZxChjWNJZIq+A73gm0ASDv6At7F8Vi9r0xUlQe/v0AQS3ycN8QlyR4XMbzMLYk

3yjxFDXo4ZKQtOGzLGteCU2srANiLv26/imXA8FVidZftTAtLviWQZB VPTeYIA69ATUYPEq0a5u5wjGy UOij9OWyuEXAMPLE= </D></RSAKeyValue>

以下の C# コードは、既定ポリシーを使用する署名付き URL を以下の手順で作成します。

• ポリシーステートメントを作成する。• SHA1 を使用してポリシーステートメントをハッシュ化し、使用している AWSアカウントまたは指定した信頼済み AWS アカウントの RSA およびプライベートキーを使用して、ハッシュ化されたポリシーステートメントに署名する。

• ハッシュ化および署名されたポリシーステートメントをBase64エンコードし、特殊文字を置き換えて文字列を URL リクエストパラメータとして使用できるようにする。

• 適用可能な値を連結する。

完全な実装については、C# における署名コードのサンプルを参照してください。

API Version 2014-01-31168

Amazon CloudFront 開発者ガイドC# と .NET Framework を使用して URL 署名を作成する

Page 174: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

Example C# における既定ポリシーの署名方法

public static string ToUrlSafeBase64String(byte[] bytes){ return System.Convert.ToBase64String(bytes) .Replace('+', '-') .Replace('=', '_') .Replace('/', '~');}

public static string CreateCannedPrivateURL(string urlString, string durationUnits, string durationNumber, string pathToPolicyStmnt, string pathToPrivateKey, string privateKeyId){ // args[] 0-thisMethod, 1-resourceUrl, 2-seconds-minutes-hours-days // to expiration, 3-numberOfPreviousUnits, 4-pathToPolicyStmnt, // 5-pathToPrivateKey, 6-PrivateKeyId

TimeSpan timeSpanInterval = GetDuration(durationUnits, durationNumber);

// Create the policy statement. string strPolicy = CreatePolicyStatement(pathToPolicyStmnt, urlString, DateTime.Now, DateTime.Now.Add(timeSpanInterval), "0.0.0.0/0"); if ("Error!" == strPolicy) return "Invalid time frame." + "Start time cannot be greater than end time.";

// Copy the expiration time defined by policy statement. string strExpiration = CopyExpirationTimeFromPolicy(strPolicy);

// Read the policy into a byte buffer. byte[] bufferPolicy = Encoding.ASCII.GetBytes(strPolicy);

// Initialize the SHA1CryptoServiceProvider object and hash the policy data.

using (SHA1CryptoServiceProvider cryptoSHA1 = new SHA1CryptoServiceProvider()) { bufferPolicy = cryptoSHA1.ComputeHash(bufferPolicy);

// Initialize the RSACryptoServiceProvider object. RSACryptoServiceProvider providerRSA = new RSACryptoServiceProvider();

XmlDocument xmlPrivateKey = new XmlDocument();

// Load PrivateKey.xml, which you created by converting your // .pem file to the XML format that the .NET framework uses. // Several tools are available. We used // .NET 2.0 OpenSSL Public and Private Key Parser, // http://www.jensign.com/opensslkey/opensslkey.cs. xmlPrivateKey.Load(pathToPrivateKey);

// Format the RSACryptoServiceProvider providerRSA and // create the signature. providerRSA.FromXmlString(xmlPrivateKey.InnerXml);

API Version 2014-01-31169

Amazon CloudFront 開発者ガイドC# と .NET Framework を使用して URL 署名を作成する

Page 175: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

RSAPKCS1SignatureFormatter rsaFormatter = new RSAPKCS1SignatureFormatter(providerRSA); rsaFormatter.SetHashAlgorithm("SHA1"); byte[] signedPolicyHash = rsaFormatter.CreateSignature(bufferPolicy);

// Convert the signed policy to URL-safe Base64 encoding and // replace unsafe characters + = / with the safe characters - _ ~ string strSignedPolicy = ToUrlSafeBase64String(signedPolicyHash);

// Concatenate the URL, the timestamp, the signature, // and the key pair ID to form the signed URL. return urlString + "?Expires=" + strExpiration + "&Signature=" + strSignedPolicy + "&Key-Pair-Id=" + privateKeyId; }}

以下の C# コードは、カスタムポリシーを使用する署名付き URL を以下の手順で作成します。

• ポリシーステートメントを作成する。• ポリシーステートメントを Base64 エンコードし、特殊文字を置き換えて文字列を URL リクエストパラメータとして使用できるようにする。

• SHA1 を使用してポリシーステートメントをハッシュ化し、使用している AWSアカウントまたは指定した信頼済み AWS アカウントの RSA およびプライベートキーを使用して、ハッシュ化されたポリシーステートメントを暗号化する。

• ハッシュ化されたポリシーステートメントをBase64エンコードし、特殊文字を置き換えて文字列をURL リクエストパラメータとして使用できるようにする。

• 適用可能な値を連結する。

完全な実装については、C# における署名コードのサンプルを参照してください。

API Version 2014-01-31170

Amazon CloudFront 開発者ガイドC# と .NET Framework を使用して URL 署名を作成する

Page 176: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

Example C# におけるカスタムポリシーの署名方法

public static string ToUrlSafeBase64String(byte[] bytes){ return System.Convert.ToBase64String(bytes) .Replace('+', '-') .Replace('=', '_') .Replace('/', '~');}

public static string CreateCustomPrivateURL(string urlString, string durationUnits, string durationNumber, string startIntervalFromNow,

string ipaddress, string pathToPolicyStmnt, string pathToPrivateKey, string PrivateKeyId){ // args[] 0-thisMethod, 1-resourceUrl, 2-seconds-minutes-hours-days // to expiration, 3-numberOfPreviousUnits, 4-starttimeFromNow, // 5-ip_address, 6-pathToPolicyStmt, 7-pathToPrivateKey, 8-privateKeyId

TimeSpan timeSpanInterval = GetDuration(durationUnits, durationNumber); TimeSpan timeSpanToStart = GetDurationByUnits(durationUnits, startIntervalFromNow); if (null == timeSpanToStart) return "Invalid duration units." + "Valid options: seconds, minutes, hours, or days";

string strPolicy = CreatePolicyStatement( pathToPolicyStmnt, urlString, DateTime.Now.Add(timeSpanToStart), DateTime.Now.Add(timeSpanInterval), ipaddress);

// Read the policy into a byte buffer. byte[] bufferPolicy = Encoding.ASCII.GetBytes(strPolicy);

// Convert the policy statement to URL-safe Base64 encoding and // replace unsafe characters + = / with the safe characters - _ ~

string urlSafePolicy = ToUrlSafeBase64String(bufferPolicy);

// Initialize the SHA1CryptoServiceProvider object and hash the policy data.

byte[] bufferPolicyHash; using (SHA1CryptoServiceProvider cryptoSHA1 = new SHA1CryptoServiceProvider()) { bufferPolicyHash = cryptoSHA1.ComputeHash(bufferPolicy);

// Initialize the RSACryptoServiceProvider object. RSACryptoServiceProvider providerRSA = new RSACryptoServiceProvider();

XmlDocument xmlPrivateKey = new XmlDocument();

// Load PrivateKey.xml, which you created by converting your // .pem file to the XML format that the .NET framework uses. // Several tools are available. We used // .NET 2.0 OpenSSL Public and Private Key Parser, // http://www.jensign.com/opensslkey/opensslkey.cs.

API Version 2014-01-31171

Amazon CloudFront 開発者ガイドC# と .NET Framework を使用して URL 署名を作成する

Page 177: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

xmlPrivateKey.Load("PrivateKey.xml");

// Format the RSACryptoServiceProvider providerRSA // and create the signature. providerRSA.FromXmlString(xmlPrivateKey.InnerXml); RSAPKCS1SignatureFormatter RSAFormatter = new RSAPKCS1SignatureFormatter(providerRSA); RSAFormatter.SetHashAlgorithm("SHA1"); byte[] signedHash = RSAFormatter.CreateSignature(bufferPolicyHash);

// Convert the signed policy to URL-safe Base64 encoding and // replace unsafe characters + = / with the safe characters - _ ~ string strSignedPolicy = ToUrlSafeBase64String(signedHash);

return urlString + "?Policy=" + urlSafePolicy + "&Signature=" + strSignedPolicy + "&Key-Pair-Id=" + PrivateKeyId; }}

API Version 2014-01-31172

Amazon CloudFront 開発者ガイドC# と .NET Framework を使用して URL 署名を作成する

Page 178: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

Example 署名生成のためのユーティリティメソッド

以下のメソッドは、ファイルからポリシーステートメントを取得し、署名生成の期間を解析します。

public static string CreatePolicyStatement(string policyStmnt, string resourceUrl, DateTime startTime, DateTime endTime, string ipAddress)

{ // Create the policy statement. FileStream streamPolicy = new FileStream(policyStmnt, FileMode.Open, FileAccess.Read); using (StreamReader reader = new StreamReader(streamPolicy)) { string strPolicy = reader.ReadToEnd();

TimeSpan startTimeSpanFromNow = (startTime - DateTime.Now); TimeSpan endTimeSpanFromNow = (endTime - DateTime.Now); TimeSpan intervalStart = (DateTime.UtcNow.Add(startTimeSpanFromNow)) - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); TimeSpan intervalEnd = (DateTime.UtcNow.Add(endTimeSpanFromNow)) - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);

int startTimestamp = (int)intervalStart.TotalSeconds; // START_TIME int endTimestamp = (int)intervalEnd.TotalSeconds; // END_TIME

if (startTimestamp > endTimestamp) return "Error!";

// Replace variables in the policy statement. strPolicy = strPolicy.Replace("RESOURCE", resourceUrl); strPolicy = strPolicy.Replace("START_TIME", startTimestamp.ToString()); strPolicy = strPolicy.Replace("END_TIME", endTimestamp.ToString()); strPolicy = strPolicy.Replace("IP_ADDRESS", ipAddress); strPolicy = strPolicy.Replace("EXPIRES", endTimestamp.ToString()); return strPolicy; } }

public static TimeSpan GetDuration(string units, string numUnits){ TimeSpan timeSpanInterval = new TimeSpan(); switch (units) { case "seconds": timeSpanInterval = new TimeSpan(0, 0, 0, int.Parse(numUnits)); break; case "minutes": timeSpanInterval = new TimeSpan(0, 0, int.Parse(numUnits), 0); break; case "hours": timeSpanInterval = new TimeSpan(0, int.Parse(numUnits), 0 ,0); break; case "days":

API Version 2014-01-31173

Amazon CloudFront 開発者ガイドC# と .NET Framework を使用して URL 署名を作成する

Page 179: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

timeSpanInterval = new TimeSpan(int.Parse(numUnits),0 ,0 ,0); break; default: Console.WriteLine("Invalid time units;" + "use seconds, minutes, hours, or days"); break; } return timeSpanInterval;}

private static TimeSpan GetDurationByUnits(string durationUnits, string startIntervalFromNow){ switch (durationUnits) { case "seconds": return new TimeSpan(0, 0, int.Parse(startIntervalFromNow)); case "minutes": return new TimeSpan(0, int.Parse(startIntervalFromNow), 0); case "hours": return new TimeSpan(int.Parse(startIntervalFromNow), 0, 0); case "days": return new TimeSpan(int.Parse(startIntervalFromNow), 0, 0, 0); default: return new TimeSpan(0, 0, 0, 0); }}

public static string CopyExpirationTimeFromPolicy(string policyStatement){ int startExpiration = policyStatement.IndexOf("EpochTime"); string strExpirationRough = policyStatement.Substring(startExpiration + "EpochTime".Length); char[] digits = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' };

List<char> listDigits = new List<char>(digits); StringBuilder buildExpiration = new StringBuilder(20);

foreach (char c in strExpirationRough) { if (listDigits.Contains(c)) buildExpiration.Append(c); } return buildExpiration.ToString(); }

以下の資料も参照してください。

• Perl を使用して URL 署名を作成する (p. 163)• PHP を使用して URL 署名を作成する (p. 165)• Java を使用して URL 署名を作成する (p. 175)• プライベートコンテンツの構成ツール (p. 301)

API Version 2014-01-31174

Amazon CloudFront 開発者ガイドC# と .NET Framework を使用して URL 署名を作成する

Page 180: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

Java を使用して URL 署名を作成するAbstract

署名付き CloudFront URL の署名を作成する Java コード例を利用します。

AmazonS3およびCloudFront向けのオープンソースJavaツールキットでは、JavaにおけるCloudFront開発に関するサンプルコードおよび情報が提供されます。プライベートディストリビューションの詳細については、「プログラマーガイド: コードサンプル」の「プライベートディストリビューション」を参照してください。

Note

URL 署名の作成は、署名付き URL を使用してプライベートコンテンツを供給するためのプロセスの1パートにすぎません。プロセス全体の詳細については、「プライベートコンテンツの機能 (p. 127)」を参照してください。

以下のメソッドは、Amazon S3 および CloudFront 向けの Java オープンソースツールキットから取得したものです。プライベートキーを使用するには、プライベートキーをPEM形式から、Java実装用のDER 形式に変換する必要があります。

API Version 2014-01-31175

Amazon CloudFront 開発者ガイドJava を使用して URL 署名を作成する

Page 181: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

Example Java のポリシーおよび署名暗号化メソッド

// Signed URLs for a private distribution// Note that Java only supports SSL certificates in DER format, // so you will need to convert your PEM-formatted file to DER format. // To do this, you can use openssl:// openssl pkcs8 -topk8 -nocrypt -in origin.pem -inform PEM -out new.der // -outform DER // So the encoder works correctly, you should also add the bouncy castle jar// to your project and then add the provider.

Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());

String distributionDomain = "a1b2c3d4e5f6g7.cloudfront.net";String privateKeyFilePath = "/path/to/rsa-private-key.der";String s3ObjectKey = "s3/object/key.txt";String policyResourcePath = "http://" + distributionDomain + "/" + s3ObjectKey;

// Convert your DER file into a byte array.

byte[] derPrivateKey = ServiceUtils.readInputStreamToBytes(new FileInputStream(privateKeyFilePath));

// Generate a "canned" signed URL to allow access to a // specific distribution and object

String signedUrlCanned = CloudFrontService.signUrlCanned( "http://" + distributionDomain + "/" + s3ObjectKey, // Resource URL or Path

keyPairId, // Certificate identifier, // an active trusted signer for the distribution derPrivateKey, // DER Private key data ServiceUtils.parseIso8601Date("2011-11-14T22:20:00.000Z") // DateLessThan );System.out.println(signedUrlCanned);

// Build a policy document to define custom restrictions for a signed URL.

String policy = CloudFrontService.buildPolicyForSignedUrl( // Resource path (optional, may include '*' and '?' wildcards) policyResourcePath, // DateLessThan ServiceUtils.parseIso8601Date("2011-11-14T22:20:00.000Z"), // CIDR IP address restriction (optional, 0.0.0.0/0 means everyone) "0.0.0.0/0", // DateGreaterThan (optional) ServiceUtils.parseIso8601Date("2011-10-16T06:31:56.000Z") );

// Generate a signed URL using a custom policy document.

String signedUrl = CloudFrontService.signUrl( // Resource URL or Path "http://" + distributionDomain + "/" + s3ObjectKey, // Certificate identifier, an active trusted signer for the distribution keyPairId, // DER Private key data derPrivateKey,

API Version 2014-01-31176

Amazon CloudFront 開発者ガイドJava を使用して URL 署名を作成する

Page 182: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

// Access control policy policy );System.out.println(signedUrl);

以下の資料も参照してください。

• Perl を使用して URL 署名を作成する (p. 163)• PHP を使用して URL 署名を作成する (p. 165)• C# と .NET Framework を使用して URL 署名を作成する (p. 167)• プライベートコンテンツの構成ツール (p. 301)

API Version 2014-01-31177

Amazon CloudFront 開発者ガイドJava を使用して URL 署名を作成する

Page 183: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

HTTPS接続を使用したオブジェクトへのアクセス

Abstract

CloudFront との HTTPS 接続を使用して、オブジェクトへのアクセスを制御します。

Topics• HTTPS 接続での CloudFront の動作 (p. 179)• ビューア、CloudFront、およびオリジン間の通信に対して HTTPS を要求する方法 (p. 179)• 代替ドメイン名と HTTPS の使用 (p. 181)• HTTPS 接続料金 (p. 188)

ウェブディストリビューションの場合、CloudFront がビューアにオブジェクトを供給するときに、また、必要に応じて、CloudFront がオリジンからオブジェクトを取得するときにも、HTTPSリクエストを使用してオブジェクトを暗号化できます。

• CloudFront とビューアの間でHTTPSを必須にするには: CloudFront のキャッシュ動作の一部または全部を、HTTP リクエストをHTTPS リクエストにリダイレクトするように構成するか、ビューアがHTTPSプロトコルのみを使用してCloudFrontキャッシュのオブジェクトにアクセスするように構成します。また、同じディストリビューションの1つ以上のキャッシュ動作でHTTPとHTTPSの両方を許可するように構成して、一部のオブジェクトで HTTPS を必須にすることもできます。

• CloudFront とオリジンの間で HTTPS を必須にするには(オプション): ビューアがオブジェクトをリクエストするときに使ったプロトコルを使用して、CloudFront がオリジンからオブジェクトを取得するように、1つ以上のCloudFront オリジンを構成します。たとえば、このCloudFront 設定を使用した場合、ビューアが HTTPS を使用して CloudFront にオブジェクトを要求すると、CloudFrontも HTTPS を使用してリクエストをオリジンに転送します。オリジンが Amazon S3 バケットの場合は、これがデフォルト設定であり、これを変更することはできません。

Important

AmazonS3バケットがウェブサイトエンドポイントとして構成されている場合、オリジンとの通信に HTTPS を使用するように CloudFront を構成することはできません。Amazon S3はその構成で HTTPS 接続をサポートしていないためです。

API Version 2014-01-31178

Amazon CloudFront 開発者ガイド

Page 184: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

HTTPサーバーをオリジンとして使用しており、ビューアとCloudFront 間およびCloudFront とオリジン間の両方でHTTPSを使用する場合、サードパーティ認証局(例:VeriSign、DigiCert )で署名されたSSL 証明書を HTTP サーバーにインストールする必要があります。

Caution

オリジンサーバーが無効な証明書または自己署名証明書を返したり、間違った順番の証明書チェーンを返したりした場合、CloudFront は TCP 接続を中断し、HTTP エラーコード 502 を返して、X-Cacheヘッダーを Error from cloudfrontに設定します。

HTTPS 接続での CloudFront の動作HTTPS 接続での CloudFront の動作を示す以下の例は、次の事項を前提とします。

• CloudFrontディストリビューションには、1つのキャッシュ動作(デフォルトのキャッシュ動作)と1 つのオリジンが含まれます。

• ビューアと CloudFront 間および CloudFront とオリジン間で HTTPS を使用するようにディストリビューションを構成しています。

• オリジンには、サードパーティ認証局によって署名された SSL 証明書があります。

オリジンサーバーがAmazon S3バケットまたはHTTPサーバーのどちらであるかに関係なく、プロセスは基本的に同じように機能します。

HTTPS を使用してオブジェクトを供給するための CloudFront プロセス

1. ビューアがHTTPSリクエストをCloudFront に送信します。ここで、ビューアとCloudFront 間で何らかの SSL ネゴシエーションが実行されます。最終的に、ビューアはリクエストを暗号化形式で送信します。

2. オブジェクトがCloudFront エッジキャッシュに存在する場合、CloudFront はオブジェクトを暗号化してビューアに返し、ビューアはオブジェクトの暗号化を解除します。

3. オブジェクトが CloudFront キャッシュに存在しない場合、CloudFront はオリジンとの SSL ネゴシエーションを実行し、ネゴシエーションが完了すると、オリジンにリクエストを暗号化形式で転送します。

4. オリジンはリクエストの暗号化を解除した後、要求されたオブジェクトを暗号化して CloudFrontに返します。

5. CloudFront はオブジェクトの暗号化を解除した後に、オブジェクトを再度暗号化してビューアに転送します。また、CloudFront はオブジェクトをエッジキャッシュに保存します。これで、同じオブジェクトが次に要求されたときに、キャッシュ内のオブジェクトを使用できます。

6. ビューアはオブジェクトの暗号化を解除します。

ビューア、CloudFront、およびオリジン間の通信に対して HTTPS を要求する方法

ビューアとCloudFront 間の通信、およびオプションでCloudFront とオリジン間の通信でHTTPSを要求するように CloudFront を構成できます。

Note

オリジンから CloudFront エッジキャッシュの間、およびエッジキャッシュからビューアの間でオブジェクトを暗号化するには、HTTPSのみを使用してください。HTTPを使用してオリジ

API Version 2014-01-31179

Amazon CloudFront 開発者ガイドHTTPS 接続での CloudFront の動作

Page 185: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

ンからオブジェクトを取得するように CloudFront を構成している場合、CloudFront はそのオブジェクトをエッジキャッシュに追加し、オブジェクトが有効期限切れになるか、削除または置き換えられるまで、そのオブジェクトをビューアに継続的に供給します。ディストリビューション内のオブジェクトの削除または置き換えの詳細については、「ディストリビューション内のオブジェクトの追加、削除、または置換 (p. 88)」を参照してください。

CloudFront がディストリビューションに割り当てたドメイン名ではなく、代替ドメイン名(例:example.com)を使用する場合は、「代替ドメイン名とHTTPSの使用(p.181)」も参照してください。

ビューア、CloudFront、およびオリジン間の通信に HTTPS を要求するには

1. (オプション)CloudFront でカスタムオリジンと通信するときに HTTPS を使用する場合は、VeriSign や DigiCert などのサードパーティ認証局から SSL 証明書を入手してインストールします(まだ入手していない場合)。

Important

ステップ3でオリジンと通信するときにHTTPSを使用するようにCloudFrontを構成した場合、CloudFrontは確立されたサードパーティ認証局によって証明書が発行されたことを確認します。CloudFront は Mozilla と同じ認証局をサポートします。現在のリストについては、Mozillaに付属するCA証明書一覧を参照してください。自己署名証明書を使用することはできません。

Amazon S3 バケットを使用する場合、SSL 証明書は Amazon S3 から提供されます。

SSL 証明書の取得とインストール方法については、使用している HTTP サーバーソフトウェアのドキュメント、およびサードパーティ認証局のドキュメントを参照してください。

2. HTTP リクエストを HTTPS にリダイレクトするように、または、CloudFront と通信するときにビューアがHTTPSを使用するようにディストリビューションを構成します。CloudFrontコンソールでこれを行うには、[Viewer Protocol Policy] が次の設定のいずれかになるように、ディストリビューションの 1 つ以上のキャッシュ動作を作成または更新します。

• [Redirect toHTTPS]:ユーザーがHTTPSリクエストではなくHTTPリクエストを送信した場合、CloudFront は新しい HTTPS URL に加えて HTTP ステータスコード 301(永続的に移動)を返します。ビューアはこの HTTPS URL を使用して CloudFront にリクエストを再送信します。

Note

HTTPS リクエストにリダイレクトされる HTTP リクエストをビューアが作成すると、CloudFrontは両方のリクエストに課金します。HTTPリクエストの場合、リクエストの料金と、CloudFront がビューアに返すヘッダーの料金のみが課金されます。HTTPS リクエストの場合、リクエストの料金と、オリジンが返すヘッダーとオブジェクトの料金が課金されます。

• [HTTPS Only]: ユーザーが HTTPS リクエストではなく HTTP リクエストを送信した場合、CloudFront は HTTP ステータスコード 403(禁止)を返し、オブジェクトは返しません。

CloudFront コンソールを使用してウェブディストリビューションを更新する方法については、「CloudFront ディストリビューションの一覧表示、詳細表示、および更新を行う (p. 31)」を参照してください。

CloudFront APIを使用してウェブディストリビューションを更新する方法については、「AmazonCloudFront API リファレンス」の「PUT Distribution Config」を参照してください。API を使用している場合は、ViewerProtocolPolicyエレメントを参照してください。

API Version 2014-01-31180

Amazon CloudFront 開発者ガイドビューア、CloudFront、およびオリジン間の通信に対して

HTTPS を要求する方法

Page 186: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

3. (オプション)オリジンとの通信を行う場合にCloudFrontにHTTPSの使用を要求するには、ディストリビューションで 1 つ以上のオリジンを作成または更新し、以下の設定を行います。

• CloudFront コンソール: [Origin Protocol Policy] で [Match Viewer] を指定します。• CloudFront API: OriginProtocolPolicyで match-viewerを指定します。

オリジンが Amazon S3 バケットの場合は、[Match Viewer] がデフォルト設定になっており、これを変更することはできません。

Important

カスタムオリジンを使用する場合、オリジンのSSL証明書は共通名フィールドにドメイン名を含み、おそらくサブジェクト代替名フィールドにもドメイン名をいくつか含みます(CloudFrontは証明書ドメイン名にワイルドカード文字を使用できます)。証明書のドメイン名のうち1つは、オリジンドメイン名に指定したドメイン名と一致する必要があります。ドメイン名が一致しない場合、エンドユーザーがオブジェクトに対して HTTPS リクエストを送信すると、次のように処理されます。

a. CloudFront が、キャッシュ動作の設定に基づいて、該当するオリジンにリクエストを転送します。

b. オリジンが SSL 証明書を返します。c. CloudFront は証明書を検査して、証明書のドメイン名がディストリビューションのオリジン

ドメイン名の値と一致しないことを確認します。d. CloudFront がエンドユーザーに HTTP ステータスコード 502(不正なゲートウェイ)を返し

ます。

4. 次の点を確認します。

• ビューアにHTTPSの使用が必要とされるリクエストにのみ、各キャッシュ動作のパスパターンが適用されている。

• キャッシュ動作が適切に配置されている。詳細については、「パスパターン (p. 51)」を参照してください。

• 適用可能な場合、[Origin Protocol Policy] を [Match Viewer] として構成したオリジンに、キャッシュ動作がリクエストをルーティングする。

• カスタムオリジンを使用していて、オリジンと通信するときに HTTPS を使用するようにCloudFront を構成した場合、オリジンにサードパーティ認証局によって署名された有効な証明書が存在する必要があります。

5. 本番環境で利用する前に構成をテストします。

代替ドメイン名と HTTPS の使用Topics• CloudFront で HTTPS リクエストを供給する方法の選択 (p. 182)• CloudFront で SSL 証明書を使用する場合の要件と制限 (p. 183)• HTTPS で代替ドメイン名を使用するには (p. 184)• SSL 証明書内のパブリックキーのサイズの確認 (p. 186)• SSL 証明書の更新 (p. 186)• 独自 SSL 証明書からデフォルトの CloudFront 証明書に戻す (p. 187)

API Version 2014-01-31181

Amazon CloudFront 開発者ガイド代替ドメイン名と HTTPS の使用

Page 187: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

• 独自 SSL 証明書を専用 IP アドレスから SNI に切り替え (p. 188)

デフォルトでは、URL に CloudFront ディストリビューションドメイン名を使用して、コンテンツをHTTPS 経由でビューアに配信できます(例:https://d111111abcdef8.cloudfront.net/image.jpg)。詳細については、「ビューア、CloudFront、およびオリジン間の通信に対してHTTPSを要求する方法(p. 179)」を参照してください。

ビューアで HTTPS を使用し、オブジェクトの URL で独自ドメイン名を使用する場合(たとえば、https://www.example.com/image.jpg)、このトピックで説明するいくつかの追加ステップを実行する必要があります。

Important

証明書をディストリビューションに追加すると、CloudFrontはそのすべてのエッジロケーションに証明書を直ちに伝達します。また、新しいエッジロケーションが使用可能になると、CloudFront は証明書をそのエッジロケーションにも伝達します。証明書の伝達先のエッジロケーションを制限することはできません。

CloudFront で HTTPS リクエストを供給する方法の選択ユーザーにHTTPSとオブジェクトの代替ドメイン名を使用させる場合、CloudFrontサーバーがHTTPSリクエストを供給する方法を選択する必要があります。代替ドメイン名を使用するように CloudFrontを構成すると、CloudFront は、各エッジロケーションの専用 IP アドレスを使用するか、Server NameIndication(SNI)を使用して、HTTPS リクエストを供給できます。

専用 IPアドレスを使用したHTTPSリクエストの供給(すべてのクライアントで動作)専用IPアドレスを使用してHTTPSリクエストを供給するようにCloudFrontを構成した場合、CloudFrontは代替ドメイン名を各CloudFrontエッジロケーションの専用IPアドレスと関連付けます。ビューアがコンテンツに対して HTTPS リクエストを送信すると、DNS は、該当するエッジロケーションでディストリビューションの IP アドレスにリクエストをルーティングします。CloudFront は IP アドレスを使用してディストリビューションを特定し、どのSSL証明書をビューアに返すかを決定します。ビューアと CloudFront は、SSL 証明書を使用して SSL ネゴシエーションを実行し、CloudFront はリクエストされたコンテンツをビューアに返します。この方法は、ユーザーが使用するブラウザやその他のビューアを問わず、あらゆる HTTPS リクエストで機能します。

Important

専用IPアドレスを使用してHTTPSリクエストを供給するようにCloudFrontを構成した場合、追加の月額料金が発生します。課金は、ディストリビューションにSSL証明書を関連付けて、ディストリビューションを有効にした時点から開始されます。CloudFrontの料金の詳細については、「Amazon CloudFront 料金表」を参照してください。

SNI を使用した HTTPS リクエストの供給(ほとんどのクライアントで動作)Server Name Indication(SNI)を使用して HTTPS リクエストを供給するように CloudFront を構成した場合、CloudFront は各エッジロケーションの IP アドレスに代替ドメイン名を関連付けますが、そのIP アドレスはお客様のディストリビューション専用ではありません。ビューアがコンテンツに対してHTTPS リクエストを送信すると、DNS は、該当するエッジロケーションの IP アドレスにリクエスト

API Version 2014-01-31182

Amazon CloudFront 開発者ガイドCloudFront で HTTPS リクエストを供給する方法の選択

Page 188: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

をルーティングします。ただし、IPアドレスがディストリビューション専用ではないため、CloudFrontは、リクエストがどのドメイン用かを IP アドレスに基づいて決定することはできません。

SSLネゴシエーションは、HTTPS接続を確立する処理の非常に早い段階で実行されます。リクエストがどのドメイン向けかすぐに決定できない場合、CloudFront は接続を中断します。専用 IP アドレスを使用するのは、ドメインとリクエストを関連付ける 1 つの方法です。他には Server Name Indication(SNI)があります。これは、ほとんどの最新ブラウザでサポートされているTLSプロトコルを拡張したものです。SNI をサポートするブラウザは、リクエスト URL からドメイン名を自動的に取得して、それをリクエストヘッダーの新しいフィールドに追加します。SNI をサポートするブラウザからCloudFront が HTTPS リクエストを受け取ると、CloudFront はリクエストヘッダーのドメイン名を見つけて、該当する SSL 証明書を使ってリクエストに応答します。ビューアと CloudFront は SSL ネゴシエーションを実行し、CloudFront はリクエストされたコンテンツをビューアに返します。

現在 SNI をサポートするブラウザの一覧については、Wikipedia の Server Name Indication の項目を参照してください。

SNI を使用したくても、ユーザーのブラウザの一部が SNI をサポートしていない場合は、選択肢がいくつかあります。

• SNI ではなく専用 IP アドレスを使用して HTTPS リクエストを供給するように CloudFront を構成します。

• 独自証明書の代わりにCloudFront SSL証明書を使用します。この場合、オブジェクトのURLでディストリビューションの CloudFront ドメイン名を使用する必要があります(たとえば、https://d111111abcdef8.cloudfront.net/logo.png)。

また、CloudFront で使用する SSL 証明書を独自証明書からデフォルトの CloudFront 証明書に変更する必要もあります。• ディストリビューションを使用してコンテンツを配信したことがない場合は、単に構成を変更できます。詳細については、「CloudFront ディストリビューションの一覧表示、詳細表示、および更新を行う (p. 31)」を参照してください。

• ディストリビューションを使用してコンテンツを配信したことがある場合は、新しい CloudFrontディストリビューションを作成し、コンテンツが使用できない時間を減らすかゼロにするために、オブジェクトのURLを変更する必要があります。詳細については、「独自SSL証明書からデフォルトの CloudFront 証明書に戻す (p. 187)」を参照してください。

• ユーザーが使用するブラウザを管理できる場合は、SNIをサポートするブラウザにアップグレードしてもらいます。

• HTTPS の代わりに HTTP を使用します。

CloudFrontでSSL証明書を使用する場合の要件と制限証明書に関する以下の要件に注意してください。

• 証明書は、認められた認証局(CA)によって発行されている必要があります。自己署名証明書は受け付けられません。

• 証明書は X.509 PEM 形式で作成されている必要があります。• .pem ファイルには、ドメインの証明書の署名者である CA の証明書から始めて、証明書チェーン内のすべての中間証明書を含めます。通常は、適切なチェーン順で中間証明書とルート証明書を並べたファイルが CA のウェブサイトに用意されています。

Important

ルート証明書、信頼パス内に存在しない中間証明書、CA の公開キー証明書は含めないでください。

API Version 2014-01-31183

Amazon CloudFront 開発者ガイドCloudFront で SSL 証明書を使用する場合の要件と制限

Page 189: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

例を示します。

-----BEGIN CERTIFICATE-----Intermediate certificate 2-----END CERTIFICATE----------BEGIN CERTIFICATE-----Intermediate certificate 1-----END CERTIFICATE-----

• プライベートキーは証明書のパブリックキーと一致している必要があります。また、PEM 形式のRSAプライベートキーでもなければなりません。PEM形式のPEMヘッダーはBEGIN RSA PRIVATEKEYで、フッターは END RSA PRIVATE KEYです。プライベートキーはパスワードで暗号化できません。

• SSL 証明書の使用とアップロードを行うための許可が必要です。これには、証明書発行元の認証局から取得した、証明書をコンテンツ配信ネットワークにアップロードするための許可が含まれます。

• SSL証明書内のパブリックキーの最大サイズは2048ビットです。パブリックキーのサイズを確認する方法については、「SSL証明書内のパブリックキーのサイズの確認(p.186)」を参照してください。

• CloudFront はすべての種類の証明書をサポートします。例えば、ドメイン検証済み証明書、拡張検証(EV)証明書、高保証証明書、ワイルドカード証明書(*.example.com)、サブジェクト代替名(SAN)証明書(example.comおよび example.net)などをサポートします。

• お客様は、証明書の有効期限切れ日付を監視したり、アップロードされ CloudFront で使用されるSSL 証明書を更新したりする必要があります。

また、CloudFront での SSL 証明書の使用に関して以下の制限があります。

• 各 CloudFront ディストリビューションに最大 1 個の SSL 証明書を関連付けることができます。• AWSアカウントごとに最大10個のSSL証明書を IAM証明書ストアにアップロードできます。制限の引き上げを要求するには、「IAM 制限の増加を要求する」を参照してください。

• さまざまなアカウントで作成された複数の CloudFront ディストリビューションで同じ証明書を使用する場合、AWSアカウントごとに1回ずつ、証明書を IAM証明書ストアにアップロードする必要があります。

• CloudFront と他の AWS サービスに同じ証明書を使用する場合は、証明書を 2 回(CloudFront と他のサービスのために1回ずつ)アップロードする必要があります。CloudFrontの証明書をアップロードする方法の詳細については、以下の手順を参照してください。

• 専用 IP アドレスを使用して HTTPS リクエストを供給する場合は、以下に注意してください。• 専用 IP アドレスを使用する許可を得る必要があります。後述の手順を参照してください。• 特に指定しない限り、AWS では 1 つの AWS アカウントで 2 つの証明書を使用する許可が与えられます。1つは日常的に使用する証明書で、もう1つは複数のディストリビューションで証明書を更新する必要がある場合の証明書です。

• この機能の使用をすでに承認されており、AWSアカウントで使用できる独自SSL証明書の数を増やす必要がある場合は、https://aws.amazon.com/support/createCase?type=service_limit_increase&serviceLimitIncreaseType=cloudfront-distributionsを利用してください。

HTTPS で代替ドメイン名を使用するには1. SNI を使用して HTTPS リクエストを供給する場合は、ステップ 2 に進んでください。

専用 IPアドレスを使用してHTTPSリクエストを供給する場合は、AWSアカウントで許可を求めます。AWS は可能な限り速やかにお客様のアカウントを更新します。許可を求める方法の詳細については、「Amazon CloudFront の独自 SSL 証明書」を参照してください。

API Version 2014-01-31184

Amazon CloudFront 開発者ガイドHTTPS で代替ドメイン名を使用するには

Page 190: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

Important

デフォルトでは、HTTPS で代替ドメイン名を使用する許可をリクエストすると、AWSは、お客様の CloudFront ディストリビューションに 2つの独自 SSL 証明書を関連付けることができるように、お客様のアカウントを更新します。通常は、複数のディストリビューションを持っており、証明書を更新する必要があるときにのみ、一時的に2番目の証明書を使用します。複数の証明書をディストリビューションに常時関連付ける場合は、必要な証明書の数と状況をリクエストに記載してください。

2. AWS CLI を使用して SSL 証明書を IAM 証明書ストアにアップロードします。証明書をまだ取得していない場合は、「IAMを使用する」の「Creating, Uploading, and Deleting Server Certificates」を参照してください。

証明書をすでに取得している場合は、次の AWS CLI コマンドを使用して、署名付き証明書をアップロードします。

aws iam upload-server-certificate --server-certificate-name CertificateName --certificate-body file://public_key_certificate_file --private-key file://privatekey.pem --certificate-chain file://certificate_chain_file --path /cloudfront/path/

次の点に注意してください。

• 証明書を IAM 証明書ストアにアップロードするには、CloudFront ディストリビューションの作成に使用した AWS アカウントと同じアカウントを使用する必要があります。

• 証明書を IAM にアップロードする場合、-pathパラメータ(証明書のパス)の値が/cloudfront/で始まる必要があります(例:/cloudfront/production/、/cloudfront/test/)。また、パスが / で終わる必要もあります。

• CloudFront コンソールを使用してディストリビューションの作成または更新を行う場合、AWSCLI の --server-certificate-nameパラメータに指定する値が、CloudFront コンソールの[SSL Certificate] リストに表示される値になります。

• CloudFront API を使用してディストリビューションの作成または更新を行う場合、AWS CLI から返される英数文字列を書き留めておきます(例: AS1A2M3P4L5E67SIIXR3J)。これは、IAMCertificateIdエレメントに指定する値です。CLI から返される IAM ARN は必要ありません。

AWS CLI の詳細については、「AWS Command Line Interface ユーザーガイド」および「AWSCommand Line Interface Reference」を参照してください。

3. ディストリビューションを更新して、代替ドメイン名を含め、使用する SSL 証明書を指定し、HTTPS リクエストを供給するために CloudFront で専用 IP アドレスを使用するか、SNI を使用するかを指定します。また、DNS レコードを追加または更新する必要もあります。詳細と手順については、「代替ドメイン名(CNAME)を使用する (p. 33)」を参照してください。

Caution

SSL 証明書を CloudFront ディストリビューションに関連付けたら、すべてのディストリビューションから証明書を削除して、ディストリビューションのステータスが[Deployed]に変わるまで、証明書を IAM 証明書ストアから削除しないでください。

API Version 2014-01-31185

Amazon CloudFront 開発者ガイドHTTPS で代替ドメイン名を使用するには

Page 191: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

SSL 証明書内のパブリックキーのサイズの確認CloudFront代替ドメイン名とHTTPSを使用する場合、SSL証明書内のパブリックキーのサイズが2048ビットを超えることはできません。(これはパブリックキー内の文字数ではありません)。パブリックキーのサイズを確認するには、次の OpenSSL コマンドを実行できます。

openssl x509 -in path and filename of SSL certificate -text -noout

各パラメータの意味は次のとおりです。

• -in: SSL 証明書のパスとファイル名を指定します。• -text: OpenSSL において、パブリックキーの長さがビット単位で表示されます。• -noout: OpenSSL において、パブリックキーが非表示になります。

出力例:

Public-Key: (2048 bit)

SSL 証明書の更新時折、有効期限切れの日付が近づいているなどの理由で、ある SSL 証明書を別のものと置き換えることが必要になる場合があります。その手順は、SSL証明書が同一のAWSアカウントに属する1つ以上の CloudFront ディストリビューションに関連付けられているかどうかによって異なります。

• SSL証明書が 1つのディストリビューションに関連付けられている:単に、ディストリビューションを更新し、古い証明書を新しい証明書に置き換えることができます。詳細については、「CloudFrontディストリビューションの一覧表示、詳細表示、および更新を行う (p. 31)」を参照してください。

• SSL証明書が同一のAWSアカウントに属する2つ以上のディストリビューションに関連付けられている: デフォルトでは、HTTPS で代替ドメイン名を使用する許可をリクエストすると、2 つの SSL証明書のみ同一の AWS アカウントに属する CloudFront ディストリビューションに関連付けることができます。通常は、複数のディストリビューションを持っており、証明書を更新する必要があるときにのみ、2 番目の証明書を使用します。1 つの証明書はまだ更新されていないディストリビューションに関連付けられ、もう 1 つの証明書は更新済みのディストリビューションに関連付けられます。以下の手順を実行します。

Important

証明書を更新している間、2 番目の証明書の使用に対して時間分の追加料金が発生する場合があります。ディストリビューションの更新を迅速に行って、追加料金を最低限にすることをお勧めします。

複数の CloudFront ディストリビューションにおいて SSL 証明書を更新するには

1. 専用 IP アドレスを使用して HTTPS リクエストを供給するように CloudFront を構成し、AWS アカウントで許可された最大数の SSL 証明書をすでに関連付けている場合は、追加の証明書を関連付ける許可を求めます。証明書を更新する旨をメールでお知らせください([email protected])。

2. ディストリビューションを一度に 1 つずつ、新しい証明書を使用できるように更新します。

ステップ 1 で AWS にリクエストを送信した場合は、AWS アカウントが更新されたという通知を受け取るまで待ちます。

API Version 2014-01-31186

Amazon CloudFront 開発者ガイドSSL 証明書内のパブリックキーのサイズの確認

Page 192: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

詳細については、「CloudFront ディストリビューションの一覧表示、詳細表示、および更新を行う (p. 31)」を参照してください。

3. (オプション)すべての CloudFront ディストリビューションの更新が完了したら、古い証明書をIAM 証明書ストアから削除することもできます。

Caution

すべてのディストリビューションからSSL証明書を削除し、更新されたディストリビューションのステータスが [Deployed] に変わるまで、IAM 証明書ストアから SSL 証明書を削除しないでください。

独自 SSL 証明書からデフォルトの CloudFront 証明書に戻す独自 SSL 証明書を使用するように CloudFront を構成していて、CloudFront の SSL 証明書を使用するように構成を変更する場合は、ディストリビューションを使用してコンテンツを配信したことがあるかどうかによって処理が異なります。

• ディストリビューションを使用してコンテンツを配信したことがない場合は、単に構成を変更できます。詳細については、「CloudFront ディストリビューションの一覧表示、詳細表示、および更新を行う (p. 31)」を参照してください。

• ディストリビューションを使用してコンテンツを配信したことがある場合は、新しいCloudFrontディストリビューションを作成し、コンテンツが使用できない時間を減らすかゼロにするために、オブジェクトの URL を変更する必要があります。以下の手順を実行します。

デフォルトの CloudFront 証明書に戻すには

1. 新しいCloudFrontディストリビューションを希望する構成で作成します。[SSLCertificate]には、[Default CloudFront Certificate (*.cloudfront.net)] を選択します。

詳細については、「ウェブディストリビューションを作成するためのタスクリスト (p. 42)」を参照してください。

2. CloudFront を使用して配信しているオブジェクトの場合は、アプリケーションの URL を更新して、CloudFrontが新しいディストリビューションに割り当てたドメイン名を使用します。例えば、https://www.example.com/images/logo.pngをhttps://d111111abcdef8.cloudfront.net/images/logo.pngに変更します。

3. 独自 SSL 証明書に関連付けられているディストリビューションを削除するか、またはディストリビューションを更新して [SSL Certificate] の値を [Default CloudFront Certificate (*.cloudfront.net)]に変更します。詳細については、「CloudFront ディストリビューションの一覧表示、詳細表示、および更新を行う (p. 31)」を参照してください。

Important

このステップが完了するまで、Amazon Web Services は独自 SSL 証明書を使用する料金を課金し続けます。

4. (オプション)AWS CLI を使用して、独自 SSL 証明書を IAM 証明書ストアから削除します。このアプリケーションは、独自 SSL 証明書を IAM 証明書ストアに追加するために使用したアプリケーションと同じです。

API Version 2014-01-31187

Amazon CloudFront 開発者ガイド独自 SSL 証明書からデフォルトの CloudFront 証明書に戻

Page 193: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

a. AWS CLI コマンド list-signing-certificatesを実行して、削除する証明書の証明書 IDを取得します。詳細については、「AWS Command Line Interface Reference」の「list-signing-certificates」を参照してください。

b. AWS CLI コマンド delete-signing-certificateを実行して、証明書を削除します。詳細については、「AWS Command Line Interface Reference」の「delete-signing-certificate」を参照してください。

独自 SSL 証明書を専用 IP アドレスから SNI に切り替え専用 IP アドレスで独自 SSL 証明書を使用するように CloudFront を構成した場合、代わりに SNI で独自 SSL 証明書を使用するように切り替えることができます。以下の手順でその方法を説明します。

Important

CloudFront の構成をこのように更新しても、SNI をサポートするビューアは影響を受けません。これらのビューアは、変更の前も後も、変更が CloudFront エッジロケーションに伝達されている間も、同じようにコンテンツにアクセスできます。SNI をサポートしていないビューアは、変更後、コンテンツにアクセスできなくなります。詳細については、「CloudFront でHTTPS リクエストを供給する方法の選択 (p. 182)」を参照してください。

独自 SSL 証明書を専用 IP アドレスから SNI に切り替えるには

1. AWS マネジメントコンソールにサインインし、Amazon CloudFront コンソール(https://console.aws.amazon.com/cloudfront/)を開きます。

2. CloudFront コンソールの上部のペインで、表示または更新するディストリビューションを選択します。

3. [Distribution Settings] をクリックします。4. [General] タブで、[Edit] をクリックします。5. [Custom SSL Client Support] の設定を [Only Clients that Support Server Name Indication (SNI)] に

変更します。6. [Yes, Edit] をクリックします。

HTTPS 接続料金HTTPS リクエストに対する追加料金が常に発生します。詳細については、「Amazon CloudFront 料金表」を参照してください。

API Version 2014-01-31188

Amazon CloudFront 開発者ガイド独自 SSL 証明書を専用 IP アドレスから SNI に切り替え

Page 194: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

IAMを使用してCloudFrontリソースへのアクセスをコントロールする

Abstract

AWS Identity and Access Management ポリシーを使用してCloudFront のリソースへのアクセスをコントロールします。

Topics• CloudFront リソース (p. 190)• CloudFront アクション (p. 190)• ポリシーキー (p. 191)• CloudFront のポリシー例 (p. 191)

Amazon CloudFront は AWS Identity and Access Management (IAM)と統合します。これにより、AWSアカウントのユーザーを作成でき、AWSアカウントでユーザー(またはユーザーグループ)が実行できるCloudFront アクションを指定できます。CloudFront に対するユーザーアクセスをコントロールするには、ユーザーまたはグループの許可を記述するポリシーを作成します。例えば、組織の特定のユーザーのみにGetDistributionConfigの使用許可を付与するポリシーを作成できます。これでこのユーザーは、CloudFront ディストリビューションに関するデータを取り込むアクションを使用できます。

ポリシーを使用してAWSアカウントユーザーの許可を設定する方法については、「UsingAWS Identityand Access Management」の「Permissions and Policies」を参照してください。IAM に関する一般的な情報については、AWSウェブサイトの「AWS Identity and Access Management」を参照してください。

Important

AmazonCloudFrontを IAMとともに使用する場合も、CloudFrontの使用方法は変わりません。CloudFrontアクションに変更はなく、ユーザーおよびアクセスコントロールに関連する新しいCloudFront アクションはありません。

API Version 2014-01-31189

Amazon CloudFront 開発者ガイド

Page 195: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

CloudFront リソースCloudFront アクションに対するアクセスをコントロールするポリシーを記述する場合は、リソースとしてアスタリスク(*)を使用します。これは、IAMを使用して、特定のCloudFrontリソースに対するアクセスをコントロールすることができないためです。例えば、ユーザーに特定のディストリビューションに対するアクセスを付与することはできません。IAMを使用して付与する許可には、CloudFrontで使用するすべてのリソースが含まれます。アクセスコントロールの対象となるリソースを指定できないので、IAM ポリシー内に、使用する CloudFront リソースの ARN (Amazon リソース名)はありません。(IAMでARNを使用する方法の詳細については、「UsingAWSIdentity andAccessManagement」の「Identifiers for IAM Entities」セクションの「ARNs」を参照してください)。

CloudFront アクションIAM; ポリシーでは、CloudFront が提供するすべてのアクションを指定することができます。アクション名には、小文字の文字列 cloudfront:をプレフィックスとして付ける必要があります。例:cloudfront:GetDistributionConfig、cloudfront:ListInvalidations、cloudfront:*(すべての CloudFront アクションの場合)。

すべての CloudFront アクションの正規名を以下の表に示します。IAM ポリシーで API を指定する場合にこれらの正規名を使用します。

ウェブディストリビューション正規名ウェブディストリビューションのAPIアクション

CreateDistributionPOST Distribution

GetDistributionGET Distribution

GetDistributionConfigGET Distribution Config

UpdateDistributionPUT Distribution Config

ListDistributionsGET Distribution List

DeleteDistributionDELETE Distribution

RTMP ディストリビューション正規名RTMPディストリビューションのAPIアクション

CreateStreamingDistributionPOST Streaming Distribution

GetStreamingDistributionGET Streaming Distribution

GetStreamingDistributionConfigGET Streaming Distribution Config

UpdateStreamingDistributionPUT Streaming Distribution Config

ListStreamingDistributionsGET Streaming Distribution List

DeleteStreamingDistributionDELETE Streaming Distribution

API Version 2014-01-31190

Amazon CloudFront 開発者ガイドCloudFront リソース

Page 196: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

無効化正規名無効化の API アクション

CreateInvalidationPOST Invalidation

GetInvalidationGET Invalidation

ListInvalidationsGET Invalidation List

オリジンアクセスアイデンティティ正規名オリジンアクセスアイデンティティの API アク

ション

CreateCloudFrontOriginAccessIdentityPOST Origin Access Identity

GetCloudFrontOriginAccessIdentityGET Origin Access Identity

GetCloudFrontOriginAccessIdentityConfigGET Origin Access Identity Config

UpdateCloudFrontOriginAccessIdentityPUT Origin Access Identity Config

ListCloudFrontOriginAccessIdentitiesGET Origin Access Identity List

DeleteCloudFrontOriginAccessIdentityDELETE Origin Access Identity

ポリシーキーポリシーキーを使用すると、ポリシーにリクエスト日付やIP範囲などの条件を追加できます。CloudFrontは、AWS 全体に及ぶポリシーキーを実装しますが、それ以外は実装しません。ポリシーキーの詳細については、「Using AWS Identity and Access Management」の「Element Descriptions」セクションの「Condition」を参照してください。

CloudFront のポリシー例このセクションでは、CloudFront に対するユーザーアクセスをコントロールするいくつかの簡単なポリシーを説明します。

Note

将来的には、CloudFrontに新しいアクションが追加される可能性があります。これらは、以下のポリシーのいずれかに論理的に含まれ、ポリシーに記載された目的に基づいている必要があります。

API Version 2014-01-31191

Amazon CloudFront 開発者ガイド無効化

Page 197: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

Example1:アカウントが所有するすべてのリソースに対して、グループの読み書きアクセスを許可します

この例では、グループ(例:開発者グループ)に接続されたポリシーを作成し、すべてのCloudFrontリソースに対する読み書きアクセスをグループに付与します。

{ "Version": "2012-10-17", "Statement":[{ "Effect":"Allow", "Action":["cloudfront:*"], "Resource":"*" } ]}

Example2:アカウントが所有するすべてのリソースに対して、グループの読み取りアクセスを許可します

この例では、グループ(例: 財務グループ)に接続されたポリシーを作成し、すべての CloudFront リソースに対する読み取りアクセスをグループに付与します。

{ "Version": "2012-10-17", "Statement":[{ "Effect":"Allow", "Action":["cloudfront:Get*", "cloudfront:List*"], "Resource":"*" } ]}

Example3:アカウントが所有するすべてのディストリビューション対して、グループの読み書きアクセスを許可します

この例では、グループ(例:運用グループ)に接続されたポリシーを作成し、すべてのディストリビューションに対する読み書きアクセスをグループに付与しますが、無効化またはオリジンアクセスアイデンティティに対するアクセスを付与しません。

{ "Version": "2012-10-17", "Statement":[{ "Effect":"Allow", "Action":["cloudfront:*Distribution*"], "Resource":"*" } ]}

API Version 2014-01-31192

Amazon CloudFront 開発者ガイドCloudFront のポリシー例

Page 198: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

Example 4: CloudFrontディストリビューションのデータをグループが取り込むことを許可しますが、リクエストで SSL が使用されている場合に限ります

この例では、グループに接続されたポリシーを作成し、SSL の使用を必須とする条件付きで、グループにすべての CloudFront アクションに対するアクセスを付与します。

{ "Version": "2012-10-17", "Statement":[{ "Effect":"Allow", "Action":["cloudfront:*"], "Resource":"*", "Condition":{ "Bool":{ "aws:SecureTransport":"true" } } } ]}

API Version 2014-01-31193

Amazon CloudFront 開発者ガイドCloudFront のポリシー例

Page 199: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

アクセスログ

Abstract

ログファイルを使用してオブジェクトに対するユーザーリクエストに関する情報を取得します。

Topics• 概要 (p. 194)• アクセスログの分析 (p. 196)• バケットおよびファイルの所有権 (p. 196)• ログ作成設定の変更方法 (p. 196)• Amazon S3 バケットからログファイルを削除する方法 (p. 197)• ファイル名の形式およびファイル配信のタイミング (p. 197)• ログファイル形式 (p. 198)• アクセスログの料金 (p. 203)

Amazon CloudFront では、ユーザーリクエストに関する情報を含むオプションのログファイルを用意しています。このセクションでは、ログ作成を有効および無効にする方法、ログファイルのコンテンツ、およびお客様がログ作成を選択した場合の料金について説明します。

Note

カスタムオリジンを使用する場合、ログファイルを保存する Amazon S3 バケットを作成する必要があります。

概要CloudFront では、選択された Amazon S3バケットにディストリビューション単位のアクセスログを配信できます。次の図と表は、アクセスログの基本処理を示しています。

API Version 2014-01-31194

Amazon CloudFront 開発者ガイド概要

Page 200: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

アクセスログの処理

エンドユーザーがお客様のアプリケーションまたはウェブサイトを使用します。

この図のお客様にはAとBの2つのウェブサイトがあり、各ウェブサイトで異なるCloudFrontディストリビューションが使用されています(ディストリビューションAとディストリビューション B)。

エンドユーザーがリクエストを送信すると、CloudFrontは各リクエストを適切なエッジロケーションにルーティングします。

CloudFrontは、各リクエストに関するデータを、そのディストリビューション専用のログファイルに書き込みます。この例では、ディストリビューションAに関連するリクエストについての情報がディストリビューションA専用のログファイルに、ディストリビューションBに関連するリクエストについての情報がディストリビューションB専用のログファイルに書き込まれます。

CloudFront は、選択された Amazon S3 バケットにディストリビューションのログファイルを定期的に配置します。その後、ディストリビューション用の新しいログファイルへの書き込みを開始します。

ログファイルには、1つのリクエストの詳細が1エントリとして記録されます。ログファイル形式の詳細については、「ログファイル形式 (p. 198)」を参照してください。

ディストリビューションのログファイルは、オリジンサーバーと同じ Amazon S3 バケットか、別のバケットに保存できます。(メンテナンスを簡素化するために、別のバケットに保存することをお勧めします)。複数のディストリビューションのログファイルを同じバケットに保存することもできます。特定のディストリビューションのログ作成を有効にした場合、ログファイルの名前にオプションのプレフィックスを指定できます。

一定の時間、お客様のコンテンツに対してユーザーアクセスがない場合、その時間のログファイルを受け取ることはありません。

API Version 2014-01-31195

Amazon CloudFront 開発者ガイド概要

Page 201: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

アクセスログの分析1 つのストリームのログが複数のファイルにわたって記録される可能性があるため、一定期間に受け取ったすべてのログファイルを1つのファイルに結合することをお勧めします。これにより、その期間のデータをより素早く正確に分析することができます。

Important

ログは、すべてのリクエストを完全に課金するためのものではなく、コンテンツに対するリクエストの本質を把握するものとして使用することをお勧めします。CloudFrontはベストエフォートベースでアクセスログを提供します。リクエストのログレコードが、リクエストが実際に処理されてからかなり後に配信されたり、配信すらされないこともあり得ます。まれに、AWS使用状況追跡システムと請求システムに表示される利用情報がアクセスログに表示されないことがあります。

アクセスログの分析に使用可能なツールについての推奨事項を含め、CloudFront アクセスログの詳細については、「CloudFront ログ作成の使用 (p. 300)」を参照してください。

バケットおよびファイルの所有権ログファイルバケットに対するAmazonS3 FULL_CONTROL許可が必要です。デフォルトでは、バケット所有者にはこの許可があります。お客様がバケット所有者でない場合、バケット所有者がお客様のAWS アカウントに FULL_CONTROL許可を付与する必要があります。

ログ作成を有効にする場合、CloudFront API への API 呼び出しを実行します。この API 呼び出しを実行すると、バケットの ACL を更新する Amazon S3 API も自動的に呼び出され、AWS データフィードアカウントに読み取り許可と書き込み許可が与えられます。このアカウントはログファイルをバケットに書き込みます。

各ログファイルには、独自のACLがあります(バケットのACLとは別です)。バケット所有者にはログファイルに対する FULL_CONTROL許可があります。ディストリビューション所有者(バケット所有者でない場合)に許可はありません。データフィードアカウントには読み取り許可と書き込み許可があります。

Note

データフィードアカウントの許可を削除しても、ログ作成が無効になることはありません。これらの許可を削除し、(API で行う)ログ作成を無効にしなかった場合は、次にデータフィードアカウントでログファイルをログバケットに書き込むことが必要になったときに、これらの許可を再度与えます。

お客様がログ作成を無効にした場合も、バケットまたはログファイルに対するデータフィードアカウントの読み取り/書き込み許可を当社が削除することはありません。これはお客様自身で行うことができます。

ログ作成設定の変更方法ログ作成の有効化および無効化、ログが保存されている Amazon S3 バケットの変更、およびログファイルのプレフィックスの変更は、CloudFront コンソールまたは CloudFront API を使用して行うことができます。

API Version 2014-01-31196

Amazon CloudFront 開発者ガイドアクセスログの分析

Page 202: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

• CloudFrontコンソールを使用してウェブディストリビューションまたはRTMPディストリビューションを更新する方法については、「CloudFront ディストリビューションの一覧表示、詳細表示、および更新を行う (p. 31)」を参照してください。

• CloudFront API を使用してウェブディストリビューションを更新する方法については、「AmazonCloudFront API リファレンス」の「PUT Distribution Config」を参照してください。

• CloudFront API を使用して RTMP ディストリビューションを更新する方法については、「AmazonCloudFront API リファレンス」の「PUT Streaming Distribution Config」を参照してください。

ログ作成設定の変更は 12 時間以内に有効になります。

CloudFront API を使用してアクセスログ設定を変更する際の注意事項。

• ウェブディストリビューションのアクセスログ設定を変更するには、2009-04-02 以降のバージョンの API を使用する必要があります。

• RTMP ディストリビューションのアクセスログ設定を変更するには、2010-05-01 以降のバージョンの API を使用する必要があります。

• Cookieのアクセスログ設定を変更するには、2012-07-01以降のバージョンのAPIを使用する必要があります。

Note

通常、バケット内のキーの一覧を容易に表示できるように、AmazonS3ユーザーはプレフィックスを使用し、その後に区切り文字のスラッシュ(/)を続けます。

Amazon S3バケットからログファイルを削除する方法

ログ作成を有効にする際に指定した Amazon S3 バケットから、ログファイルが自動的に削除されることはありません。Amazon S3 バケットからログファイルを削除する方法については、該当する以下のAmazon S3 ドキュメントを参照してください。

• Amazon S3 コンソールを使用する場合:「Amazon Simple Storage Service Console User Guide」の「Deleting an Object」を参照してください。

• REST API を使用する場合: 「Amazon Simple Storage Service API リファレンス」の「DELETEObject」を参照してください。

• SOAPAPIを使用する場合:「Amazon Simple Storage Service APIリファレンス」の「DeleteObject」を参照してください。

ファイル名の形式およびファイル配信のタイミング

ファイル名は以下の形式に従います(日付と時刻は UTC です)。

{bucket-name}.s3.amazonaws.com/{optional-prefix/}{distribution-ID}.{YYYY}-{MM}-{DD}-{HH}.{unique-ID}.gz

例えば、バケット名が mylogsで、プレフィックスが myprefix/の場合、ファイル名は次のようになります。

mylogs.s3.amazonaws.com/myprefix/EMLARXS9EXAMPLE.2012-07-01-20.RT4KCN4SGK9.gz

API Version 2014-01-31197

Amazon CloudFront 開発者ガイドAmazon S3 バケットからログファイルを削除する方法

Page 203: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

{optional-prefix/}の値を含めるとき、その値に /が含まれていない場合、CloudFront は自動的に / を追加します。値に /が含まれている場合、CloudFront は / を追加しません。

CloudFrontは、gzipを使用して各ログファイルを圧縮し、指定されたAmazon S3バケットにログファイルを保存します。通常、CloudFront は、対応するリクエストを受け取ってから 24 時間以内にログファイルを保存します。リクエストを送信するユーザー数によっては、CloudFront は 1 時間につき複数のログファイルを保存することがあります。

Note

ある1時間の間、ユーザーからリクエストの送信がない場合、その時間のログファイルを受け取ることはありません。

ログファイル形式Topics• ウェブディストリビューションのログファイル形式 (p. 199)• RTMP ディストリビューションのログファイル形式 (p. 201)

ログファイルには、1つのエンドユーザーリクエストの詳細が1エントリとして記録されます。ウェブディストリビューションと RTMP ディストリビューションのログファイルは別物ですが、この 2 つには次の共通点があります。

• W3C拡張ログファイル形式を使用します。(詳細については、http://www.w3.org/TR/WD-logfile.htmlを参照してください)。

• タブ区切りの値が含まれます。• レコードが必ずしも時系列順に含まれているとは限りません。• 2 つのヘッダー行が含まれます。1つのヘッダー行にファイル形式のバージョンが示され、もう 1つのヘッダー行に、各レコードに含まれるW3C フィールドが示されます。

• フィールド値に含まれるスペースおよび標準外の文字は、URL エンコードされた同等の値で置き換えられます。

この非標準文字には、ASCII コード 0 ~ 31、および ASCII コード 128 以上の文字、および以下の表の文字が含まれます。URL のエンコード標準は RFC 1738 です。詳細については、http://www.ietf.org/rfc/rfc1738.txt を参照してください。

文字URL エンコードされた値

<%3C

>%3E

"%22

#%23

%%25

{%7B

}%7D

|%7C

API Version 2014-01-31198

Amazon CloudFront 開発者ガイドログファイル形式

Page 204: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

文字URL エンコードされた値

\%5C

^%5E

~%7E

[%5B

]%5D

`%60

'%27

スペース%20

ウェブディストリビューションのログファイル形式ウェブディストリビューションのログファイルには以下のフィールドがこの順序で含まれます。

説明フィールド

イベントの発生日付(UTC)(例: 2009-03-10)。日付

サーバーがリクエストの処理を完了した時刻(UTC)(例: 01:42:39)。time

リクエストを処理したエッジロケーション。各エッジロケーションは、3 文字コードと、割り当てられた任意の数字で識別されます(例:DFW3)。通常、この 3 文字コードは、エッジロケーションの近くにある空港の、国際航空運送協会の空港コードに対応します。(これらの略語は今後変更される可能性があります)。エッジロケーションの一覧については、Amazon CloudFront の詳細情報ページ(http://aws.amazon.com/cloudfront)を参照してください。

x-edge-location

サーバーからクライアントへのバイト数(ヘッダーを含む。例: 1045619)。sc-bytes

クライアントの IP(例: 192.0.2.183)。c-ip

HTTP アクセス方式。cs-method

DNS 名(リクエストに指定された CloudFront ディストリビューション名)。CNAMEに対するリクエストを実行した場合、DNS名フィールドには、CNAMEではなく、基礎となるディストリビューション DNS 名が含まれます。

cs(Host)

URI ステム(例: /images/daily-ad.jpg)。cs-uri-stem

次のいずれかの値になります。

• HTTPステータスコード(例:200)。詳細については、「CloudFrontがキャッシュするHTTP 4xxおよび5xxステータスコード(p. 125)」を参照してください。

• 000。CloudFront がリクエストに応答する前に、ビューアが接続をクローズしたこと(ブラウザタブを閉じたなど)を示します。

sc-status

リファラー。cs(Referer)

API Version 2014-01-31199

Amazon CloudFront 開発者ガイドウェブディストリビューションのログファイル形式

Page 205: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

説明フィールド

ユーザーエージェント。cs(User-Agent)

接続文字列に含まれるURI のクエリ文字列部分。URI にクエリ文字列が含まれない場合、ログファイルにあるその要求の cs-uri-queryフィールドには 1つのハイフン(-)が含まれます。エンコード標準はRFC 1738です。詳細については、「ログファイル形式 (p. 198)」を参照してください。

cs-uri-query

名前値のペアおよび関連属性を含む、リクエスト内のCookieヘッダー。Cookieのログ作成を有効にした場合、CloudFront は、お客様がどの Cookie をオリジンに転送するように選択したか(none、all、または Cookie 名のホワイトリスト)に関係なく、すべての要求内のCookieをログに記録します。リクエストにCookieヘッダーが含まれない場合、ログファイルにあるその要求のcs(Cookie)フィールドには 1 つのハイフン(-)が含まれます。

Cookie の詳細については、「CloudFront が Cookie の転送、キャッシュ、およびログ作成を行う方法 (p. 86)」を参照してください。

cs(Cookie)

リクエストの結果タイプ。結果タイプは以下のとおりです。

• Hit: CloudFrontがオブジェクトをエッジキャッシュからビューアに供給しました。

• RefreshHit: CloudFrontはエッジキャッシュの中でオブジェクトを見つけましたが、期限が切れていたために、オリジンに問い合わせて、そのキャッシュがオブジェクトの最新バージョンであることを確認しました。

• Miss: エッジキャッシュ内のオブジェクトがリクエストに対して適切ではなかったため、CloudFront はリクエストをオリジンサーバーに転送して結果をビューアに返しました。

• LimitExceeded: CloudFrontの制限を超えたために、リクエストが拒否されました。

• CapacityExceeded: オブジェクトの供給を要求されたときにエッジロケーションに十分な容量がなかったために、CloudFrontが 503エラーを返しました。

• Error:通常、これは、リクエストが結果的にクライアントエラー(sc-statusが4xx)またはサーバーエラー(sc-statusが5xx)になったことを意味します。

sc-statusが 403であって、お客様のコンテンツのディストリビューションを地理的に制限するようにCloudFrontを設定している場合、制限されている地理的な場所からリクエストが送られた可能性があります。地域制限の詳細については、「コンテンツの地理的ディストリビューションの制限(p.63)」を参照してください。

sc-statusが 2xxの場合、ダウンロードが完了する前にクライアントが切断された可能性があります。

x-edge-result-type

要求を一意に識別する暗号化された文字列。x-edge-request-id

API Version 2014-01-31200

Amazon CloudFront 開発者ガイドウェブディストリビューションのログファイル形式

Page 206: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

説明フィールド

ビューアによってこのリクエストのHostヘッダーに組み込まれた値。これはリクエストのドメイン名です。

• CloudFrontドメイン名(http://d111111abcdef8.cloudfront.net/logo.png)を使用している場合、x-host-header列にはCloudFrontがお客様のディストリビューションに割り当てたドメイン名(例:d111111abcdef8.cloudfront.net)が入ります。

• 代替ドメイン名(http://example.com/logo.png)を使用している場合、x-host-header列には代替ドメイン名(例: example.com)が入ります。代替ドメイン名を使用するには、その名前をお客様のディストリビューションに追加する必要があります。詳細については、「代替ドメイン名(CNAME)を使用する (p. 33)」を参照してください。

x-host-header

ビューアによってリクエストに指定されたプロトコル。httpまたは https。cs-protocol

ビューアによってリクエストに組み込まれたデータのバイト数(クライアントからサーバーへの送信時のバイト数。ヘッダーを含む)。

cs-bytes

CloudFront エッジサーバーがビューアのリクエストを受け取った時間と、CloudFront がレスポンスの最終バイトをサーバーの出力キューに書き込んだ時間との差(秒数)をサーバー側で測定。ビューアから見た場合、オブジェクト全体を取得するのにかかる合計時間は、ネットワークの遅延とTCPバッファリングにより、この値よりも長くなります。

time-taken

Note

URL およびクエリ文字列内の疑問符(?)はログに含まれません。

ウェブディストリビューションのログファイルの例を以下に示します。

#Version: 1.0#Fields: date time x-edge-location sc-bytes c-ip cs-method cs(Host) cs-uri-stem sc-status cs(Referer) cs(User-Agent) cs-uri-query cs(Cookie) x-edge-result-type x-edge-request-id x-host-header cs-protocol cs-bytes time-taken 05/01/2014 01:13:11 FRA2 182 192.0.2.10 GET d111111abcdef8.cloudfront.net /view/my/file.html 200 www.displaymyfiles.com Mozilla/4.0%20(compat ible;%20MSIE%205.0b1;%20Mac_PowerPC) - zip=98101 RefreshHit MRVMF7KydIvxMWf JIglgwHQwZsbG2IhRJ07sn9AkKUFSHS9EXAMPLE== d111111abcdef8.cloudfront.net http - 0.00105/01/2014 01:13:12 LAX1 2390282 192.0.2.202 GET d111111abcdef8.cloudfront.net /soundtrack/happy.mp3 304 www.unknownsingers.com Mozilla/4.0%20(compat ible;%20MSIE%207.0;%20Windows%20NT%205.1) a=b&c=d zip=50158 Hit xGN7KWpVEmB9Dp7ctcVFQC4E-nrcOcEKS3QyAez--06dV7TEXAMPLE== d111111abcdef8.cloud front.net http - 0.002

RTMP ディストリビューションのログファイル形式RTMP アクセスログの各レコードは再生イベントを表します(接続、再生、一時停止、停止、切断など)。結果として、CloudFront は、ビューアがビデオを視聴するたびに複数のログレコードを生成します。同じストリーム ID に由来するログレコードを関連付けるには、x-sidフィールドを使用します。

API Version 2014-01-31201

Amazon CloudFront 開発者ガイドRTMP ディストリビューションのログファイル形式

Page 207: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

Note

すべてのイベントに対して表示されるフィールドがある一方で、再生、停止、一時停止、再開、シークの各イベントに対してのみ表示されるフィールドがあります。フィールドがイベントに関係しない場合、ログファイルには 1 つのハイフン(-)が含まれます。

以下の表に、イベントのタイプに関係なく、RTMPディストリビューションのログファイルの各レコードに表示されるフィールドを示します。これらのフィールドは、表に示された順序でログに表示されます。

説明フィールド

イベントの発生日付(UTC)。日付

サーバーがリクエストを受け付けた時刻(UTC)(例: 01:42:39)。time

再生イベントが発生したエッジロケーション。各エッジロケーションは、3 文字コードと、割り当てられた任意の数字で識別されます(例:DFW3)。通常、この3 文字コードは、エッジロケーションの近くにある空港の、国際航空運送協会の空港コードに対応します。(これらの略語は今後変更される可能性があります)。エッジロケーションの一覧については、Amazon CloudFront の詳細情報ページ(http://aws.amazon.com/cloudfront)を参照してください。

x-edge-location

クライアントの IP(例: 192.0.2.183)。c-ip

イベントタイプ。接続、切断、再生、停止、一時停止、再開、またはシークイベントのいずれかです。

x-event

イベントの時間までにサーバーからクライアントに送信されたバイト数の合計。sc-bytes

イベントのステータスを示すコード。現在、このフィールドの唯一の値は "OK"です。今後の新しい機能によって新しいステータスコードが必要になる可能性があります。

x-cf-status

クライアントを区別するために使用できる Opaque 型の文字列識別子。

この値は接続ごとに一意です。

x-cf-client-id

アプリケーションおよびアプリケーションインスタンスを含む、URI のステム部分。これは、FMS 接続文字列と呼ばれることもあります。例:rtmp://shqshne4jdp4b6.cloudfront.net/cfx/st。

cs-uri-stem

接続文字列に含まれる URI のクエリ文字列部分。cs-uri-query

リファラーの URI。c-referrer

SWF のリンク元ページの URL。x-page-url

ユーザーエージェント。c-user-agent

以下のフィールドは、再生、停止、一時停止、再開、シークの各イベントに対してのみ表示されます。他のイベントの場合、これらのフィールドには 1 つのダッシュ(-)が含まれます。これらのフィールドは、上記のフィールドの後に、表に示された順序でログに表示されます。

説明フィールド

ストリーム名。x-sname

ストリームのクエリ文字列(ある場合)。x-sname-query

API Version 2014-01-31202

Amazon CloudFront 開発者ガイドRTMP ディストリビューションのログファイル形式

Page 208: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

説明フィールド

ストリームタイプ(例: FLV)。x-file-ext

ストリーム ID。これは、接続に対する一意の整数識別子です。x-sid

Note

URL およびクエリ文字列内の疑問符(?)はログに含まれません。

RTMP ディストリビューションのログファイルの例を次に示します。

#Version: 1.0#Fields: date time x-edge-location c-ip x-event sc-bytes x-cf-status x-cf-client-id cs-uri-stem cs-uri-query c-referrer x-page-url c-user-agent x-sname x-sname-query x-file-ext x-sid2010-03-12 23:51:20 SEA4 192.0.2.147 connect 2014 OK bfd8a98bee0840d9b871b7f6ade9908f rtmp://shqshne4jdp4b6.cloudfront.net/cfx/st key=value http://player.longtailvideo.com/player.swf http://www.long tailvideo.com/support/jw-player-setup-wizard?example=204 LNX%2010,0,32,18 - - - -2010-03-12 23:51:21 SEA4 192.0.2.222 play 3914 OK bfd8a98bee0840d9b871b7f6ade9908f rtmp://shqshne4jdp4b6.cloudfront.net/cfx/st key=value http://player.longtailvideo.com/player.swf http://www.long tailvideo.com/support/jw-player-setup-wizard?example=204 LNX%2010,0,32,18 myvideo p=2&q=4 flv 12010-03-12 23:53:44 SEA4 192.0.2.4 stop 323914 OK bfd8a98bee0840d9b871b7f6ade9908f rtmp://shqshne4jdp4b6.cloudfront.net/cfx/st key=value http://player.longtailvideo.com/player.swf http://www.long tailvideo.com/support/jw-player-setup-wizard?example=204 LNX%2010,0,32,18 dir/other/myvideo p=2&q=4 flv 12010-03-12 23:53:44 SEA4 192.0.2.103 play 8783724 OK bfd8a98bee0840d9b871b7f6ade9908f rtmp://shqshne4jdp4b6.cloudfront.net/cfx/st key=value http://player.longtailvideo.com/player.swf http://www.long tailvideo.com/support/jw-player-setup-wizard?example=204 LNX%2010,0,32,18 dir/favs/myothervideo p=42&q=14 mp4 22010-03-12 23:56:21 SEA4 192.0.2.199 stop 429822014 OK bfd8a98bee0840d9b871b7f6ade9908f rtmp://shqshne4jdp4b6.cloudfront.net/cfx/st key=value http://player.longtailvideo.com/player.swf http://www.long tailvideo.com/support/jw-player-setup-wizard?example=204 LNX%2010,0,32,18 dir/favs/myothervideo p=42&q=14 mp4 22010-03-12 23:59:44 SEA4 192.0.2.14 disconnect 429824092 OK bfd8a98bee0840d9b871b7f6ade9908f rtmp://shqshne4jdp4b6.cloudfront.net/cfx/st key=value http://player.longtailvideo.com/player.swf http://www.long tailvideo.com/support/jw-player-setup-wizard?example=204 LNX%2010,0,32,18 - - - -

アクセスログの料金アクセスログの作成は、CloudFront のオプション機能です。アクセスログの作成を有効にしても追加料金はかかりません。ただし、Amazon S3でのファイルの保存とアクセスについて通常のAmazon S3料金が発生します(ファイルの削除はいつでもできます)。CloudFront の料金の詳細については、「CloudFront の請求および使用状況レポート (p. 8)」を参照してください。

API Version 2014-01-31203

Amazon CloudFront 開発者ガイドアクセスログの料金

Page 209: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

トラブルシューティング

Abstract

CloudFront で遭遇する可能性のある一般的な問題に対処して、可能な対策を見つけます。

Topics• ウェブディストリビューション内のファイルを表示できません。 (p. 204)• RTMP ディストリビューション内のファイルを表示できません。 (p. 206)• エラーメッセージ「Certificate: <certificate-id> is being used byCloudFront.」が表示されます。(p. 206)

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

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

CloudFront と Amazon S3 の両方にサインアップしましたか?Amazon CloudFront を Amazon S3 オリジンで使うには、CloudFront と Amazon S3 の両方にそれぞれサインアップする必要があります。CloudFront と Amazon S3 のサインアップについて詳しくは、「CloudFront の使用開始 (p. 19)」をご覧ください。

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

API Version 2014-01-31204

Amazon CloudFront 開発者ガイドウェブディストリビューション内のファイルを表示できま

せん。

Page 210: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

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

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

代替ドメイン名(CNAME)が正しく構成されていますか?お使いのドメイン名に対応する CNAME レコードがすでに存在する場合は、そのレコードを変更または置換して、レコードがディストリビューションのドメイン名を指すようにしてください。

また CNAME レコードが、Amazon S3 バケットではなく、ディストリビューションのドメイン名を指していることを確認してください。DNS システムの CNAME レコードがディストリビューションのドメイン名を指していることを確認することができます。そのためには、DNS ツールを dig と同じように使います(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)を使用する (p. 33)」を参照してください。

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

API Version 2014-01-31205

Amazon CloudFront 開発者ガイド代替ドメイン名(CNAME)が正しく構成されていますか?

Page 211: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

カスタムオリジンに関するトラブルシューティングでサポートをお求めですか?カスタムオリジンのトラブルシューティングでAWSのサポートが必要な場合、お客様のリクエストのX-Amz-Cf-Idヘッダーエントリの調査が必要になることがあります。現在ヘッダーエントリのログ作成をしていない場合は、将来に備えて記録することをお勧めします。詳細については、「AmazonEC2と他のカスタムオリジンの使用に関する要件および推奨事項 (p. 63)」を参照してください。

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

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

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

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

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

• SSL 証明書の更新 (p. 186)• 独自 SSL 証明書からデフォルトの CloudFront 証明書に戻す (p. 187)

API Version 2014-01-31206

Amazon CloudFront 開発者ガイドカスタムオリジンに関するトラブルシューティングでサ

ポートをお求めですか?

Page 212: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

CloudFront の負荷テスト

Abstract

CloudFrontのパフォーマンスを評価する際に使用する、従来の負荷テストの方法とは異なる特定のステップを列挙します。

従来の負荷テストの方法はCloudFrontでは適切に機能しません。CloudFrontが、DNSを使用して、地理的に分散したエッジロケーション間および各エッジロケーション内で負荷を分散するためです。クライアントがCloudFrontにコンテンツを要求すると、クライアントは一連のIPアドレスが含まれたDNSレスポンスを受け取ります。DNSが返す IPアドレスの1つだけにリクエストを送信してテストするなら、1 つの CloudFront エッジロケーション内のリソースのごく一部分にのみテストを実行することなり、実際のトラフィックパターンを正確には表しません。この方法でテストした場合、リクエストするデータの量によっては、テスト対象になったごく一部分のCloudFrontサーバーに負荷がかかりすぎて、パフォーマンスが低下することもあります。

CloudFront は、複数の地理的リージョンにわたってクライアント IP アドレスや DNS リゾルバーの異なるビューアに応じて、拡大縮小するように設計されています。CloudFront のパフォーマンスを正確に評価する負荷テストを実行するには、以下の手順をすべて実行することをお勧めします。

• 複数の地理的リージョンからクライアントのリクエストを送信します。• 各クライアントで独立した DNS リクエストを実行するようにテストを構成します。これで、各クライアントは DNS から一連の異なる IP アドレスを受け取ります。

• リクエストを実行する各クライアントで、DNSから返された IPアドレスセット全体にクライアントリクエストを分散します。これにより、CloudFront エッジロケーション内の複数のサーバー間で負荷が分散されます。

API Version 2014-01-31207

Amazon CloudFront 開発者ガイド

Page 213: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

CloudFront チュートリアル

Abstract

CloudFront を使用して、ライブストリーミング、地理的ブロッキング、および RTMP ストリーミングを行う方法について説明するチュートリアルです。

以下のチュートリアルでは、CloudFront を使用して、ライブストリーミング、地理的ブロッキング、および RTMP ストリーミングを行う方法について説明します。

ライブストリーミング• CloudFront および Adobe Media Server 5.0 を使用したライブ HTTP ストリーミング (p. 209)• Amazon CloudFront と IIS Media Services 4.1 を使用したライブスムーズストリーミング (p. 230)• Wowza Streaming Engine 4.0 を使用したライブ HTTP ストリーミング (p. 247)

地理的ブロッキング• CloudFrontディストリビューション内のファイルへのアクセスを地理的場所に基づいて制限する(地理的ブロッキング) (p. 258)

RTMP ストリーミング• CloudFront および Adobe Flash Player を使用したオンデマンドビデオストリーミング (p. 284)• CloudFront、およびAdobeFlash向けFlowplayerを使用したオンデマンドビデオストリーミング(p.289)• CloudFront および JW Player を使用したオンデマンドビデオストリーミング (p. 294)

API Version 2014-01-31208

Amazon CloudFront 開発者ガイドライブストリーミング

Page 214: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

CloudFront およびAdobe Media Server 5.0 を使用したライブ HTTP ストリーミング

Abstract

Amazon CloudFront と Adobe Media Server 5.0 を使用したライブ HTTP ストリーミングの使用方法について説明します。

Topics• 概要 (p. 209)• ライブストリーミングの構成ステップ (p. 210)• Amazon Web Services アカウントを作成する (p. 211)• Amazon EC2 キーペアを作成する (p. 211)• Adobe Media Server をサブスクライブする (p. 212)• ライブストリーミング用の AWS CloudFormation スタックを作成する (p. 213)• Adobe Media Server が実行されていることを確認する (p. 214)• ライブストリームを発行するように Adobe Flash Media Live Encoder をセットアップする (p. 215)• ウェブアプリケーションに Amazon CloudFront ライブ HTTP ストリームの Flash Media Playbackを埋め込む (p. 219)

• ライブストリーミング用の AWS CloudFormation スタックを削除する (p. 221)• よくある質問 (p. 222)• その他のドキュメント (p. 229)

Amazon Web Services ライブストリーミングでは、Adobe Media Server バージョン 5.0 を使用して、ライブ演奏、オンラインセミナー、およびその他のイベントをストリーミングできます。このチュートリアルでは、AdobeMedia Server 5.0を使用したライブストリーミングの構成プロセスについて説明します。

概要Abstract

HTTP ライブストリーミングまたは HTTP ダイナミックストリーミングのために Amazon CloudFront と AdobeMedia Server 5.0 を使用する際の基本情報について説明します。

Adobe Media Server 5.0 は、次の 2 つの HTTP ストリーミング形式をサポートします。

• HLS (HTTP Live Streaming)。iOS デバイスでサポートされます• HDS (HTTP Dynamic Streaming)。Flash アプリケーションでサポートされます

ここでは、Adobe Media Server と CloudFront を連携させて、イベントをリアルタイムでストリーミングする方法について説明します。

1. このチュートリアルで説明されているとおりに、AWSCloudFormationを使用して、Adobe MediaServer 5.0 を実行する Amazon EC2 インスタンスを準備し、CloudFront ディストリビューションを作成します。

2. デジタルビデオカメラ(ラップトップコンピューターのビデオカメラなど)を使用してイベントをキャプチャします。

API Version 2014-01-31209

Amazon CloudFront 開発者ガイドCloudFront および Adobe Media Server 5.0 を使用したラ

イブ HTTP ストリーミング

Page 215: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

3. イベントの場所でエンコーダ(例:Adobe FlashMedia Live Encoder)を使用し、生のビデオフィードを圧縮して、Adobe Media Server に送信します。(Flash Media Live Encoder は、無料でダウンロードでき、Windows および Mac OS で利用可能です)。

4. Adobe Media Server は、ビデオストリームを一連の小さなファイルに分割します。このサーバーは CloudFront ディストリビューションのオリジンです。

5. ユーザーに提供している、イベントを表示するためのCloudFront URLにユーザーがアクセスすると、CloudFront は、ユーザーの HTTP リクエストを、(レイテンシーに関して)最寄りのエッジロケーションにルーティングします。

6. エッジロケーションは Adobe Media Server にビデオストリームを要求します。7. Adobe Media Server は、CloudFront エッジロケーションにビデオストリームを小さいファイル単

位で返します。8. CloudFront エッジロケーションはビデオストリームを、リクエストの実行元のビューアに供給し

ます。また、このライブストリームの以降のリクエストに対する応答を高速化するために、これらの小さいファイルをキャッシュします。

このチュートリアルでは、CloudFrontを、AmazonEC2インスタンスで実行されるAdobeMedia Serverと統合する方法の概要について説明します。Adobe Media Server の詳細、およびライブストリーミングで使用する AWS サービスの詳細については、以下のドキュメントを参照してください。

• このチュートリアルで説明されていない Adobe Media Server オプションの詳細については、「その他のドキュメント (p. 229)」を参照してください。

• 使用可能な Adobe Media Server の機能については、「アマゾンウェブサービスの Adobe MediaServer 5」を参照してください。

• Adobe Media Server 5.0 の新機能を確認するには、Adobe ウェブサイトの「Adobe Media Server5.0.1 の新機能」を参照してください。

• Amazon EC2 インスタンスの管理およびセキュリティ保護を行う方法については、「Amazon EC2ドキュメント」を参照してください。

• AWSCloudFormationの詳細については、「AWSCloudFormationドキュメント」を参照してください。

• その他の質問事項については、「よくある質問 (p. 222)」を参照してください。

ライブストリーミングの構成ステップAbstract

アマゾンウェブサービス(AWS)でライブストリーミングをセットアップして構成するステップについて説明します。

Amazon Web Services (AWS)を使用したライブストリーミングをセットアップするには、AdobeFlash Player のシステム要件を参照してください。次に、以下の各セクションの手順を実行します。

1. Amazon Web Services アカウントを作成する (p. 211)2. Amazon EC2 キーペアを作成する (p. 211)3. Adobe Media Server をサブスクライブする (p. 212)4. ライブストリーミング用の AWS CloudFormation スタックを作成する (p. 213)5. Adobe Media Server が実行されていることを確認する (p. 214)6. ライブストリームを発行するようにAdobe Flash Media Live Encoder をセットアップする (p. 215)7. ウェブアプリケーションに Amazon CloudFront ライブ HTTP ストリームの Flash Media Playback

を埋め込む (p. 219)8. ライブストリーミング用の AWS CloudFormation スタックを削除する (p. 221)

API Version 2014-01-31210

Amazon CloudFront 開発者ガイドライブストリーミングの構成ステップ

Page 216: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

Amazon Web Services アカウントを作成するAbstract

Adobe Media Server で CloudFront を使用する最初のステップとして、アマゾンウェブサービス(AWS)アカウントを作成する方法について説明します。

すでにAWSアカウントをお持ちの場合は、この手順をスキップして「Amazon EC2キーペアを作成する(p. 211)」に進んでください。まだAWSアカウントをお持ちでない場合は、次に説明する手順に従ってアカウントを作成してください。

Note

アカウントを作成すると、そのアカウントで AWS のすべてのサービスへのサインアップが自動的に行われます。料金が発生するのは、お客様が使用したサービスの分のみです。

AWS アカウントを作成するには

1. http://aws.amazon.com にアクセスし、[Create an AWS Account] をクリックします。2. 画面上の指示に従ってください。

サインアップ手順の一環として、通話呼び出しを受け取り、電話のキーパッドを用いて PIN を入力することが求められます。

次の手順: Amazon EC2 キーペアを作成する (p. 211)

Amazon EC2 キーペアを作成するAbstract

Adobe Media Server を構成するリージョンで Amazon EC2 キーペアを作成する方法について説明します。

ライブストリーミングを構成するAmazon EC2リージョンにAmazon EC2キーペアがすでにある場合は、この手順をスキップして「AdobeMediaServerをサブスクライブする(p.212)」に進んでください。そのリージョンにキーペアがない場合は、以下の手順を実行します。

キーペアとは、パスワードに似たセキュリティ認証情報です。このプロセスの後でライブストリーミング用の AWS CloudFormation スタックを作成するときにキーペアを指定します。ライブストリーミングを構成した後、キーペアを使用して Amazon EC2インスタンスへのセキュアな接続を行います。

Amazon EC2 キーペアを作成するには

1. AWS マネジメントコンソールにサインインして Amazon EC2 コンソール(https://console.aws.amazon.com/ec2/)を開きます。

2. [Region] リストで、キーペアの作成先のリージョンをクリックします。

このプロセスの後で作成する、ライブストリーミング用の AWS CloudFormation スタックが含まれるリージョンと同じリージョンにキーペアを作成する必要があります。キーペアと、ライブストリーミング用のスタックは、ストリーミングを実行するユーザーの最寄りのリージョンに作成することをお勧めします。

3. [Navigation] ペインで、[Key Pairs] をクリックします。4. [Key Pairs] ペインで、[Create Key Pair] をクリックします。5. [Create Key Pair]ダイアログボックスにキーペアの名前を入力し、その名前を書き留めます。この

値は、後のライブストリーミングのセットアッププロセスで、AWS CloudFormation ライブストリーミングスタックを作成するときに入力します。

API Version 2014-01-31211

Amazon CloudFront 開発者ガイドAmazon Web Services アカウントを作成する

Page 217: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

6. [Create] をクリックします。7. [Opening <key_pair_name>.pem] ダイアログボックスで、.pem ファイルをコンピューターの安全

な場所に保存します。

Important

プライベートキーのダウンロードと保存を行う必要があるのは、この機会のみです。

8. [Close] をクリックし、[Create Key Pair] ダイアログボックスを閉じます。

次の手順: Adobe Media Server をサブスクライブする (p. 212)

Adobe Media Server をサブスクライブするAbstract

アマゾンウェブサービス(AWS)で Adobe Media Server をサブスクライブするステップについて説明します。

以下の手順を実行し、Amazon Web Services 向けの Adobe Media Server を AWS Marketplace 経由でサブスクライブします。

Note

このチュートリアルの以前のバージョンでは、AWS Marketplace の代わりに Amazon DevPayを使用してAdobe Media Server をサブスクライブしていました。現在Adobe Media Server を実行していて、Amazon DevPayを使用してサブスクライブした場合は、アマゾンウェブサービス(AWS)のAdobe Media Server のページで、Adobe Media Server の Amazon DevPay サブスクリプションをキャンセルします。そうしないと、Amazon DevPay による古いサブスクリプションに対して毎月5ドルが引き続き請求され、さらに、AWSMarketplaceによる新しいサブスクリプションについても毎月 5 ドルが追加で請求されます。

Adobe Media Server は毎月のサブスクリプション料金が 5.00 ドルで、Adobe Media Server インスタンスの数は無制限です。毎月のサブスクリプション料金に加えて、時間単位の使用料金およびデータ転送量に対する料金がかかります。以下の手順の一部として詳細な価格表を確認できます。

Amazon Web Services 向けの Adobe Media Server 5 を注文するには

1. AWS Marketplace ウェブサイトの Adobe Media Server 5 Extended のページに移動します。2. 製品情報を確認し、[Continue] をクリックします。3. [Launch on EC2] ページで、[Launch with EC2 Console] タブをクリックします。4. [Pricing Details] セクションで、ライブストリーミング用の Amazon EC2 インスタンスを作成する

リージョンを選択します。該当する価格情報を確認します。5. [Accept Terms] をクリックして、毎月のサブスクリプションにサインアップします。

Important

このページのボタンを使用して Adobe Media Server を起動しないでください。

次の手順: ライブストリーミング用の AWS CloudFormation スタックを作成する (p. 213)

API Version 2014-01-31212

Amazon CloudFront 開発者ガイドAdobe Media Server をサブスクライブする

Page 218: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

ライブストリーミング用の AWS CloudFormation スタックを作成する

Abstract

Adobe Media Server に必要な AWS リソースを起動するために AWS CloudFormation スタックを作成する方法について説明します。

以下の手順では、AWS CloudFormation テンプレートを使用し、Amazon EC2 インスタンスおよびCloudFrontディストリビューションを含め、ライブストリーミングで必要とされるAWSリソースを起動するスタックを作成します。

Important

Amazon EC2 インスタンスをデプロイする AWS CloudFormation スタックを作成した時点から、Amazon EC2 インスタンスに対する時間単位の料金が発生します。ライブビデオのストリーミングに Amazon EC2 インスタンスを使用しているかどうかに関係なく、AWSCloudFormation スタックを削除するまで、この料金がかかります。詳細については、AWSMarketplace ウェブサイトの Adobe Media Server 5 Extended のページを参照してください。ライブイベントが終了したら、ライブストリーミング用に作成したスタックを削除します。これにより、ライブストリーミングイベント用に作成したAWSリソースが削除され、このリソースの AWS 料金が停止します。詳細については、「ライブストリーミング用の AWSCloudFormation スタックを削除する (p. 221)」を参照してください。

AWS CloudFormation の詳細については、「AWS CloudFormation ドキュメント」を参照してください。

ライブストリーミング用の AWS CloudFormation スタックを作成するには

1. [Create Stack] ウィザードを開始するには、以下の Amazon EC2 リージョンの 1 つをクリックします。

• 米国東部(バージニア)にスタックを作成する• 米国西部(オレゴン)にスタックを作成する• 米国西部(北カリフォルニア)にスタックを作成する• 欧州(アイルランド)にスタックを作成する• アジアパシフィック(シンガポール)にスタックを作成する• アジアパシフィック(東京)にスタックを作成する• アジアパシフィック(オーストラリア)にスタックを作成する• 南米(サンパウロ)にスタックを作成する

ウィザードが開始され、該当する URL が [Provide an S3 URL to template] フィールドに自動的に表示されます。

Note

ユーザーが、独自のドメインでホストされる Flash ベースのプレーヤーを使用してライブストリーミングを視聴するようにするには、「独自のドメインでホストされている Flashベースのストリームの crossdomain.xml を更新するにはどのようにすればよいですか? (p. 224)」を参照してください。

2. AWS Management Console にまだサインインしておらず、サインインを求められた場合は、サインインしてください。

API Version 2014-01-31213

Amazon CloudFront 開発者ガイドライブストリーミング用のAWSCloudFormationスタック

を作成する

Page 219: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

3. (オプション)[Stack Name] を変更します。スタック名にスペースを含めることはできません。また、スタック名は AWS アカウント内で一意である必要があります。

[Template] オプションまたは [Provide an S3 URL to template] のアドレスは変更しないでください。

4. [Next Step] をクリックします。5. [Specify Parameters] ページで、[AMSAdminPassword] に AMS 管理コンソールのパスワード(最

小 8 文字)を入力します。6. [AMSAdminUserName] にユーザー名を入力します。Amazon EC2 の Adobe Media Server インス

タンスを作成した後、この値と先のステップで入力したパスワードを使用してAMS管理コンソールにログインします。

7. [InstanceType] に、Adobe Media Server インスタンスの料金を決定するインスタンスタイプを入力します。AmazonEC2インスタンスタイプの詳細については、「AmazonElastic Compute Cloudユーザーガイド」で、使用可能なインスタンスタイプを参照してください。

価格の詳細については、AWSMarketplaceウェブサイトのAdobeMedia Server 5 Extendedのページを参照してください。

8. [KeyPair] に、ステップ 1で選択したリージョンと同じリージョンのAmazon EC2キーペアの名前を入力します。キーペアは、サインインに現在使用しているアカウントに関連付けられている必要があります。「Amazon EC2キーペアを作成する (p. 211)」の手順を実行したときにキーペアを作成した場合は、そのキーペアの名前を入力します。

9. [StreamName] にライブストリームのショートネーム(スペースなし)を入力します。10. [Next Step] をクリックします。11. (オプション)[Add Tags] ページで、タグを 1 つ以上追加します。12. (オプション)SNS 通知の構成、スタックの作成を待機する時間の指定、スタックの作成が失敗

した場合に変更をロールバックするかどうかの選択、スタックポリシーの入力を行うには、[Advanced] をクリックし、必要に応じて設定を調整します。

13. [Next Step] をクリックします。14. スタックの設定を確認します。設定が適切であることを確認したら、[Create]をクリックします。

AWS CloudFormation によってスタックが作成されます。

スタックの作成には数分かかる場合があります。スタックの作成状況を追跡するには、スタックを選択し、下部のフレームにある[Events]タブをクリックします。AWSCloudFormationがスタックを作成できない場合、[Events] タブにエラーメッセージが表示されます。

スタックの準備が整うと、上部のフレームにあるスタックのステータスが[CREATE_COMPLETE]に変わります。

スタックが作成されたら、[Outputs] タブをクリックします。このタブには、スタックの作成に関する出力が表示されます。これらの値は、このプロセスの後で Adobe Flash Media Live Encoderをセットアップするときに使用します。

次の手順: Adobe Media Server が実行されていることを確認する (p. 214)

Adobe Media Server が実行されていることを確認する

Abstract

Adobe Media Server が Amazon EC2 インスタンスで実行されていることを確認する方法について説明します。

スタックが作成された後、以下の手順を実行し、AWS CloudFormation を使用して準備した AmazonAmazon EC2 インスタンスで Adobe Media Server が実行されていることを確認します。

API Version 2014-01-31214

Amazon CloudFront 開発者ガイドAdobe Media Server が実行されていることを確認する

Page 220: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

Adobe Media Server が実行されていることを確認するには

1. AWSCloudFormationコンソール(https://console.aws.amazon.com/cloudformation/)を開きます。2. 上部のペインで、「ライブストリーミング用のAWSCloudFormationスタックを作成する(p. 213)」

で作成したスタックを選択します。3. 下部のペインで、[Outputs] タブをクリックします。4. [AMSServer] キーの値をクリックします。これは、「ライブストリーミング用の AWS

CloudFormationスタックを作成する(p. 213)」の手順を実行したときに準備したAmazonEC2インスタンスへの URL です。

5. AdobeMediaServerのページが表示され、コンテンツのストリーミングが開始されます。これは、Adobe Media Server が実行されていることを示します。

ストリーミングが開始しない場合は、「概要 (p. 209)」に戻り、初めの4つのタスクで指定した値が正しいことを確認します。

値がすべて正しいにもかかわらず、ストリーミングが依然として開始されない場合は、「ストリーミングが開始しない場合に Amazon EC2 インスタンスのトラブルシューティングを行う方法を教えてください。 (p. 228)」を参照してください。

次の手順: ライブストリームを発行するように Adobe Flash Media Live Encoder をセットアップする (p. 215)

ライブストリームを発行するように Adobe FlashMedia Live Encoder をセットアップする

Abstract

ライブストリームを公開するように Adobe Flash Media Live Encoder をセットアップする方法について説明します。

Adobe Media Server on Amazon Web Services には livepkgr と呼ばれるアプリケーションが含まれます。これは、発行されたストリームをHTTP Dynamic Streaming(HDS)およびHTTP Live Streaming(HLS)を使用して配信するために、そのストリームをパッケージ化するアプリケーションです。

以下の手順は、ライブストリームを Adobe Media Server 5.0 の livepkgr アプリケーションに発行するように Adobe Flash Media Live Encoder (FMLE)をセットアップする方法を示しています。

Note

Flash Media Live Encoder の Windows バージョンでは、AAC オーディオ形式がサポートされません。AAC のサポートを追加するために、Adobe は、MainConcept AAC エンコーダを購入することを推奨しています。

Flash Media Live Encoder のライブストリーミング設定を指定するには

1. ライブストリームのブロードキャストに使用するコンピューターにサインインします。2. ウェブブラウザを開いて、[Adobe Flash Media Live Encoder] ページに移動します。3. Flash Media Live Encoder をダウンロードしてインストールします。

Note

Flash Media Live Encoder は無料ですが、これをダウンロードするには、Adobe アカウント(無料)が必要です。

API Version 2014-01-31215

Amazon CloudFront 開発者ガイドライブストリームを発行するように Adobe Flash Media

Live Encoder をセットアップする

Page 221: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

4. テキストエディターで Flash Media Live Encoder の config.xmlファイルを開きます。デフォルトのインストール場所はオペレーティングシステムによって異なります。

• 32 ビットWindows: C:\Program Files\Adobe\Flash Media Live Encoder 3.2• 64 ビットWindows: C:\Program Files (x86)\Adobe\Flash Media Live Encoder3.2\Conf

• Macintosh: Applications:Adobe:Flash Media Live Encoder 3.2

5. config.xmlで、以下の <enable>エレメントの値を trueに設定します。

<flashmedialiveencoder_config> ... <mbrconfig> ... <streamsynchronization> ... <!-- "true" to enable this feature, "false" to disable. --> <enable>true</enable>

6. ファイルを保存します。7. Flash Media Live Encoder を実行します。8. [Encoding Options] タブの [Preset] で、[High Bandwidth (800 Kbps) – H.264] を選択します。9. [EncodingOptions]タブの [Audio]チェックボックスの下にある[Format]で、[AAC]を選択します。

10. [Encoding Options] タブの [Video] セクションで、[Format] リストの右にあるレンチアイコンをクリックし、[Advanced Encoder Settings] ダイアログボックスを開きます。

API Version 2014-01-31216

Amazon CloudFront 開発者ガイドライブストリームを発行するように Adobe Flash Media

Live Encoder をセットアップする

Page 222: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

11. [Advanced Encoder Settings] ダイアログボックスの [Keyframe Frequency] で、[4 Seconds] を選択します。

applications/livepkgr/events/_definst_/liveevent/Event.xmlファイルに指定された <FragmentDuration> エレメントの値の倍数を使用することもできます。<FragmentDuration>のデフォルト値は 4000 ミリ秒(4 秒)です。

12. [OK] をクリックし、設定を保存して、メインページに戻ります。[Preset] リストのオプションが[Custom] に変わります。

13. AWSCloudFormationコンソール(https://console.aws.amazon.com/cloudformation/)を開きます。14. ライブストリーミング用に作成したスタックのチェックボックスをチェックします。15. 下部のペインで、[Outputs] タブをクリックします。

API Version 2014-01-31217

Amazon CloudFront 開発者ガイドライブストリームを発行するように Adobe Flash Media

Live Encoder をセットアップする

Page 223: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

16. AMSURL キーの値をコピーします(例:rtmp://ec2-00-11-22-33.us-west-1.compute.amazonaws.com/livepkgr)。

17. Flash Media Live Encoder の [Stream to Flash Media Server] セクションの [FMS URL] 設定に、AWS CloudFormation コンソールでコピーした AMSURL キーの値を貼り付けます。

18. AWS CloudFormation コンソールで、Stream キーの値をコピーします(例:livestream?adbe-live-event=liveevent)。

19. Flash Media Live Encoder の [Stream] 設定に、AWS CloudFormation コンソールでコピーしたStream キーの値を貼り付けます。

Note

ライブストリームの停止と再開を行う必要があることが予想される場合、代わりに次の値を [Stream] フィールドに入力します。

livestream?adbe-live-event=liveevent&adbe-record-mode=record

ライブストリームをレコードモード(adbe-record-mode=record)で発行した場合にライブストリームの停止と再開を行うと、AdobeMediaServerは、再開時に、以前のストリームにストリームを付加するのではなく、以前のストリームを削除して新しいストリームを開始します。ただし、レコードモードを使用せずにライブストリームを停止した場合、ストリームを再開できるようにするには、ライブストリーミングを再構成する必要があります。

20. [Save to File] のチェックを外します。21. [Connect] をクリックし、Adobe Media Server インスタンスに接続します。22. [Start] をクリックし、ライブストリームのエンコードを開始して、ライブストリームを Adobe

Media Server インスタンスの livepkgr アプリケーションに発行します。

API Version 2014-01-31218

Amazon CloudFront 開発者ガイドライブストリームを発行するように Adobe Flash Media

Live Encoder をセットアップする

Page 224: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

次の手順: ウェブアプリケーションに Amazon CloudFront ライブ HTTP ストリームの Flash MediaPlayback を埋め込む (p. 219)

ウェブアプリケーションにAmazon CloudFront ライブ HTTPストリームの Flash Media Playback を埋め込む

Abstract

CloudFront でライブ HTTP ストリームの Flash Media Playback のコードを埋め込む方法について説明します。

該当の手順を実行し、ライブストリーム用のウェブページに含める埋め込みコードを取得します。

• CloudFront を使用して HTTP ストリーム用の Flash Media Playback を埋め込むには (p. 219)• CloudFront を使用して Apple デバイスで HLS ストリームを再生するには (p. 221)

CloudFront を使用して HTTP ストリーム用の Flash Media Playback を埋め込むには

1. AWSCloudFormationコンソール(https://console.aws.amazon.com/cloudformation/)を開きます。2. ライブストリーミング用のスタックを選択します。3. 下部のペインで、[Outputs] タブをクリックします。4. LiveHDSManifest キーの値をコピーします(例:

http://d123.cloudfront.net/hds-live/livepkgr/_definst_/liveevent/livestream.f4m)。5. FlashMediaPlaybackキーの値をクリックし、[Flash Media Playback Setup]ウェブページを開きま

す。6. [FlashMedia Playback Setup]ページの [Video Source]に、ステップ4でAWSManagement Console

からコピーした値を貼り付けます。

Note

Flash Media Playback で HTTP Dynamic Streaming をサポートするには、Flash Player10.1 が必要です。

API Version 2014-01-31219

Amazon CloudFront 開発者ガイドウェブアプリケーションに Amazon CloudFront ライブHTTP ストリームの Flash Media Playback を埋め込む

Page 225: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

7. [Are you using HTTP Streaming or Flash Access 2.0] で、[Yes] をクリックします。8. [Poster frame file location] の値を削除します(ある場合)。9. [Preview] をクリックし、[Preview Embed Code] の値を更新します。

10. ビデオを再生し、現在の設定が適切であることを確認します。11. 必要に応じて、設定を変更します。オプションを変更したら、[Preview] をクリックして、埋め込

みコードを更新します。

API Version 2014-01-31220

Amazon CloudFront 開発者ガイドウェブアプリケーションに Amazon CloudFront ライブHTTP ストリームの Flash Media Playback を埋め込む

Page 226: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

12. ウェブページに Flash Media Playback を埋め込むには、[Preview Embed Code] ボックスの内容をコピーして、ウェブサイトの HTML コードに貼り付けます。

Note

ユーザーが、独自のドメインでホストされる Flash ベースのプレーヤーを使用してライブストリーミングを視聴するようにするには、「独自のドメインでホストされている Flashベースのストリームの crossdomain.xml を更新するにはどのようにすればよいですか? (p. 224)」を参照してください。

CloudFront を使用して Apple デバイスで HLS ストリームを再生するには

1. AWSCloudFormationコンソール(https://console.aws.amazon.com/cloudformation/)を開きます。2. ライブストリーミング用のスタックを選択します。3. 下部のペインで、[Outputs] タブをクリックします。4. LiveHLSManifest キーの値をコピーします(例:

http://d123.cloudfront.net/hls-live/livepkgr/_definst_/liveevent/livestream.m3u8)。5. iOS デバイスを使用してこの URL にアクセスし、HLS ストリーミングが適切に動作することを確

認します。

どのような場合に、この URL を使用して各種 iOS デバイス、QuickTime、および Safari にサービスを提供するかについては、iOS開発者ライブラリの「HTTPライブストリーミング概要」を参照してください。

HTTP経由でライブストリームを発行し、再生する方法については、「Adobe Media Server 5.0.1 開発者ガイド」の「HTTP 経由でライブストリームの発行および再生を行うための URL」を参照してください。

次の手順: ライブストリーミング用の AWS CloudFormation スタックを削除する (p. 221)

ライブストリーミング用の AWS CloudFormation スタックを削除する

Abstract

追加料金を回避できるように、Adobe Media Server 用に作成した AWS CloudFormation スタックを削除する方法について説明します。

ライブイベントが終了したら、ライブストリーミング用に作成したスタックを削除します。これにより、ライブストリーミングイベント用に作成した AWS リソースが削除され、このリソースの AWS 料金が停止します。

ライブストリーミング用の AWS CloudFormation スタックを削除するには

1. AWS マネジメントコンソールにサインインして AWS CloudFormation コンソール(https://console.aws.amazon.com/cloudformation/)を開きます。

2. スタックを選択し、[Delete Stack] をクリックします。3. [Yes, Delete] をクリックして確定します。4. スタックの削除状況を追跡するには、スタックを選択し、下部のフレームにある [Events] タブを

クリックします。5. ライブストリーミングをすぐに再使用する予定がない場合は、Adobe Media Server on Amazon

EC2 のサブスクリプションをキャンセルすることができます。サブスクリプションをキャンセル

API Version 2014-01-31221

Amazon CloudFront 開発者ガイドライブストリーミング用のAWSCloudFormationスタック

を削除する

Page 227: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

するには、「アマゾンウェブサービスの Adobe Media Server 5」に移動し、[Subscribe Now] をクリックして、画面の指示に従います。

よくある質問Abstract

CloudFront での Adobe Media Server の使用に関して、よくある質問で取り上げられる一般的な問題について説明します。

• Adobe Media Server 5.0 が実行されている Amazon EC2 インスタンスに Secure Shell (SSH)を使用して接続する方法を教えてください。 (p. 222)

• 独自のドメインでホストされているFlashベースのストリームのcrossdomain.xmlを更新するにはどのようにすればよいですか? (p. 224)

• CloudFront と Adobe Media Server 5.0 を使用するライブ HTTP ストリーミングの料金を教えてください。 (p. 225)

• Amazon EC2 インスタンスまたはCloudFront ディストリビューションのCNAMEエイリアスをどのように作成できますか? (p. 225)

• Adobe Media Server Administration Console には、どのように接続することができますか? (p. 225)• ライブイベントを Apple デバイスと Flash Player 対応デバイスの両方にストリーミングできますか? (p. 227)

• Adobe Media Server 5.0 では、HTML5 がサポートされますか? (p. 227)• Adobe Media Server のログ作成機能はありますか? (p. 227)• Adobe Media Server で認証を有効にする方法を教えてください。 (p. 227)• HDS および HLS 関連のファイルに対するデフォルトのキャッシュ制御設定は何ですか? (p. 227)• HLS と HDS の違いは何ですか? (p. 228)• ストリーミングが開始しない場合に Amazon EC2 インスタンスのトラブルシューティングを行う方法を教えてください。 (p. 228)

• Adobe Flash Media Server 4.5 を使用するライブストリーミングに関するドキュメントはどこにありますか? (p. 228)

AdobeMedia Server 5.0が実行されているAmazon EC2インスタンスにSecure Shell(SSH)を使用して接続する方法を教えてください。

Note

デフォルトでは、セキュリティの理由で、Amazon EC2 インスタンスの SSH ポート(ポート22)は無効になっています。次の手順は、SSH ポートを有効にする方法と、SSH を使用してAmazon EC2 インスタンスに接続する方法を示しています。

Adobe Media Server 5.0 が実行されている Amazon EC2 インスタンスのポート 22 へのアクセスを有効にするには

1. Amazon EC2 インスタンスに関連付けられている Amazon EC2 セキュリティグループの名前を取得します。

a. AWS マネジメントコンソールにサインインして AWS CloudFormation コンソール(https://console.aws.amazon.com/cloudformation/)を開きます。

API Version 2014-01-31222

Amazon CloudFront 開発者ガイドよくある質問

Page 228: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

b. [Region] リストで、作成した Amazon EC2 インスタンスが含まれているリージョンを選択します。

c. 対象の AWS CloudFormation スタックの行をクリックします。d. 下部のペインで、[Resources] タブをクリックします。e. [Stack Resources] テーブルの左の列で、値が AMSOriginServerSecurityGroupになって

いる行を見つけます。f. その行の [Physical ID] 列の値を書き留めます。

2. Amazon EC コンソール(https://console.aws.amazon.com/ec2/)を開きます。3. [Navigation] ペインの [Security Groups] をクリックします。4. [Security Groups] ページで、ステップ 1f で取得した物理 ID と [Name] 列が一致している行を選択

します。5. 下部のペインで、[Inbound] タブをクリックします。6. [Create a new rule] で、[SSH] を選択します。7. [Add Rule] をクリックします。8. [Apply Rule Changes] をクリックします。

SSH を使用して、Adobe Media Server 5.0 が実行されている Amazon EC2 インスタンスに接続するには

1. Amazon EC コンソール(https://console.aws.amazon.com/ec2/)を開きます。2. [Navigation] ペインの [Instances] をクリックします。3. 適切なインスタンスを右クリックし、[Connect]をクリックします。SSHを使用してAmazonEC2

インスタンスに接続するための手順が表示されます。

API Version 2014-01-31223

Amazon CloudFront 開発者ガイドよくある質問

Page 229: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

独自のドメインでホストされている Flash ベースのストリームの crossdomain.xml を更新するにはどのようにすればよいですか?AWSCloudFormationスタックを作成する前または後で、crossdomain.xml内の許可を変更することができます。

• AWS CloudFormation スタックを作成していない場合は、https://s3.amazonaws.com/cloudfront-live/live-http-streaming-ams-5-0-1-using-cloudfront.txtで、AmazonCloudFront と Adobe Media Server 5.0 を使用するライブストリーミング用の AWS CloudFormationテンプレートをダウンロードします。テンプレートで、UserDataセクションを編集します。このセクションには crossdomain.xml設定が含まれます。更新したテンプレートはローカルコンピューターに保存します。次に、更新したテンプレートを使用して、AWSCloudFormationスタックを作成します。

• AWSCloudFormationスタックをすでに作成している場合は、AmazonEC2インスタンスで実行されている Adobe Media Server にログインし、クロスドメインポリシーファイル(/mnt/webroot/crossdomain.xml)内の許可を変更します。

API Version 2014-01-31224

Amazon CloudFront 開発者ガイドよくある質問

Page 230: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

crossdomain.xmlファイルの編集方法については、「Adobe クロスドメインポリシーファイルの仕様」を参照してください。

CloudFront と Adobe Media Server 5.0を使用するライブHTTPストリーミングの料金を教えてください。Adobe Media Server on Amazon EC2 の毎月のサブスクリプション料金 5.00 USD のほかに、使用したAWS リソースに対する料金のみをお支払いいただきます。

• Amazon EC2 で実行される Adobe Media Server の料金に関する情報については、「Amazon WebServices の Adobe Media Server 5 / 料金表」を参照してください。

• CloudFront の料金に関する情報については、「Amazon CloudFront 料金表」を参照してください。

AWS CloudFormation の使用料はありません。

AmazonEC2インスタンスまたはCloudFrontディストリビューションの CNAME エイリアスをどのように作成できますか?Adobe Media Server 5.0 を実行する Amazon EC2 インスタンスには内部および外部の DNS 名が付属します。Amazon EC2 では、この DNS 設定を変更できません。Adobe Media Server が実行されているAmazon EC2インスタンスに既存のドメイン名をマップする場合は、Amazon Route 53などのDNSサービスプロバイダーを使用します。独自のドメイン名を使用する場合、インスタンスの IP アドレスを指す Aレコードを使用するのではなく、CNAMEを使用してインスタンスの外部DNS名にマップすることをお勧めします。

独自のドメイン名を CloudFront ディストリビューションにマップするには、「代替ドメイン名(CNAME)を使用する (p. 33)」を参照してください。

Adobe Media Server Administration Console には、どのように接続することができますか?Adobe Media Server Administration Console に接続するには

1. AWS マネジメントコンソールにサインインして AWS CloudFormation コンソール(https://console.aws.amazon.com/cloudformation/)を開きます。

2. ライブストリーミング用のスタックを選択します。3. 下部のペインで、[Outputs] タブをクリックします。4. AMSAdminConsoleServerAddress キーの値をコピーします。5. AMSServerAdminConsole キーの値をクリックします(例:

http://ec2-00-11-22-33.us-west-1.compute.amazonaws.com/ams_adminConsole.htm)。6. Adobe Media Server Administration Console のログインページの [Server Address] に、ステップ 4

でコピーした AMSAdminConsoleServerAddress キーを貼り付けます。7. [Username] と [Password] フィールドに、「ライブストリーミング用の AWS CloudFormation ス

タックを作成する (p. 213)」で指定した値を入力します。8. [Login] をクリックします。

Adobe Media Server 5.0 Administration Console の使用方法については、Adobe Media Server に関するドキュメントを参照してください。

API Version 2014-01-31225

Amazon CloudFront 開発者ガイドよくある質問

Page 231: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

Note

Adobe は、ポート 1111 へのすべての外部アクセスをブロックし、管理コンソールへのアクセスをファイアウォール内のクライアントのみに制限することを推奨しています。代替方法として、ドメインベースの制限を使用して、サーバーへのアクセスを制限することもできます。詳細については、Adobe ドキュメントの「Adobe Media Administration Server へのアクセス制限」を参照してください。

Adobe Media Server のポート 1111 へのアクセスを無効にするか、制限するには

1. Amazon EC2 インスタンスに関連付けられている Amazon EC2 セキュリティグループの名前を取得します。

a. AWS マネジメントコンソールにサインインして AWS CloudFormation コンソール(https://console.aws.amazon.com/cloudformation/)を開きます。

b. [Region] で、作成した Amazon EC2 インスタンスが含まれているリージョンの名前をクリックします。

c. 対象の AWS CloudFormation スタックの行を選択します。d. 下部のペインで、[Resources] タブをクリックします。e. [Stack Resources] テーブルの AMSOriginServerSecurityGroup行の [Physical ID] 列の値

を書き留めます。

2. Amazon EC2 コンソールを表示します。3. [Navigation] ペインで、[Security Groups] をクリックします。4. [Security Groups] ペインで、Amazon EC2 インスタンス用に作成されているセキュリティグルー

プを選択します。この名前は、ステップ 1e で書き留めた値です。5. 下部のペインで、[Inbound] タブをクリックします。6. Adobe Media Server Administration Consoleへのアクセスを完全に無効にするには、以下の手順を

実行します。

a. [TCP Port (Service)] 列で [1111] を見つけます。b. その行の [Action] 列で、[Delete] をクリックします。c. [Apply Rule Changes] をクリックします。

7. 選択した IP アドレスへのアクセスを制限するには、以下の手順を実行します。

a. [TCP Port (Service)] 列で [1111] を見つけて、[Delete] をクリックします。b. [Create a new rule] のデフォルト値である [Custom TCP rule] を受け入れます。c. [Port range] に「1111」と入力します。d. [Source] に、IP アドレスまたは範囲を入力するか、別のセキュリティグループの名前を入力

します。詳細については、[Help] をクリックしてください。e. [Add Rule] をクリックします。f. 追加のルールを作成するには、ステップ b ~ e を繰り返します。g. [Apply Rule Changes] をクリックします。

API Version 2014-01-31226

Amazon CloudFront 開発者ガイドよくある質問

Page 232: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

ライブイベントをApple デバイスとFlash Player 対応デバイスの両方にストリーミングできますか?はい。Adobe Media Server 5.0 では、Flashベースのデバイスと iOSデバイスの両方にライブストリームを同時に配信できます。HTML5 プレーヤーまたはObjective C("ネイティブ")アプリケーションを使用すれば、Safari ブラウザへのストリーミングが可能です。Adobe AIR for iOS を使用して、iOS でのリッチなビデオ操作を開発することもできます。

Adobe Media Server 5.0 では、HTML5 がサポートされますか?はい。Adobe Media Server では、HLSストリーミング形式を使用して、Apple iOSデバイスのHTML5にコンテンツを配信できます。HTML5をサポートする他のブラウザでは、AdobeMedia Serverを使用してプログレッシブ配信ができます。

Adobe Media Server のログ作成機能はありますか?はい。サーバーとストリームイベントに対するW3C対応のASCIIログ、リアルタイムの使用状況モニター、および API 一式が備えられており、追跡する必要があるすべてのツールが確保され、コンテンツの使用状況に関するレポートを生成できます。AdobeMedia Server 5.0のログファイルを監視および管理する方法については、Adobe ドキュメントの「Monitoring and Managing Log Files」を参照してください。

Adobe Media Server で認証を有効にする方法を教えてください。Adobe Media Server Amazon EC2 インスタンス用に AWS CloudFormation が作成したセキュリティグループ内で、(TCPおよびUDP用の)RTMPポート1935へのアクセスを制限できます。ポート1935用の新しい TCP および UDP ルールを作成した後に、ポート 1935 用の既存の TCP および UDP ルールを削除するだけで、すべての IP アドレスへのアクセスが可能になります。

セキュリティグループにルールを追加する方法の簡単な概要については、「Adobe Media ServerAdministration Console には、どのように接続することができますか? (p. 225)」を参照してください。Amazon EC2 セキュリティグループの詳細については、「Amazon Elastic Compute Cloud ユーザーガイド」の「Amazon EC2 セキュリティグループ」を参照してください。

HDS および HLS 関連のファイルに対するデフォルトのキャッシュ制御設定は何ですか?HDSおよびHLS関連のファイルに対するデフォルトのキャッシュ制御ヘッダーは、以下の値に設定されます。

Cache-Control設定(秒)ファイルタイプ

2.bootstrap

60HDS フラグメント

2.f4m

2.m3u8

60.ts

API Version 2014-01-31227

Amazon CloudFront 開発者ガイドよくある質問

Page 233: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

CloudFront エッジキャッシュサーバーは、これらのキャッシュ制御ヘッダーを優先します。サーバーで HttpStreamingF4MMaxAge、HttpStreamingBootstrapMaxAge、およびHttpStreamingFragMaxAgeパラメータの値を変更することで、デフォルト設定を変更することができます。詳細については、Adobeドキュメントの「HTTPストリーミング構成ファイルリファレンス」を参照してください。

HLS と HDS の違いは何ですか?HLS は、Apple デバイス用に最適化されたファイルコンテナ形式です。このコンテナは、H.264/AACエンコードされたビデオおよびオーディオをサポートし、MPEG-2 トランスポートストリーム(TS)に基づきます。iOS (AIR for IOS を含む)に配信するすべてのビデオでこの形式を使用する必要があります。

HDS は、Flash Player で実行されるアプリケーション用に最適化されたファイルコンテナ形式です。このコンテナも、H.264/AACエンコードされたビデオおよびオーディオをサポートし、MPEG-4 TSに基づきます。HDS は AIR for iOS ではサポートされません。

ストリーミングが開始しない場合にAmazonEC2インスタンスのトラブルシューティングを行う方法を教えてください。「AdobeMedia Serverが実行されていることを確認するには(p. 215)」の手順を実行してもストリーミングが開始されない場合は、以下の手順を実行して、Amazon EC2 インスタンスが適切に機能していることを確認します。

AdobeMedia Server 5.0が実行されるAmazon EC2インスタンスのトラブルシューティングを行うには

1. AWS CloudFormation コンソールの上部のペインで、スタックを選択します。2. 下部のペインで、[Resources] タブをクリックします。3. [AMSOriginServer] 行の [Physical ID] 列の値を書き留めます。4. Amazon EC2 コンソールに移動します。5. [Region] リストで、作成した AWS CloudFormation スタックが含まれているリージョンを選択し

ます。6. [Navigation] ペインの [Instances] をクリックします。7. [Instance] 列で、ステップ c で書き留めた値を見つけます。8. 該当する行を選択します。9. 下部のペインで、[Status Checks] タブの情報を確認し、推奨アクションを実行します。10. 「Adobe Media Server が実行されていることを確認するには (p. 215)」の手順に戻り、ステップ2

~ 5 を繰り返します。

Adobe Flash Media Server 4.5 を使用するライブストリーミングに関するドキュメントはどこにありますか?Adobe Flash Media Server 4.5 を使用するライブストリーミングに関するドキュメントについては、CloudFront API バージョン 2012-07-01 の「Amazon CloudFront 開発者ガイド」で、「CloudFrontTutorials」の「Live Streaming Using CloudFront and Adobe Flash Media Server 4.5」を参照してください。

API Version 2014-01-31228

Amazon CloudFront 開発者ガイドよくある質問

Page 234: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

その他のドキュメントAbstract

Adobe Media Server と CloudFront を使用して作業するときに役に立つ追加のリソースを列挙します。

Adobe ドキュメント• Adobe Media Server on Amazon Web Services を使用する• Adobe クロスドメインポリシーファイルの仕様• Flash Media Live Encoder• Flash Media Live Encoder に関するよくある質問• Adobe Media Server プラットフォームにおける HTTP Dynamic Streaming のビデオエンコードおよびトランスコードに関する推奨事項

• Adobe Media Server 5.0 の技術概要

Amazon Web Services ドキュメント• Amazon Elastic Compute Cloud ドキュメント• AWS CloudFormation ドキュメント

API Version 2014-01-31229

Amazon CloudFront 開発者ガイドその他のドキュメント

Page 235: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

Amazon CloudFront と IIS Media Services 4.1を使用したライブスムーズストリーミング

Abstract

Amazon CloudFront と IIS Media Services 4.1 でライブスムーズストリーミングを使用する方法について説明します。

Topics• アマゾンウェブサービスを使用したライブスムーズストリーミングの概要 (p. 230)• アマゾンウェブサービスアカウントの作成 (p. 231)• Amazon EC2 キーペアを作成する (p. 232)• ライブスムーズストリーミング用の AWS CloudFormation スタックを作成する (p. 233)• Amazon EC2 Windows Server インスタンスの実行確認 (p. 236)• Windows パスワードの取得 (p. 237)• ライブストリームの暗号化 (p. 238)• ライブスムーズストリームの表示 (p. 242)• AWS CloudFormation のライブスムーズストリーミングスタックの削除 (p. 243)• よくある質問 (p. 243)• その他のドキュメント (p. 245)

アマゾンウェブサービスを使用したライブスムーズストリーミングの概要

Abstract

アマゾンウェブサービスで Microsoft ライブスムーズストリーミングを使用する際の基本情報について説明します。

スムーズストリーミングは、アダプティブストリーミングテクノロジの Microsoft 実装であり、標準のHTTP を使用し、ウェブに基づいてメディアコンテンツ配信をする形式のストリーミングです。IISMedia Servicesの拡張であるスムーズストリーミングを使用すると、Microsoft Silverlightなど、スムーズストリーミングクライアントにライブイベントのアダプティブストリーミングができます。CloudFrontを使用するようにスムーズストリーミングを構成すると、CloudFront のグローバル HTTP ネットワークのスケールメリットを得ることができるほか、ビューアがネットワークのエッジノードにレイテンシーベースでルーティングされることでメリットを得ることができます。CloudFront の詳細については、CloudFront 製品ページを参照してください。

スムーズストリーミングコンテンツは、CloudFront エッジサーバーでのキャッシュが可能な一連のMPEG-4 (MP4)フラグメントとしてクライアントに配信されます。スムーズストリーミング対応のクライアントは、特別なヒューリスティクスを使用して現在のネットワークおよびローカルPCの条件を動的に監視し、クライアントが受信するスムーズストリーミングプレゼンテーションのビデオ品質をシームレスに切り替えます。クライアントがフラグメントを再生している間に、ネットワークの条件が変化(帯域幅が減少するなど)したり、ビデオ処理が、クライアントで実行されている他のアプリケーションの影響を受けたりする場合があります。クライアントは、変化する条件に応じて異なるビットレートでエンコードされたストリームから次のフラグメントが送信されるように直ちに要求できます。これにより、クライアントはメディアを途切れさせたり、バッファ処理したり、フリーズしたりすることなく再生できます。その結果、ユーザーはストリームの中断がない最高の再生品質を体験できます。

ライブブロードキャストをスムーズストリーミング形式にエンコードするには、Microsoft ExpressionEncoder 4 Pro を使用します。エンコードされたスムーズストリームを供給するには、Windows IIS

API Version 2014-01-31230

Amazon CloudFront 開発者ガイドAmazon CloudFront と IIS Media Services 4.1 を使用した

ライブスムーズストリーミング

Page 236: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

Media Servicesを実行するAmazonEC2Amazonマシンイメージ(AMI)を使用できます。CloudFrontはライブビデオコンテンツとライブオーディオコンテンツをキャッシュし、ビューアはCloudFrontエッジサーバーに接続し、Microsoft Silverlightなど、スムーズストリーミング対応のクライアントを使用してストリームを再生します。このチュートリアルでは、セットアッププロセス全体を手順を追って説明します。

Note

Windows IIS Media Services を実行する Amazon EC2 Amazon マシンイメージ(AMI)にMicrosoft Expression Encoder 4 Pro Service Pack 2 は含まれません。また、これは無料のダウンロード製品ではありません。機能および料金表については、Microsoft Store ウェブサイトでExpression Encoder 4 Pro のページを参照してください。サードパーティのエンコードツールを使用して、ライブスムーズストリーミング用のビデオをエンコードすることもできます。エンコードソフトウェアを提供する Microsoft パートナーのリストについては、Microsoft ウェブサイトで、IIS Media Services のページの [Partners] タブを参照してください。

Note

このチュートリアルでは、Amazon EC2インスタンスで実行される Microsoft ライブスムーズストリーミングと CloudFront を統合する方法の概要について説明します。Amazon EC2 インスタンスの管理およびセキュリティ保護を行う方法については、「Amazon EC2 ドキュメント」を参照してください。このチュートリアルで説明されていない Microsoft ライブスムーズストリーミングオプションの詳細については、「Microsoft のドキュメント (p. 245)」を参照してください。

アマゾンウェブサービス(AWS)を使用したライブスムーズストリーミングをセットアップするには、「スムーズストリーミングのデプロイガイド」で IISスムーズストリーミングのシステム要件を参照してください。次に、以下の各セクションの手順を実行します。

1. アマゾンウェブサービスアカウントの作成 (p. 231)2. Amazon EC2 キーペアを作成する (p. 232)3. ライブスムーズストリーミング用の AWS CloudFormation スタックを作成する (p. 233)4. Amazon EC2 Windows Server インスタンスの実行確認 (p. 236)5. Windows パスワードの取得 (p. 237)6. ライブストリームの暗号化 (p. 238)7. ライブスムーズストリームの表示 (p. 242)8. AWS CloudFormation のライブスムーズストリーミングスタックの削除 (p. 243)

よくある質問については、「よくある質問 (p. 243)」を参照してください。

他の Microsoft ドキュメントおよび AWS ドキュメントへのリンクについては、「その他のドキュメント (p. 245)」を参照してください。

アマゾンウェブサービスアカウントの作成Abstract

ライブスムーズストリーミングでCloudFrontを使用する最初のステップとして、アマゾンウェブサービス(AWS)アカウントを作成します。

すでにAWSアカウントをお持ちの場合は、この手順をスキップして「Amazon EC2キーペアを作成する(p. 232)」に進んでください。まだAWSアカウントをお持ちでない場合は、次に説明する手順に従ってアカウントを作成してください。

API Version 2014-01-31231

Amazon CloudFront 開発者ガイドアマゾンウェブサービスアカウントの作成

Page 237: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

Note

アカウントを作成すると、そのアカウントで AWS のすべてのサービスへのサインアップが自動的に行われます。料金が発生するのは、お客様が使用したサービスの分のみです。

AWS アカウントを作成するには

1. http://aws.amazon.com にアクセスし、[Create an AWS Account] をクリックします。2. 画面上の指示に従ってください。

サインアップ手順の一環として、通話呼び出しを受け取り、電話のキーパッドを用いて PIN を入力することが求められます。

次の手順: Amazon EC2 キーペアを作成する (p. 232)

Amazon EC2 キーペアを作成するAbstract

ライブスムーズストリーミングを構成するリージョンに Amazon EC2 キーペアを作成します。

ライブスムーズストリーミングを構成するAmazon EC2リージョンにAmazon EC2キーペアがすでにある場合は、この手順をスキップして「ライブスムーズストリーミング用の AWS CloudFormation スタックを作成する (p. 233)」に進んでください。そのリージョンにキーペアがない場合は、以下の手順を実行します。

キーペアとは、パスワードに似たセキュリティ認証情報です。このプロセスの後でライブストリーミング用の AWS CloudFormation スタックを作成するときにキーペアを指定します。ライブストリーミングを構成した後、キーペアを使用してAmazon EC2Windows Serverインスタンスのパスワードを取り込みます。

Amazon EC2 キーペアを作成するには

1. AWS マネジメントコンソールにサインインして Amazon EC2 コンソール(https://console.aws.amazon.com/ec2/)を開きます。

2. [Region] リストで、キーペアの作成先のリージョンをクリックします。

このプロセスの後でライブストリーミング用のAWSCloudFormationスタックを作成するリージョンと同じリージョンにキーペアを作成する必要があります。キーペアと、ライブストリーミング用のスタックは、ライブイベントの場所の最寄りのリージョンに作成することをお勧めします。

3. [Navigation] ペインで、[Key Pairs] をクリックします。4. [Key Pairs] ペインで、[Create Key Pair] をクリックします。5. [Create Key Pair]ダイアログボックスにキーペアの名前を入力し、その名前を書き留めます。この

値は、後のライブストリーミングのセットアッププロセスで、AWS CloudFormation ライブストリーミングスタックを作成するときに入力します。

6. [Create] をクリックすると、[Opening <key_pair_name>.pem] ダイアログボックスが表示されます。

7. .pem ファイルをコンピューターの安全な場所に保存します。8. [Close] をクリックし、[Create Key Pair] ダイアログボックスを閉じます。

次の手順: ライブスムーズストリーミング用の AWS CloudFormation スタックを作成する (p. 233)

API Version 2014-01-31232

Amazon CloudFront 開発者ガイドAmazon EC2 キーペアを作成する

Page 238: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

ライブスムーズストリーミング用の AWSCloudFormation スタックを作成する

Abstract

ライブスムーズストリーミングに必要なAWSリソースを起動するためにAWS CloudFormation スタックを作成します。

以下の手順では、AWSCloudFormationテンプレートを使用し、AmazonEC2インスタンスを含め、ライブスムーズストリーミングで必要とされる AWS リソースを起動するスタックを作成します。

Important

Amazon EC2 インスタンスをデプロイする AWS CloudFormation スタックを作成した時点から、Amazon EC2 インスタンスに対する時間単位の料金が発生します。ライブビデオのストリーミングに Amazon EC2 インスタンスを使用しているかどうかに関係なく、AWSCloudFormationスタックを削除するまで、この料金がかかります。詳細については、「AmazonElastic ComputeCloud(AmazonEC2)」の詳細ページの「料金表」を参照してください。ライブイベントが終了したら、ライブスムーズストリーミング用に作成したスタックを削除します。これにより、ライブストリーミングイベント用に作成した AWS リソースが削除され、このリソースの AWS 料金が停止します。詳細については、「AWS CloudFormation のライブスムーズストリーミングスタックの削除 (p. 243)」を参照してください。

ライブストリーミング用の AWS CloudFormation スタックを作成するには

1. 以下のリストから、スタックの作成先のAmazonEC2リージョンをクリックします。[CreateStack]ウィザードが開始され、リージョン固有の値が [Provide a Template URL]フィールドに自動的に入力されます。

米国東部(バージニア)

米国西部(オレゴン)

米国西部(北カリフォルニア)

欧州(アイルランド)

アジアパシフィック(シンガポール)

アジアパシフィック(東京)

南米(サンパウロ)2. AWS Management Console にまだサインインしておらず、サインインを求められた場合は、サイ

ンインしてください。3. オプション: [Create Stack] ウィザードで、[Stack Name] フィールドの値を変更します。スタック

名にスペースを含めることはできません。また、スタック名はAWSアカウント内で一意である必要があります。

API Version 2014-01-31233

Amazon CloudFront 開発者ガイドライブスムーズストリーミング用の AWS CloudFormation

スタックを作成する

Page 239: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

4. [Stack Template Source] オプションまたは [Provide a Template URL] の値を変更しないでください。

5. オプション:SNS通知の構成、スタックの作成を待機する時間の指定、およびスタックの作成が失敗した場合に変更をロールバックするかどうかの選択を行うには、[ShowAdvancedOptions]チェックボックスをオンにして、該当の値を指定します。

6. [Continue] をクリックします。

API Version 2014-01-31234

Amazon CloudFront 開発者ガイドライブスムーズストリーミング用の AWS CloudFormation

スタックを作成する

Page 240: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

7. [Specify Parameters] ページの [KeyPair] フィールドに、ライブストリーミング用のスタックを作成するリージョン内の Amazon EC2 キーペアの名前を入力します。キーペアは、ログオンに現在使用しているアカウントに関連付けられている必要があります。「Amazon EC2 キーペアを作成する (p. 232)」の手順を実行したときにキーペアを作成した場合は、そのキーペアの名前を入力します。

8. [InstanceType] フィールドにインスタンスタイプを入力し、[Continue] をクリックします。デフォルト値は m1.xlarge です。

インスタンスタイプによって、Windows Serverを実行するAmazon EC2インスタンスの料金表が決まります。料金表に関する情報を含め、Windows 用の Amazon EC2 インスタンスタイプの詳細については、「Microsoft Windows Server および SQL Server を実行する Amazon EC2」を参照してください。&

9. スタックの設定を確認します。設定が適切であることを確認したら、[Create Stack] をクリックします。

スタックが作成されるまで数分かかる場合があります。スタックの作成状況を追跡するには、スタックを選択し、下部のフレームにある[Events]タブをクリックします。AWSCloudFormationがスタックを作成できない場合、[Events] タブにエラーメッセージが表示されます。

スタックの準備が整うと、上部のフレームにあるスタックのステータスが[CREATE_COMPLETE]に変わります。

スタックが作成されたら、[Outputs] タブをクリックします。このタブには、スタックの作成に関する出力が表示されます。これらの値は、このプロセスの後で Microsoft Expression Encoder をセットアップするときに使用します。

API Version 2014-01-31235

Amazon CloudFront 開発者ガイドライブスムーズストリーミング用の AWS CloudFormation

スタックを作成する

Page 241: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

次の手順: Amazon EC2 Windows Server インスタンスの実行確認 (p. 236)

AmazonEC2WindowsServerインスタンスの実行確認

Abstract

Amazon EC2 のWindows Server インスタンスが実行されていて、ライブスムーズストリーミングで使用できることを確認します。

スタックが作成された後、以下の手順を実行し、AWS CloudFormation を使用して準備した AmazonEC2インスタンスでWindows IISMedia Servicesウェブサービスが実行されていることを確認します。

Windows Server が実行されていることを確認するには

1. AWS マネジメントコンソールにサインインして AWS CloudFormation コンソール(https://console.aws.amazon.com/cloudformation/)を開きます。

2. 上部のペインで、「ライブスムーズストリーミング用の AWS CloudFormation スタックを作成する (p. 233)」で作成したスタックを選択します。

3. 下部のペインで、[Outputs] タブをクリックします。4. SmoothStreamingServer キーの値をクリックします(例:

http://ec2-00-11-22-33.us-west-1.compute.amazonaws.com)。

Windows IIS Server バナースクリーンが表示され、Windows Server が実行されていることが示されます。

次の手順: Windows パスワードの取得 (p. 237)

API Version 2014-01-31236

Amazon CloudFront 開発者ガイドAmazon EC2 Windows Server インスタンスの実行確認

Page 242: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

Windows パスワードの取得Abstract

Amazon EC2 インスタンスで実行されているWindows Server の Administrator アカウントの初期パスワードを取得します。

Windows Server 2008 R2 および IIS Media Services が実行されている Amazon EC2 インスタンスに接続するには、以下の手順を使用してWindows Server の Administrator アカウントの初期パスワードを取得する必要があります。パスワードの取得は Amazon EC2 インスタンスごとに 1 回だけです。この手順が終了すると、Windows Server コンピューターと同じように、Amazon EC2 インスタンスを使用できます。

Windows が実行されている Amazon EC2 インスタンスに接続する方法については、「Getting StartedGuide AWS Computing Basics for Windows」を参照してください。

Important

Amazon EC2では、Windows Serverからパスワードを取得するまで30分ほどかかる場合があります。

Amazon EC2 インスタンス用のWindows パスワードを取得するには

1. 「AmazonEC2キーペアを作成する(p. 232)」で作成したAmazonEC2プライベートキーファイル(.pem file)にアクセスできることを確認します。

2. AWS マネジメントコンソールにサインインして Amazon EC2 コンソール(https://console.aws.amazon.com/ec2/)を開きます。

3. [Region] リストで、作成したライブスムーズストリーミング用の Amazon EC2 インスタンスが含まれているリージョンを選択します。

4. [Navigation] ペインの [Instances] をクリックします。5. [My Instances] ペインで、[Name] 列の値が [LiveSmoothStreaming] になっているインスタンスを

右クリックし、[Get Windows Password] をクリックします。6. [Retrieve Default Windows Administrator Password] ページで、[Browse] をクリックし、.pemファ

イルを保存したコンピューターの場所を参照します。7. .pem ファイルを選択すると、ファイルの内容がウィンドウに表示されます。8. [Decrypt Password] をクリックします。9. パスワードを書き留めます。このパスワードは、Amazon EC2 インスタンスに接続するために必

要です。10. オプション。ただし、推奨: 起動したWindows Server インスタンスにログインし、デフォルトの

Windows Server アカウントのパスワードを変更します。ユーザー名は Administrator です。

別のユーザーアカウントを作成し、管理者グループにそのアカウントを追加することもできます。これは、管理者パスワードを忘れた場合や、管理者アカウントで問題が発生した場合の安全策です。

Note

ポート 3389 を使用するサーバーにアクセスできるようにWindows Server の Amazon EC2 セキュリティグループ設定を更新する方法については、「Windows Server へのアクセスを有効にするにはどのようにすればよいですか?(p. 244)」を参照してください。管理者アカウントを使用してインスタンスにログオンする方法については、「Windows IIS Media Services を実行している Amazon EC2 インスタンスに安全に接続するにはどのようにすればよいですか? (p. 245)」を参照してください。

API Version 2014-01-31237

Amazon CloudFront 開発者ガイドWindows パスワードの取得

Page 243: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

次の手順: ライブストリームの暗号化 (p. 238)

ライブストリームの暗号化Abstract

ライブスムーズストリーミングのパブリッシュポイントにライブストリームを公開する処理について説明します。

このセクションの手順に従って、Microsoft Expression Encoder 4 Pro SP2 を使用してライブブロードキャストプロジェクトを作成し、Windows Server およびWindows IIS Media Services を実行するAmazon EC2 インスタンスにあるライブスムーズストリーミングのパブリッシュポイントにライブストリームを発行します。

MicrosoftExpressionEncoderを使用したライブブロードキャストの詳細については、MicrosoftExpressionウェブページで、ライブブロードキャストプロジェクトの作成に関するページを参照してください。

Note

Microsoft Expression Encoder 4 Pro Service Pack 2 は無料のダウンロード製品ではありません。機能および料金表の詳細については、Microsoft StoreウェブサイトでExpression Encoder4 Pro のページを参照してください。

サードパーティのエンコードツールを使用して、ライブスムーズストリーミング用のビデオをエンコードすることもできます。エンコードソフトウェアを提供するMicrosoftパートナーのリストについては、Microsoft ウェブサイトで、IIS Media Services のページの [Partners] タブを参照してください。

ライブブロードキャストをエンコードするには

1. ライブストリームのブロードキャストに使用するコンピューターにログオンします。2. Windows のスタートメニューから [すべてのプログラム] > [Microsoft Expression] > [Microsoft

Expression Encoder 4] の順にクリックします。3. [新しいプロジェクトの読み込み]ダイアログボックスで、[ライブブロードキャストプロジェクト]

をクリックします。

API Version 2014-01-31238

Amazon CloudFront 開発者ガイドライブストリームの暗号化

Page 244: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

4. [Add a Live Source] をクリックし、ライブブロードキャストで使用するライブソースを追加します。

Note

USBウェブカメラ、FireWire(IEEE 1394)デジタルビデオカメラなど、複数のカメラデバイスを接続できます。ライブソースは複数接続できますが、1 度にストリーミングできるのは1つのみです。ライブブロードキャストのソースをセットアップする方法については、Microsoft Expression ウェブサイトで、ライブソースの設定に関するページを参照してください。

API Version 2014-01-31239

Amazon CloudFront 開発者ガイドライブストリームの暗号化

Page 245: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

5. [Presets]タブで、お客様のライブスムーズストリーミングシナリオのビットレートおよびエンコード要件をサポートするエンコードプリセットを選択します。名前に [IIS Smooth Streaming] が含まれるオプションを選択します。

[Apply] をクリックすると、[Encode] タブの [Output Format]、[Video]、および [Audio] 設定は、選択されたエンコードプリセットの値で自動的に更新されます。

出力内のストリーム数、使用するコーデックなど、プリセットの詳細については、各プリセット名の上にマウスを置いてください。

Note

[エンコード] タブでカスタム設定を指定することもできます。詳細については、MicrosoftExpression のウェブサイトで以下のトピックを参照してください。

• 出力形式を設定する• ビデオ設定• オーディオ設定

6. Microsoft Expression Encoder で、[出力] タブをクリックします。7. [出力] タブで、[パブリッシュポイント] チェックボックスをオンにします。

API Version 2014-01-31240

Amazon CloudFront 開発者ガイドライブストリームの暗号化

Page 246: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

8. AWS マネジメントコンソールにサインインして AWS CloudFormation コンソール(https://console.aws.amazon.com/cloudformation/)を開きます。

9. AWS CloudFormation コンソールの下部のペインで、[Outputs] タブをクリックします。10. LivePublishPointLocation キーの値をコピーします(例:

http://ec2-00-11-22-33.us-west-1.compute.amazonaws.com/LiveSmoothStream.isml)。11. 前のステップでコピーした URL を Microsoft Expression Encoder の [場所] フィールドに貼り付け

ます。

12. [接続] をクリックし、Windows Server のパブリッシュポイントへの接続を開始します。13. パブリッシュポイントの管理者パスワードの入力を求められたら、以下の値を入力します。

• ユーザー名: Administrator• パスワード: 「Windows パスワードの取得 (p. 237)」で取得したWindows Server パスワード

次に、[OK] をクリックします。

Note

Windows Server ではデフォルトのウェブサイト用にWindows 認証が構成されているので、Microsoft Expression Encoder 4 Pro SP2からサーバーのライブパブリッシュポイントに接続することができます。Windows 認証の詳細については、IIS ウェブサイトを参照してください。IIS 7 で使用可能な認証メカニズムについては、Microsoft ウェブサイトを参照してください。

14. 接続が正常に確立されると、パブリッシュポイントの状態が [開始中] に変わります。また、[パブリッシュポイント] セクションの [場所] フィールドの下で、[接続] ボタンの横に [再起動] ボタンが表示されます。

Note

[開始中] の状態は、パブリッシュポイントがライブストリームを受信する準備ができていることを意味します。ライブソースがパブリッシュポイントに接続し、パブリッシュポイントへのコンテンツの発行を開始すると、[開始中] 状態が [開始] に変わります。これは、パブリッシュポイントがライブストリームを受信していることを意味します。

API Version 2014-01-31241

Amazon CloudFront 開発者ガイドライブストリームの暗号化

Page 247: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

Note

Microsoft Expression Encoder 4 Pro SP2 と、Windows IIS Media Services 4.1 に含まれるRESTAPIを使用して、WindowsServerのライブパブリッシュポイントを管理できます。詳細については、IIS ブログを参照してください。

15. [開始] ボタンをクリックし、ライブブロードキャストのエンコードを開始して、Windows Serverと IIS Media Services を実行する Amazon EC2 インスタンスのパブリッシュポイントにライブブロードキャストを発行します。

ブロードキャストが実行されている間、統計および接続データを、対応するパネルで監視できます。このデータの監視方法については、Microsoft Expression のウェブサイトで以下のトピックを参照してください。

• 統計パネルを使用する• 接続パネルを使用する

次の手順: ライブスムーズストリームの表示 (p. 242)

ライブスムーズストリームの表示Abstract

CloudFront を使用してライブスムーズストリームを表示する方法について説明します。

CloudFront を使用してライブスムーズストリームを表示するには、以下の手順を使用します。独自のウェブページに Microsoft Silverlight プレーヤーのコードを埋め込むこともできます。

1. AWS マネジメントコンソールにサインインして AWS CloudFormation コンソール(https://console.aws.amazon.com/cloudformation/)を開きます。

2. ライブストリーミング用のスタックを選択します。3. AWS CloudFormation コンソールの下部のペインで、[Outputs] タブをクリックします。4. LiveSmoothStreamingPlayer キーの値をクリックします(例:

http://d123.cloudfront.net/LiveSmoothStreamingPlayer.html)。5. Silverlightプレーヤーのコードをウェブページに埋め込むには、[出力]タブで、SilverlightEmbedCode

キーの値をコピーします。

Note

Microsoft は、最適な再生操作を実現するために、ビューアに Microsoft Silverlight の最新バージョンをインストールすることを推奨しています。

6. ライブストリームを iPad や iPhone などの Apple デバイスに表示するには、互換性のある AppleデバイスからAWSCloudFormationコンソールを表示して、LiveHLSManifestキーの値をクリックします。マニフェスト URL は、

API Version 2014-01-31242

Amazon CloudFront 開発者ガイドライブスムーズストリームの表示

Page 248: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

http://d123.cloudfront.net/LiveSmoothStream.isml/manifest(format=m3u8-aapl).m3u8のようになります。

どのような場合に、この URL を使用して各種 iOS デバイス、QuickTime、および Safari にサービスを提供するかについては、iOS開発者ライブラリの「HTTPライブストリーミング概要」を参照してください。

次の手順: AWS CloudFormation のライブスムーズストリーミングスタックの削除 (p. 243)

AWS CloudFormation のライブスムーズストリーミングスタックの削除

Abstract

追加料金を回避するために、ライブスムーズストリーミング用に作成したAWSCloudFormationスタックを削除します。

ライブイベントが終了したら、ライブスムーズストリーミング用に作成したスタックを削除します。これにより、ライブイベント用に作成した AWS リソースが削除され、そのリソースの AWS 料金が停止します。

ライブストリーミング用の AWS CloudFormation スタックを削除するには

1. AWS マネジメントコンソールにサインインして AWS CloudFormation コンソール(https://console.aws.amazon.com/cloudformation/)を開きます。

2. スタックのチェックボックスをオンにして、[Delete Stack] をクリックします。3. [Yes, Delete] をクリックして確定します。4. スタックの削除状況を追跡するには、スタックのチェックボックスをオンにして、下部のフレーム

にある [Events] タブをクリックします。

よくある質問Abstract

CloudFront でライブスムーズストリーミングを使用する際に生じる一般的な問題について説明します。

• CloudFront を使用したライブスムーズストリーミングの料金はいくらですか? (p. 244)• ライブストリーミングビデオをスムーズストリーミングクライアントとAppleデバイスの両方に配信できますか? (p. 244)

• Amazon EC2 インスタンスまたはCloudFront ディストリビューションのCNAMEエイリアスをどのようにセットアップできますか? (p. 244)

• Windows Server へのアクセスを有効にするにはどのようにすればよいですか? (p. 244)• Windows IIS Media Services を実行している Amazon EC2 インスタンスに安全に接続するにはどのようにすればよいですか? (p. 245)

• ライブスムーズストリーミングのコンテンツに対する他のドメインからのアクセスを制限するにはどのようにすればよいですか? (p. 245)

API Version 2014-01-31243

Amazon CloudFront 開発者ガイドAWS CloudFormation のライブスムーズストリーミングス

タックの削除

Page 249: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

CloudFrontを使用したライブスムーズストリーミングの料金はいくらですか?ライブイベントのスムーズストリームを行うには、使用するAWSリソースに対してのみ料金を支払います。

• WindowsServerを実行するAmazonEC2インスタンスの料金表に関する情報については、「MicrosoftWindows Server および SQL Server を実行する Amazon EC2」ページの「料金表」を参照してください。&

• CloudFront の料金に関する情報については、「Amazon CloudFront 料金表」を参照してください。

AWS CloudFormation の使用料はありません。

ライブストリーミングビデオをスムーズストリーミングクライアントと Apple デバイスの両方に配信できますか?はい。Microsoft Expression Encoder 4 Pro を使用すれば、ライブビデオをスムーズストリーミングクライアント用(Microsoft Silverlight など)および Apple デバイス用(iPad、iPhone など)にエンコードできます。AWS CloudFormation スタックを起動すると、AWS CloudFormation テンプレートの[Outputs] タブで、ライブスムーズストリーミング用のマニフェストファイル URL (.isml)と AppleHLS 用のマニフェストファイル URL (.m3u8)が表示されます。

AmazonEC2インスタンスまたはCloudFrontディストリビューションのCNAMEエイリアスをどのようにセットアップできますか?Amazon EC2Windows Serverインスタンスには内部および外部のDNS名が付属します。Amazon EC2では、この DNS 設定を変更できません。Windows Server が実行されている Amazon EC2 インスタンスに既存のドメイン名をマップする場合は、Amazon Route 53などのDNSサービスプロバイダーを使用します。独自のドメイン名を使用する場合、インスタンスの IP アドレスを指す Aレコードを使用するのではなく、CNAME を使用してインスタンスの外部 DNS 名にマップすることをお勧めします。

独自のドメイン名を CloudFront ディストリビューションにマップするには、「代替ドメイン名(CNAME)を使用する (p. 33)」を参照してください。

Windows Server へのアクセスを有効にするにはどのようにすればよいですか?選択された IP 経由でWindows Server のポート 3389 にアクセスできるようにする

デフォルトでは、WindowsServerインスタンスのAmazonEC2セキュリティグループではポート3389が有効になっていません。このポートは、Windows Server を管理するために使用するポートです。Windows Server インスタンスにログオンする場合は、以下の手順を使用して、ポート 3389 経由のアクセスを有効にします。

1. AWS マネジメントコンソールにサインインして Amazon EC2 コンソール(https://console.aws.amazon.com/ec2/)を開きます。

2. [Region]リストで、AWSCloudFormationを使用してAmazonEC2インスタンスを作成したAmazonEC2 リージョンをクリックします。

3. [Navigation] ペインで、[Security Groups] をクリックします。

API Version 2014-01-31244

Amazon CloudFront 開発者ガイドよくある質問

Page 250: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

4. [Security Groups] ペインで、「ライブスムーズストリーミング用の AWS CloudFormation スタックを作成する(p. 233)」で作成したAWSCloudFormationスタックの名前で[Name]列の値が始まっている行をクリックします。

5. 下部のペインで、[Inbound] タブをクリックします。6. WindowsServerへのアクセスを有効にして、サーバーにアクセスできるクライアントIPアドレス

を指定するには、以下の手順を実行します。

a. [Create a new rule] リストで、デフォルト値の [Custom TCP rule] を変更しないでください。b. [Port range ] フィールドに「3389」と入力します。c. [Source] フィールドに、IP アドレスまたは範囲を入力するか、別のセキュリティグループの

名前を入力します。詳細については、[Help] をクリックしてください。d. [Add Rule] をクリックします。e. 追加のルールを作成するには、ステップ a ~ d を繰り返します。f. [Apply Rule Changes] をクリックします。

Windows IIS Media Servicesを実行しているAmazon EC2インスタンスに安全に接続するにはどのようにすればよいですか?Windows Server インスタンスに接続するには、Administrator アカウントの初期パスワードを取得し、そのパスワードをWindows リモートデスクトップで使用する必要があります。また、作成したプライベートキーファイルの中身も必要です(例: <keypairname.pem>.pem)。詳細については、「GettingStarted Guide AWS Computing Basics for Windows」を参照してください。

ライブスムーズストリーミングのコンテンツに対する他のドメインからのアクセスを制限するにはどのようにすればよいですか?Microsoft Silverlightでは、クロスドメイン接続がサポートされます。これにより、Silverlightプレーヤーは、スムーズストリーミングのコンテンツの配信元のドメイン以外の場所からコンテンツにアクセスできます。Silverlightのセキュリティポリシーシステムでは、ClientAccessPolicy.xmlというSilverlightポリシーファイルをターゲットドメインからダウンロードする必要があります。これにより、ネットワーク接続が許可され、ターゲットドメインのネットワークリソースにアクセスすることができます。デフォルトのポリシーファイルは、Amazon EC2で実行されているWindows Serverのデフォルトウェブサイトのルートにすでに含まれています。クロスドメインアクセスを制限するには、WindowsServerにログオンし、ClientAccessPolicy.xmlファイルを更新します。

その他のドキュメントAbstract

ライブスムーズストリーミングと CloudFront を使用して作業するときに役に立つ追加のリソースを列挙します。

Microsoft のドキュメント• IIS スムーズストリーミングのデプロイガイド• IIS Media Services 4.1 のリリースノート• IIS スムーズストリーミング管理 REST サービス• IIS 7 で認証を構成する• Microsoft Expression Encoder ブログ

API Version 2014-01-31245

Amazon CloudFront 開発者ガイドその他のドキュメント

Page 251: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

• Microsoft Expression Encoder 4 Pro SP2 からライブパブリッシュポイントを管理する• Expression Encoder 4 Pro におけるライブ IIS スムーズストリーミング• IIS Media Services を使用した Apple HTTP ライブストリーミング

アマゾンウェブサービスのドキュメント• Microsoft Windows Server および SQL Server を実行する Amazon EC2&• Amazon Elastic Compute Cloud: Microsoft Windows ガイド• Amazon CloudFront• AWS CloudFormation

API Version 2014-01-31246

Amazon CloudFront 開発者ガイドその他のドキュメント

Page 252: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

Wowza Streaming Engine 4.0 を使用したライブHTTP ストリーミング

Abstract

Amazon CloudFront と Wowza Streaming Engine を使用したライブ HTTP ストリーミングの実行方法について説明します。

Wowza Streaming Engine 4.0 を使用して、CloudFront を使用したグローバル配信のためのライブストリーミングセッションを作成できます。Wowza Streaming Engine 4.0 は、以下の HTTP ベースのストリーミングプロトコルをサポートします。

• HLS(HTTP ライブストリーミング)• HDS(HTTP ダイナミックストリーミング)• スムーズストリーミング

ユーザーが上記のいずれかのプロトコルを使用してビデオのストリーミングを実行すると、ビデオは小さなチャンクに区切られ、パフォーマンスとスケーラビリティを向上させるために CloudFront ネットワークにキャッシュされます。

このチュートリアルでは、CloudFront を、Amazon EC2 インスタンスで実行されるWowza StreamingEngine 4.0と統合する方法について説明します。AmazonEC2インスタンスの管理およびセキュリティ保護を行う方法については、「Amazon EC2 ドキュメント」を参照してください。このチュートリアルで説明されていないWowza Streaming Engine オプションの詳細については、Wowza のマニュアルを参照してください。

Topics• アマゾンウェブサービスアカウントの作成 (p. 247)• Amazon EC2 キーペアを作成する (p. 248)• Wowza Streaming Engine 4.0 のライセンスを取得する (p. 248)• AWS Marketplace で Wowza Streaming Engine 4.0 をサブスクライブする (p. 249)• ライブストリーミング用の AWS CloudFormation スタックを作成する (p. 249)• Wowza Streaming Engine 4.0 が実行されていることを確認する (p. 251)• ライブストリームを公開するエンコーダーをセットアップする (p. 252)• ウェブアプリケーションを使用してライブストリームを再生する (p. 253)• ライブストリーミング用の AWS CloudFormation スタックを削除する (p. 254)• よくある質問 (p. 255)• その他のドキュメント (p. 256)

アマゾンウェブサービスアカウントの作成Abstract

Wowza Streaming Engine 4.0 をアマゾンウェブサービスで使用してライブストリーミングをセットアップし構成するステップについて説明します。

すでにAWSアカウントをお持ちの場合は、この手順をスキップして「Amazon EC2キーペアを作成する(p. 248)」に進んでください。まだAWSアカウントをお持ちでない場合は、次に説明する手順に従ってアカウントを作成してください。

API Version 2014-01-31247

Amazon CloudFront 開発者ガイドWowzaStreamingEngine 4.0によるライブストリーミング

Page 253: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

AWS アカウントを作成するには

1. http://aws.amazon.com にアクセスし、[サインアップ] をクリックします。2. 画面上の指示に従ってください。

サインアップ手順の一環として、通話呼び出しを受け取り、電話のキーパッドを用いて PIN を入力することが求められます。

次の手順: Amazon EC2 キーペアを作成する (p. 248)

Amazon EC2 キーペアを作成するAbstract

Wowza Streaming Engine を構成するリージョンで Amazon EC2 キーペアを作成する方法について説明します。

ライブストリーミングを構成するAmazon EC2リージョンにAmazon EC2キーペアがすでにある場合は、この手順をスキップして「Wowza Streaming Engine 4.0のライセンスを取得する(p. 248)」に進んでください。そのリージョンにキーペアがない場合は、以下の手順を実行します。

キーペアとは、パスワードに似たセキュリティ認証情報で、AWS リージョンに固有なものです。一連の手順の後半で、ライブストリーミング用の AWS CloudFormation スタックを作成するときにキーペアを指定する必要があります。ライブストリーミングを構成した後、キーペアを使用してAmazonEC2インスタンスへのセキュアな接続を行います。

Amazon EC2 キーペアを作成するには

1. AWS マネジメントコンソールにサインインして Amazon EC2 コンソール(https://console.aws.amazon.com/ec2/)を開きます。

2. リージョンセレクタで、キーペアの作成先のリージョンをクリックします。

このプロセスの後でライブストリーミング用のAWSCloudFormationスタックを作成するリージョンと同じリージョンにキーペアを作成する必要があります。キーペアと、ライブストリーミング用のスタックとは、ライブストリームを公開する場所に最も近いリージョンに作成することをお勧めします。

3. 左側のナビゲーションペインで、[Key Pairs] をクリックします。4. [Key Pairs] ペインで、[Create Key Pair] をクリックします。5. [Create Key Pair] ダイアログボックスにキーペアの名前を入力し、その名前を書き留めます。後

で、AWSCloudFormationライブストリーミングスタックを作成するときに、この名前が必要になります。

6. [Create] をクリックし、指示が表示された場合は、.pemファイルをコンピューターの安全な場所に保存します。このファイルは再ダウンロードできませんので、ご注意ください。

7. [Close] をクリックし、[Create Key Pair] ダイアログボックスを閉じます。

次の手順: Wowza Streaming Engine 4.0 のライセンスを取得する (p. 248)

Wowza Streaming Engine 4.0 のライセンスを取得する

Abstract

アマゾンウェブサービス用にWowza Streaming Engine 4.0 のライセンスを取得するステップについて説明します。

API Version 2014-01-31248

Amazon CloudFront 開発者ガイドAmazon EC2 キーペアを作成する

Page 254: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

ライブストリーミングを構成するには、Wowza Streaming Engine 4.0 のライセンスが必要です。ライセンスを購入するには、Wowza ウェブサイトの Licenses Built for You ページにアクセスし、最適なライセンスオプションを選択して、画面の指示に従います。

次の手順: AWS Marketplace で Wowza Streaming Engine 4.0 をサブスクライブする (p. 249)

AWS Marketplace で Wowza Streaming Engine 4.0をサブスクライブする

Abstract

AWS Marketplace で Wowza Streaming Engine 4.0 をサブスクライブするステップについて説明します。

次に、AWS Marketplace で Wowza Streaming Engine 4.0 をサブスクライブします。

アマゾンウェブサービスでWowza Streaming Engine を注文するには

1. Amazon Web Services ページにアクセスし、お客様の Amazon.comアカウントでサインインするか、または新しいアカウントを作成します。

2. https://aws.amazon.com/marketplace/pp/B00IPTPABMにアクセスします。詳細を確認して、[Continue] をクリックします。

3. [Launch with EC2 Console] タブをクリックします。4. 料金表の情報を確認して、[Accept Terms] をクリックします。

Important

このページのボタンを使用してWowza を起動しないでください。

次の手順: ライブストリーミング用の AWS CloudFormation スタックを作成する (p. 249)

ライブストリーミング用の AWS CloudFormation スタックを作成する

Abstract

Wowza Streaming Engine に必要な AWS リソースを起動するために AWS CloudFormation スタックを作成する方法について説明します。

以下の手順では、AWSCloudFormationテンプレートを使用し、AmazonEC2インスタンスを含め、ライブストリーミングで必要とされる AWS リソースを起動するスタックを作成します。

Important

Amazon EC2 インスタンスをデプロイする AWS CloudFormation スタックを作成した時点から、Amazon EC2 インスタンスに対する時間単位の料金が発生します。ライブビデオのストリーミングに Amazon EC2 インスタンスを使用しているかどうかに関係なく、AWSCloudFormationスタックを削除するまで、この料金がかかります。ライブイベントが終了したら、ライブストリーミング用に作成したスタックを削除します。これにより、ライブストリーミングイベント用に作成した AWS リソースが削除され、このリソースの AWS 料金が停止します。詳細については、「ライブストリーミング用のAWSCloudFormationスタックを削除する (p. 254)」を参照してください。

API Version 2014-01-31249

Amazon CloudFront 開発者ガイドAWS Marketplace で Wowza Streaming Engine 4.0 をサブ

スクライブする

Page 255: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

ライブストリーミング用の AWS CloudFormation スタックを作成するには

1. ウィザードを開始するには、以下の Amazon EC2 リージョンの 1 つをクリックします。

• 米国東部(バージニア北部)にスタックを作成する• 米国西部(オレゴン)にスタックを作成する• 米国西部(北カリフォルニア)にスタックを作成する• 欧州(アイルランド)にスタックを作成する• アジアパシフィック(シンガポール)にスタックを作成する• アジアパシフィック(シドニー)にスタックを作成する• アジアパシフィック(東京)にスタックを作成する• 南米(サンパウロ)にスタックを作成する

2. AWS Management Console にまだサインインしておらず、サインインを求められた場合は、サインインしてください。ウィザードが開始され、指定されたURLが [Provide an S3 URL to template]に自動的に表示されます。

3. (オプション)[Create a New Stack] ウィザードで、スタック名をライブストリーミングイベントに適した名前に変更できます。スタック名にスペースを含めることはできません。また、スタック名は AWS アカウント内で一意である必要があります。

[Template] オプションまたは [Provide an S3 URL to template] のアドレスは変更しないでください。

4. [Next Step] をクリックします。5. [Specify Parameters] ページで、[ApplicationName] に Wowza アプリケーションのショートネーム

(スペースなし)を入力するか、またはデフォルトのままにしておきます。6. [InstanceType] にインスタンスタイプを入力します。Wowza インスタンスの料金はインスタンス

タイプによって決まります。Amazon EC2 インスタンスタイプの詳細については、「AvailableInstance Types」を参照してください。

料金については、Amazon EC2 料金表を参照してください。7. [KeyPair] には、ライブストリーミングスタックを作成するリージョンのAmazon EC2 キーペアの

名前を入力します。キーペアは、ログオンに現在使用しているアカウントに関連付けられている必要があります。「Amazon EC2キーペアを作成する (p. 248)」の手順を実行したときにキーペアを作成してあれば、その名前をここに入力します。

8. [StartupPackageURL] に、Wowza Streaming Engine を必要に合わせて構成するためのスタートアップパッケージの URL を入力するか、デフォルトのままにしておきます。

9. [StreamName]に、ライブストリームのショートネーム(スペースなし)を入力するか、またはデフォルトのままにしておきます。

10. [WowzaLicenseKey]に、「Wowza Streaming Engine 4.0のライセンスを取得する(p. 248)」トピックの手順を実行したときに取得したライセンスキーを入力します。購入済みの AddOn がある場合は、パイプ(|)文字でキー値を区切って、追加のライセンスキーを含めることができます。

11. [Next Step] をクリックします。12. (オプション)[Options] ページで、使用する予定のタグについてキーと値のペアを追加します。

タグの使用の詳細については、「Adding Tags to Your AWS CloudFormation Stack」を参照してください。

13. (オプション)SNS 通知の構成、スタックの作成を待機する時間の指定、スタックの作成が失敗した場合に変更をロールバックするかどうかの選択、スタックポリシーの入力を行うには、[Advanced] をクリックし、必要に応じて設定を調整します。

14. [Next Step] をクリックします。15. スタックの設定を確認します。設定が適切であることを確認したら、[Create]をクリックします。

AWS CloudFormation によってスタックが作成されます。

API Version 2014-01-31250

Amazon CloudFront 開発者ガイドライブストリーミング用のAWSCloudFormationスタック

を作成する

Page 256: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

スタックの作成には数分かかる場合があります。スタックの作成状況を追跡するには、スタックを選択し、[Events] タブをクリックします。AWSCloudFormationがスタックを作成できない場合、[Events] タブにエラーメッセージが表示されます。

スタックの準備が整うと、スタックリストにあるスタックのステータスが[CREATE_COMPLETE]に変わります。

スタックが作成されたら、[Outputs] タブをクリックします。このタブには、スタックの作成に関する出力が表示されます。これら出力される値は、この一連の手順の後半で、エンコーダーをセットアップするときに使用します。

次の手順: Wowza Streaming Engine 4.0 が実行されていることを確認する (p. 251)

Wowza Streaming Engine 4.0 が実行されていることを確認する

Abstract

Wowza Streaming Engine 4.0 が Amazon EC2 インスタンスで実行されていることを確認する方法について説明します。

AWSCloudFormationがスタックを作成した後、以下のステップに従って、AWSCloudFormationでプロビジョニングした Amazon EC2 インスタンスでWowza Streaming Engine 4.0 が実行されていることを確認します。

Wowza Streaming Engine 4.0 が実行されていることを確認するには

1. AWS マネジメントコンソールにサインインして AWS CloudFormation コンソール(https://console.aws.amazon.com/cloudformation/)を開きます。

2. リージョンセレクターで、作成した AWS CloudFormation スタックが含まれているリージョンをクリックします。

3. スタックリストで、「ライブストリーミング用のAWSCloudFormationスタックを作成する(p.249)」で作成したスタックを選択します。

4. [Outputs] タブをクリックします。5. [Outputs]タブで、WowzaServerLoginInfoキーの値を取得します。次のステップで、その値をログ

イン認証情報に使用します。6. WowzaEngineManagerURL キーの URL、たとえば

http://ec2-xx-xx-xxx-xxx.compute-1.amazonaws.com:8088/enginemanager をクリックします。ログイン認証情報の入力を求められたら、ステップ5で取得したWowzaServerLoginInfoキーの値を使用します。

Important

この URL は、Wowza Streaming Engine を実行している Amazon EC2 インスタンスへの接続にポート 8088 を使用します。ファイアウォール設定によっては、Amazon EC2 インスタンスに接続できない可能性があります。問題が発生した場合は、ネットワーク管理者に連絡してください。

次の手順: ライブストリームを公開するエンコーダーをセットアップする (p. 252)

API Version 2014-01-31251

Amazon CloudFront 開発者ガイドWowzaStreamingEngine 4.0が実行されていることを確認

する

Page 257: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

ライブストリームを公開するエンコーダーをセットアップする

Abstract

ライブストリームを公開するWowza Streaming Engine 4.0 に送信する前にエンコーダーをセットアップする方法について説明します。

デバイスでキャプチャしたライブストリームは、WowzaStreamingEngine 4.0に送信する前にエンコードする必要があります。iOSベースのデバイス向けのWowzaGoCoderアプリ、またはRTMPエンコーディングをサポートする Telestream Wirecast などのエンコーダーを使って、ライブストリームをエンコードできます。

エンコーダーからWowza Streaming Engine にストリームを公開するステップは、使用するエンコーダーによって異なります。エンコーダーを構成する方法の詳細については、Wowza ウェブサイトの「Specific Encoding Technologies」を参照するか、または使用するエンコーダーのマニュアルを参照してください。

以下の形式で Apple HLS ストリームをエンコードします。

• 動画:• Apple iPhone、iPod、iPod touch: H.264 Baseline Profile Level 3.0。iPhone と iPod デバイスにはB フレームを使用しません。

• Apple iPad: H.264 Main Profile Level 3.1。• 音声: AAC-LC 最大 48 kHz、ステレオ音声。

スムーズストリームには、音声と動画の両方が含まれている必要があります。キーフレーム周波数は1~ 4 秒の間にする必要があります。キーフレーム周波数を 2 秒にすることを推奨します。

Wowza Gocoderライブストリームを公開するようにWowza GoCoder を構成するには、以下のステップを行います。

Note

Wowza GoCoder は Apple AppStore から購入できます。

1. Wowza チュートリアルの「How to use Wowza GoCoder video broadcasting iOS app with WowzaStreaming Engine」ページを表示します。

2. チュートリアルの「ConfigureWowzaGoCoderApp」セクションに書かれている手順を行います。[Host] 設定に以下の値を指定します。

a. AWS CloudFormation コンソール(https://console.aws.amazon.com/cloudformation/)を開きます。

b. AWS CloudFormation コンソールで、[Outputs] タブをクリックします。c. WowzaEngineDomainNameキーの値(例:ec2-xx-xx-xxx-xxx.compute-1.amazonaws.com)

をコピーします。d. [Server] に、今コピーした値を貼り付けます。e. [Port ] に「1935」と入力します。

3. [Application] 設定に以下の値を指定します。

API Version 2014-01-31252

Amazon CloudFront 開発者ガイドライブストリームを公開するエンコーダーをセットアップ

する

Page 258: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

a. [Application]に、スタックを作成したときに指定したアプリケーション名(例: livecf)を入力します。

b. AWS CloudFormation コンソールの [Outputs] タブで、PublishStreamName キーの値(例:myStream)をコピーします。

c. [StreamName] に前のステップでコピーした値を貼り付けます。

4. 他の値を適切に変更します。

RTMP エンコーダー通常、RTMP エンコーダーは以下の設定値を使用します。

Publish URLこれは AWS CloudFormation PublishRTMPURL キーの値です(例:rtmp://ec2-xx-xx-xxx-xxx.compute-1.amazonaws.com/livecf)。

Stream Nameこれは AWS CloudFormation PublishStreamName キーの値です(例: myStream)。

ログイン認証情報ログイン認証情報を求められたら、AWSCloudFormationのWowzaServerLoginInfoキーの値(例:username=wowza、password=i-1234a567)を使用します。

次の手順: ウェブアプリケーションを使用してライブストリームを再生する (p. 253)

ウェブアプリケーションを使用してライブストリームを再生する

Abstract

Wowza Streaming Engine ウェブアプリケーションを使用してライブストリームを再生する方法について説明します。

Wowza Media Services には、サンプルプレイヤーのウェブページがオンラインで用意されていて、そのページを使ってお客様のWowzaStreamingEngineディストリビューションからライブストリームを再生できます。このプレイヤーを使うことで、お客様のストリーミングスタックが正しくセットアップされているかどうかを確認することができます。同じストリーミングマニフェスト URL を、使用するストリーミングプロトコルをサポートする他のプレイヤーに使用できます。

該当の手順を実行し、ライブストリーム用のウェブページに含める埋め込みコードを取得します。

Note

「ライブストリームを公開するエンコーダーをセットアップする(p.252)」の該当する手順を実行した後、30 分待ってから、以下の手順を行ってストリームを再生します。

• CloudFront の HDS ストリームを Adobe Flash Player で再生するには (p. 253)• CloudFront の HLS ストリームを Apple デバイスまたは他のデバイスで再生するには (p. 254)• CloudFront のライブスムーズストリームを再生するには (p. 254)

CloudFront の HDS ストリームを Adobe Flash Player で再生するには

1. AWSCloudFormationコンソール(https://console.aws.amazon.com/cloudformation/)を開きます。

API Version 2014-01-31253

Amazon CloudFront 開発者ガイドウェブアプリケーションを使用してライブストリームを再

生する

Page 259: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

2. ライブ HTTP ストリーミング用のスタックを選択します。3. AWS CloudFormation コンソールで、[Outputs] タブをクリックします。4. PlaybackHDSURLキーの値(例:http://d111111abcdef8.cloudfront.net/livecf/myStream/manifest.f4m)

をコピーします。5. Wowza ウェブサイトの Flash HTTP Player サンプルウェブページにアクセスし、前のステップで

コピーした URL を [Stream] フィールドに貼り付けて、[Connect] をクリックします。

CloudFront の HLS ストリームを Apple デバイスまたは他のデバイスで再生するには

1. AWSCloudFormationコンソール(https://console.aws.amazon.com/cloudformation/)を開きます。2. ライブストリーミング用のスタックを選択します。3. AWS CloudFormation コンソールで、[Outputs] タブをクリックします。4. PlaybackHLSURLキーの値(例:http://d111111abcdef8.cloudfront.net/livecf/myStream/playlist.m3u8)

をコピーします。5. 以下のいずれかのアプリケーションを使って、Wowza ウェブサイトの

http://www.wowza.com/docredirect.php?doc=exampleLiveIOSMacOSX_LatestiOS/Mac OS X 用サンプルウェブページにアクセスし、前のステップでコピーしたURLを [Stream]フィールドに貼り付けて、[Connect] をクリックします。

• Mac OS X Snow Leopard(バージョン 10.6)以降が稼働するコンピューターの Safari ウェブブラウザー

• MacOSXSnowLeopard(バージョン10.6)以降が稼働するコンピューターのQuickTimePlayer10.x 以降

• Apple iOS デバイスの Safari ウェブブラウザー

CloudFront のライブスムーズストリームを再生するには

1. AWSCloudFormationコンソール(https://console.aws.amazon.com/cloudformation/)を開きます。2. ライブストリーミング用のスタックを選択します。3. AWS CloudFormation コンソールで、[Outputs] タブをクリックします。4. PlaybackSmoothURLキーの値(例: http://d111111abcdef8.cloudfront.net/livecf/myStream/Manifest)

をコピーします。5. Wowza ウェブサイトの

http://www.wowza.com/docredirect.php?doc=exampleLiveSilverlightPlayer_LatestSilverlight Playerサンプルウェブページにアクセスし、前のステップでコピーしたURLを [Stream]フィールドに貼り付けて、[Connect] をクリックします。

次の手順: ライブストリーミング用の AWS CloudFormation スタックを削除する (p. 254)

ライブストリーミング用の AWS CloudFormation スタックを削除する

Abstract

追加料金を回避できるように、Wowza Streaming Engine 用に作成した AWS CloudFormation スタックを削除する方法について説明します。

ライブイベントが終了したら、ライブストリーミング用に作成したスタックを削除します。これにより、ライブストリーミングイベント用に作成したAWSリソースが削除され、このリソースのオンデマンド課金が停止します。

API Version 2014-01-31254

Amazon CloudFront 開発者ガイドライブストリーミング用のAWSCloudFormationスタック

を削除する

Page 260: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

ライブストリーミング用の AWS CloudFormation スタックを削除するには

1. AWSCloudFormationコンソール(https://console.aws.amazon.com/cloudformation/)を開きます。2. スタックを作成したリージョンを、画面右上でクリックします。3. スタックを選択し、[Delete Stack] をクリックします。4. [Yes, Delete] をクリックして確定します。5. スタックの削除状況を追跡するには、スタックを選択し、[Events] タブをクリックします。

よくある質問Abstract

CloudFrontでのWowza Streaming Engineの使用に関して、よくある質問で取り上げられる一般的な問題について説明します。

• CloudFront とWowza Streaming Engine 4.0を使用するライブHTTPストリーミングの料金を教えてください。 (p. 255)

• Wowza Streaming Engine 4.0 が実行されている Amazon EC2 インスタンスに Secure Shell(SSH)を使用して接続する方法を教えてください。 (p. 255)

• Amazon EC2 インスタンスまたはCloudFront ディストリビューションのCNAMEエイリアスをどのように作成できますか? (p. 256)

• 私のライブイベントを、Flash Player 互換デバイス、Apple デバイス、およびスムーズストリーミングプレイヤーに同時にストリーム配信できますか? (p. 256)

• Wowza Streaming Engine 4.0 では、HTML5 をサポートしていますか? (p. 256)• Wowza と CloudFront を使用してライブストリームをプライベートに配信できますか? (p. 256)

CloudFront と Wowza Streaming Engine 4.0 を使用するライブHTTP ストリーミングの料金を教えてください。CloudFront とWowza Streaming Engine 4.0を使用するライブHTTPストリーミングの料金には、以下が含まれます。

• WowzaStreamingEngineソフトウェアとアドオン:詳細については、WowzaウェブサイトのLicensesBuilt For You ページを参照してください。

• Amazon EC2:詳細については、「オンデマンドインスタンス価格」表の「Linux」タブを参照してください。

• CloudFront: 詳細については、「Amazon CloudFront 料金表」を参照してください。

AWS CloudFormation の使用料はありません。

Wowza Streaming Engine 4.0 が実行されている Amazon EC2インスタンスに Secure Shell(SSH)を使用して接続する方法を教えてください。少しの手順だけで、SSH を使用して Amazon EC2 インスタンスに接続できます。

SSHを使用して、Wowza Streaming Engine 4.0 が実行されている Amazon EC2 インスタンスに接続するには

1. Amazon EC コンソール(https://console.aws.amazon.com/ec2/)を開きます。

API Version 2014-01-31255

Amazon CloudFront 開発者ガイドよくある質問

Page 261: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

2. 左側のナビゲーションの [Instances] をクリックします。3. 適切なインスタンスを右クリックし、[Connect]をクリックします。SSHを使用してAmazonEC2

インスタンスに接続するための手順が表示されます。ユーザー名は ec2-user です。

AmazonEC2インスタンスまたはCloudFrontディストリビューションの CNAME エイリアスをどのように作成できますか?Wowza Streaming Engine 4.0 を実行する Amazon EC2 インスタンスには内部および外部の DNS 名があります。Amazon EC2 では、この DNS 設定を変更できません。Wowza Streaming Engine が実行されている Amazon EC2 インスタンスに既存のドメイン名をマップする場合は、Amazon Route 53 などの DNS サービスプロバイダーを使用します。独自のドメイン名を使用する場合、インスタンスの IPアドレスを指す Aレコードを使用するのではなく、CNAMEを使用してインスタンスの外部DNS名にマップすることをお勧めします。

独自のドメイン名を CloudFront ディストリビューションにマップするには、「代替ドメイン名(CNAME)を使用する (p. 33)」を参照してください。

私のライブイベントを、Flash Player 互換デバイス、Apple デバイス、およびスムーズストリーミングプレイヤーに同時にストリーム配信できますか?はい、できます。WowzaStreamingEngine 4.0では、AdobeHTTPDynamicStreaming(AdobeHDS)、Apple HTTP Live Streaming(Apple HLS)、およびMicrosoft スムーズストリーミングのフォーマットで同時にライブストリーム配信できます。配信されたストリームはそれぞれ Adobe Flash Player アプリケーション、Apple iOS デバイス、スムーズストリーミングプレイヤーで再生できます。

Wowza Streaming Engine 4.0 では、HTML5 をサポートしていますか?はい、Wowza Streaming Engine は、以下の構成の HTML5 にコンテンツを配信することができます。

• Apple iOS デバイスで Apple HLS streaming フォーマットを使用できます。• Windows8デバイスでスムーズストリーミングフォーマットを使用できます。詳細については、MSDNウェブサイトの「Walkthrough: Building Your First HTML5 Smooth Streaming Player」を参照してください。

• HTML5 をサポートする他のブラウザーには、Wowza Streaming Engine を使用して、プログレッシブダウンロードでビデオを配信できます。

Wowza と CloudFront を使用してライブストリームをプライベートに配信できますか?現時点では、CloudFront 署名付きURLを使用して、ライブストリームをセキュリティー保護された状態で配信することはできません。しかし、プログレッシブダウンロードで提供されるメディアを署名付きURLを使用してプライベートに配信することは可能です。詳細については、「CloudFront を使用してプライベートコンテンツを供給する (p. 126)」を参照してください。

その他のドキュメントAbstract

Wowza Streaming Engine 4.0 と CloudFront を使用して作業するときに役に立つ追加のリソースを列挙します。

API Version 2014-01-31256

Amazon CloudFront 開発者ガイドその他のドキュメント

Page 262: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

以下の資料は、Wowza を使用して配信する場合に役立ちます。

Wowza ドキュメントWowza ウェブサイトには、Amazon Web Services とともにWowza ライブストリームを使用する場合に役立つ記事、ドキュメント、料金表などの情報があります。

• 「Wowza for Amazon EC2」記事• Wowza Streaming Engine User's Guide• Wowza on Amazon Web Services

Amazon Web Services ドキュメント以下の資料には、Amazon Web Services のユーザーガイドとリファレンスが含まれています。

• Amazon Elastic Compute Cloud ドキュメント• AWS CloudFormation ドキュメント

API Version 2014-01-31257

Amazon CloudFront 開発者ガイドその他のドキュメント

Page 263: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

CloudFront ディストリビューション内のファイルへのアクセスを地理的場所に基づいて制限する(地理的ブロッキング)

Abstract

リクエストの地理的場所に基づいて CloudFront コンテンツへのアクセスを制限します。これは地理的制限または地理的ブロッキングと呼ばれます。

Topics• アマゾンウェブサービスアカウントの作成 (p. 260)• Digital Element 用のサンプルコード (p. 260)• MaxMind 用のサンプルコード (p. 271)• よくある質問 (p. 281)• その他のサービスおよびドキュメント (p. 282)

Amazon CloudFront は、イメージ、ビデオ、オーディオなどのウェブコンテンツをエッジロケーションの世界的ネットワークに配信することで、ウェブサイトとアプリケーションのパフォーマンス、信頼性、および可用性を向上します。エンドユーザーがコンテンツを要求すると、CloudFrontは、そのユーザーにとってその時点でレイテンシーが最も短いエッジロケーションからコンテンツを供給します。コンテンツの配信場所に関して地理的な制限がある場合、CloudFront とサードパーティの位置情報サービスを使用して、コンテンツのディストリビューションをリクエストの場所に基づいてコントロールできます。これは地域制限または地理的ブロッキングと呼びます。例えば、著作権上の理由でコンテンツの配信が許可されない国からリクエストを受け取った場合、そのリクエストをブロックし、状況を説明するメッセージをリクエスタに表示できます。

処理の流れ

1. ウェブサイトを閲覧しているエンドユーザーが、地理的制限のあるウェブページまたはファイルをリクエストします。

2. ウェブアプリケーションは、リクエストからエンドユーザーのIPアドレスを取得し、位置情報サービスに IP アドレスを送信します。このとき、位置情報サービスのアカウントが必要です。

3. 位置情報サービスは、エンドユーザーの IP アドレスの地理的場所を特定し、結果をウェブアプリケーションに返します。

4. ウェブアプリケーションは、エンドユーザーの場所を、ファイルの配信が可能(または不可能)な場所のリストと照合します。

• エンドユーザーにウェブページまたはファイルへのアクセスが許可される場合、アプリケーションは CloudFront 署名付き URL を作成してエンドユーザーに返します。

• エンドユーザーにウェブページまたはファイルへのアクセスが許可されない場合、ウェブアプリケーションは、"you are not authorized"というメッセージのURLをエンドユーザーに返します。

5. エンドユーザーにウェブページまたはファイルへのアクセスが許可される場合、エンドユーザーのブラウザは署名付き URL を使用して CloudFront にファイルを自動的に要求します。

API Version 2014-01-31258

Amazon CloudFront 開発者ガイドCloudFrontディストリビューション内のファイルへのアクセスを地理的場所に基づいて制限する(地理的ブロッキン

グ)

Page 264: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

CloudFront とサードパーティの位置情報サービスを使用してアプリケーションレイヤからコンテンツへのアクセスを制限することで、エンドユーザーの操作を完全にコントロールできます。アクセスをブロックされたエンドユーザーには、アプリケーションでエラーコードを返すのではなく意味のあるメッセージを表示できます。また、エンドユーザーに表示するエラーメッセージをエンドユーザーの場所に応じてカスタマイズすることもできます。

Note

国境に従った地理的リージョンでコンテンツの配信を制限しており、(個別のファイルではなく)ディストリビューションに関連するすべてのファイルの配信を制限する場合は、CloudFront地域制限を使用することをお勧めします。詳細については、「コンテンツの地理的ディストリビューションの制限 (p. 63)」を参照してください。

地理的ブロッキング機能をアプリケーションに実装し、エンドユーザーの場所に応じてCloudFrontディストリビューション内のコンテンツへのアクセスを制限するためのプロセスを以下のタスクリストを使用して説明します。

地理的場所に基づいてCloudFrontディストリビューション内のファイルへのアクセスを制限するためのタスクリスト

1. 位置情報サービスのアカウントを取得します。このセクションでは、Digital Element および MaxMind 用のサンプルコードを提供していますが、すべての位置情報サービスがサポートされます。

2. AWSアカウントをまだ持っていない場合は作成します。詳細については、「アマゾンウェブサービスアカウントの作成 (p. 260)」を参照してください。

3. コンテンツを Amazon Simple Storage Service (S3)バケットにアップロードします。詳細については、Amazon S3 に関するドキュメントを参照してください。

4. プライベートコンテンツを供給するように Amazon CloudFront と Amazon S3 を構成します。詳細については、「CloudFrontを使用してプライベートコンテンツを供給する(p. 126)」を参照してください。

5. 以下の処理を行うようにウェブアプリケーションを記述します。

a. 各エンドユーザーリクエストの IP アドレスを位置情報サービスに送信します。b. 位置情報サービスからの戻り値(通常は国コード)を評価し、エンドユーザーの場所がコンテ

ンツの配信の対象となっている場所かどうかを判別します。c. CloudFront コンテンツの署名付きURLを生成するか、コンテンツへのアクセスをブロックし

ます。

API Version 2014-01-31259

Amazon CloudFront 開発者ガイドCloudFrontディストリビューション内のファイルへのアクセスを地理的場所に基づいて制限する(地理的ブロッキン

グ)

Page 265: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

以下のコードは、Digital Element およびMaxMind 用の Java、.NET、およびPHPのサンプルコードです。該当するトピックを参照してください。

• Digital Element 用のサンプルコード (p. 260)• MaxMind 用のサンプルコード (p. 271)

別の位置情報サービスを使用している場合は、各サービスのドキュメントを参照してください。

アマゾンウェブサービスでは、Java、.NET、および PHP 用の SDK が用意されています。詳細については、アマゾンウェブサービスのウェブサイトで該当するページを参照してください。

• Java 開発者センター• Windows & .NET 開発者センター• PHP 開発者センター

アマゾンウェブサービスアカウントの作成Abstract

CloudFront を使用して地理的ブロッキングを実施する最初のステップとして、アマゾンウェブサービス(AWS)アカウントを作成します。

Note

アカウントを作成すると、そのアカウントで AWS のすべてのサービスへのサインアップが自動的に行われます。料金が発生するのは、お客様が使用したサービスの分のみです。

AWS アカウントを作成するには

1. http://aws.amazon.com にアクセスし、[”Create an AWS Account”]をクリックします。2. 画面の指示に従います。

サインアップ手順の一環には、電話を受信して電話のキーパッドを用いた PIN の入力が含まれます。

Digital Element 用のサンプルコードAbstract

このサンプルコードは、エンドユーザーの IP アドレスに基づいて Digital Element から場所を取得する方法を示しています。

このセクションのサンプルは、Digital Element を使用してエンドユーザーの IP アドレスから場所を取得する方法を示しています。また、エンドユーザーの場所にコンテンツの配信が許可される場合に、要求されたオブジェクトの署名付き URL を作成する方法も示しています。

すべてのサンプルコードはこのドキュメントの発行前にテストされていますが、Digital Element APIのその後の変更によってサンプルコードの正確性が維持されなくなる可能性があります。最新の情報については、Digital Element のドキュメントを参照してください。

該当のサンプルコードを参照してください。

API Version 2014-01-31260

Amazon CloudFront 開発者ガイドアマゾンウェブサービスアカウントの作成

Page 266: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

• Digital Element 用の Java サンプルコード (p. 261)• Digital Element 用の .NET サンプルコード (p. 265)• Digital Element 用の PHP サンプルコード (p. 268)

Note

コード例の中で赤の斜体で示されているテキストはプレースホルダーです。お客様の状況に合わせてこのテキストを適切な値で置き換えてください。

Digital Element 用の Java サンプルコードAbstract

この Java サンプルコードは、エンドユーザーの IP アドレスに基づいて Digital Element から場所を取得し、CloudFront コンテンツへのアクセスを許可するかどうかを判断します。

ここに示されているコード例では、エンドユーザーのIPアドレスに関連付けられた国コードを取得し、ユーザーの場所がディストリビューションの可能な場所の場合に、CloudFront コンテンツにユーザーがアクセスすることを許可します。この例の目的上、このプログラムは、要求されたコンテンツをオーストラリア(国コード: AU)以外のあらゆる国に配信することが許可されています。

GetCountryCodeServlet.java

GetCountryCodeServlet.java は、この記事の後半で示されている GetDigitalElementCountryCode.javaを呼び出して、エンドユーザーの IP アドレスに関連付けられている国コードをDigital Element に要求します。国コードがAU(オーストラリア)でない場合、GetCountryCodeServlet.javaはSignedUrl.javaを呼び出して署名付きURLを作成します。エンドユーザーはこの署名付きURLを使用してCloudFrontディストリビューション内のファイルにアクセスできます。

/* * Copyright 2011 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. * A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the License for the specific language governing * permissions and limitations under the License. */

// Signed URLs for a private distribution// Note that Java supports SSL certificates only in DER format, // so you will need to convert your PEM-formatted file to DER format. // To do this, you can use openssl:// openssl pkcs8 -topk8 -nocrypt -in origin.pem -inform PEM -out new.der -outform DER // For the encoder to work correctly, you should also add the // bouncy castle jar to your project and then add the provider.ds.

import java.io.IOException;

API Version 2014-01-31261

Amazon CloudFront 開発者ガイドDigital Element 用のサンプルコード

Page 267: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

import java.io.PrintWriter;import java.util.StringTokenizer;

import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;

public class GetCountryCodeServlet extends HttpServlet { private static final long serialVersionUID = 1L;

final String GEOAPIURL = "Digital Element URL"; final String GEOAPITOKEN = "Digital Element user token"; final String PATHTODER = "path to .der file"; final String KEYPAIRID ="CloudFront key pair ID"; final String HTTPORHTTPS = "https"; final String CFDISTRIBUTION = "dxxxx.cloudfront.net"; final String CFPATH = "CloudFront URL for file"; // date and time that CloudFront's signed URL expires, // in Coordinated Universal Time final String EXPIRETS = "2012-11-14T22:20:00.000Z"; final String BLOCKEDCOUNTRY="AU";

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

String ip = null; StringTokenizer st = null; PrintWriter out = response.getWriter();

String headers = request.getHeader("X-FORWARDED-FOR");

if (headers!= null){ st = new StringTokenizer(headers,",");

while (st.hasMoreTokens()) { ip = st.nextToken(); } }

//Get the client's IP addr in case X-Forwarded-IP header doesn't exist

if (ip == null) ip = request.getRemoteAddr();

try { GetDigitalElementCountryCode country = new GetDigitalElementCountryCode( GEOAPIURL,GEOAPITOKEN );

if ( !country.getCountry(ip).equalsIgnoreCase(BLOCKEDCOUNTRY)){

SignedUrl myApp = new SignedUrl(KEYPAIRID,PATHTODER); out.println(myApp.getSignedHash(HTTPORHTTPS,CFDISTRIBUTION,CFPATH,EX PIRETS));

}else { out.println("You cannot access this link."); } } catch (Exception e1) {

API Version 2014-01-31262

Amazon CloudFront 開発者ガイドDigital Element 用のサンプルコード

Page 268: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

e1.printStackTrace(); } }}

GetDigitalElementCountryCode.java

GetDigitalElementCountryCode.javaは、エンドユーザーの IPアドレスが含まれたリクエストをDigitalElement に送信します。戻り値は国コードです。

/* * Copyright 2011 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. * A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the License for the specific language governing * permissions and limitations under the License. */

import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Document;import org.w3c.dom.Element;import org.w3c.dom.NodeList;

public class GetDigitalElementCountryCode {

private static String geoApiEndPoint; private static String apiToken;

GetDigitalElementCountryCode(String mygeoApiEndPoint, String myapiToken){ geoApiEndPoint = mygeoApiEndPoint; apiToken = myapiToken; }

public String getCountry(String enduserIP) throws Exception {

String geoApiURL = "http://"+geoApiEndPoint+"?u="+apiToken+"&ip="+end userIP;

DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newIn stance(); DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder(); Document doc = docBuilder.parse(geoApiURL); // normalize text representation doc.getDocumentElement ().normalize ();

NodeList listOfPersons = doc.getElementsByTagName("response"); Element el = (Element)listOfPersons.item(0); String country = el.getAttribute("edge-two-letter-country");

API Version 2014-01-31263

Amazon CloudFront 開発者ガイドDigital Element 用のサンプルコード

Page 269: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

return country; }}

SignedUrl.java

SignedUrl.java は、エンドユーザーが CloudFront ディストリビューション内のファイルへのアクセスに使用できる署名付き URL を作成します。

/* * Copyright 2011 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. * A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the License for the specific language governing * permissions and limitations under the License. */

import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.security.Security;import java.text.ParseException;

import org.jets3t.service.CloudFrontService;import org.jets3t.service.CloudFrontServiceException;import org.jets3t.service.utils.ServiceUtils;

public class SignedUrl { // Signed URLs for a private distribution // Note that Java supports SSL certificates only in DER format, // so you need to convert your PEM-formatted file to DER format. // To do this, you can use openssl: // openssl pkcs8 -topk8 -nocrypt -in origin.pem -inform PEM -out new.der -outform DER // For the encoder to work correctly, you should also add the // bouncy castle jar to your project and then add the provider.ds.

private static String keyPairId; private static String privateKeyFilePath;

SignedUrl(String mykeyPairId, String myprivateKeyFilePath){ keyPairId = mykeyPairId; privateKeyFilePath = myprivateKeyFilePath; }

public String getSignedHash(String protocol, String cfDistribution, String objectUri, String expTime) throws FileNotFoundException, IOException, CloudFrontServiceException, ParseException{

API Version 2014-01-31264

Amazon CloudFront 開発者ガイドDigital Element 用のサンプルコード

Page 270: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastlePro vider());

// Convert your DER file into a byte array.

byte[] derPrivateKey = ServiceUtils.readInputStreamToBytes(new FileInput Stream(privateKeyFilePath));

// Generate a "canned" signed URL to allow access to a // specific distribution and object

String signedUrlCanned = CloudFrontService.signUrlCanned( protocol+ "://" + cfDistribution + "/" + objectUri, // Resource URL or Path keyPairId, // Certificate identifier, // an active trusted signer for the distribution derPrivateKey, // DER Private key data ServiceUtils.parseIso8601Date(expTime) // DateLessThan );

return signedUrlCanned; }}

Digital Element 用の .NET サンプルコードAbstract

この .NET サンプルコードは、エンドユーザーの IP アドレスに基づいて Digital Element から場所を取得し、CloudFront コンテンツへのアクセスを許可するかどうかを判断します。

以下のサンプルアプリケーションでは、エンドユーザーの IP アドレスを取得し、Digital Element に IPアドレスを送信します。Digital Element は、エンドユーザーの IP アドレスに対応する国コード(XML形式)を返します。アプリケーションは XML を解析し、Digital Element から返された値が、ブロックされた国コードに一致するかどうかを評価します。エンドユーザーの国がブロックされている場合、アプリケーションはその旨を説明するメッセージを表示します。エンドユーザーの国がブロックされていない場合、アプリケーションは、1 分で有効期限切れになる署名付き URL を作成し、URL に無効な文字が含まれないよう必要な代入を実行して、ユーザーのブラウザを署名付き URL にリダイレクトします。

<%@ Page Language="C#" AutoEventWireup="true" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "ht tp://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" ><head id="Head1" runat="server"> <title></title></head><body> <form id="form1" runat="server"> <div> <%=GetContent()%> </div> </form></body>

API Version 2014-01-31265

Amazon CloudFront 開発者ガイドDigital Element 用のサンプルコード

Page 271: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

</html>

<%@ Import Namespace="System.Linq" %><%@ Import Namespace="System.Xml.Linq" %><%@ Import Namespace="System.Security.Cryptography" %><%@ Import Namespace="System.Net" %><%@ Import Namespace="System.IO" %>

<script runat="server">

// Key pair ID for the CloudFront key pair private const string KEYPAIR_ID = "CloudFront key pair ID";

// Private key for the CloudFront key pair. // The value is derived from opensslkey. private const string PRIVATE_KEY = "private key";

// JSON policy statement used in the expiring URL private const string POLICY = "{{\"Statement\":[{{\"Resource\":\"{0}\",\"Con dition\":{{\"DateLessThan\":{{\"AWS:EpochTime\":{1}}}}}}}]}}";

// Digital Element user token to be passed to geolocation service call

private const string USERTOKEN = "Digital Element user token"; private const string GEOAPIURL = "Digital Element URL";

// GEO IP service URL with parameters: // {0} = User Token and {1} = IP Address private const string SERVICEURL = GEOAPIURL + "?u={0}&ip={1}";

// Array of countries to block private static readonly string[] COUNTRIES_TO_BLOCK = new String[] {"US"};

private const string BLOCKED_MSG = "Your access to this content is blocked because you're visiting from '{0}'.";

/// <summary> /// Returns the IP address coming from the request object. /// </summary> /// <returns>The IP address for the request.</returns> private string GetOriginIpAddress() { // .NET provides Request.UserHostAddress to get the // remote IP address, but this could be the IP address of the // last proxy in a chain, for example, an Elastic Load Balancer. // Instead, use the HTTP_X_FORWARDED_FOR header if one exists. string forwardedIpAddresses = this.Request.ServerVariables["HTTP_X_FORWAR DED_FOR"];

if (string.IsNullOrEmpty(forwardedIpAddresses)) { // Simply return the UserHostAddress. return Request.UserHostAddress; } else { // Get the last item in the list. return forwardedIpAddresses.Split(',').Last().Trim();

API Version 2014-01-31266

Amazon CloudFront 開発者ガイドDigital Element 用のサンプルコード

Page 272: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

} }

/// <summary> /// This function returns the country code /// associated with the IP address in the request object. /// </summary> /// <returns>The country code for the request.</returns> private string GetCountryCodeFromIP() { var ipAddress = GetOriginIpAddress(); var serviceURL = String.Format(SERVICEURL, Server.UrlEncode(USERTOKEN), Server.UrlEncode(ipAddress));

try { var xDoc = XDocument.Load(serviceURL); var res = (from w in xDoc.Descendants("response") select w).First();

return res.Attribute("edge-two-letter-country").Value.ToUpper(); } catch(Exception ex) { // There was an error in making the web request. this.Response.Write(serviceURL + "<br><br>"); this.Response.Write(ex.Message); this.Response.End(); } return null; }

/// <summary> /// This function returns a signed URL that will expire in 1 minute. /// For more information, see "Create a URL Signature Using C# and the /// .NET Framework" in the Amazon CloudFront Developer Guide: /// http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Cre ateSignatureInCSharp.html /// </summary> /// <param name="resourceUrl"></param> /// <returns></returns> private string GetSignedURL(string resourceUrl) { // Compute expiration date. var endTimeSpanFromNow = new TimeSpan(0, 1, 0); var intervalEnd = (DateTime.UtcNow.Add(endTimeSpanFromNow)) - new Date Time(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); var endTimestamp = (int)intervalEnd.TotalSeconds; // Timestamp must be a whole number var expires = endTimestamp.ToString(); var strPolicy = string.Format(POLICY, resourceUrl, expires);

// Encrypt the policy. var bufferPolicy = Encoding.ASCII.GetBytes(strPolicy); var cryptoSHA1 = new SHA1CryptoServiceProvider(); bufferPolicy = cryptoSHA1.ComputeHash(bufferPolicy); var providerRSA = new RSACryptoServiceProvider(); providerRSA.FromXmlString(PRIVATE_KEY); var rsaFormatter = new RSAPKCS1SignatureFormatter(providerRSA);

API Version 2014-01-31267

Amazon CloudFront 開発者ガイドDigital Element 用のサンプルコード

Page 273: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

rsaFormatter.SetHashAlgorithm("SHA1"); var signedPolicyHash = rsaFormatter.CreateSignature(bufferPolicy); var strSignedPolicy = System.Convert.ToBase64String(signedPolicyHash);

// Build the query string with the expiration, policy signature, // and CloudFront key pair ID. var queryString = "Expires={0}&Signature={1}&Key-Pair-Id={2}"; queryString = String.Format(queryString, Server.UrlEncode(expires), Server.UrlEncode(strSignedPolicy), Server.UrlEncode(KEYPAIR_ID)); var urlString = resourceUrl + "?" + queryString; return urlString; }

/// <summary> /// Return a message saying this is blocked because of your country, or /// return an image tag. /// </summary> /// <returns></returns> public string GetContent() { var country = GetCountryCodeFromIP(); if (COUNTRIES_TO_BLOCK.Contains(country)) { // The country returned from the call to the geolocation service // is listed in the array of blocked countries. return string.Format(BLOCKED_MSG, country); } else { // The country returned from the call to the geolocation service // is NOT listed in the array of blocked countries // Get a CloudFront signed URL for the content and display it. var url = GetSignedURL("CloudFront URL"); var img = "<img src='{0}' />"; return String.Format(img, url); } } </script>

Digital Element 用の PHP サンプルコードAbstract

このPHPコードサンプルは、エンドユーザーのIPアドレスに基づいてDigitalElementから場所を取得し、CloudFrontコンテンツへのアクセスを許可するかどうかを判断します。

以下のサンプルアプリケーションでは、エンドユーザーの IP アドレスを取得し、Digital Element に IPアドレスを送信します。Digital Element は、エンドユーザーの IP アドレスに対応する国コード(XML形式)を返します。アプリケーションは XML を解析し、ブロックされた国コードを表示して、DigitalElement から返された値が、ブロックされた国コードに一致するかどうかを評価します。エンドユーザーの国がブロックされていない場合、アプリケーションは、"You are not blocked" というメッセージを表示し、既定ポリシーを使用して 5 分で有効期限切れになる署名付き URL を作成します。次に、URLに無効な文字が含まれないよう必要な代入を実行して、ユーザーのブラウザを署名付きURLにリダイレクトします。エンドユーザーの国がブロックされている場合、アプリケーションは "You areblocked" というメッセージとグラフィックを表示します。

API Version 2014-01-31268

Amazon CloudFront 開発者ガイドDigital Element 用のサンプルコード

Page 274: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

<!DOCTYPE html><html><head> <title>Geoblocking Test</title></head><body> <h1>Geoblocking Test</h1>

<?php// Configure the private key (make sure this information is secure).$private_key_filename = 'path to private key';$key_pair_id = 'CloudFront key pair ID';

/* * Configure the geoblocking parameters. The following variables * describe the two-letter country to be blocked, the * CloudFront URL for the file that you want to secure, * and the expiry time of the URL. Change these values as needed. */$blocked_geo = 'uk';$asset_path = 'CloudFront URL for the object';$expires = time() + 300; // (5 minutes from now)

// Configure the URL to the geoblocking service.$token = 'Digital Element user token';$address = 'Digital Element URL';$remote_ip = get_remote_ip_address();$service_url = $address . '?u=' . $token . '&ip=' . $remote_ip;

// Call the web service using the configured URL.$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $service_url);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);$ws_response = curl_exec($ch);

// Parse the response with SimpleXML and get the geoblocking value.$xml = new SimpleXMLElement($ws_response);$edge_geo = $xml->response->attributes()->{'edge-two-letter-country'};

echo '<p>The country being blocked is: ' . strtoupper($blocked_geo) . '</p>';

if ($edge_geo != $blocked_geo){ echo '<p>Your country is: ' . strtoupper($edge_geo) . '</p>'; echo '<p>You are not blocked.</p>'; $signed_url = create_signed_url($asset_path, $private_key_filename, $key_pair_id, $expires); echo '<img src="' . $signed_url . '" width="600" height="401" ' ;}else{ echo '<p>Your country is: ' . strtoupper($edge_geo) . '</p>'; echo '<p>You are blocked.</p>'; $blocked_url = 'http://s3.amazonaws.com/<Amazon S3 bucket>/blocked-image.jpg';

echo '<img src="' . $blocked_url . '" alt="Access blocked" width="600" height="401" ';}

API Version 2014-01-31269

Amazon CloudFront 開発者ガイドDigital Element 用のサンプルコード

Page 275: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

// Function definitions

function get_remote_ip_address(){ // Check to see if an HTTP_X_FORWARDED_FOR header is present.

if($_SERVER["HTTP_X_FORWARDED_FOR"])

{

// If the header is present, use the last IP address. $temp_array = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']); $temp_ip_address = $temp_array[count($temp_array) - 1]; } else { // If the header is not present, use the // default server variable for remote address. $temp_ip_address = $_SERVER['REMOTE_ADDR']; }

return $temp_ip_address;}

function create_signed_url($asset_path, $private_key_filename, $key_pair_id, $expires){ // Build the policy. $canned_policy = '{"Statement":[{"Resource":"' . $asset_path . '","Condition":{"DateLessThan":{"AWS:EpochTime":'. $expires . '}}}]}';

// Sign the policy. $signature = rsa_sha1_sign($canned_policy, $private_key_filename);

// Make the signature is safe to be included in a URL. $encoded_signature = url_safe_base64_encode($signature);

// Combine the above into a properly formed URL name. $temp_signed_url = $asset_path . '?Expires=' . $expires . '&Signature=' . $encoded_signature . '&Key-Pair-Id=' . $key_pair_id;

return $temp_signed_url;}

function rsa_sha1_sign($policy, $private_key_filename){ $signature = '';

// Load the private key. $fp = fopen($private_key_filename, 'r'); $private_key = fread($fp, 8192); fclose($fp);

$private_key_id = openssl_get_privatekey($private_key);

API Version 2014-01-31270

Amazon CloudFront 開発者ガイドDigital Element 用のサンプルコード

Page 276: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

// Compute the signature. openssl_sign($policy, $signature, $private_key_id);

// Free the key from memory. openssl_free_key($private_key_id);

return $signature;}

function url_safe_base64_encode($value){ $encoded = base64_encode($value);

// Replace the characters that cannot be used in a URL. return str_replace(array('+', '=', '/'), array('-', '_', '~'), $encoded);}?>

</body></html>

MaxMind 用のサンプルコードAbstract

このサンプルコードは、エンドユーザーの IPアドレスに基づいてMaxMindから場所を取得する方法を示しています。

このセクションのサンプルでは、MaxMindを使用してエンドユーザーの IPアドレスから場所を取得する方法に加えて、要求されたオブジェクトをユーザーの場所に配信できる場合に、オブジェクトの署名付き URL を作成する方法を示します。

すべてのサンプルコードはこのドキュメントの発行前にテストされていますが、MaxMind API のその後の変更によってサンプルコードの正確性が維持されなくなる可能性があります。最新の情報については、MaxMind のドキュメントを参照してください。

該当のサンプルコードを参照してください。

• MaxMind 用の Java サンプルコード (p. 271)• MaxMind 用の .NET サンプルコード (p. 278)• MaxMind 用の PHP サンプルコード (p. 275)

MaxMind 用の Java サンプルコードAbstract

この Java サンプルコードは、エンドユーザーの IP アドレスに基づいて MaxMind から場所を取得し、CloudFrontコンテンツへのアクセスを許可するかどうかを判断します。

GetCountryCodeServlet.java

GetCountryCodeServlet.java は、この記事の後半で示されている GetMaxMindCountryCode.java を呼び出して、エンドユーザーの IP アドレスに関連付けられてい国コードを MaxMind に要求します。国コードがAU(オーストラリア)でない場合、GetCountryCodeServlet.javaはSignedUrl.javaを呼び出

API Version 2014-01-31271

Amazon CloudFront 開発者ガイドMaxMind 用のサンプルコード

Page 277: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

して署名付き URL を作成します。エンドユーザーはこの署名付き URL を使用して CloudFront ディストリビューション内のファイルにアクセスできます。

/* * Copyright 2011 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. * A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the License for the specific language governing * permissions and limitations under the License. */

// Signed URLs for a private distribution// Note that Java supports SSL certificates only in DER format, // so you will need to convert your PEM-formatted file to DER format. // To do this, you can use openssl:// openssl pkcs8 -topk8 -nocrypt -in origin.pem -inform PEM -out new.der -outform DER // For the encoder to work correctly, you should also add the // bouncy castle jar to your project and then add the provider.ds.

import java.io.IOException;import java.io.PrintWriter;import java.util.StringTokenizer;

import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;

public class GetCountryCodeServlet extends HttpServlet { private static final long serialVersionUID = 1L;

final String GEOAPIURL = "MaxMind URL"; final String GEOAPITOKEN = "MaxMind user token"; final String PATHTODER = "path to .der file"; final String KEYPAIRID ="CloudFront key pair ID"; final String HTTPORHTTPS = "https"; final String CFDISTRIBUTION = "dxxxx.cloudfront.net"; final String CFPATH = "CloudFront URL for file"; // date and time that CloudFront's signed URL expires, // in Coordinated Universal Time final String EXPIRETS = "2012-11-14T22:20:00.000Z"; final String BLOCKEDCOUNTRY="AU";

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

String ip = null; StringTokenizer st = null; PrintWriter out = response.getWriter();

API Version 2014-01-31272

Amazon CloudFront 開発者ガイドMaxMind 用のサンプルコード

Page 278: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

String headers = request.getHeader("X-FORWARDED-FOR");

if (headers!= null){ st = new StringTokenizer(headers,",");

while (st.hasMoreTokens()) { ip = st.nextToken(); } }

//Get the client's IP addr in case X-Forwarded-IP header doesn't exist.

if (ip == null) ip = request.getRemoteAddr();

try {

GetMaxMindCountryCode country = new GetMaxMindCountryCode("GEOAPI URL","GEOAPITOKEN");

if ( !country.getCountry(ip).equals(BLOCKEDCOUNTRY)){

SignedUrl myApp = new SignedUrl(KEYPAIRID,PATHTODER); out.println(myApp.getSignedHash(HTTPORHTTPS,CFDISTRIBUTION,CFPATH,EX PIRETS));

}else { out.println("You cannot access this link."); } } catch (Exception e1) { e1.printStackTrace(); } }}

GetMaxMindCountryCode.java

GetMaxMindCountryCode.javaは、エンドユーザーの IPアドレスが含まれたリクエストをMaxMindに送信します。戻り値は国コードです。

/* * Copyright 2011 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. * A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the License for the specific language governing * permissions and limitations under the License. */

import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;

API Version 2014-01-31273

Amazon CloudFront 開発者ガイドMaxMind 用のサンプルコード

Page 279: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

import java.net.URL;import java.net.URLConnection;

public class GetMaxMindCountryCode {

private static String geoApiEndPoint; private static String apiToken;

GetMaxMindCountryCode(String mygeoApiEndPoint, String myapiToken){ geoApiEndPoint = mygeoApiEndPoint; apiToken = myapiToken; }

public String getCountry(String enduserIP) throws Exception { String geoApiURL = "http://"+geoApiEndPoint+"?l="+apiToken+"&i="+enduserIP;

// Call to MaxMind API. URL url = new URL(geoApiURL); URLConnection urlConn = url.openConnection();

urlConn.setUseCaches(false);

InputStreamReader in = new InputStreamReader((InputStream) urlConn.getCon tent()); BufferedReader buff = new BufferedReader(in);

return buff.readLine(); }}

SignedUrl.java

SignedUrl.java は、エンドユーザーが CloudFront ディストリビューション内のファイルへのアクセスに使用できる署名付き URL を作成します。

/* * Copyright 2011 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. * A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the License for the specific language governing * permissions and limitations under the License. */

import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.security.Security;import java.text.ParseException;

import org.jets3t.service.CloudFrontService;

API Version 2014-01-31274

Amazon CloudFront 開発者ガイドMaxMind 用のサンプルコード

Page 280: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

import org.jets3t.service.CloudFrontServiceException;import org.jets3t.service.utils.ServiceUtils;

public class SignedUrl { // Signed URLs for a private distribution // Note that Java supports SSL certificates only in DER format, // so you need to convert your PEM-formatted file to DER format. // To do this, you can use openssl: // openssl pkcs8 -topk8 -nocrypt -in origin.pem -inform PEM -out new.der -outform DER // For the encoder to work correctly, you should also add the // bouncy castle jar to your project and then add the provider.ds.

private static String keyPairId; private static String privateKeyFilePath;

SignedUrl(String mykeyPairId, String myprivateKeyFilePath){ keyPairId = mykeyPairId; privateKeyFilePath = myprivateKeyFilePath; }

public String getSignedHash(String protocol, String cfDistribution, String objectUri, String expTime) throws FileNotFoundException, IOException, CloudFrontServiceException, ParseException{

Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastlePro vider());

// Convert your DER file into a byte array.

byte[] derPrivateKey = ServiceUtils.readInputStreamToBytes(new FileInput Stream(privateKeyFilePath));

// Generate a "canned" signed URL to allow access to a // specific distribution and object.

String signedUrlCanned = CloudFrontService.signUrlCanned( protocol+ "://" + cfDistribution + "/" + objectUri, // resource URL or path keyPairId, // Certificate identifier, // an active trusted signer for the distribution derPrivateKey, // DER private key data ServiceUtils.parseIso8601Date(expTime) // DateLessThan );

return signedUrlCanned; }}

MaxMind 用の PHP サンプルコードAbstract

この PHP コードサンプルは、エンドユーザーの IP アドレスに基づいて MaxMind から場所を取得し、CloudFrontコンテンツへのアクセスを許可するかどうかを判断します。

API Version 2014-01-31275

Amazon CloudFront 開発者ガイドMaxMind 用のサンプルコード

Page 281: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

以下のサンプルアプリケーションでは、エンドユーザーの IP アドレスを取得し、MaxMind に IP アドレスを送信します。MaxMindは、エンドユーザーの IPアドレスに対応する国コードを返します。アプリケーションは、ブロックされた国コードを表示して、MaxMind から返された値が、ブロックされた国コードかどうかを評価します。エンドユーザーの国がブロックされていない場合、アプリケーションは、"You are not blocked" というメッセージを表示し、既定ポリシーを使用して5分で有効期限切れになる署名付きURLを作成します。次に、URLに無効な文字が含まれないよう必要な代入を実行して、ユーザーのブラウザを署名付き URL にリダイレクトします。エンドユーザーの国がブロックされている場合、アプリケーションは "You are blocked" というメッセージとグラフィックを表示します。

<!DOCTYPE html><html><head> <title>Geoblocking Test</title></head><body> <h1>Geoblocking Test</h1>

<?php// Configure the private key (make sure this information is secure).$private_key_filename = 'path to private key';$key_pair_id = 'CloudFront key pair ID';

/* * Configure the geoblocking parameters. The following variables * describe the two-letter country to be blocked, the * CloudFront URL for the file that you want to secure, * and the expiry time of the URL. Change these values as needed. */$blocked_geo = 'gb';$asset_path = 'CloudFront URL for the object';$expires = time() + 300; // (5 minutes from now)

// Configure the URL to the geolocation service.$token = 'MaxMind user token';$address = 'MaxMind URL';$remote_ip = get_remote_ip_address();$service_url = $address . '?l=' . $token . '&i=' . $remote_ip;

// Call the web service using the configured URL.$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $service_url);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);$ws_response = curl_exec($ch);

$edge_geo = $ws_response;

echo '<p>The country being blocked is: ' . strtoupper($blocked_geo) . '</p>';

if ($edge_geo != strtoupper($blocked_geo)){ echo '<p>Your country is: ' . strtoupper($edge_geo) . '</p>'; echo '<p>You are not blocked.</p>'; $signed_url = create_signed_url($asset_path, $private_key_filename, $key_pair_id, $expires); echo '<img src="' . $signed_url . '" width="600" height="401" />' ;}else{

API Version 2014-01-31276

Amazon CloudFront 開発者ガイドMaxMind 用のサンプルコード

Page 282: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

echo '<p>Your country is: ' . strtoupper($edge_geo) . '</p>'; echo '<p>You are blocked.</p>'; $blocked_url = 'http://s3.amazonaws.com/<Amazon S3 bucket>/blocked-image.jpg';

echo '<img src="' . $blocked_url . '" alt="Access blocked" width="600" height="401" />';}

// Function definitions

function get_remote_ip_address(){ // Check to see if an HTTP_X_FORWARDED_FOR header is present.

if($_SERVER['HTTP_X_FORWARDED_FOR'])

{

// If the header is present, use the last IP address. $temp_array = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']); $temp_ip_address = $temp_array[count($temp_array) - 1]; } else { // If the header is not present, use the // default server variable for remote address. $temp_ip_address = $_SERVER['REMOTE_ADDR']; }

return $temp_ip_address;}

function create_signed_url($asset_path, $private_key_filename, $key_pair_id, $expires){ // Build the policy. $canned_policy = '{"Statement":[{"Resource":"' . $asset_path . '","Condition":{"DateLessThan":{"AWS:EpochTime":'. $expires . '}}}]}';

// Sign the policy. $signature = rsa_sha1_sign($canned_policy, $private_key_filename);

// Make the signature contains only characters that // can be included in a URL. $encoded_signature = url_safe_base64_encode($signature);

// Combine the above into a properly formed URL name $temp_signed_url = $asset_path . '?Expires=' . $expires . '&Signature=' . $encoded_signature . '&Key-Pair-Id=' . $key_pair_id;

return $temp_signed_url;}

function rsa_sha1_sign($policy, $private_key_filename){ $signature = '';

API Version 2014-01-31277

Amazon CloudFront 開発者ガイドMaxMind 用のサンプルコード

Page 283: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

// Load the private key. $fp = fopen($private_key_filename, 'r'); $private_key = fread($fp, 8192); fclose($fp);

$private_key_id = openssl_get_privatekey($private_key);

// Compute the signature. openssl_sign($policy, $signature, $private_key_id);

// Free the key from memory. openssl_free_key($private_key_id);

return $signature;}

function url_safe_base64_encode($value){ $encoded = base64_encode($value);

// Replace characters that cannot be included in a URL. return str_replace(array('+', '=', '/'), array('-', '_', '~'), $encoded);}?>

</body></html>

MaxMind 用の .NET サンプルコードAbstract

この .NET 用の C# コードサンプルは、エンドユーザーの IP アドレスに基づいて MaxMind から場所を取得し、CloudFront コンテンツへのアクセスを許可するかどうかを判断します。

以下のサンプルアプリケーションでは、エンドユーザーの IP アドレスを取得し、MaxMind に IP アドレスを送信します。MaxMind は、エンドユーザーの IP アドレスに対応する国コードを返します。次に、アプリケーションは、Digital Elementから返された値が、ブロックされた国コードに一致するかどうかを評価します。エンドユーザーの国がブロックされている場合、アプリケーションはその旨を説明するメッセージを表示します。エンドユーザーの国がブロックされていない場合、アプリケーションは、1 分で有効期限切れになる署名付き URL を作成し、URL に無効な文字が含まれないよう必要な代入を実行して、ユーザーのブラウザを署名付き URL にリダイレクトします。

<%@ Page Language="C#" AutoEventWireup="true" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "ht tp://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" ><head id="Head1" runat="server"> <title></title></head><body> <form id="form1" runat="server"> <div>

API Version 2014-01-31278

Amazon CloudFront 開発者ガイドMaxMind 用のサンプルコード

Page 284: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

<%=GetContent()%> </div> </form></body></html>

<%@ Import Namespace="System.Linq" %><%@ Import Namespace="System.Xml.Linq" %><%@ Import Namespace="System.Security.Cryptography" %><%@ Import Namespace="System.Net" %><%@ Import Namespace="System.IO" %>

<script runat="server">

// Key pair ID for the CloudFront key pair private const string KEYPAIR_ID = "CloudFront key pair ID";

// Private key for the CloudFront key pair. // The value is derived from opensslkey. private const string PRIVATE_KEY = "private key";

// JSON policy statement used in the expiring URL private const string POLICY = "{{\"Statement\":[{{\"Resource\":\"{0}\",\"Con dition\":{{\"DateLessThan\":{{\"AWS:EpochTime\":{1}}}}}}}]}}";

// User token to be passed in to GEO IP service call private const string USERTOKEN = "user token";

// Geolocation service URL with parameters: // {0} = User Token and {1} = IP address private const string SERVICEURL = "http://geoip3.maxmind.com/a?l={0}&i={1}";

// Array of countries to block private static readonly string[] COUNTRIES_TO_BLOCK = new String[] {"US"};

private const string BLOCKED_MSG = "Your access to this content is blocked because you're visiting from '{0}'.";

/// <summary> /// Returns the IP address coming from the request object. /// </summary> /// <returns>The IP address for the request.</returns> private string GetOriginIpAddress() { // .NET provides Request.UserHostAddress to get the // remote IP address, but this could be the IP address of the // last proxy in a chain, for example, an Elastic Load Balancer. // Instead use the HTTP_X_FORWARDED_FOR header if one exists. string forwardedIpAddresses = this.Request.ServerVariables["HTTP_X_FORWAR DED_FOR"];

if (string.IsNullOrEmpty(forwardedIpAddresses)) { // Return the UserHostAddress. return Request.UserHostAddress; } else

API Version 2014-01-31279

Amazon CloudFront 開発者ガイドMaxMind 用のサンプルコード

Page 285: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

{ // Get the last item in the list. return forwardedIpAddresses.Split(',').Last().Trim(); } }

/// <summary> /// This function returns the country code /// associated with the IP address in the request object. /// </summary> /// <returns>The country code for the request.</returns> private string GetCountryCodeFromIP() { var ipAddress = GetOriginIpAddress(); var serviceURL = String.Format(SERVICEURL, Server.UrlEncode(USERTOKEN), Server.UrlEncode(ipAddress));

try { var webReq = HttpWebRequest.Create(serviceURL); var webRes = webReq.GetResponse().GetResponseStream(); var sr = new StreamReader(webRes); var strRes = sr.ReadToEnd(); sr.Close(); return strRes.Trim().ToUpper(); } catch(Exception ex) { // There was an error in making the web request. this.Response.Write(serviceURL + "<br><br>"); this.Response.Write(ex.Message); this.Response.End(); } return null; }

/// <summary> /// This function returns a signed URL that will expire /// in 1 minute. For more information, see "Create a URL Signature /// Using C# and the .NET Framework" in the Amazon CloudFront Developer Guide: /// http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Cre ateSignatureInCSharp.html /// </summary> /// <param name="resourceUrl"></param> /// <returns></returns> private string GetSignedURL(string resourceUrl) { // Compute expiration date. var endTimeSpanFromNow = new TimeSpan(0, 1, 0); var intervalEnd = (DateTime.UtcNow.Add(endTimeSpanFromNow)) - new Date Time(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); var endTimestamp = (int)intervalEnd.TotalSeconds; // Timestamp must be a whole number var expires = endTimestamp.ToString(); var strPolicy = string.Format(POLICY, resourceUrl, expires);

// Encrypt the policy.

API Version 2014-01-31280

Amazon CloudFront 開発者ガイドMaxMind 用のサンプルコード

Page 286: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

var bufferPolicy = Encoding.ASCII.GetBytes(strPolicy); var cryptoSHA1 = new SHA1CryptoServiceProvider(); bufferPolicy = cryptoSHA1.ComputeHash(bufferPolicy); var providerRSA = new RSACryptoServiceProvider(); providerRSA.FromXmlString(PRIVATE_KEY); var rsaFormatter = new RSAPKCS1SignatureFormatter(providerRSA); rsaFormatter.SetHashAlgorithm("SHA1"); var signedPolicyHash = rsaFormatter.CreateSignature(bufferPolicy); var strSignedPolicy = System.Convert.ToBase64String(signedPolicyHash);

// Build the query string with the expiration, policy signature, // and CloudFront key pair ID. var queryString = "Expires={0}&Signature={1}&Key-Pair-Id={2}"; queryString = String.Format(queryString, Server.UrlEncode(expires), Server.UrlEncode(strSignedPolicy), Server.UrlEncode(KEYPAIR_ID)); var urlString = resourceUrl + "?" + queryString; return urlString; }

/// <summary> /// Return a message saying this is blocked because of your location, /// or return an image tag. /// </summary> /// <returns></returns> public string GetContent() { var country = GetCountryCodeFromIP(); if (COUNTRIES_TO_BLOCK.Contains(country)) { // The country returned from the call to the geolocation service // is listed in the array of blocked countries. return string.Format(BLOCKED_MSG, country); } else { // The country returned from the call to the geolocation service // is NOT listed in the array of blocked countries // Get a signed URL for the content and display it. var url = GetSignedURL("CloudFront URL"); var img = "<img src='{0}' />"; return String.Format(img, url); } }</script>

よくある質問Abstract

地理的ブロッキングに関して、よくある質問で取り上げられる一般的な問題について説明します。

ウェブサイトを訪れたエンドユーザーの正しい IP アドレスを確実に取り込むことができる方法を教えてください。

ウェブサイトを訪れたエンドユーザーのIPアドレスを取得するには、さまざまな方法を使用できます。考えられる 2 つの方法を以下に示します。

API Version 2014-01-31281

Amazon CloudFront 開発者ガイドよくある質問

Page 287: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

• ウェブサーバーがインターネットにロードバランサー経由で接続されていない場合、ウェブサーバー変数を使用してリモート IP アドレスを取得できます。ただし、この IP アドレスは常にエンドユーザーの IP アドレスであるとは限りません。エンドユーザーのインターネットへの接続方法によっては、プロキシサーバーの IP アドレスである可能性もあります。

• ウェブサーバーがインターネットにロードバランサー経由で接続されている場合、ウェブサーバー変数には、エンドユーザーのIPアドレスではなく、ロードバランサーのIPアドレスが含まれる可能性があります。この構成では、X-Forwarded-For http ヘッダーに含まれる最後の IP アドレスを使用することをお勧めします。通常、このヘッダーには複数の IP アドレスが含まれており、そのほとんどはプロキシまたはロードバランサーの IP アドレスです。ユーザーの地理的場所に関連付けられた可能性が最も高い IP アドレスが、リストの最後の IP アドレスです。

ウェブサーバーがロードバランサーに接続されていない場合は、IP アドレスのスプーフィングを回避するために、X-Forwarded-Forヘッダーではなくウェブサーバー変数を使用することをお勧めします。このドキュメントのサンプルコードでは、X-Forwarded-Forヘッダーがある場合、そのヘッダーを使用します。エンドユーザーのIPアドレスを取得するのにこの方法を使用ない場合は、サンプルコードを編集することができます。

サードパーティの位置情報サービスを使用して CloudFront 内のコンテンツへのアクセスを制限できますか?

はい。サードパーティサービスの API を呼び出すにはサードパーティサービスのアカウントが必要です。また、それに応じてサンプルコードを変更する必要があります。

このソリューションのコストはいくらですか?

サードパーティの位置情報サービスの使用コストは、使用するサービスプロバイダーによって異なります。CloudFront の現在の使用料金については、「Amazon CloudFront 料金表」のページを参照してください。CloudFront のプライベートコンテンツ機能を使用することに対して、追加のCloudFront 料金は発生しません。

国以外の場所情報を使用して、コンテンツへのアクセスをブロックすることはできますか?

使用する位置情報サービスで国コード以外の情報が提供される場合、アプリケーションでその情報を使用して、エンドユーザーにコンテンツを配信できるかどうかを判別できます。次に、このチュートリアル、または「Amazon CloudFront 開発者ガイド」の「署名付き URL を使用したプライベートコンテンツの供給」で説明されているとおりに、アプリケーションで CloudFront 署名付き URL を生成できます。

エンドユーザーに関する正しい情報がサードパーティのサービスから返されない場合はどのようにすればよいでしょうか?

サードパーティの位置情報サービスで提供されているAPIを正しく呼び出していることと、エンドユーザーの正しいIPアドレスを使用していることを確認します。サードパーティのサービスに関する問題、またはサービスから受け取ったデータの正確性に関する問題が解消されない場合は、サービス提供業者に直接お問い合わせください。

その他のサービスおよびドキュメントAbstract

位置情報サービスと CloudFront を使用して作業するときに役に立つ追加のリソースを列挙します。

Digital Element のサービスおよびドキュメントDigital Element のサービスについては、Digital Element のウェブサイトを参照してください。

API Version 2014-01-31282

Amazon CloudFront 開発者ガイドその他のサービスおよびドキュメント

Page 288: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

Digital Elementのサービスに関するドキュメントは、Digital Elementアカウントを持っているユーザーにのみ公開されます。

MaxMind のサービスおよびドキュメントMaxMind は、さまざまな位置情報サービス、および以下のサービスを含む各種ウェブサービスを提供します。

• MaxMind GeoIP Omni ウェブサービス(http://www.maxmind.com/app/web_services_omni)• MaxMind JavaScript ウェブサービス(http://www.maxmind.com/app/javascript)• 他の MaxMind ウェブサービス(http://www.maxmind.com/app/web_services)

各 MaxMind API のウェブディストリビューションには、ドキュメントとサンプルプログラムが含まれます。

詳細については、MaxMind ウェブサイトの「Web Services」を参照してください。

アマゾンウェブサービスのドキュメント• CloudFront (http://aws.amazon.com/documentation/cloudfront)• Amazon S3 (http://aws.amazon.com/documentation/s3/)

API Version 2014-01-31283

Amazon CloudFront 開発者ガイドその他のサービスおよびドキュメント

Page 289: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

CloudFront およびAdobe Flash Player を使用したオンデマンドビデオストリーミング

Abstract

Adobe Flash Player メディアプレーヤーとメディアファイルの両方を提供して、CloudFront でオンデマンド動画ファイルをストリーミングする方法について説明します。

CloudFront を使用してメディアファイルのストリーミングを行う場合、メディアファイルを提供するとともに、そのメディアファイルをエンドユーザーが再生するためのメディアプレーヤーを提供します。Adobe Flash Player を使用して、CloudFront でメディアファイルのストリーミングを行うには、以下の各トピックの手順を実行します。

1. Amazon S3 バケットを作成する (p. 284)2. CloudFront のウェブディストリビューションと RTMP ディストリビューションの作成 (p. 285)3. Adobe Flash Builder を使用して Flash プロジェクトを作成する (p. 286)4. メディアファイルと Flash Builder ファイルを Amazon S3 バケットにアップロードする (p. 287)5. メディアファイルを再生する (p. 288)

このチュートリアルでは、Adobe Flash Player を使用してビデオのストリーミングを行うのに必要なファイルを、Adobe Flash Builder バージョン 4.6 を使用して生成します。Flash Builder の詳細については、Adobe ウェブサイトの「Flash Builder」ページを参照してください。Adobe Flash Builder の無料トライアル版のダウンロードについては、ダウンロードセンター/Adobe Flash Builder 4.6 のページを参照してください。

FlashPlayerでサポートされるコーデックのリストについては、Adobeウェブサイトの「サポートされるコーデック | Flash Player」ページを参照してください。

CloudFrontを使用してメディアをストリーミングする方法については、「RTMPディストリビューションの使用 (p. 67)」を参照してください。

Amazon S3 バケットを作成するメディアファイルとメディアプレーヤーファイルは、同じ Amazon S3 バケットまたは別々のバケットにアップロードできます。このチュートリアルでは、メディアファイルとFlashPlayerメディアプレーヤーファイルの両方に対して1つのバケットを作成します。これらのファイルは、このプロセスの後半で Adobe Flash Player ファイルを作成した後にアップロードされます。

Amazon S3 バケットを作成するには

1. AWS マネジメントコンソールにサインインして Amazon S3 コンソール(https://console.aws.amazon.com/s3/)を開きます。

2. Amazon S3 コンソールで、[Create Bucket] をクリックします。3. [Create Bucket] ダイアログに、バケット名を入力します。

Important

バケットがCloudFront で正常に機能するには、その名前がDNS命名要件に沿ったものでなければなりません。詳細については、「AmazonSimpleStorageService開発者ガイド」の「バケットの制約と制限」を参照してください。

API Version 2014-01-31284

Amazon CloudFront 開発者ガイドCloudFrontおよびAdobeFlashPlayerを使用したオンデマ

ンドビデオストリーミング

Page 290: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

4. バケットのリージョンを選択します。デフォルトでは、Amazon S3 は米国スタンダードリージョンにバケットを作成します。レイテンシーを最適化するため、コストを最小化するため、また規制要件に対応するために、最寄りのリージョンを選択してください。

5. [Create] をクリックします。

CloudFrontのウェブディストリビューションとRTMPディストリビューションの作成メディアファイルのストリーミングを行うようにCloudFront を構成するには、CloudFront RTMPディストリビューションが必要です。このチュートリアルでは、Adobe Flash Builder で作成される .hlmlファイルにアクセスするための CloudFront ウェブディストリビューションも作成します。以下の 2 つの手順を実行します。

CloudFront ウェブディストリビューションを作成するには

1. Amazon CloudFront コンソール(https://console.aws.amazon.com/cloudfront/)を開きます。2. [Create Distribution] をクリックします。3. [Create Distribution Wizard] の最初のページで、デフォルトの選択である [Web] をそのまま選択

し、[Continue] をクリックします。

4. ウィザードの 2 番目のページで、[Origin Domain Name] フィールドをクリックし、「Amazon S3バケットを作成するには(p. 284)」の手順で作成したAmazonS3バケットを選択します。AmazonS3 バケットが多数ある場合は、バケット名の最初の数文字を入力することでリストをフィルタ処理できます。

5. 残りのフィールドについては、デフォルト値を受け入れて、[Create Distribution] をクリックします。

6. CloudFront がディストリビューションを作成すると、ディストリビューションの [Status] 列の値が、[InProgress] から [Deployed] に変わります。この所要時間は 15 分以内となります。

CloudFrontによってディストリビューションに割り当てられたドメイン名がディストリビューションの一覧に表示されます。(ドメイン名は、選択されたディストリビューションの [General] タブにも表示されます)。

CloudFront RTMP ディストリビューションを作成するには

1. CloudFront コンソールで [ Create Distribution] をクリックします。2. [Create Distribution Wizard] で、[RTMP] をクリックし、[Continue] をクリックします。

API Version 2014-01-31285

Amazon CloudFront 開発者ガイドCloudFrontのウェブディストリビューションとRTMPディ

ストリビューションの作成

Page 291: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

3. ウィザードの 2 番目のページで、[Origin Domain Name] フィールドをクリックし、「Amazon S3バケットを作成するには(p. 284)」の手順で作成したAmazonS3バケットを選択します。AmazonS3 バケットが多数ある場合は、バケット名の最初の数文字を入力することでリストをフィルタ処理できます。

4. [Create Distribution] ページの残りのフィールドについては、デフォルト値を受け入れて、[CreateDistribution] をクリックします。

5. CloudFront がディストリビューションを作成すると、ディストリビューションの [Status] 列の値が、[InProgress] から [Deployed] に変わります。この所要時間は 15 分以内となります。

CloudFrontによってディストリビューションに割り当てられたドメイン名がディストリビューションの一覧に表示されます。ドメイン名は、選択されたディストリビューションの [General] タブにも表示されます。

Adobe Flash Builder を使用して Flash プロジェクトを作成するAdobeFlashBuilderを使用してFlashプロジェクトを自動的に作成できます。このプロジェクトには、Adobe Flash を使用してメディアファイルを再生するのに必要なすべてのファイルが含まれます。

Adobe Flash Builder を使用して Flash プロジェクトを作成するには

1. Adobe Flash Builder を開始します。2. Flash Builder の [File] メニューで、[New] > [Flex Project] をクリックします。3. 以下の値を入力します。

• Project name: プロジェクトの名前を入力します(例: [CloudFrontStreaming])。• Folder: このプロジェクトのファイルの保存場所を指定します。デフォルトの場所を使用しない場合は、[Use default location] チェックボックスのチェックを外して、別の場所を選択します。

場所を書き留めておきます。この場所をプロセスの後半で使用します。• Application type: デフォルト値の [Web] を受け入れます。• Flex SDK version: デフォルト値の [Use default SDK] を受け入れます。

4. プロジェクトを作成するには、[Finish] をクリックします。

FlashBuilderがプロジェクトを作成すると、そのプロジェクトの名前の新しいタブがFlashBuilderのユーザーインターフェイスに表示されます。[<project-name>]タブの[Source]ボタンを選択すると、[Source] ページに数行の XML コードが表示されます。

5. [Source] ページでデフォルトの XML コードを削除します。6. 以下のXMLコードをコピーして、Adobe Flash Builderの空白の [Source]ページに貼り付けます。

<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" min Height="600"> <fx:Declarations> <!-- Place non-visual elements here, for example, services and value objects --> </fx:Declarations> <fx:Script> <![CDATA[

API Version 2014-01-31286

Amazon CloudFront 開発者ガイドAdobe Flash Builder を使用してFlashプロジェクトを作成

する

Page 292: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

import mx.events.FlexEvent; import org.osmf.net.StreamingURLResource; import org.osmf.net.FMSURL;

protected function vp_preinitializeHandler(event:FlexEvent): void { var myURL:StreamingURLResource = new StreamingURLResource("rtmp://RT MP-DISTRIBUTION-DOMAIN-NAME/cfx/st/mp4:VIDEO-FILE-NAME-WITHOUT-EXTENSION");

myURL.urlIncludesFMSApplicationInstance = true; myVideoPlayer.source = myURL; } ]]> </fx:Script> <s:VideoPlayer id="myVideoPlayer" autoPlay="true" preinitialize="vp_prein itializeHandler(event)" x="32" y="52"/></s:Application>

7. [Source] ページに貼り付けた XML コードで、以下の値を置き換えます。

• RTMP-DISTRIBUTION-DOMAIN-NAMEを RTMP ディストリビューションの CloudFront ドメイン名で置き換えます(例: s5c39gqb8ow64r.cloudfront.net)。

• VIDEO-FILE-NAME-WITHOUT-EXTENSIONをビデオファイルの名前で置き換えます。ただし、ファイル名拡張子は除外します。例えば、ビデオの名前が my-vacation.mp4 の場合、「my-vacation」とだけ入力します。

8. 変更を保存します。9. Flash Builder の [Project] メニューで、[Export Release Buildt] をクリックします。10. [Export Release Build] ダイアログボックスで、すべてのデフォルト値を受け入れて、[Finish] をク

リックします。

Flash Builder は、プロジェクトのファイルを作成し、ステップ 3 で指定された場所にファイルを保存します。

メディアファイルとFlashBuilderファイルをAmazonS3 バケットにアップロードするAdobe Flash Builder を使用して、メディアファイルのストリーミングを行うためのファイルを生成する場合、メディアファイルと Flash Builder ファイルを同じ Amazon S3 バケットにアップロードします。

メディアファイルと Flash Builder ファイルを Amazon S3 バケットにアップロードするには

1. AWS マネジメントコンソールにサインインして Amazon S3 コンソール(https://console.aws.amazon.com/s3/)を開きます。

2. [Buckets] ペインで、バケットを選択し、[Upload] をクリックします。3. [Upload – Select Files] ページで、[Add Files] をクリックし、以下のファイルを追加します。

• メディアファイル• 「Adobe Flash Builder を使用してFlashプロジェクトを作成するには (p. 286)」の手順を実行したときに Flash Builder が生成したファイル。bin-releaseディレクトリ内のファイルのみをアップロードします。bin-release/historyサブディレクトリのファイルは除外できます。

API Version 2014-01-31287

Amazon CloudFront 開発者ガイドメディアファイルと Flash Builder ファイルを Amazon S3

バケットにアップロードする

Page 293: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

4. 前のステップで追加したファイルにパブリックの読み取り許可を付与します。

a. [Set Details] をクリックします。b. [Set Details] ページで、[Set Permissions] をクリックします。c. [Set Permissions] ページで、[Make everything public] をクリックします。

5. [Start Upload] をクリックします。

メディアファイルを再生するメディアファイルを再生するには、Flash Builder でプロジェクト用に作成され、Amazon S3 バケットにアップロードされた HTML ファイルを表示します。

メディアファイルを再生するには

1. 以下の各値を連結することで、Flash Builder でプロジェクト用に作成された HTML ファイルのCloudFront URL を入力します。

http://domain-name-for-your-CloudFront-distribution/HTML-file-name

以下に例を示します。

http://d111111abcdef8.cloudfront.net/CloudFrontStreaming.html

2. ビデオプレーヤーで、矢印ボタンをクリックします。

ビデオの再生が開始されます。

API Version 2014-01-31288

Amazon CloudFront 開発者ガイドメディアファイルを再生する

Page 294: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

CloudFront、および Adobe Flash 向け Flowplayerを使用したオンデマンドビデオストリーミング

Abstract

Adobe Flash 用の Flowplayer メディアプレーヤーとメディアファイルの両方を提供して、CloudFront でオンデマンド動画ファイルをストリーミングする方法について説明します。

CloudFront を使用してメディアファイルのストリーミングを行う場合、メディアファイルを提供するとともに、そのメディアファイルをエンドユーザーが再生するためのメディアプレーヤーを提供します。Adobe Flash 向け Flowplayer メディアプレーヤーを使用してCloudFront でメディアファイルのストリーミングを行うには、以下の各トピックの手順を実行します。

1. メディアファイルと Flowplayer ファイルを Amazon S3 バケットにアップロードする (p. 289)2. CloudFront のウェブディストリビューションと RTMP ディストリビューションの作成 (p. 291)3. HTML ページにビデオを埋め込む (p. 292)

Note

CloudFront および Adobe Flash 向け Flowplayer を使用してビデオのストリーミングを行うには、ユーザーがブラウザで Javascript を有効にする必要があります。

このチュートリアルは、Adobe Flash 向け Flowplayer バージョン 3.2.12 に基づきます。FlowplayerFlash の詳細については、Flowplayer Flash のウェブサイトを参照してください。Flowplayer Flash でサポートされるビデオ形式のリストについては、Flowplayer開発環境に関するFlowplayer開発者ドキュメントでビデオ形式に関するトピックを参照してください。

Note

FlowplayerメディアプレーヤーのHTML 5バージョンがリリースされました。以下の手順は、Flowplayer Flash でのみ機能します。Flowplayer HTML5 では機能しません。

CloudFrontを使用してメディアをストリーミングする方法については、「RTMPディストリビューションの使用 (p. 67)」を参照してください。

メディアファイルと Flowplayer ファイルを AmazonS3 バケットにアップロードするメディアファイルとメディアプレーヤーファイルは、同じ Amazon S3 バケットまたは別々のバケットにアップロードできます。このチュートリアルでは、.mp4メディアファイルとFlowplayerメディアプレーヤーファイルを同じバケットにアップロードします。

メディアファイルと Flowplayer ファイルを Amazon S3 バケットにアップロードするには

1. 以下のファイルを Flowplayer のウェブサイトからダウンロードします。

• Flowplayerメディアプレーヤー。Flowplayerをダウンロードした後、.zipファイルの内容を展開します。

• flowplayer.rtmp-3.2.10.swf。このプラグインによって、Flowplayer は RTMP プロトコルを使用してビデオのストリーミングを行うことができます。このファイルは、Flowplayerウェブサイトの「RTMP」ページで入手できます。

API Version 2014-01-31289

Amazon CloudFront 開発者ガイドCloudFront、およびAdobe Flash向けFlowplayerを使用し

たオンデマンドビデオストリーミング

Page 295: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

2. AWS マネジメントコンソールにサインインして Amazon S3 コンソール(https://console.aws.amazon.com/s3/)を開きます。

3. Amazon S3 コンソールで、[Create Bucket] をクリックします。4. [Create Bucket] ダイアログに、バケット名を入力します。

Important

バケットがCloudFront で正常に機能するには、その名前がDNS命名要件に沿ったものでなければなりません。詳細については、「AmazonSimpleStorageService開発者ガイド」の「バケットの制約と制限」を参照してください。

5. バケットのリージョンを選択します。デフォルトでは、Amazon S3 は米国スタンダードリージョンにバケットを作成します。レイテンシーを最適化するため、コストを最小化するため、また規制要件に対応するために、最寄りのリージョンを選択してください。

6. [Create] をクリックします。7. [Buckets] ペインでバケットを選択し、[Upload] をクリックします。8. [Upload – Select Files] ページで、[Add Files] をクリックし、以下のファイルを追加します(ファ

イルの Flowplayer バージョン番号が異なる場合があります)。

• flowplayer.controls-3.2.12.swf• flowplayer-3.2.11.min.js• flowplayer-3.2.12.swf• flowplayer.rtmp-3.2.10.swf• .mp4 形式のメディアファイル

9. 前のステップで追加したファイルにパブリックの読み取り許可を付与します。

a. [Set Details] をクリックします。b. [Set Details] ページで、[Set Permissions] をクリックします。c. [Set Permissions] ページで、[Make everything public] をクリックします。

10. [Start Upload] をクリックします。

API Version 2014-01-31290

Amazon CloudFront 開発者ガイドメディアファイルと Flowplayer ファイルを Amazon S3 バ

ケットにアップロードする

Page 296: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

CloudFrontのウェブディストリビューションとRTMPディストリビューションの作成メディアファイルのストリーミングを行うように CloudFront を構成するには、Flowplayer ファイル用のCloudFront ウェブディストリビューションと、メディアファイル用のRTMPディストリビューションが必要です。以下の2つの手順を実行し、ウェブディストリビューションとRTMPディストリビューションを作成します。

Flowplayer ファイル用の CloudFront ウェブディストリビューションを作成するには

1. Amazon CloudFront コンソール(https://console.aws.amazon.com/cloudfront/)を開きます。2. [Create Distribution] をクリックします。3. [Create Distribution Wizard] の最初のページで、デフォルトの選択である [Web] をそのまま選択

し、[Continue] をクリックします。

4. ウィザードの2番目のページで、[OriginDomainName]フィールドをクリックし、「メディアファイルと Flowplayer ファイルを Amazon S3 バケットにアップロードするには (p. 289)」の手順で作成した Amazon S3 バケットを選択します。Amazon S3 バケットが多数ある場合は、バケット名の最初の数文字を入力することでリストをフィルタ処理できます。

5. 残りのフィールドについては、デフォルト値を受け入れて、[Create Distribution] をクリックします。

6. CloudFront がディストリビューションを作成すると、ディストリビューションの [Status] 列の値が、[InProgress] から [Deployed] に変わります。この所要時間は 15 分以内となります。

CloudFrontによってディストリビューションに割り当てられたドメイン名がディストリビューションの一覧に表示されます。(ドメイン名は、選択されたディストリビューションの [General] タブにも表示されます)。

メディアファイル用の CloudFront RTMP ディストリビューションを作成するには

1. CloudFront コンソールで [ Create Distribution] をクリックします。2. [Create Distribution Wizard] で、[RTMP] をクリックし、[Continue] をクリックします。3. ウィザードの2番目のページで、[OriginDomainName]フィールドをクリックし、「メディアファ

イルと Flowplayer ファイルを Amazon S3 バケットにアップロードするには (p. 289)」の手順で作成した Amazon S3 バケットを選択します。Amazon S3 バケットが多数ある場合は、バケット名の最初の数文字を入力することでリストをフィルタ処理できます。

4. [Create Distribution] ページの残りのフィールドについては、デフォルト値を受け入れて、[CreateDistribution] をクリックします。

API Version 2014-01-31291

Amazon CloudFront 開発者ガイドCloudFrontのウェブディストリビューションとRTMPディ

ストリビューションの作成

Page 297: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

5. CloudFront がディストリビューションを作成すると、ディストリビューションの [Status] 列の値が、[InProgress] から [Deployed] に変わります。この所要時間は 15 分以内となります。

CloudFrontによってディストリビューションに割り当てられたドメイン名がディストリビューションの一覧に表示されます。ドメイン名は、選択されたディストリビューションの [General] タブにも表示されます。

HTML ページにビデオを埋め込む次のサンプルHTMLファイルは、「CloudFront のウェブディストリビューションとRTMPディストリビューションの作成(p.291)」で作成したウェブディストリビューションとRTMPディストリビューションを使用して、ビデオのストリーミングを行う方法を示しています。このサンプルを使用してビデオのストリーミングを行うには、以下のステップを実行します。

1. 以下の HTML コードをコピーして、テキストエディターに貼り付けます。2. HTMLファイル内のコメントを確認し、以下のプレースホルダーを適用可能な値で置き換えます。

• WEB-DISTRIBUTION-DOMAIN-NAME• VIDEO-FILE-NAME• RTMP-DISTRIBUTION-DOMAIN-NAME

3. .html ファイル名拡張子を付けてファイルを保存します(例: flowplayer-example.html)。4. ウェブブラウザで .html ファイルを開き、ビデオを再生します。

<HTML><HEAD><TITLE>Amazon CloudFront Streaming with Flowplayer</TITLE> </HEAD>

<BODY>

<H1>This video is streamed by CloudFront and played in Flowplayer.</H1>

<!-- This HTML file plays an MP4 media file using Flowplayer.

Replace all instances of WEB-DISTRIBUTION-DOMAIN-NAME with the domain name of your CloudFront web distribution, for example, d111111abcdef8.cloudfront.net (begins with "d").

Update the version number that appears in the flowplayer-version filenames with the version number of the files that you downloaded from the Flowplayer website. The files may not have the same version number.

Ensure that URLs don't contain any spaces. -->

<!-- Call the Flowplayer JavaScript file. --><script src="http://WEB-DISTRIBUTION-DOMAIN-NAME/flowplayer-3.2.11.min.js"></script>

<!-- Style section. Specify the attributes of the player such as height, width, color, and so on.

API Version 2014-01-31292

Amazon CloudFront 開発者ガイドHTML ページにビデオを埋め込む

Page 298: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

--><style>a.rtmp { display:block; width:720px; height:480px; margin:25px 0; text-align:center; background-color:black;}</style>

<!-- Replace VIDEO-FILE-NAME with the name of your .mp4 video file, excluding the .mp4 filename extension. For example, if you uploaded a file called my-vacation-video.mp4, enter my-vacation-video.

If you're streaming an .flv file, use the following format:<a class="rtmp" href="VIDEO-FILE-NAME"/>--> <a class="rtmp" href="mp4:VIDEO-FILE-NAME"/>

<script type="text/javascript">$f("a.rtmp", "http://WEB-DISTRIBUTION-DOMAIN-NAME/flowplayer-3.2.12.swf", { // Configure Flowplayer to use the RTMP plugin for streaming. clip: { provider: 'rtmp' },

// Specify the location of the RTMP plugin. plugins: { rtmp: { url: 'http://WEB-DISTRIBUTION-DOMAIN-NAME/flowplayer.rtmp-3.2.10.swf',

// Replace RTMP-DISTRIBUTION-DOMAIN-NAME with the domain name of your

// CloudFront RTMP distribution, for example, s5c39gqb8ow64r.cloud front.net. netConnectionUrl: 'rtmp://RTMP-DISTRIBUTION-DOMAIN-NAME/cfx/st' } }});</script>

</BODY></HTML>

API Version 2014-01-31293

Amazon CloudFront 開発者ガイドHTML ページにビデオを埋め込む

Page 299: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

CloudFront および JW Player を使用したオンデマンドビデオストリーミング

Abstract

JW メディアプレーヤーとメディアファイルの両方を提供して、CloudFront でオンデマンド動画ファイルをストリーミングする方法について説明します。

CloudFront を使用してメディアファイルのストリーミングを行う場合、メディアファイルを提供するとともに、そのメディアファイルをエンドユーザーが再生するためのメディアプレーヤーを提供します。JW Player メディアプレーヤーを使用して CloudFront でメディアファイルのストリーミングを行うには、以下の各トピックの手順を実行します。

1. メディアファイルと JW Player ファイルを Amazon S3 バケットにアップロードする (p. 294)2. CloudFront のウェブディストリビューションと RTMP ディストリビューションの作成 (p. 295)3. ウェブページにビデオを埋め込む (p. 296)4. HTML ファイルをアップロードしてビデオを再生する (p. 298)

このチュートリアルは JW Player バージョン 6.1 の無料エディションに基づきます。JW Player の詳細については、JW Player のウェブサイトを参照してください。JW Player でサポートされるビデオ形式については、JW Player の「Features」ページを参照してください。

CloudFrontを使用してメディアをストリーミングする方法については、「RTMPディストリビューションの使用 (p. 67)」を参照してください。

メディアファイルと JW Player ファイルを AmazonS3 バケットにアップロードするメディアファイルとメディアプレーヤーファイルは、同じ Amazon S3 バケットまたは別々のバケットにアップロードできます。このチュートリアルでは、.mp4または .flv メディアファイルと、JWPlayerメディアプレーヤーファイルを同じバケットにアップロードします。

メディアファイルと JW Player ファイルを Amazon S3 バケットにアップロードするには

1. JWPlayerメディアプレーヤーのファイルがまだない場合は、JWPlayerウェブサイトの「Features」ページからプレーヤーをダウンロードします。次に、.zip ファイルの内容を展開します。

2. AWS マネジメントコンソールにサインインして Amazon S3 コンソール(https://console.aws.amazon.com/s3/)を開きます。

3. Amazon S3 コンソールで、[Create Bucket] をクリックします。4. [Create Bucket] ダイアログに、バケット名を入力します。

Important

バケットがCloudFront で正常に機能するには、その名前がDNS命名要件に沿ったものでなければなりません。詳細については、「AmazonSimpleStorageService開発者ガイド」の「バケットの制約と制限」を参照してください。

5. バケットのリージョンを選択します。デフォルトでは、Amazon S3 は米国スタンダードリージョンにバケットを作成します。レイテンシーを最適化するため、コストを最小化するため、また規制要件に対応するために、最寄りのリージョンを選択してください。

6. [Create] をクリックします。

API Version 2014-01-31294

Amazon CloudFront 開発者ガイドCloudFrontおよびJWPlayerを使用したオンデマンドビデ

オストリーミング

Page 300: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

7. [Buckets] ペインでバケットを選択し、[Upload] をクリックします。8. [Upload – Select Files] ページで、[Add Files] をクリックし、以下のファイルを追加します。

• jwplayer.flash.swf• jwplayer.html5.js• jwplayer.js• .mp4 または.flv メディアファイル

9. 前のステップで追加したファイルにパブリックの読み取り許可を付与します。

a. [Set Details] をクリックします。b. [Set Details] ページで、[Set Permissions] をクリックします。c. [Set Permissions] ページで、[Make everything public] をクリックします。

10. [Start Upload] をクリックします。

CloudFrontのウェブディストリビューションとRTMPディストリビューションの作成メディアファイルのストリーミングを行うように CloudFront を構成するには、JW Player ファイルおよびHTMLファイル用のCloudFront ウェブディストリビューションと、メディアファイル用のRTMPディストリビューションが必要です。以下の 2 つの手順を実行し、ウェブディストリビューションとRTMP ディストリビューションを作成します。

JW Player ファイル用の CloudFront ウェブディストリビューションを作成するには

1. Amazon CloudFront コンソール(https://console.aws.amazon.com/cloudfront/)を開きます。2. [Create Distribution] をクリックします。3. [Create Distribution Wizard] の最初のページで、デフォルトの選択である [Web] をそのまま選択

し、[Continue] をクリックします。

API Version 2014-01-31295

Amazon CloudFront 開発者ガイドCloudFrontのウェブディストリビューションとRTMPディ

ストリビューションの作成

Page 301: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

4. ウィザードの2番目のページで、[OriginDomainName]フィールドをクリックし、「メディアファイルとJWPlayerファイルをAmazonS3バケットにアップロードするには(p. 294)」の手順で作成した Amazon S3 バケットを選択します。Amazon S3 バケットが多数ある場合は、バケット名の最初の数文字を入力することでリストをフィルタ処理できます。

5. 残りのフィールドについては、デフォルト値を受け入れて、[Create Distribution] をクリックします。

6. CloudFront がディストリビューションを作成すると、ディストリビューションの [Status] 列の値が、[InProgress] から [Deployed] に変わります。この所要時間は 15 分以内となります。

CloudFrontによってディストリビューションに割り当てられたドメイン名がディストリビューションの一覧に表示されます。ドメイン名は、選択されたディストリビューションの [DistributionSettings] ページにも表示されます。

メディアファイル用の CloudFront RTMP ディストリビューションを作成するには

1. CloudFront コンソールで [ Create Distribution] をクリックします。2. [Create Distribution Wizard] で、[RTMP] をクリックし、[Continue] をクリックします。3. ウィザードの2番目のページで、[OriginDomainName]フィールドをクリックし、「メディアファ

イルとJWPlayerファイルをAmazonS3バケットにアップロードするには(p. 294)」の手順で作成した Amazon S3 バケットを選択します。Amazon S3 バケットが多数ある場合は、バケット名の最初の数文字を入力することでリストをフィルタ処理できます。

4. [Create Distribution] ページの残りのフィールドについては、デフォルト値を受け入れて、[CreateDistribution] をクリックします。

5. CloudFront がディストリビューションを作成すると、ディストリビューションの [Status] 列の値が、[InProgress] から [Deployed] に変わります。この所要時間は 15 分以内となります。

CloudFrontによってディストリビューションに割り当てられたドメイン名がディストリビューションの一覧に表示されます。ドメイン名は、選択されたディストリビューションの [DistributionSettings] ページにも表示されます。

ウェブページにビデオを埋め込む次の例は、「CloudFront のウェブディストリビューションと RTMP ディストリビューションの作成(p. 295)」で作成したウェブディストリビューションとRTMPディストリビューションを使用して、ウェブページにビデオを埋め込む方法を示しています。

API Version 2014-01-31296

Amazon CloudFront 開発者ガイドウェブページにビデオを埋め込む

Page 302: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

Note

JW Player セットアップウィザードを使用して、HTML ファイルに追加するコードを取得することもできます。詳細については、JW Player ウェブサイトの「Setup Wizard」ページを参照してください。

以下のステップを実行します。

1. 以下の HTML コードをコピーして、テキストエディターに貼り付けます。2. HTMLファイル内のコメントを確認し、以下のプレースホルダーを適用可能な値で置き換えます。

• WEB-DISTRIBUTION-DOMAIN-NAME• RTMP-DISTRIBUTION-DOMAIN-NAME• VIDEO-FILE-NAME

3. .html ファイル名拡張子を付けてファイルを保存します(例: jwplayer-example.html)。

<HTML><HEAD><TITLE>Amazon CloudFront Streaming with JW Player 6</TITLE>

<!-- Call the JW Player JavaScript file, jwplayer.js. Replace WEB-DISTRIBUTION-DOMAIN-NAME with the domain name of your CloudFront web distribution, for example, d1234.cloudfront.net (begins with "d"). This causes a browser to download the JW Player file before streaming begins.-->

<script type='text/javascript' src='https://WEB-DISTRIBUTION-DOMAIN-NAME/jwplay er.js'></script>

</HEAD>

<BODY><H1>This video is streamed by CloudFront and played by JW Player 6.</H1>

<!-- Replace RTMP-DISTRIBUTION-DOMAIN-NAME with the domain name of your RTMP distribution, for example, s5678.cloudfront.net (begins with "s").

Replace VIDEO-FILE-NAME with the name of your .mp4 or .flv video file, including the .mp4 or .flv filename extension. For example, if you uploaded my-vacation.mp4, enter my-vacation.mp4.-->

<div id='mediaplayer'></div><script type="text/javascript"> jwplayer('mediaplayer').setup({ file: "rtmp://RTMP-DISTRIBUTION-DOMAIN-NAME/cfx/st/VIDEO-FILE-NAME", width: "720", height: "480" });</script>

</BODY></HTML>

API Version 2014-01-31297

Amazon CloudFront 開発者ガイドウェブページにビデオを埋め込む

Page 303: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

HTML ファイルをアップロードしてビデオを再生する「ウェブページにビデオを埋め込む(p. 296)」で作成したHTMLファイルを使用してビデオを再生するには、ファイルをAmazonS3バケットにアップロードし、CloudFrontディストリビューションのURLを使用します。

HTML ファイルをアップロードしてビデオを再生するには

1. Amazon S3 コンソール(https://console.aws.amazon.com/s3/)を開きます。2. バケットを選択し、[Upload] をクリックします。3. [Upload – Select Files] ページで、[Add Files] をクリックし、HTML ファイルを追加します。4. 前のステップで追加した HTML ファイルにパブリックの読み取り許可を付与します。

a. [Set Details] をクリックします。b. [Set Details] ページで、[Set Permissions] をクリックします。c. [Set Permissions] ページで、[Make everything public] をクリックします。

5. [Start Upload] をクリックします。6. ビデオを再生するには、ウェブブラウザで次の URL を入力します。

http://domain name of your CloudFront web distribution/your HTML file name

API Version 2014-01-31298

Amazon CloudFront 開発者ガイドHTML ファイルをアップロードしてビデオを再生する

Page 304: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

Amazon CloudFront リソース

Abstract

Amazon CloudFront を使って作業する際に役立つ追加のリソースを列挙します。

CloudFront は、使い方は簡単ですが、機能は豊富です。ここに列挙されているリソースは CloudFrontについて理解を深めるのに役立ちます。

Topics• Amazon CloudFront の追加ドキュメント (p. 299)• サポート情報 (p. 300)• CloudFront 開発者用ツールと SDK (p. 300)• CloudFront ログ作成の使用 (p. 300)• Amazon Web Services Blog によるその他のヒント (p. 300)• オブジェクトの無効化 (p. 301)• ストリーミングメディアの配信 (p. 301)• プライベートコンテンツの構成ツール (p. 301)• コンテンツマネジメントシステムと CloudFront の使用 (p. 302)

Amazon CloudFront の追加ドキュメントこのサービスを利用する際に役立つ関連リソースは以下の通りです。

• 『Amazon CloudFront API リファレンス』– APIのアクション、パラメータ、データ型について詳しく説明します。サービスから返されるエラーのリストもあります。

• 「ドキュメント履歴 (p. 303)」 – 現在および以前のリリースに関する高水準の概要です。新機能、修正点、既知の問題、ドキュメントの改善に特に注意を払っています。

• Amazon Simple Storage Service(S3)の技術文書 – Amazon S3 サービスについて詳しく解説します。初歩的な入門編、サービスの概要、プログラミングリファレンス、APIリファレンスといった内容が含まれています。

• Amazon CloudFront の製品情報 – CloudFront に関する情報の基本となるウェブページで、サービスの特徴や料金表も掲載されています。

• 利用規約–当社の著作権、商標、お客様のアカウント、ライセンス、サイトへのアクセス、およびその他のトピックに関する詳細情報です。

API Version 2014-01-31299

Amazon CloudFront 開発者ガイドAmazon CloudFront の追加ドキュメント

Page 305: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

サポート情報CloudFront はいくつかの形態でサポートを受けることができます。

• ディスカッションフォーラム – CloudFront に関係する技術的な質問を討議するための開発者向けコミュニティフォーラムです。

• AWS サポートセンター – このサイトは、お客様の最近のサポート事例、AWS Trusted Advisor の助言とヘルスチェックの結果に関する情報をひとつにまとめ、ディスカッションフォーラム、技術上のよくある質問、サービス状態ダッシュボード、AWS サポートプランに関する情報へのリンクも示しています。

• AWS プレミアムサポート情報 – 1 対 1 での迅速な対応を行うサポートチャネルである AWS プレミアムサポートに関する情報のメインウェブページです。プレミアムサポートは、AWS インフラストラクチャサービスでのアプリケーションの構築および実行を支援します。

• お問い合わせ–請求やアカウントに関するお問い合わせ用のリンクです。技術的な質問の場合は、上記のディスカッションフォーラムまたはサポートリンクをご利用ください。

CloudFront 開発者用ツールと SDKドキュメント、コード例、リリースノートなど、AWS を利用して革新的なアプリケーションを構築するのに役立つ情報を含む開発者用リソースへのリンクについては、開発者用ツールのページを参照してください。

また、Amazon Web Services にはCloudFront にプログラムからアクセスするためのソフトウェア開発キット(SDK)が用意されています。SDKライブラリは、サービスリクエストに対する署名の暗号化、リクエストの再試行、エラーレスポンスの処理など、多数の一般的なタスクを自動化します。

• AWS SDK for Java – セットアップとその他のドキュメント• AWS SDK for .NET – セットアップとその他のドキュメント• AWS SDK for PHP – セットアップとその他のドキュメント• AWS SDK for Ruby – セットアップとその他のドキュメント

CloudFront ログ作成の使用以下のAWSブログ投稿では、CloudFrontログ作成の拡張機能の他に、アクセスログを分析するためのいくつかの方法が述べられています。

• AWS Blog – Amazon CloudFront リクエストのログ作成(HTTP 経由で配信するコンテンツの場合)• AWS Blog – Amazon CloudFront でストリーミングのアクセスログをサポート(RTMP経由で配信するコンテンツの場合)

• AWS Blog – CloudFront のログ機能の拡張 – クエリ文字列

AmazonWebServices Blogによるその他のヒントAWS Blog には、CloudFront を使用するときに役立つ投稿がいくつかあります。

• ウェブサイトのパフォーマンスの向上 – グローバルアプリケーションのパフォーマンスの向上• HTTPS を使ったセキュアな接続の作成 – Amazon CloudFront: HTTPS アクセス、別のエッジロケーション、料金の低減

• カスタムオリジンの使用 – Amazon CloudFront の新機能: カスタムオリジン

API Version 2014-01-31300

Amazon CloudFront 開発者ガイドサポート情報

Page 306: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

• Amazon CloudFront 用のサードパーティ製ツールについての詳細情報 – CloudFront 管理ツールのまとめ

オブジェクトの無効化CloudFront から提供される無効化方法に加えて、以下のサードパーティツールを使用してオブジェクトを無効にすることができます。

Note

これらのツールは、AmazonWebServicesとは関係のないサードパーティベンダーが開発したものです。これらのツールの使用方法については、各ベンダーのドキュメントを参照するか、各ベンダーにお問い合わせください。

• CloudBuddy Personal – http://m1.mycloudbuddy.com/index.html• CloudBerry Explorer – http://cloudberrylab.com• Ylastic – http://ylastic.com• Cyberduck – http://cyberduck.ch• Bucket Explorer – http://www.bucketexplorer.com• CloudFront Invalidator – http://www.swook.net/p/cloudfront-invalidator.html• CDN Planet CloudFront Purge Tool – http://www.cdnplanet.com/tools/cloudfront-purge-tool/

Github(https://github.com)でコードサンプルを検索することもできます。「CloudFront invalidation」という語句で検索してみてください。

ストリーミングメディアの配信以下のサードパーティソースはストリーミングメディアの配信に関する追加情報を提供します。

• StreamingMedia.com – Amazon CloudFront ストリーミングの使用開始方法• Ioncannon.net –• Amazon S3 と CloudFront Proof of Concept を使用した iPhone Windowed HTTP Live Streaming• HTTP Live Video Stream セグメンターとディストリビューター• iPhone Windowed HTTP Live Streaming サーバー

• Flowplayer.org – 帯域幅検知: 視聴者全員に高品質で届ける• JW Player – RTMP ストリーミングについて

プライベートコンテンツの構成ツールCloudFront から提供される方法に加えて、以下のサードパーティツールでも、プライベートコンテンツ用のディストリビューションを構成するためのウェブフォームが提供されます。一部のツールでは、署名付き URL を作成するためのウェブフォームも用意されています。

• CloudBuddy –プライベートコンテンツ用のディストリビューションの構成、および署名付きURLの作成をサポートします。

CloudFrontプライベートコンテンツでCloudBuddyを使用する方法の詳細については、「CloudFrontディストリビューションおよびプライベートコンテンツの構成」を参照してください。

API Version 2014-01-31301

Amazon CloudFront 開発者ガイドオブジェクトの無効化

Page 307: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

このツールは、CSS CorpLabs で実施された、CloudFront プライベート URL の .NET 実装に関する研究に基づきます。

• Bucket Explorer – プライベートコンテンツ用のディストリビューションの構成をサポートします。

CloudFront プライベートコンテンツでBucket Explorer を使用する方法については、「バケットでプライベートディストリビューションを作成する方法」を参照してください。

• CloudBerry – プライベートコンテンツ用のディストリビューションの構成、および署名付き URL の作成をサポートします。

CloudFrontプライベートコンテンツでCloudBerryを使用する方法については、「CloudBerryを使用してCloudFrontストリーミング用のプライベートコンテンツを構成する方法」を参照してください。

デフォルトのルートオブジェクトの設定については、「CloudBerryS3Explorerを使用したCloudFrontデフォルトオブジェクトの設定方法」を参照してください。

プライベートコンテンツの詳細については、AWS Blog の「Amazon CloudFront の新機能: プライベートコンテンツ」を参照してください。

コンテンツマネジメントシステムとCloudFrontの使用

いくつかの人気の高いコンテンツ管理システムと共に CloudFront を使用することができます。以下のリンクでその方法がわかります。

Drupal

• Drupal.org – CloudFront のインストール• DrupalModules.com – CloudFront Drupal モジュール

Sitecore

• NTT Data Advisory Service – AWS CloudFront の Sitecore 統合

WordPress

• om4.com – Amazon CloudFront と WordPress およびWordPress MU の使用• WordPress.org – W3 Total Cache• WordPress.org – Amazon S3 のシンプルなアップロード形式• WordPress.org – OSSDL CDN Off リンカー• WordPress.org – 個人用 CDN• Inquisiter.com – WordPress ブログにおける Amazon CloudFront CDN

API Version 2014-01-31302

Amazon CloudFront 開発者ガイドコンテンツマネジメントシステムと CloudFront の使用

Page 308: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

ドキュメント履歴

Abstract

CloudFront のドキュメントの改訂日、関連リリース、重要な変更点が記載されています。

次の表に、CloudFront の前回のリリース以後に行われた、ドキュメントの重要な変更を示します。

• API バージョン: 2014-01-31• ドキュメントの最終更新日: 2014 年 5 月 16 日

日付変更説明変更点

2014 年 5 月 16日

このリリースでは、CloudFront がカスタムオリジンに転送するHTTPS ビューアリクエストについて、オリジンサーバーの SSL証明書のドメイン名の1つが [Origin Domain Name] で指定したドメイン名と一致するかどうかが確認されます。ドメイン名が一致しない場合、CloudFront は、ビューアリクエストに対して、リクエストされたオブジェクトではなく、HTTPステータスコード502(不正なゲートウェイ)を返します。この機能を有効にするには、[Match Viewer] で [Origin Protocol Policy] を指定する必要があります。詳細については、「ビューア、CloudFront、およびオリジン間の通信に対してHTTPSを要求する方法(p. 179)」を参照してください。

新機能

2014 年 4 月 28日

CloudFront のこのリリースで、ウェブディストリビューションのCloudFront アクセスログに新しいフィールドが導入されます。time-takenフィールドは、CloudFrontエッジサーバーがビューアのリクエストを受け取った時間と、CloudFront がレスポンスの最終バイトをサーバーの出力キューに書き込んだ時間との差(秒数)をサーバー側で測定して示します。ウェブディストリビューションのCloudFrontアクセスログのファイル形式の詳細については、「ウェブディストリビューションのログファイル形式(p.199)」を参照してください。

新機能

2014 年 3 月 18日

「CloudFront および Adobe Media Server 5.0 を使用したライブHTTPストリーミング(p. 209)」で、AdobeMedia Serverをサブスクライブする手順と AWS CloudFormation スタックを作成する手順が更新されました。

更新版

API Version 2014-01-31303

Amazon CloudFront 開発者ガイド

Page 309: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

日付変更説明変更点

2014 年 3 月 13日

CloudFront のこのリリースで、CloudFront 使用状況レポートのデータのサブセットを含む使用状況グラフが導入されます。詳細については、「CloudFront 使用状況グラフ (p. 12)」を参照してください。

新機能

2014 年 3 月 5日

CloudFront のこのリリースで、以下の新機能が導入されます。

• ビューアのHTTPリクエストをHTTPSにリダイレクト:ビューアの HTTP リクエストを HTTPS にリダイレクトするようにCloudFront を構成できるようになりました。詳細については、「ビューア、CloudFront、およびオリジン間の通信に対してHTTPS を要求する方法 (p. 179)」を参照してください。

• 代替ドメイン名による HTTPS リクエストの Server NameIndication(SNI): オブジェクトの URL にドメイン名を使用している場合、Server Name Indication(SNI)をサポートするブラウザでHTTPSリクエストを処理するようCloudFront を構成できるようになりました。詳細については、「代替ドメイン名と HTTPS の使用 (p. 181)」を参照してください。

新機能

2014 年 2 月 20日

CloudFrontのこのリリースで、Microsoftスムーズストリーミング形式でエンコードされたメディアファイルの HTTP オンデマンドストリーミングのサポートが導入されます。詳細については、「オンデマンドスムーズストリーミングの構成 (p. 65)」を参照してください。

新機能

2014 年 2 月 7日

CloudFront のこのリリースで、HTTP 1.1 のサポートが導入されます。詳細については、「転送エンコード(p. 123)」を参照してください。

さらに、オンデマンドプログレッシブダウンロード、オンデマンド Apple HTTP Live Streaming に関するドキュメントが追加されました。詳細については、『Amazon CloudFront 開発者ガイド』の「オンデマンドプログレッシブダウンロードの構成」および「オンデマンドApple HTTP Live Streaming(HLS)の構成」を参照してください。

新機能

2013年 12月 18日

CloudFront のこのリリースで、地域制限が導入されます。特定の国のユーザーをお客様のコンテンツにアクセスできなくする必要がある場合、CloudFront ウェブディストリビューションを構成して次のいずれかの設定を行うことができます。

• ホワイトリストに指定された国のユーザーだけにコンテンツへのアクセスを許可します。

• ブラックリストに指定された国のユーザーがコンテンツにアクセスできないようにします。

詳細については、「コンテンツの地理的ディストリビューションの制限 (p. 63)」を参照してください。

新機能

API Version 2014-01-31304

Amazon CloudFront 開発者ガイド

Page 310: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

日付変更説明変更点

2013年 10月 15日

CloudFront のこのリリースで、以下の機能が導入されます。

• DELETE、OPTIONS、PATCH、POST、PUT のサポート:CloudFront に送信するリクエストに DELETE、OPTIONS、PATCH、POST、PUTなどのHTTPメソッドを使用できるようになりました。詳細については、「許可される HTTP メソッド (p. 53)」を参照してください。

• ディストリビューションタイプの名称変更: CloudFront ダウンロードディストリビューションはウェブディストリビューションに、ストリーミングディストリビューションはRTMPディストリビューションにそれぞれ名称が変更になりました。

• ウェブディストリビューションのアクセスログの新しい列:CloudFront ウェブディストリビューションのアクセスログの各リクエストに 3 つの列 x-host-header、cs-protocol、cs-bytesが追加されました。詳細については、「ウェブディストリビューションのログファイル形式(p. 199)」を参照してください。

新機能

2013 年 9 月 23日

CloudFront のこのリリースで、以下の機能が導入されます。

• カスタムエラーページ:「404, page not found」などデフォルトの HTTP エラーメッセージの代わりに、お客様のブランドと独自のコンテンツをエラーページに表示できるようになりました。ウェブサーバーを利用できないときに表示される静的なページにカスタムエラーページを使うこともできます。詳細については、「エラーレスポンスのカスタマイズ (p. 99)」を参照してください。

• エラーレスポンスの構成可能キャッシュ期間: 「エラーキャッシュ最短 TTL」と呼ばれることもあります。この機能により、CloudFront が CloudFront エッジロケーションに各エラーをキャッシュしておく時間を指定できます。これまで CloudFrontはすべてのエラー応答を 5 分間キャッシュしていましたが、今後は存続期間を自由に指定して、エラーが起きた後にCloudFrontがオリジンに問い合わせる頻度を制御できるようになりました。詳細については、「エラーレスポンスのカスタマイズ (p. 99)」を参照してください。

新機能

2013 年 9 月 18日

CloudFront 代替ドメイン名(CNAME)に * ワイルドカードを含めることが可能になりました(例:*.example.com)。この機能は、ドメインおよびサブドメイン内のオブジェクトに対するすべてのリクエストを、CloudFront ディストリビューションにルーティングする場合に役立ちます。詳細については、「代替ドメイン名(CNAME)を使用する (p. 33)」を参照してください。

新機能

2013 年 9 月 10日

Wowza Media Server 3.6 を使用したライブストリーミングに関する説明が追加されました。詳細については、「Wowza StreamingEngine 4.0を使用したライブHTTPストリーミング(p. 247)」を参照してください。

更新版

API Version 2014-01-31305

Amazon CloudFront 開発者ガイド

Page 311: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

日付変更説明変更点

2013 年 7 月 31日

Adobe Flash Media Server を使用したライブストリーミングに関するドキュメントが、Adobe Media Server バージョン 5.0 を使用したライブストリーミングに関するドキュメントで置き換えられました。詳細については、「CloudFrontおよびAdobeMediaServer5.0を使用したライブHTTPストリーミング (p. 209)」を参照してください。

更新版

2013 年 6 月 11日

CloudFront のこのリリースで、以下の機能が導入されます。

• AWS 署名バージョン 4 を使用した認証: CloudFront API バージョン 2013-05-12 以降を使用する場合、AWS 署名バージョン4 を使用してリクエストを認証する必要があります。詳細については、『Amazon CloudFront API リファレンス』の「RESTリクエストの認証」を参照してください。

• CloudFront 代替ドメイン名の SSL: CloudFront で HTTPS の使用がサポートされるようになり、オブジェクトのURL内で独自のドメイン名を使用できるようになりました(例:http://www.example.com/image.jpg)。詳細については、「代替ドメイン名とHTTPSの使用 (p. 181)」を参照してください。

また、Amazon Route 53 の同時リリースによって、以下のCloudFront 関連機能が導入されます。

• CloudFront ディストリビューションへの Route 53 エイリアス:DNS クエリを CloudFront ディストリビューションの代替ドメイン名にルーティングするエイリアスリソースレコードセットをAmazon Route 53で作成できるようになりました。この機能は、Zone Apex での代替ドメイン名(example.com)およびサブドメインの代替ドメイン名(www.example.com)の両方に対して使用できます。詳細については、「Amazon Route 53 開発者ガイド」の「Routing Queries to an Amazon CloudFrontDistribution」を参照してください。

新機能

2012 年 9 月 27日

CloudFront のこのリリースで、以下の機能が導入されます。

• AWSManagement Consoleのプライベートコンテンツのフィールド: 以前は CloudFront API のみを使用して構成または変更できていたプライベートコンテンツの設定が、AWSManagementConsoleで構成または変更できるようになりました。これには、オリジンアクセスアイデンティティおよび信頼された署名者の設定が含まれます。また、プライベートコンテンツに関するドキュメントが再編成されて明確になりました。

詳細については、「CloudFront を使用してプライベートコンテンツを供給する (p. 126)」を参照してください。

• AWSManagement Console の改良: AWSManagement Consoleのウィザードとダイアログボックスのサイズが変更され、タブレットコンピューターでの表示が簡素化されました。他のビューアについても、これらの外観が損なわれることはありません。また、[CreateDistribution]ウィザードのページ数が少なくなり、新しいディストリビューションの作成処理が簡素化されました。

新機能

API Version 2014-01-31306

Amazon CloudFront 開発者ガイド

Page 312: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

日付変更説明変更点

2012 年 9 月 5日

CloudFront のこのリリースで、以下の機能が導入されます。

• ウェブディストリビューションのアクセスログの改良: ウェブディストリビューションの CloudFront アクセスログに以下のフィールドが含まれるようになりました。• 名前値のペアおよび属性を含む、ビューアの各リクエストのCookie ヘッダー。このフィールドはオプションです。

• リクエストの結果タイプ(Hit、RefreshHit、Miss など)。• 各リクエストを一意に識別する識別子(CloudFront リクエスト ID)。

詳細については、「ウェブディストリビューションのログファイル形式 (p. 199)」を参照してください。

• ウェブディストリビューションの Cookie サポート: CloudFrontで Cookie および関連するCookie 属性をオリジンに転送するかどうかを選択できるようになりました。転送する場合は、すべてのCookie を送信するか、または選択した一連のCookie のみを送信するかも選択できます。詳細については、「CloudFrontが Cookie の転送、キャッシュ、およびログ作成を行う方法 (p. 86)」を参照してください。

• ウェブディストリビューションとRTMPディストリビューションの価格クラス: CloudFront サービスに支払う上限価格に対応する価格クラスを選択できるようになりました。コスト削減を優先し、一部の地理的リージョンにおけるレイテンシーの延長を容認できるのであれば、使用するCloudFrontリージョンが限定された価格クラスを選択することもできます。詳細については、「CloudFront ディストリビューションの価格クラスを選択する (p. 37)」を参照してください。

新機能

2012 年 6 月 22日

CloudFront のこのリリースで、以下の機能が導入されます。

• CloudFront コンソールを使用して、オブジェクトを無効にできるようになりました。詳細については、「オブジェクトの無効化(ウェブディストリビューションのみ) (p. 94)」を参照してください。

• タブレットデバイスでの表示が適切にサポートされるようにCloudFront コンソールが更新されました。

新機能

API Version 2014-01-31307

Amazon CloudFront 開発者ガイド

Page 313: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

日付変更説明変更点

2012 年 5 月 13日

CloudFront のこのリリースで、ウェブディストリビューションの以下の機能が導入されます。

• クエリ文字列をオリジンに転送できます。詳細については、「CloudFront がクエリ文字列パラメータの転送、キャッシュ、およびログ作成を行う方法 (p. 84)」を参照してください。

• 最大10個のオリジンを指定できます。詳細については、「ウェブディストリビューションを作成または更新する場合に指定する値 (p. 46)」を参照してください。

• パスのパターンを指定できます。詳細については、「ウェブディストリビューションを作成または更新する場合に指定する値 (p. 46)」を参照してください。

また、CloudFrontコンソールが更新されました。詳細については、「ウェブディストリビューションを作成するためのタスクリスト (p. 42)」および「RTMP を使用するストリーミングメディアファイルのタスクリスト (p. 69)」を参照してください。

「Amazon CloudFront 入門ガイド」が「Amazon CloudFront 開発者ガイド」に統合され、「Amazon CloudFront 開発者ガイド」が再編成されて使いやすくなりました。

新機能

2012 年 4 月 4日

オブジェクトの操作に関するドキュメントが再編成されて明確になりました。改訂版のドキュメントについては「オブジェクトの使用 (p. 81)」を参照してください。

更新版

2012 年 4 月 1日

Microsoft IIS Media Services バージョン 4.1 を使用したライブストリーミングに関するドキュメントが追加されました。詳細については、「Amazon CloudFrontと IIS Media Services 4.1を使用したライブスムーズストリーミング(p. 230)」を参照してください。

新規ドキュメント

2012 年 3 月 29日

Adobe Flash Media Server を使用したライブストリーミングに関するドキュメントが、Adobe Flash Media Server バージョン 4.5に関する情報で更新されました。

2013年 7月 31日の時点で、CloudFront は、Adobe Media Server5.0を使用したライブストリーミングをサポートします。詳細については、「CloudFront およびAdobe Media Server 5.0 を使用したライブ HTTP ストリーミング (p. 209)」を参照してください。

更新版

2012 年 3 月 15日

CloudFront のこのリリースでは、ウェブディストリビューションの最小TTL値が引き下げられています。ディストリビューションの作成時に最小TTLを指定しなかった場合、最小TTLはデフォルトで 0 秒に設定されます。詳細については、以下のドキュメントを参照してください。

• CloudFront 製品ページ• 「Amazon S3 オリジンにおけるリクエストとレスポンスの動作 (p. 110)」の「キャッシュ期間および最小 TTL」

• 「カスタムオリジンの場合のリクエストとレスポンスの動作 (p. 116)」の「キャッシュ期間および最小 TTL」

• 「DistributionConfig Complex Type」の CachingBehaviorエレメント。

新機能

API Version 2014-01-31308

Amazon CloudFront 開発者ガイド

Page 314: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

日付変更説明変更点

2012 年 2 月 2日

Adobe Flash Media Server を使用したライブストリーミングに関するトピックと、地理的ブロッキングに関するトピックが、別のドキュメントからこのガイドの「CloudFront チュートリアル (p. 208)」に移動されました。

更新版

2011 年 4 月 27日

CloudFront のこのリリースでは、AWS Management Console でカスタムオリジンを使用してディストリビューションを作成することで、ディストリビューションを HTTPS に排他的に制限できるほか、デフォルトのルートオブジェクトを指定できます。詳細については、Amazon CloudFront の製品ページを参照するか、「Amazon CloudFront 開発者ガイド」の以下のいずれかのトピックを参照してください。

• ウェブディストリビューションを作成するためのタスクリスト (p. 42)

• HTTPS 接続を使用したオブジェクトへのアクセス (p. 178)• デフォルトルートオブジェクトの指定(ウェブディストリビューションのみ) (p. 104)

新機能

2011 年 3 月 10日

CloudFront のこのリリースには、AWS Identity and AccessManagement (IAM)との統合が含まれます。詳細については、Amazon CloudFront の製品ページを参照するか、「AmazonCloudFront開発者ガイド」の「IAMを使用してCloudFrontリソースへのアクセスをコントロールする (p. 189)」を参照してください。

新機能

2010 年 11 月 9日

CloudFront のこのリリースには、カスタムオリジンをサポートする新しいAPIが含まれます。詳細については、AmazonCloudFrontの製品ページを参照するか、「AmazonCloudFront開発者ガイド」の「ウェブディストリビューションを作成するためのタスクリスト (p. 42)」を参照してください。

新機能

2010 年 8 月 31日

CloudFront のこのリリースには、オブジェクトを無効にするための新しいAPIが含まれます。詳細については、AmazonCloudFrontの製品ページを参照するか、「AmazonCloudFront開発者ガイド」の「オブジェクトの無効化(ウェブディストリビューションのみ) (p. 94)」を参照してください。

新機能

2010 年 8 月 5日

CloudFront で、デフォルトのルートオブジェクトをディストリビューションに割り当てる機能がサポートされるようになりました。詳細については、「デフォルトルートオブジェクトの指定(ウェブディストリビューションのみ)(p. 104)」を参照してください。

新機能

2010 年 7 月 14日

HTTP ディストリビューションのアクセスログの作成で、クエリ文字列パラメータ用のフィールドが含まれるようになりました。詳細については、「ウェブディストリビューションのログファイル形式 (p. 199)」を参照してください。

新機能

2010 年 6 月 7日

HTTPSを使用するセキュアな接続のサポートが追加されました。詳細については、「HTTPS接続を使用したオブジェクトへのアクセス (p. 178)」を参照してください。

新機能

API Version 2014-01-31309

Amazon CloudFront 開発者ガイド

Page 315: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

日付変更説明変更点

2010 年 5 月 13日

RTMPコンテンツのログ作成が追加されました。詳細については、「RTMPディストリビューションのログファイル形式(p. 201)」を参照してください。

新機能

2010 年 4 月 13日

オブジェクトがエッジサーバーに存在できる最小時間が24時間から 1 時間に短縮されました。ただし、デフォルトは 24 時間のままです。詳細については、有効期限切れに関する説明 (p. 90)を参照してください。

新機能

2010 年 3 月 28日

Real-Time Messaging Protocol (RTMP)経由でプライベートのストリーミングコンテンツを供給し、コンテンツのダウンロードを禁止する機能が追加されました。詳細については、「CloudFrontを使用してプライベートコンテンツを供給する(p. 126)」を参照してください。

新機能

2009年 12月 15日

Real-Time Messaging Protocol (RTMP)接続経由でストリーミングコンテンツを配信する機能が追加されました。詳細については、「RTMP を使用するストリーミングメディアファイルのタスクリスト (p. 69)」を参照してください。

新機能

2009年 11月 11日

HTTP 経由で配信されたコンテンツへのアクセスを制限する機能が追加されました。詳細については、「CloudFront を使用してプライベートコンテンツを供給する(p. 126)」を参照してください。

新機能

2009年 11月 11日

API リファレンスに関する資料を独自のガイドに分割しました。「Amazon CloudFront 開発者ガイド」には、CloudFront の使用方法に関する一般的な情報が含まれます。「AutoScalingAPIリファレンス」には、コントロール API のリクエスト、レスポンス、およびエラーに関する詳細情報が含まれます。

新規ガイド

API Version 2014-01-31310

Amazon CloudFront 開発者ガイド

Page 316: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

AWS Glossary

Numbers and Symbols (p. 311) | A (p. 311) | B (p. 314) | C (p. 314) | D (p. 316) | E (p. 317) | F (p. 319) | G (p. 319) | H (p. 319)| I (p. 320) | J (p. 321) | K (p. 321) | L (p. 321) |M (p. 322) | N (p. 323) | O (p. 324) | P (p. 324) | Q (p. 326) | R (p. 326) | S (p. 328)| T (p. 330) | U (p. 331) | V (p. 331) | W (p. 332) | X, Y, Z (p. 332)

Numbers and Symbols100-continue A method that enables a client to see if a server can accept a request before

actually sending it. For large PUTs, this method can save both time and bandwidthcharges.

ANumbers and Symbols (p. 311) | A (p. 311) | B (p. 314) | C (p. 314) | D (p. 316) | E (p. 317) | F (p. 319) | G (p. 319) | H (p. 319)| I (p. 320) | J (p. 321) | K (p. 321) | L (p. 321) |M (p. 322) | N (p. 323) | O (p. 324) | P (p. 324) | Q (p. 326) | R (p. 326) | S (p. 328)| T (p. 330) | U (p. 331) | V (p. 331) | W (p. 332) | X, Y, Z (p. 332)

access control list A document that defines who can access a particular bucket or object. Eachbucket and object in Amazon S3 has an ACL. The document defines what eachtype of user can do, such as write and read permissions.

access identifiers See credentials.

access key rotation A method to increase security by changing the AWS access key ID. This methodenables you to retire an old key at your discretion.

access policy language A language for writing documents (that is, policies) that specify who can accessa particular AWS resource and under what conditions.

account The AWS account associated with a particular AWS login ID and password.

IAM: The AWS account that centrally controls all the resources created under itsumbrella and pays for all AWS activity for those resources. The AWS accounthas permission to do anything and everything with all the AWS account resources.This is in contrast to the user (p. 331).

account activity A web page showing your month-to-date AWS usage and costs. The accountactivity page is located at http://aws.amazon.com/account-activity.

action An API function. Also called operation or call. The activity the principal (p. 325)has permission to perform. The action is B in the statement "A has permission to

API Version 2014-01-31311

Amazon CloudFront 開発者ガイド

Page 317: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

do B to C where D applies." For example, Jane sends a request to Amazon SQSwith Action=ReceiveMessage.

Amazon CloudWatch: The response initiated by the change in an alarm's state:for example, from OK to ALARM. The state change may be triggered by a metricreaching the alarm threshold, or by a SetAlarmState request. Each alarm canhave one or more actions assigned to each state. Actions are performed onceeach time the alarm changes to a state that has an action assigned, such as anAmazon Simple Notification Service notification, an Auto Scaling policy executionor an Amazon EC2 instance stop/terminate action.

administrative suspension Auto Scaling might suspend processes for Auto Scaling group (p. 313) thatrepeatedly fail to launch instances. Auto Scaling groups that most commonlyexperience administrative suspension have zero running instances, have beentrying to launch instances for more than 24 hours, and have not succeeded inthat time.

alarm An item that watches a single metric over a specified time period, and triggers anAmazon SNS topic (p. 330) or an Auto Scaling policy (p. 325) if the value of themetric crosses a threshold value over a predetermined number of time periods.

allow An allow results from a statement that has effect=allow, assuming any statedconditions are met. Example: Allow requests received before 1:00 p.m. on April30, 2010. An allow overrides any default deny (p. 317), but never an explicitdeny (p. 318).

Amazon CloudWatch A web service that enables you to monitor and manage various metrics, andconfigure alarm actions based on data from those metrics.See Also http://aws.amazon.com/cloudwatch.

Amazon Elastic Block Store A service that provides block level storage volumes for use with EC2 instances.See Also http://aws.amazon.com/ebs.

Amazon EBS-backed AMI Instances launched from this type of AMI use an Amazon EBS volume as theirroot device. Compare this with instances launched from Amazon S3-backed AMIs,which use the instance store as the root device.

Amazon Elastic Compute Cloud A web service that enables you to launch and manage Linux/UNIX and Windowsserver instances in Amazon's data centers.See Also http://aws.amazon.com/ec2.

Amazon EC2 VM ImportConnector

See http://aws.amazon.com/ec2/vmimport.

Amazon Elastic MapReduce A web service that makes it easy to process large amounts of data efficiently.Amazon EMR uses Hadoop processing combined with several AWS products todo such tasks as web indexing, data mining, log file analysis, machine learning,scientific simulation, and data warehousing.See Also http://aws.amazon.com/elasticmapreduce.

Amazon Machine Image An encrypted machine image stored in Amazon Elastic Block Store (p. 312) orAmazon Simple Storage Service. AMIs are like a template of a computer's rootdrive. They contain the operating system and can also include software and layersof your application, such as database servers, middleware, web servers, and soon.

Amazon Relational DatabaseService

A web service that makes it easier to set up, operate, and scale a relationaldatabase in the cloud. It provides cost-efficient, resizable capacity for anindustry-standard relational database and manages common databaseadministration tasks.

API Version 2014-01-31312

Amazon CloudFront 開発者ガイド

Page 318: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

See Also http://aws.amazon.com/rds.

Amazon Resource Name A standardized way to refer to an AWS resource. For example:arn:aws:iam::123456789012:user/division_abc/subdivision_xyz/Bob.

Amazon Route 53 A web service you can use to create a new DNS service or to migrate your existingDNS service to the cloud.See Also http://aws.amazon.com/route53.

Amazon S3 See Amazon Simple Storage Service.

Amazon S3-Backed AMI Instances launched from this type of AMI use the instance store as their rootdevice. Compare this with instances launched from Amazon EBS-backed AMIs,which use an Amazon EBS volume as the root device.

Amazon Simple NotificationService

A web service that enables applications, end-users, and devices to instantly sendand receive notifications from the cloud.See Also http://aws.amazon.com/sns.

Amazon Simple Queue Service Reliable and scalable hosted queues for storing messages as they travel betweencomputers.See Also http://aws.amazon.com/sqs.

Amazon Simple StorageService

Storage for the internet. You can use it to store and retrieve any amount of dataat any time, from anywhere on the web.See Also http://aws.amazon.com/s3.

Amazon Virtual Private Cloud A web service that enables you to create a virtual network for your AWS resources.See Also http://aws.amazon.com/vpc.

Amazon Web Services An infrastructure web services platform in the cloud for companies of all sizes.See Also http://aws.amazon.com.

AMI See Amazon Machine Image.

ARN See Amazon Resource Name.

authentication The process of proving your identity to a system.

Auto Scaling A web service designed to launch or terminate instance (p. 320)s automaticallybased on user-defined policies, schedules, and health checks.See Also http://aws.amazon.com/autoscaling.

Auto Scaling group A representation of multiple Amazon Elastic Compute Cloud (p. 312)instance (p. 320)s that share similar characteristics, and that are treated as a logicalgrouping for the purposes of instance scaling and management.

Availability Zone A distinct location within a region (p. 327) that is insulated from failures in otherAvailability Zones, and provides inexpensive, low-latency network connectivity toother Availability Zones in the same region.

AWS See Amazon Web Services.

AWS CloudFormation A service for writing or changing templates that create and delete related AWSresources together as a unit.See Also http://aws.amazon.com/cloudformation.

AWS Consolidated Billing A billing option that lets you get a single bill for multiple AWS accounts.See Also http://aws.amazon.com/consolidated-billing.

API Version 2014-01-31313

Amazon CloudFront 開発者ガイド

Page 319: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

AWS Identity and AccessManagement

A web service that enables AmazonWeb Services (p. 313) customers to manageusers and user permissions within AWS.See Also http://aws.amazon.com/iam.

AWS Management Console A graphical interface to manage compute, storage, and other cloud resources.See Also http://aws.amazon.com/console.

AWS Resources See resource.

BNumbers and Symbols (p. 311) | A (p. 311) | B (p. 314) | C (p. 314) | D (p. 316) | E (p. 317) | F (p. 319) | G (p. 319) | H (p. 319)| I (p. 320) | J (p. 321) | K (p. 321) | L (p. 321) |M (p. 322) | N (p. 323) | O (p. 324) | P (p. 324) | Q (p. 326) | R (p. 326) | S (p. 328)| T (p. 330) | U (p. 331) | V (p. 331) | W (p. 332) | X, Y, Z (p. 332)

basic monitoring Monitoring of AWS-provided metrics derived at a 5-minute frequency.

BGP ASN Border Gateway Protocol Autonomous System Number. A unique identifier for anetwork, for use in BGP routing. Amazon EC2 supports all 2-byte ASN numbersin the range of 1 - 65334, with the exception of 7224, which is reserved.

block A data set. Amazon EMR breaks large amounts of data into subsets. Each subsetis called a data block. Amazon EMR assigns an ID to each block and uses a hashtable to keep track of block processing.

block device A storage device that supports reading and (optionally) writing data in fixed-sizeblocks, sectors, or clusters.

block device mapping A mapping structure for every AMI and instance that specifies the block devicesattached to the instance.

bootstrap action A user-specified default or custom action that runs a script or an application onall nodes of a job flow before Hadoop starts.

Border Gateway ProtocolAutonomous System Number

See BGP ASN.

breach The condition in which a user-set threshold (upper or lower boundary) is passed.If the duration of the breach is significant, as set by a breach duration parameter,it can possibly start a scaling activity (p. 328).

bucket A container for objects stored in Amazon S3. Every object is contained in a bucket.For example, if the object named photos/puppy.jpg is stored in the johnsmithbucket, then authorized users can access the object with the URLhttp://johnsmith.s3.amazonaws.com/photos/puppy.jpg.

bucket owner Just as Amazon is the only owner of the domain name Amazon.com, only oneperson or organization can own a bucket in Amazon S3.

bundling A commonly used term for creating an Amazon Machine Image (p. 312). Itspecifically refers to creating Amazon S3-backed AMIs.

CNumbers and Symbols (p. 311) | A (p. 311) | B (p. 314) | C (p. 314) | D (p. 316) | E (p. 317) | F (p. 319) | G (p. 319) | H (p. 319)| I (p. 320) | J (p. 321) | K (p. 321) | L (p. 321) |M (p. 322) | N (p. 323) | O (p. 324) | P (p. 324) | Q (p. 326) | R (p. 326) | S (p. 328)| T (p. 330) | U (p. 331) | V (p. 331) | W (p. 332) | X, Y, Z (p. 332)

API Version 2014-01-31314

Amazon CloudFront 開発者ガイド

Page 320: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

canned access policy A standard access control policy that you can apply to a bucket or object. Optionsinclude: private, public-read, public-read-write, and authenticated-read.

canonicalization The process of converting data into a standard format that a service such asAmazon S3 can recognize.

capacity Each Auto Scaling group (p. 313) is definedwith aminimumandmaximum computesize. The amount of available compute size at any time is the current capacity. Ascaling activity (p. 328) increases or decreases the capacity—within the definedminimum and maximum values.

Cascading Cascading is an open-source Java library that provides a query API, a queryplanner, and a job scheduler for creating and running Hadoop MapReduceapplications. Applications developed with Cascading are compiled and packagedinto standard Hadoop-compatible JAR files similar to other native Hadoopapplications.

certificate A credential that some AWS products use to authenticate AWS accounts andusers. Also known as an X.509 certificate. The certificate is paired with a privatekey.

chargeable resources Features or services whose use incurs fees. Although some AWS products arefree, others include charges. For example, in an AWS CloudFormationstack (p. 329), AWS resources that have been created incur charges. The amountcharged depends on the usage load. Use the Amazon Web Services SimpleMonthly Calculator at http://calculator.s3.amazonaws.com/calc5.html to estimateyour cost prior to creating instances, stacks, or other resources.

CIDR block Classless Inter-Domain Routing. An Internet protocol address allocation and routeaggregation methodology.See Also http://en.wikipedia.org/wiki/CIDR_notation.

cluster compute instance A type of instance (p. 320) that provides a great amount of CPU power coupledwith increased networking performance, making it well suited for High PerformanceCompute (HPC) applications and other demanding network-bound applications.

cluster placement group A logical cluster compute instance (p. 315) grouping to provide lower latency andhigh-bandwidth connectivity between the instances.

CNAME Canonical Name Record. A type of resource record in the Domain Name System(DNS) that specifies that the domain name is an alias of another, canonical domainname. More simply, it is an entry in a DNS table that lets you alias one fullyqualified domain name to another.

condition Any restriction or detail about a permission. The condition is D in the statement"A has permission to do B to C where D applies." Conditions are always optional.

conditional parameter See mapping.

consistency model The method a service uses to achieve high availability. For example, it couldinvolve replicating data across multiple servers in a data center.See Also eventual consistency.

consistent read When data is written or updated successfully, all copies of the data are updatedin all AWS regions. However, it takes time for the data to propagate to all storagelocations. A consistent read returns a result that reflects any writes that receiveda successful response before the read request—regardless of the region. Bycontrast, an eventually consistent read returns data from only one region andmight not show the most recent write information.See Also eventual consistency.

API Version 2014-01-31315

Amazon CloudFront 開発者ガイド

Page 321: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

console See AWS Management Console.

Consolidated Billing See AWS Consolidated Billing.

cooldown period Amount of time during which Auto Scaling does not allow the desired size of theAuto Scaling group (p. 313) to be changed by any other notification from aCloudWatch alarm (p. 312).

core node An EC2 instance (p. 317) that runs Hadoop map and reduce tasks and stores datausing the Hadoop Distributed File System (HDFS). Core nodes are managed bythe master node (p. 323), which assigns Hadoop tasks to nodes andmonitors theirstatus. The EC2 instances you assign as core nodes are capacity that must beallotted for the entire job flow run. Because core nodes store data, you can'tremove them from a job flow. However, you can add more core nodes to a runningjob flow.

Core nodes run both the DataNodes and TaskTracker Hadoop daemons.

credentials Also called access credentials or security credentials. In authentication andauthorization, a system uses credentials to identify who is making a call andwhether to allow the requested access.

customer gateway A router or software application on your side of a VPN tunnel that is managed byAmazon VPC. The internal interfaces of the customer gateway are attached toone or more devices in your home network. The external interface is attached tothe VPG (p. 331) across the VPN tunnel.

DNumbers and Symbols (p. 311) | A (p. 311) | B (p. 314) | C (p. 314) | D (p. 316) | E (p. 317) | F (p. 319) | G (p. 319) | H (p. 319)| I (p. 320) | J (p. 321) | K (p. 321) | L (p. 321) |M (p. 322) | N (p. 323) | O (p. 324) | P (p. 324) | Q (p. 326) | R (p. 326) | S (p. 328)| T (p. 330) | U (p. 331) | V (p. 331) | W (p. 332) | X, Y, Z (p. 332)

dashboard See service health dashboard.

database engine The database software and version running on the DB instance (p. 316).

database name The name of a database hosted in a DB instance (p. 316). A DB instance can hostmultiple databases, but databases hosted by the same DB instance must eachhave a unique name within that instance.

DB compute class Size of the database compute platform used to run the instance.

DB instance An isolated database environment running in the cloud. A DB instance can containmultiple user-created databases.

DB instance identifier User-supplied identifier for the DB instance. The identifier must be unique for thatuser in an AWS region (p. 327).

DB parameter group A container for database engine parameter values that apply to one or more DBinstance (p. 316)s.

DB security group A method that controls access to the DB instance (p. 316). By default, networkaccess is turned off to DB instances. After ingress is configured for a securitygroup, the same rules apply to all DB instances associated with that group.

DB snapshot A user-initiated point backup of a DB instance.

API Version 2014-01-31316

Amazon CloudFront 開発者ガイド

Page 322: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

Dedicated Instance An instance that is physically isolated at the host hardware level and launchedwithin a VPC.

default deny The default result from a policy (p. 325) in the absence of an allow (p. 312) or explicitdeny (p. 318).

delete marker An object with a key and version ID, but without content. Amazon S3 inserts deletemarkers automatically into versioned buckets when an object is deleted.

detailed monitoring Monitoring of AWS-provided metrics derived at a 1-minute frequency.

Description property A property added to parameters, resources, resource properties, mappings, andoutputs, to help you to document AWS CloudFormation template elements.

dimension A name/value pair (for example, InstanceType=m1.small, or EngineName=mysql),that contains additional information to identify a metric.

discussion forums A place where AWS users can post technical questions and feedback to helpaccelerate their development efforts and to engage with the AWS community.The discussion forums are located at http://aws.amazon.com/forums.

distributed cache A Hadoop feature that allow you to transfer files from a distributed file system tothe local file system. It can distribute data and text files as well as more complextypes such as archives and JARs.

DKIM DomainKeys Identified Mail. A standard that email senders use to sign theirmessages. ISPs use those signatures to verify that messages are legitimate. Formore information, see http://www.dkim.org.

DNS See Domain Name System (DNS).

Domain Name System (DNS) A distributed naming system that associates network information withhuman-readable domain names on the Internet.

Donation button An HTML-coded button to provide an easy and secure way for US-based,IRS-certified 501(c)3 nonprofit organizations to solicit donations.

ENumbers and Symbols (p. 311) | A (p. 311) | B (p. 314) | C (p. 314) | D (p. 316) | E (p. 317) | F (p. 319) | G (p. 319) | H (p. 319)| I (p. 320) | J (p. 321) | K (p. 321) | L (p. 321) |M (p. 322) | N (p. 323) | O (p. 324) | P (p. 324) | Q (p. 326) | R (p. 326) | S (p. 328)| T (p. 330) | U (p. 331) | V (p. 331) | W (p. 332) | X, Y, Z (p. 332)

EBS See Amazon Elastic Block Store.

EC2 See Amazon Elastic Compute Cloud.

EC2 compute unit An AWS standard for compute CPU and memory. This measure enables you toevaluate the CPU capacity of different EC2 instance types.

EC2 instance In Amazon EC2, this is simply an instance. Other AWS services use the termEC2 instance to distinguish these instances from other types of instances theysupport.

Elastic Block Store See Amazon Elastic Block Store.

elastic IP address A fixed (static) IP address that you have allocated in Amazon EC2 or AmazonVPC and then attached to an instance. Elastic IP addresses are associated withyour account, not a specific instance. They are elastic because you can easily

API Version 2014-01-31317

Amazon CloudFront 開発者ガイド

Page 323: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

allocate, attach, detach, and free them as your needs change. Unlike traditionalstatic IP addresses, elastic IP addresses allow you to mask instance or AvailabilityZone failures by rapidly remapping your public IP addresses to another instance.

Elastic Load Balancing A web service that improves an application's availability by distributing incomingtraffic between two or more EC2 instance (p. 317)s.See Also http://aws.amazon.com/elasticloadbalancing.

elastic network interface An additional network interface that can be attached to an instance (p. 320). ENIsinclude a primary private IP address, one or more secondary private IP addresses,an elastic IP address (optional), a MAC address, membership in specified securitygroups, a description, and a source/destination check flag. You can create anENI, attach it to an instance, detach it from an instance, and attach it to anotherinstance.

endpoint A URL that identifies a host and port as the entry point for a web service. Everyweb service request contains an endpoint. Most AWS products provide regionalendpoints to enable faster connectivity. For more information, see Regions andEndpoints in the Amazon Web Services General Reference

Amazon RDS: The DNS name of a DB instance (p. 316).

AWS CloudFormation: The DNS name or IP address of the server that receivesan HTTP request.

endpoint port Amazon RDS: The port number used by a DB instance (p. 316).

ephemeral store See instance store.

epoch The date from which time is measured. For most Unix environments, the epochis January 1, 1970.

eventual consistency Themethod through which AWS products achieve high availability, which involvesreplicating data across multiple servers in Amazon's data centers. When data iswritten or updated and "Success" is returned, all copies of the data are updated.However, it takes time for the data to propagate to all storage locations. The datawill eventually be consistent, but an immediate read might not show the change.Consistency is usually reached within seconds, but a high system load mightincrease this time.

eventually consistent read See consistent read.

explicit deny An explicit deny results from a statement that has effect=deny, assuming that anystated conditions aremet. Example: Deny all requests from Antarctica. Any requestthat comes from Antarctica will always be denied no matter what any otherpolicy (p. 325) might allow.

explicit launch permission An AmazonMachine Image (p. 312) launch permission granted to a specific AWSaccount.

exponential backoff A strategy that incrementally increases the wait between retry attempts in orderto reduce the load on the system and increase the likelihood that repeated requestswill succeed. For example, client applications might wait up to 400 millisecondsbefore attempting the first retry, up to 1600 milliseconds before the second, upto 6400 milliseconds (6.4 seconds) before the third, and so on.

API Version 2014-01-31318

Amazon CloudFront 開発者ガイド

Page 324: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

FNumbers and Symbols (p. 311) | A (p. 311) | B (p. 314) | C (p. 314) | D (p. 316) | E (p. 317) | F (p. 319) | G (p. 319) | H (p. 319)| I (p. 320) | J (p. 321) | K (p. 321) | L (p. 321) |M (p. 322) | N (p. 323) | O (p. 324) | P (p. 324) | Q (p. 326) | R (p. 326) | S (p. 328)| T (p. 330) | U (p. 331) | V (p. 331) | W (p. 332) | X, Y, Z (p. 332)

federated identity management Allows individuals to sign in to different networks or services, using the samegroup or personal credentials to access data across all networks. With identityfederation in AWS, external identities (federated users) are granted secure accessto resources in an AWS account without having to create IAM users. Theseexternal identities can come from a corporate identity store (such as LDAP orWindows Active Directory) or from a third party (such as Login with Amazon,Facebook, or Google). AWS federation also supports SAML 2.0.

federated user See federated identity management.

field weight The relative importance of a text field in a search index. Field weights control howmuch matches in particular text fields affect a document's relevance _score.

filter A criterion you specify to limit the results when you list or describe your AmazonEC2 resources.

FIM See federated identity management.

format version See template format version.

forums See discussion forums.

function See intrinsic function.

GNumbers and Symbols (p. 311) | A (p. 311) | B (p. 314) | C (p. 314) | D (p. 316) | E (p. 317) | F (p. 319) | G (p. 319) | H (p. 319)| I (p. 320) | J (p. 321) | K (p. 321) | L (p. 321) |M (p. 322) | N (p. 323) | O (p. 324) | P (p. 324) | Q (p. 326) | R (p. 326) | S (p. 328)| T (p. 330) | U (p. 331) | V (p. 331) | W (p. 332) | X, Y, Z (p. 332)

gibibyte A contraction of giga binary byte, a gibibyte is 2^30 bytes or 1,073,741,824 bytes.A gigabyte is 10^9 or 1,000,000,000 bytes.

HNumbers and Symbols (p. 311) | A (p. 311) | B (p. 314) | C (p. 314) | D (p. 316) | E (p. 317) | F (p. 319) | G (p. 319) | H (p. 319)| I (p. 320) | J (p. 321) | K (p. 321) | L (p. 321) |M (p. 322) | N (p. 323) | O (p. 324) | P (p. 324) | Q (p. 326) | R (p. 326) | S (p. 328)| T (p. 330) | U (p. 331) | V (p. 331) | W (p. 332) | X, Y, Z (p. 332)

Hadoop See http://hadoop.apache.org.

hardware VPN A hardware-based IPsec VPN connection over the Internet.

HDFS Hadoop Distributed File System. The HDFS file system stores large files acrossmultiple machines. It achieves reliability by replicating the data across multiplehosts, and hence does not require RAID storage on hosts.

health check A system call to check on the health status of each instance in an Auto Scalinggroup.

API Version 2014-01-31319

Amazon CloudFront 開発者ガイド

Page 325: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

Hive An open source, data warehouse and analytic package that runs on top of Hadoop.Hive scripts use an SQL-like language called Hive QL (query language) thatabstracts the MapReduce programming model and supports typical datawarehouse interactions.

HMAC Hash-based Message Authentication Code. A specific construction for calculatinga message authentication code (MAC) involving a cryptographic hash function incombination with a secret key. You can use it to verify both the data integrity andthe authenticity of a message at the same time. AWS calculates the HMAC usinga standard, cryptographic hash algorithm, such as SHA-256.

hosted zone A collection of resource record sets that Amazon Route 53 hosts. Like a traditionalDNS zone file, a hosted zone represents a collection of records that are managedtogether under a single domain name.

HVM virtualization Hardware Virtual Machine virtualization. Allows the guest VM to run as though itis on a native hardware platform, except that it still uses paravirtual (PV) networkand storage drivers for improved performance.See Also PV virtualization.

INumbers and Symbols (p. 311) | A (p. 311) | B (p. 314) | C (p. 314) | D (p. 316) | E (p. 317) | F (p. 319) | G (p. 319) | H (p. 319)| I (p. 320) | J (p. 321) | K (p. 321) | L (p. 321) |M (p. 322) | N (p. 323) | O (p. 324) | P (p. 324) | Q (p. 326) | R (p. 326) | S (p. 328)| T (p. 330) | U (p. 331) | V (p. 331) | W (p. 332) | X, Y, Z (p. 332)

image See Amazon Machine Image.

instance A copy of an Amazon Machine Image running as a virtual server in the AWScloud.

instance family A general instance type (p. 320) grouping using either storage or CPU capacity.

instance group A Hadoop cluster contains one master instance group that contains one masternode (p. 323), a core instance group containing one or more core node (p. 316)and an optional task node (p. 330) instance group, which can contain any numberof task nodes.

instance store Disk storage that is physically attached to the host computer for an EC2 instance,and therefore has the same lifespan as the instance. When the instanceterminates, you lose any data in the instance store.

instance store-backed AMI Instances launched from this type of AMI use an instance store volume as theroot device. Compare this with instances launched from Amazon EBS-backedAMIs, which use an Amazon EBS volume as the root device.

instance type A specification that defines the memory, CPU, storage capacity, and hourly costfor an instance. Some instance types are designed for standard applications,whereas others are designed for CPU-intensive, memory-intensive applications,and so on.

Internet gateway Connects a network to the Internet. You can route traffic for IP addresses outsideyour VPC (p. 331) to the Internet gateway.

Internet Service Provider A company that provides subscribers with access to the Internet. Many ISPs arealso mailbox provider (p. 322)s. Mailbox providers are sometimes referred to asISPs, even if they only provide mailbox services.

API Version 2014-01-31320

Amazon CloudFront 開発者ガイド

Page 326: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

intrinsic function A special action in a template that assigns values to properties not available untilruntime. These functions follow the format Fn::Attribute, such as Fn::GetAtt.Arguments for intrinsic functions can be parameters, pseudo parameters, or theoutput of other intrinsic functions.

IP address All EC2 instances are assigned two IP addresses at launch, which are directlymapped to each other through network address translation (NAT): a private IPaddress (following RFC 1918) and a public IP address. Instances launched in aVPC are assigned only a private IP address. Instances launched in your defaultVPC are assigned both a private IP address and a public IP address.

ISP See Internet Service Provider.

issuer The issuer is the person who writes a policy to grant permissions to a resource.The issuer (by definition) is always the resource owner. AWS does not permitAmazon SQS users to create policies for resources they don't own. If John is theresource owner, AWS authenticates John's identity when he submits the policyhe's written to grant permissions for that resource.

item Similar to rows on a spreadsheet, items represent individual objects that containone or more value-attribute pairs.

JNumbers and Symbols (p. 311) | A (p. 311) | B (p. 314) | C (p. 314) | D (p. 316) | E (p. 317) | F (p. 319) | G (p. 319) | H (p. 319)| I (p. 320) | J (p. 321) | K (p. 321) | L (p. 321) |M (p. 322) | N (p. 323) | O (p. 324) | P (p. 324) | Q (p. 326) | R (p. 326) | S (p. 328)| T (p. 330) | U (p. 331) | V (p. 331) | W (p. 332) | X, Y, Z (p. 332)

job flow A job flow specifies the complete processing of the data. It's comprised of one ormore steps, which specify all of the functions to be performed on the data.

JSON JavaScript Object Notation. A lightweight data-interchange format. For informationabout JSON, see http://www.json.org/.

KNumbers and Symbols (p. 311) | A (p. 311) | B (p. 314) | C (p. 314) | D (p. 316) | E (p. 317) | F (p. 319) | G (p. 319) | H (p. 319)| I (p. 320) | J (p. 321) | K (p. 321) | L (p. 321) |M (p. 322) | N (p. 323) | O (p. 324) | P (p. 324) | Q (p. 326) | R (p. 326) | S (p. 328)| T (p. 330) | U (p. 331) | V (p. 331) | W (p. 332) | X, Y, Z (p. 332)

key pair A set of security credentials you use to prove your identity electronically. A keypair consists of a private key and a public key.

key prefix A logical grouping of the objects in a bucket (p. 314). The prefix value is similar toa directory name that enables you to store similar data under the same directoryin a bucket.

LNumbers and Symbols (p. 311) | A (p. 311) | B (p. 314) | C (p. 314) | D (p. 316) | E (p. 317) | F (p. 319) | G (p. 319) | H (p. 319)| I (p. 320) | J (p. 321) | K (p. 321) | L (p. 321) |M (p. 322) | N (p. 323) | O (p. 324) | P (p. 324) | Q (p. 326) | R (p. 326) | S (p. 328)| T (p. 330) | U (p. 331) | V (p. 331) | W (p. 332) | X, Y, Z (p. 332)

launch configuration A set of descriptive parameters used to create new EC2 instances in an AutoScaling activity.

API Version 2014-01-31321

Amazon CloudFront 開発者ガイド

Page 327: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

A template that an Auto Scaling group (p. 313) uses to launch new EC2 instances.The launch configuration contains information such as the Amazon MachineImage (p. 312) ID, the instance type, key pairs, security groups, and block devicemappings, among other configuration settings.

launch permission An Amazon Machine Image (p. 312) (AMI) attribute that allows users to launch anAMI.

lifecycle The lifecycle state of the EC2 instance (p. 317) contained in an AutoScalingGroup.EC2 instances progress through several states over their lifespan; these includePending, InService, Terminating and Terminated.

load balancer A load balancer is a combination of a DNS name and a set of ports, which togetherprovide a destination for all requests intended for your application. A load balancercan distribute traffic to multiple application instances across every AvailabilityZone (p. 313) within a region (p. 327). Load balancers can spanmultiple AvailabilityZones within an Amazon EC2 region, but they cannot span multiple regions.

logical name A case-sensitive unique string within an AWS CloudFormation template thatidentifies a resource (p. 327), mapping (p. 322), parameter, or output. In an AWSCloudFormation template, each parameter, resource, property, mapping, andoutput must be declared with a unique logical name. You use the logical namewhen dereferencing these items using the Ref function.

MNumbers and Symbols (p. 311) | A (p. 311) | B (p. 314) | C (p. 314) | D (p. 316) | E (p. 317) | F (p. 319) | G (p. 319) | H (p. 319)| I (p. 320) | J (p. 321) | K (p. 321) | L (p. 321) |M (p. 322) | N (p. 323) | O (p. 324) | P (p. 324) | Q (p. 326) | R (p. 326) | S (p. 328)| T (p. 330) | U (p. 331) | V (p. 331) | W (p. 332) | X, Y, Z (p. 332)

machine utilization The amount of machine capacity used to complete a particular request (forexample SELECT, GET, PUT, and so on), normalized to the hourly capacity of astandard processor. Machine utilization is measured in machine hour increments.

mailbox provider An organization that provides email mailbox hosting services. Mailbox providersare sometimes referred to as Internet Service Provider (p. 320)s, even if they onlyprovide mailbox services.

main route table The default route table that any new VPC subnet uses for routing. You canassociate a subnet with a different route table of your choice. You can also changewhich route table is the main route table.

manifest When sending a create job request for an import or export operation you describeyour job in a text file called a manifest. The manifest file is a YAML-formatted filethat specifies how to transfer data between your storage device and the AWScloud.

MapReduce See http://hadoop.apache.org/docs/r1.2.0/mapred_tutorial.html.

mapper An executable that splits the raw data into key/value pairs. The reducer uses theoutput of the mapper, called the intermediate results, as its input.

mapping A way to add conditional parameter values to an AWS CloudFormation template.You specify mappings in the template's optional Mappings section and retrievethe desired value using the FN::FindInMap function.

marker See pagination.

API Version 2014-01-31322

Amazon CloudFront 開発者ガイド

Page 328: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

master node A process running on an Amazon Machine Image (p. 312) that keeps track of thework its core and task nodes complete.

member resources See resource.

message ID Amazon SQS: The identifier returned when you send a message to a queue.

metadata Amazon S3, Amazon EMR: A set of name/value pairs that describe the object.These include default metadata such as the date last modified and standard HTTPmetadata such as Content-Type. Users can also specify custom metadata at thetime they store an object.Amazon EC2: Data about an EC2 instance (p. 317) that the instance can retrieveto determine things about itself, such as, the instance type, the IP address, andso on.

metric An element of time-series data defined by a unique combination of exactly onenamespace, exactly one metric name, and between zero and ten dimensions.Metrics and the statistics derived from them are the basis of Amazon CloudWatch.

metric name The primary identifier of a metric, used in combination with a namespace andoptional dimensions.

micro instance A type of EC2 instance (p. 317) that is more economical to use if you haveoccasional bursts of high CPU activity.

MIME See ???TITLE???.

Multi-AZ deployment A primary DB instance (p. 316) that has a synchronous standby replica in a differentAvailability Zone (p. 313). The primary DB instance is synchronously replicatedacross Availability Zones to the standby replica.

multipart upload A feature that allows you to upload a single object as a set of parts.

Multitool A Cascading (p. 315) application that provides a simple command-line interfacefor managing large datasets.

NNumbers and Symbols (p. 311) | A (p. 311) | B (p. 314) | C (p. 314) | D (p. 316) | E (p. 317) | F (p. 319) | G (p. 319) | H (p. 319)| I (p. 320) | J (p. 321) | K (p. 321) | L (p. 321) |M (p. 322) | N (p. 323) | O (p. 324) | P (p. 324) | Q (p. 326) | R (p. 326) | S (p. 328)| T (p. 330) | U (p. 331) | V (p. 331) | W (p. 332) | X, Y, Z (p. 332)

namespace An abstract container that provides context for the items (names, or technicalterms, or words) it holds, and allows disambiguation of homonym items residingin different namespaces.

NAT Network address translation.

NAT instance An instance that is configured to perform NAT (p. 323) in a VPC. A NAT instanceenables private instances in the VPC to initiate Internet-bound traffic without beingdirectly reachable from the Internet.

network ACL An optional layer of security that acts as a firewall for controlling traffic in and outof a subnet. You can associate multiple subnets with a single network ACL, buta subnet can be associated with only one network ACL at a time.

node After an AmazonMachine Image (p. 312) is launched, the resulting running systemis referred to as a node. All instances based on the same AMI are identical atstart-up. Any information about the node is lost when the node terminates or fails.

API Version 2014-01-31323

Amazon CloudFront 開発者ガイド

Page 329: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

NoEcho A property of AWS CloudFormation parameters that will prevent the otherwisedefault reporting of names and values of a template parameter. Declaring theNoEcho property causes the parameter value to be masked with asterisks in thereport by the cfn-describe-stacks command.

null object A null object is one whose version ID is null. Amazon S3 adds a null object to abucket when versioning (p. 331) for that bucket is suspended. It is possible to haveonly one null object for each key in a bucket.

ONumbers and Symbols (p. 311) | A (p. 311) | B (p. 314) | C (p. 314) | D (p. 316) | E (p. 317) | F (p. 319) | G (p. 319) | H (p. 319)| I (p. 320) | J (p. 321) | K (p. 321) | L (p. 321) |M (p. 322) | N (p. 323) | O (p. 324) | P (p. 324) | Q (p. 326) | R (p. 326) | S (p. 328)| T (p. 330) | U (p. 331) | V (p. 331) | W (p. 332) | X, Y, Z (p. 332)

object Amazon S3: The fundamental entity type stored in Amazon S3. Objects consistof object data and metadata. The data portion is opaque to Amazon S3.

on-demand instance An Amazon EC2 pricing option that charges you for compute capacity by the hourwith no long-term commitment.

operation An API function. Also called an action.

PNumbers and Symbols (p. 311) | A (p. 311) | B (p. 314) | C (p. 314) | D (p. 316) | E (p. 317) | F (p. 319) | G (p. 319) | H (p. 319)| I (p. 320) | J (p. 321) | K (p. 321) | L (p. 321) |M (p. 322) | N (p. 323) | O (p. 324) | P (p. 324) | Q (p. 326) | R (p. 326) | S (p. 328)| T (p. 330) | U (p. 331) | V (p. 331) | W (p. 332) | X, Y, Z (p. 332)

pagination Some APIs that return a potentially large list of records can return a subset byusing a value to set the maximum number of returned records. They then providea marker, which identifies the last record returned so that in a subsequent call,the user can get the next sequence of records.

paid AMI An Amazon Machine Image (AMI) that you sell to other Amazon EC2 users.

paravirtual virtualization See PV virtualization.

part In a multipart upload request, each part is a contiguous portion of the object'sdata.

PAT Port address translation.

period See sampling period.

permission A statement within a policy (p. 325) that allows or disallows access to a particularresource. You can state any permission like this: "A has permission to do B to Cwhere D applies." For example, Jane (A) has permission to read messages (B)from John's Amazon SQS queue (C), as long as she asks to receive only amaximum of 10 messages from the queue at a time (D). Whenever Jane sendsa request to Amazon SQS to use John's queue, the service checks to see if shehas permission and if the request satisfies the conditions John set forth in thepermission.

persistent storage A long-term data storage solution. Options within AWS are: Amazon S3, AmazonEBS.

API Version 2014-01-31324

Amazon CloudFront 開発者ガイド

Page 330: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

physical name A unique label AWS CloudFormation assigns to each resource when creating astack (p. 329). Some AWSCloudFormation commands accept the physical nameas a value with the --physical-name parameter.

Pig An open-source Apache library that runs on top of Hadoop. The library takesSQL-like commands written in a language called Pig Latin and converts thosecommands into MapReduce job flows.

policy A policy is the formal description of the permissions for a resource. The accesspolicy language distinguishes between a policy and a statement. A policy is thecomplete document that can contain many different permissions for a givenresource. A statement is the description of an individual permission. Therefore apolicy can contain multiple statements. For example, a policy could specify thatJane can use John's queue (one statement), and Bob cannot use John's queue(another statement).

Auto Scaling: An object that stores the information needed to launch or terminateinstances for an Auto Scaling group. Executing the policy causes instances to belaunched or terminated. You can configure an alarm (p. 312) to invoke an AutoScaling policy.

Premium Support A one-on-one, fast-response support channel that AWS customers can subscribeto for support for AWS infrastructure services.See Also https://aws.amazon.com/premiumsupport/.

principal The principal is the person or persons who receive the permission in thepolicy (p. 325). The principal is A in the statement "A has permission to do B to Cwhere D applies." In a policy, you can set the principal to "anyone" (that is, youcan specify a wildcard to represent all people). You might do this, for example, ifyou don't want to restrict access based on the actual identity of the requester, butinstead on some other identifying characteristic such as the requester's IP address.

The concept of principals doesn't apply to a IAM policy, because these policiesare attached to users or groups.

private IP address All EC2 instances are assigned two IP addresses at launch, which are directlymapped to each other through Network Address Translation (NAT): a privateaddress (following RFC 1918) and a public address. Exception: Instances launchedin Amazon VPC are assigned only a private IP address.

private subnet A VPC subnet whose instances cannot be reached from the Internet.

properties See resource property.

property rule A JSON (p. 321)-compliant markup standard for declaring properties, mappings,and output values in an AWS CloudFormation template.

provisioned IOPS A storage option designed to deliver fast, predictable, and consistent I/Operformance. When you specify an IOPS rate while creating a DB Instance,Amazon RDS provisions that IOPS rate for the lifetime of the DB Instance.

pseudo parameter A predefined setting, such as AWS:StackName that can be used in AWSCloudFormation templates without having to declare them. You can use pseudoparameters anywhere you can use a regular parameter.

public AMI An Amazon Machine Image (p. 312) that all AWS accounts have permission tolaunch.

public data set A large set of public data that can be seamlessly integrated into AWS cloud-basedapplications. Amazon stores public data sets at no charge to the community and,

API Version 2014-01-31325

Amazon CloudFront 開発者ガイド

Page 331: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

like all AWS services, users pay only for the compute and storage they use fortheir own applications. These data sets currently include data from the HumanGenome Project, the U.S. Census, Wikipedia, and other sources.See Also http://aws.amazon.com/publicdatasets.

public IP address All EC2 instances are assigned two IP addresses at launch, which are directlymapped to each other through Network Address Translation (NAT): a privateaddress (following RFC 1918) and a public address. Exception: Instances launchedin Amazon VPC are assigned only a private IP address.

public subnet A subnet whose instances can be reached from the Internet.

PV virtualization Paravirtual virtualization. Allows guest VMs to run on host systems that do nothave special support extensions for full hardware and CPU virtualization. BecausePV guests run a modified operating system that does not use hardware emulation,they cannot provide hardware-related features such as enhanced networking orGPU support.See Also HVM virtualization.

QNumbers and Symbols (p. 311) | A (p. 311) | B (p. 314) | C (p. 314) | D (p. 316) | E (p. 317) | F (p. 319) | G (p. 319) | H (p. 319)| I (p. 320) | J (p. 321) | K (p. 321) | L (p. 321) |M (p. 322) | N (p. 323) | O (p. 324) | P (p. 324) | Q (p. 326) | R (p. 326) | S (p. 328)| T (p. 330) | U (p. 331) | V (p. 331) | W (p. 332) | X, Y, Z (p. 332)

Query A type of HTTP-based request interface that generally uses only the GET or POSTHTTP method and a query string with parameters.See Also REST, REST-Query.

queue A sequence of messages or jobs held in temporary storage awaiting transmissionor processing.

queue URL A URL that uniquely identifies a queue.

quota Amazon RDS: The maximum number of DB instance (p. 316)s and availablestorage you can use.

• The number of cache clusters for each AWS account• The number of cache nodes per cache cluster• The total number of cache nodes per AWS account across all cache clusterscreated by that AWS account

RNumbers and Symbols (p. 311) | A (p. 311) | B (p. 314) | C (p. 314) | D (p. 316) | E (p. 317) | F (p. 319) | G (p. 319) | H (p. 319)| I (p. 320) | J (p. 321) | K (p. 321) | L (p. 321) |M (p. 322) | N (p. 323) | O (p. 324) | P (p. 324) | Q (p. 326) | R (p. 326) | S (p. 328)| T (p. 330) | U (p. 331) | V (p. 331) | W (p. 332) | X, Y, Z (p. 332)

range GET A range GET specifies a byte range of data to get for a download. If an object islarge, you can break up a download into smaller units by sending multiple rangeGET requests that each specify a different byte range to GET.

RDS See Amazon Relational Database Service.

API Version 2014-01-31326

Amazon CloudFront 開発者ガイド

Page 332: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

read replica An active copy of another DB instance. Any updates to the data on the sourceDB instance are replicated to the read replica DB instance using the built-inreplication feature of MySQL 5.1.

receipt handle An identifier you get when you receive a message from the queue. This identifieris required to delete a message from the queue or when changing a message'svisibility timeout.

reducer An executable in the MapReduce process that uses the intermediate results fromthe mapper and processes them into the final output.

reference Ameans of inserting a property from one AWS resource into another. For example,you could insert an Amazon EC2 security group property into an Amazon RDSresource.

region A named set of AWS resources in the same geographical area. A region comprisesat least two Availability Zones.

requester A requester is a person who sends a request to an AWS service and asks foraccess to a particular resource. The requester sends a request to AWS thatessentially says: "Can A do B to C where D applies?" In this question, the requesteris A.

Requester Pays An Amazon S3 feature that allows a bucket owner (p. 314) to specify that anyonewho requests access to objects in a particular bucket must pay the data transferand request costs.

reservation A collection of EC2 instances started as part of the same launch request.

resource The objects you work with on AWS. This includes buckets, domains, instances,queues, and so on.

1.

2. Tools, code, and documents that AWS provides to support users.3. An object that the principal (p. 325) requests access to. The resource is C in

the statement "A has permission to do B to C where D applies."4. A required element of an AWS CloudFormation stack (p. 329). Each stack

contains at least one resource, such as an Auto Scaling LaunchConfiguration.All resources in a stack must be created successfully for the stack to be created.

resource property A value required when including an AWS resource in an AWS CloudFormationstack (p. 329). Each resource may have one or more properties associated withit. For example, an AWS::EC2::Instance resource may have a UserDataproperty. In an AWS CloudFormation template, resources must declare aproperties section, even if the resource has no properties.

resource record Also called resource record set. Standard DNS terminology.See Also http://en.wikipedia.org/wiki/Domain_Name_System.

REST A type of HTTP-based request interface that generally uses only the GET or POSTHTTP method and a query string with parameters. Sometimes known as Query.In some implementations of a REST interface, other HTTP verbs besides GETand POST are used.

REST-Query Also known as Query or HTTPQuery. This is a type of HTTP request that generallyuses only the GET or POST HTTP method and a query string with parameters.Compare this with REST, which is a type of HTTP request that uses any HTTPmethod (GET, DELETE, POST, etc.), a resource, HTTP headers, and possibly aquery string with parameters.

API Version 2014-01-31327

Amazon CloudFront 開発者ガイド

Page 333: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

rollback A return to a previous state that follows the failure to create an object, such asAWS CloudFormation stack (p. 329). All resources associated with the failure aredeleted during the rollback. For AWS CloudFormation, you can override thisbehavior using the --disable-rollback option on the command line.

root device volume Contains the image used to boot the instance. If you launched the instance froman AMI backed by instance store, this is an instance store volume created froma template stored in Amazon S3. If you launched the instance from an AMI backedby Amazon EBS, this is an Amazon EBS volume created from an Amazon EBSsnapshot.

route table A set of routing rules that controls the traffic leaving any subnet that is associatedwith the route table. You can associate multiple subnets with a single route table,but a subnet can be associated with only one route table at a time.

SNumbers and Symbols (p. 311) | A (p. 311) | B (p. 314) | C (p. 314) | D (p. 316) | E (p. 317) | F (p. 319) | G (p. 319) | H (p. 319)| I (p. 320) | J (p. 321) | K (p. 321) | L (p. 321) |M (p. 322) | N (p. 323) | O (p. 324) | P (p. 324) | Q (p. 326) | R (p. 326) | S (p. 328)| T (p. 330) | U (p. 331) | V (p. 331) | W (p. 332) | X, Y, Z (p. 332)

sampling period A defined duration of time, such as one minute, over which CloudWatch computesa statistic (p. 329).

sandbox A testing location where you can test the functionality of your application withoutaffecting production, incurring charges, or purchasing products.

scaling activity A process that changes the size, configuration, or makeup of an Auto Scalinggroup (p. 313) by launching or terminating instances. For more information, seeAuto Scaling Concepts in the Auto Scaling Developer Guide.

security group A named set of allowed inbound network connections for an instance. (Securitygroups in Amazon VPC also include support for outbound connections.) Eachsecurity group consists of a list of protocols, ports, and IP address ranges. Asecurity group can apply to multiple instances, and multiple groups can regulatea single instance.

sender The person or entity sending an email message.

Sender ID A Microsoft-controlled version of SPF. An email authentication and anti-spoofingsystem. For more information about Sender ID, go tohttp://wikipedia.org/wiki/Sender_ID.

service endpoint See endpoint.

service health dashboard A web page showing up-to-the-minute information about AWS service availability.The dashboard is located at http://status.aws.amazon.com.

SHA Secure Hash Algorithm. SHA1 is an earlier version of the algorithm, which AWShas deprecated in favor of SHA256.

shared AMI An Amazon Machine Image (p. 312) that a developer builds and makes availablefor others to use.

shutdown action A predefined bootstrap action that launches a script that executes a series ofcommands in parallel before terminating the job flow.

signature Refers to a digital signature, which is a mathematical way to confirm theauthenticity of a digital message. AWS uses signatures to authenticate the requests

API Version 2014-01-31328

Amazon CloudFront 開発者ガイド

Page 334: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

you send to our web services. For more information, tohttp://aws.amazon.com/security.

SIGNATURE file A file you copy to the root directory of your storage device. The file contains a jobID, manifest file, and a signature.

Single-AZ DB Instance A standard (non-Multi-AZ) DB instance (p. 316) that is deployed in one AvailabilityZone (p. 313), without a standby replica in another Availability Zone.See Also Multi-AZ deployment.

snapshot Amazon Elastic Block Store (p. 312) creates snapshots or backups of your volumesand stores them in Amazon S3. You can use these snapshots as the startingpoint for new Amazon EBS volumes or to protect your data for long-term durability.

software VPN A software appliance-based VPN connection over the Internet.

source/destination checking A security measure to verify that an EC2 instance is the origin of all traffic that itsends and the ultimate destination of all traffic that it receives, that is, that theinstance is not relaying traffic. Source/destination checking is enabled by default.For instances that function as gateways, such as VPC NAT instances,source/destination checking must be disabled.

SPF Sender Policy Framework. A standard for authenticating email.See Also http://www.openspf.org.

stack AWS CloudFormation: A collection of AWS resources you create and delete asa single unit.

statistic One of five functions of the values submitted for a given sampling period (p. 328).These functions are "Maximum", "Minimum," "Sum," "Average," and"SampleCount."

step A single function applied to the data in a job flow (p. 321). The sum of all stepscomprises a job flow.

step type The type of work done in a step. There are a limited number of step types, suchas moving data from Amazon S3 to Amazon EC2 or from Amazon EC2 to AmazonS3.

sticky session A feature of the load balancer that binds a user's session to a specific applicationinstance so that all requests coming from the user during the session are sent tothe same application instance. By contrast, a load balancer defaults to route eachrequest independently to the application instance with the smallest load.

streaming Amazon EMR: A utility that comes with Hadoop that enables you to developMapReduce executables in languages other than Java.

string-to-sign Before you calculate an HMAC signature, you first assemble the requiredcomponents in a canonical order. The pre-encrypted string is the string-to-sign.

subnet A segment of the IP address range of a VPC (p. 331) that EC2 instances can beattached to. You can create subnets to group instances according to security andoperational needs.

Subscription button An HTML-coded button that enables an easy way to charge customers a recurringfee.

supported AMI An Amazon Machine Image (p. 312) similar to a paid AMI (p. 324), except that theowner charges for additional software or a service that customers use with theirown AMIs.

API Version 2014-01-31329

Amazon CloudFront 開発者ガイド

Page 335: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

TNumbers and Symbols (p. 311) | A (p. 311) | B (p. 314) | C (p. 314) | D (p. 316) | E (p. 317) | F (p. 319) | G (p. 319) | H (p. 319)| I (p. 320) | J (p. 321) | K (p. 321) | L (p. 321) |M (p. 322) | N (p. 323) | O (p. 324) | P (p. 324) | Q (p. 326) | R (p. 326) | S (p. 328)| T (p. 330) | U (p. 331) | V (p. 331) | W (p. 332) | X, Y, Z (p. 332)

tag Metadata (consisting of up to 10 key/value pairs) that you can define and assignto Amazon EC2 resources.

task node An EC2 instance (p. 317) that runs Hadoop map and reduce tasks, but does notstore data. Task nodes are managed by the master node (p. 323), which assignsHadoop tasks to nodes and monitors their status. While a job flow is running youcan increase and decrease the number of task nodes. Because they don't storedata and can be added and removed from a job flow, you can use task nodes tomanage the EC2 instance capacity your job flow uses, increasing capacity tohandle peak loads and decreasing it later.

Task nodes only run a TaskTracker Hadoop daemon.

tebibyte A contraction of tera binary byte, a tebibyte is 2^40 bytes or 1,099,511,627,776bytes. A terabyte is 10^12 or 1,000,000,000,000 bytes.

template format version The version of an AWS CloudFormation template design that determines theavailable features. If you omit the AWSTemplateFormatVersion section fromyour template, AWS CloudFormation assumes the most recent format version.

template validation The process of confirming the use of JSON (p. 321) code in an AWSCloudFormation template. You can validate any AWS CloudFormation templateusing the cfn-validate-template command.

time series data Data provided as part of a metric. The time value is assumed to be when thevalue occurred. A metric is the fundamental concept for CloudWatch andrepresents a time-ordered set of data points. You publish metric data points intoCloudWatch and later retrieve statistics about those data points as a time-seriesordered data set.

time stamp A date/time string in ISO 8601 format.

topic A communication channel to send messages and subscribe to notifications. Itprovides an access point for publishers and subscribers to communicate witheach other.

Transport Layer Security A cryptographic protocol that provides security for communication over the Internet.Its predecessor is Secure Sockets Layer (SSL).

tuning Selecting the number and type of AMIs (p. 312) to run a Hadoop job flow mostefficiently.

tunnel A route for transmission of private network traffic that uses the Internet to connectnodes in the private network. The tunnel uses encryption and secure protocolssuch as PPTP to prevent the traffic from being intercepted as it passes throughpublic routing nodes.

API Version 2014-01-31330

Amazon CloudFront 開発者ガイド

Page 336: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

UNumbers and Symbols (p. 311) | A (p. 311) | B (p. 314) | C (p. 314) | D (p. 316) | E (p. 317) | F (p. 319) | G (p. 319) | H (p. 319)| I (p. 320) | J (p. 321) | K (p. 321) | L (p. 321) |M (p. 322) | N (p. 323) | O (p. 324) | P (p. 324) | Q (p. 326) | R (p. 326) | S (p. 328)| T (p. 330) | U (p. 331) | V (p. 331) | W (p. 332) | X, Y, Z (p. 332)

unbounded The number of potential occurrences is not limited by a set number. This valueis often used when defining a data type that is a list (for example,maxOccurs="unbounded"), in Web Services Description Language (p. 332).

unit Standard measurement for the values submitted to CloudWatch as metric data.Units include Seconds, Percent, Bytes, Bits, Count, Bytes/Second, Bits/Second,Count/Second, and None.

usage report An AWS report giving details of your usage of a particular AWS service. You cangenerate and download usage reports from http://aws.amazon.com/usage-reports.

user A person or application under an account (p. 311) that needs to make API calls toAWS products. Each user has a unique name within the AWS account, and a setof security credentials not shared with other users. These credentials are separatefrom the AWS account's security credentials. Each user is associated with oneand only one AWS account.

VNumbers and Symbols (p. 311) | A (p. 311) | B (p. 314) | C (p. 314) | D (p. 316) | E (p. 317) | F (p. 319) | G (p. 319) | H (p. 319)| I (p. 320) | J (p. 321) | K (p. 321) | L (p. 321) |M (p. 322) | N (p. 323) | O (p. 324) | P (p. 324) | Q (p. 326) | R (p. 326) | S (p. 328)| T (p. 330) | U (p. 331) | V (p. 331) | W (p. 332) | X, Y, Z (p. 332)

validation See template validation.

Variable Envelope Return Path See ???TITLE???.

versioning Every object in Amazon S3 has a key and a version ID. Objects with the samekey, but different version IDs can be stored in the same bucket. Versioning isenabled at the bucket layer using PUT Bucket versioning.

virtualization Allows multiple guest virtual machines (VM) to run on a host operating system.Guest VMs can run on one or more levels above the host hardware, dependingon the type of virtualization.See Also PV virtualization, HVM virtualization.

virtual private cloud See VPC.

virtual private gateway See VPG.

visibility timeout The period of time that a message is invisible to the rest of your application afteran application component gets it from the queue. During the visibility timeout, thecomponent that received the message usually processes it, and then deletes itfrom the queue. This prevents multiple components from processing the samemessage.

VPC Virtual private cloud. An elastic network populated by infrastructure, platform, andapplication services that share common security and interconnection.

VPG Virtual private gateway. The Amazon side of a VPN connection that maintainsconnectivity. The internal interfaces of the virtual private gateway connect to your

API Version 2014-01-31331

Amazon CloudFront 開発者ガイド

Page 337: AmazonCloudFrontawsdocs.s3.amazonaws.com/CF/latest/cf-dg-ja_jp.pdf · 2014. 6. 30. · リクエストとイメージが移動する必要 があるネットワークの数と距離は、イメージのパフォーマンス、信頼性、および可用性に多大な影響を

VPC via the VPN attachment and the external interfaces connect to the VPNconnection, which leads to the customer gateway.

VPN connection Although VPN connection is a general term, we specifically mean the IPsecconnection between a VPC (p. 331) and some other network, such as a corporatedata center, home network, or co-location facility.

WNumbers and Symbols (p. 311) | A (p. 311) | B (p. 314) | C (p. 314) | D (p. 316) | E (p. 317) | F (p. 319) | G (p. 319) | H (p. 319)| I (p. 320) | J (p. 321) | K (p. 321) | L (p. 321) |M (p. 322) | N (p. 323) | O (p. 324) | P (p. 324) | Q (p. 326) | R (p. 326) | S (p. 328)| T (p. 330) | U (p. 331) | V (p. 331) | W (p. 332) | X, Y, Z (p. 332)

Web Services DescriptionLanguage

A language used to describe the actions that a web service can perform, alongwith the syntax of action requests and responses. Your SOAP or other toolkitinterprets a WSDL file to provide your application access to the actions providedby the web service. For most toolkits, your application calls a service action usingroutines and classes provided or generated by the toolkit.

X, Y, ZNo entries

API Version 2014-01-31332

Amazon CloudFront 開発者ガイド