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

CloudFront の使用開始

このトピックの例には、CloudFront を使用し、次の基本設定をセットアップする方法の概要が示されています。

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

  • テキストやグラフィックなどのコンテンツの配信

  • オブジェクトを全員にアクセス可能とする

  • オブジェクトの URL で CloudFront ドメイン名を使用する (例: http://d111111abcdef8.cloudfront.net/image.jpg)

  • デフォルトの 24 時間の間、オブジェクトを CloudFront エッジロケーションに保存します (最小時間は 0 秒)

大半のオプションはカスタマイズ可能です。たとえば、S3 バケットを使用せずに独自のウェブサーバーにコンテンツを保存し、署名付き URL や Cookie を使用してコンテンツにアクセスできるユーザーを制限することができます。CloudFront ディストリビューションのオプションをカスタマイズする方法の詳細については、「ディストリビューションを作成するためのステップ (概要)」を参照してください。

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

前提条件

開始する前に、必ず「Amazon CloudFront のセットアップ」のステップを完了してください。

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

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

デフォルトでは、Amazon S3 バケットと、バケット内のすべてのオブジェクトはプライベートであり、バケット内のオブジェクトへの読み取りまたは書き込みのアクセス許可を持つのはそのバケットを作成した AWS アカウントだけです。自分の Amazon S3 バケット内のオブジェクトに他のユーザーが CloudFront の URL を使用してアクセスできるようにするには、そのオブジェクトにパブリック読み取りアクセス許可を付与する必要があります。(これは、CloudFront と Amazon S3 を使用して作業を行う場合に最もよくある誤りの 1 つです。Amazon S3 バケットで、各オブジェクトに明示的に権限を許諾する必要があります。)

注記

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

コンテンツを Amazon S3 にアップロードして、すべてのユーザーに読み取りアクセス許可を付与するには

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

  2. Amazon S3 コンソールで、[バケットを作成する] を選択します。

  3. [バケットの作成] ダイアログでバケット名を入力します。

    重要

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

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

  5. [作成] を選択します。

  6. [バケット] ペインでバケットを選択して [アップロード] を選択します。

  7. [Upload – Select Files (アップロード – ファイルの選択)] ページで [ファイルを追加] を選択して、アップロードするファイルを選択します。

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

    1. [次へ] を選択してアクセス許可を設定します。

    2. [パブリックアクセス許可を管理する] ドロップダウンリストで [このオブジェクトにパブリック読み取りアクセス権限を付与する] を選択します。

    3. [次へ] を選択します。

  9. 暗号化やタグ付けなど、オブジェクトに必要なプロパティを設定し、[次へ] を選択します。

  10. [Upload] を選択します。

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

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

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

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

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

  1. https://console.aws.amazon.com/cloudfront/ にある、CloudFront コンソールを開きます。

  2. [Create Distribution] を選択します。

  3. [Select a delivery method for your content] ページで、[Web] セクションの [Get Started] を選択します。

    
							ディストリビューションの種類として [Web (ウェブ)] を選択します。
  4. [Create Distribution (ディストリビューションの作成)] ページの [Origin Settings (オリジン設定)] で、前の手順で作成した Amazon S3 バケットを選択します。[Origin ID (オリジン ID)]、[Origin Path (オリジンパス)]、[Restrict Bucket Access (バケットへのアクセスを制限)]、および [Origin Custom Headers (オリジンカスタムヘッダー)] はデフォルト値のままにします。

    
						Amazon S3 バケットを指定します。
  5. [Default Cache Behavior Settings (デフォルトのキャッシュ動作の設定)] でデフォルト値のままにすると、CloudFront は次のように動作します。

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

    • エンドユーザーに、HTTP または HTTPS のいずれかを使用して、オブジェクトへのアクセスを許可。

    • オブジェクトに対するリクエストに応答します。

    • CloudFront エッジロケーションでオブジェクトを 24 時間キャッシュします。

    • デフォルトのリクエストヘッダーのみをオリジンに転送し、ヘッダーの値に基づいてオブジェクトをキャッシュすることはしません。

    • オブジェクトに対するリクエストをオリジンに転送するときに、Cookie とクエリ文字列パラメータがあれば除外します (Amazon S3 は Cookie は処理せず、一部のクエリ文字列パラメータのみを処理します)。

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

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

    • 自動的にコンテンツを圧縮しません。

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

    
							キャッシュ動作を定義します。
  6. [Distribution Settings (ディストリビューションの設定)] で、ディストリビューションの値を選択します。

    価格クラス

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

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

    AWS WAF ウェブ ACL

    AWS WAF を使用して、指定した条件に基づいて HTTP リクエストと HTTPS リクエストを許可したりブロックしたりする場合は、このディストリビューションに関連付けられたウェブ ACL を選択します。AWS WAF の詳細については、AWS WAF 開発者ガイドを参照してください。

    代替ドメイン名 (CNAME) : (オプション)

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

    /images/image.jpg

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

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

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

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

    この場合、www.example.com の CNAME を作成します。

    重要

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

    ディストリビューションに追加できる代替ドメイン名の数に関する現在の制限について、または制限の引き上げをリクエストするには、「ウェブディストリビューションの一般的な制限」を参照してください。

    SSL 証明書

    デフォルト値である [Default CloudFront Certificate (デフォルトの CloudFront 証明書)] をそのまま使用します。

    デフォルトのルートオブジェクト: (オプション)

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

    ログ作成 : (オプション)

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

    Cookie のログ作成

    この例では、オブジェクトのオリジンとして Amazon S3 を使用していて、Amazon S3 は Cookie を処理しないため、[Cookie Logging (Cookie のログ)] の値として [Off (オフ)] を選択することをお勧めします。

    コメント : (オプション)

    配信とともに保存するコメントを入力します。

    ディストリビューションの状態

    ディストリビューションの作成直後に CloudFront でリクエストの処理を開始する場合は [有効] を選択し、ディストリビューションの作成後に CloudFront でリクエストの処理を開始しない場合は [無効] を選択します。

    ディストリビューションの設定
  7. [Create Distribution] を選択します。

  8. CloudFront がディストリビューションを作成すると、そのディストリビューションの [Status (ステータス)] 列の値が [InProgress (進行中)] から [Deployed (デプロイ済み)] に変わります。配信を有効にするよう選択すると、リクエストの処理を行えるようになります。これには、通常 20~40 分かかります。

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

ステップ 3: リンクをテストする

ディストリビューションの作成が完了すると、CloudFront は Amazon S3 オリジンサーバーの場所を認識し、ユーザーはそのディストリビューションに関連付けられているドメイン名が分かります。そのドメイン名を使用して Amazon S3 バケットのコンテンツへのリンクを作成して、CloudFront がそれを提供するようにできます。

注記

リンクのテストは、ディストリビューションのステータスが [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.jpg

  2. テキストを、.html ファイル名拡張子のついたファイルに保存します。

  3. ブラウザでウェブページを開いて、コンテンツが見られるか確認します。コンテンツが見られない場合、すべての手順を正しく実行したことを確認します。トラブルシューティングにあるヒントも参照してください。

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

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