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

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 を使用する方法の詳細については、ウェブディストリビューションを作成するためのタスクリストまたはRTMP を使用するストリーミングメディアファイルのタスクリストを参照してください。

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

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

まだアマゾン ウェブ サービスにサインアップしていない場合は、http://aws.amazon.com からサインアップします。[Sign Up Now] を選択し、必須事項を入力します。

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

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

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

Note

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

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

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

  2. Amazon S3 コンソールで、[Create Bucket] を選択します。

  3. [Create Bucket] ダイアログに、バケット名を入力します。

    Important

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

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

  5. [Create] を選択します。

  6. [Buckets] ペインでバケットを選択し、[Upload] を選択します。

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

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

    1. [Set Details] を選択します。

    2. [Set Details] ページで、[Set Permissions] を選択します。

    3. [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. 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]、[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 時間キャッシュします。

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

    • オブジェクトのリクエストをオリジンに転送する際、クッキーとクエリ文字列パラメーターを除外。(Amazon S3 はクッキーの処理は行わず、一部のクエリ文字列パラメーターのみを処理します。)

    • 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 を作成します。

    Important

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

    ディストリビューションに追加できる代替ドメイン名の数に関する現在の制限については、『アマゾン ウェブ サービス全般のリファレンス』の「Amazon CloudFront の上限」を参照してください。制限の引き上げを要求するには、「https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase&limitType=service-code-cloudfront-distributions」を参照してください。

    SSL 証明書

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

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

    ビューアがディストリビューション内のオブジェクト(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] の値に [Off] を選択することをお勧めします。

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

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

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

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

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

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

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

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

ディストリビューションの作成が終わると、CloudFront に Amazon S3 オリジンサーバーの場所が記憶され、ドメイン名がディストリビューションに関連付けられます。そのドメイン名を使用して [Amazon S3] バケットのコンテンツへのリンクを作成することができ、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.jpg

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

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

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

CloudFront 使用の詳細に関しては、Amazon CloudFront リソースをご覧ください。