簡単な CloudFront ディストリビューションの開始方法 - Amazon CloudFront

簡単な CloudFront ディストリビューションの開始方法

このセクションの手順では、CloudFront を使用して、次のことを行う基本的な設定をセットアップする方法について説明します。

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

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

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

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

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

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

Prerequisites

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

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

Amazon S3 バケットは、ファイル (オブジェクト) やフォルダのためのコンテナです。CloudFront では、Amazon S3 バケットをソースとして使用して、ほとんどのタイプのファイルを配信できます。たとえば、CloudFront では、テキスト、画像、ビデオを配信できます。Amazon S3 に保存できるデータ量に上限はありません。

デフォルトで、Amazon S3 バケットと、バケット内のすべてのファイルはプライベートで、そのバケットを作成した AWS アカウントのみがファイルを読み書きする許可を持っています。自分の Amazon S3 バケット内のファイルに他のユーザーが CloudFront の URL を使用してアクセスできるようにするには、そのオブジェクトにパブリック読み取りアクセス許可を付与する必要があります。

注記

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

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

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

  2. [バケットを作成する] を選択します。

  3. [バケット名] に、バケットの名前を入力します。

    重要

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

  4. [リージョン] で、バケットの AWS リージョンを選択します。最寄りのリージョンを選択してレイテンシーを最適化し、コストを最小限に抑えるか、あるいは規制要件に対応するために別のリージョンを選択することが推奨されます。

  5. [バケットのパブリックアクセスをブロックする] セクションで、[すべてのパブリックアクセスをブロックする] チェックボックスをオフにします。

    CloudFront URL がバケットからコンテンツを供給できるように、バケットとファイルへのパブリック読み取りアクセスを許可する必要があります。ただし、CloudFront プライベートコンテンツ機能を使用して、特定のコンテンツへのアクセスを制限することができます。詳細については、「署名付き URL と署名付き Cookie を使用したプライベートコンテンツの提供」を参照してください。

    [現在の設定により、このバケットと保存されたオブジェクトがパブリックになる可能性があることを了承します] のチェックボックスをオンにします。

  6. 他のすべての設定はデフォルトのままにして、[バケットを作成] を選択します。

  7. (オプション) ご自身のウェブサイトにまだコンテンツがない場合、または独自のコンテンツをアップロードする前に CloudFront を試したい場合は、次のリンクを使用して、簡単な Hello World ウェブページをダウンロードします。hello-world-html.zip

  8. [バケット] セクションで新しいバケットを選択した上で、[アップロード] をクリックします。

  9. [アップロード] ページから、コンテンツを S3 バケットに追加します。単純な Hello World ウェブページをダウンロードした場合は、index.html ファイル、および (css ファイルを中に含めながら) style.css フォルダを追加します。

  10. [その他のアップロードオプション] をクリックして、セクションを展開します。

  11. [Access control list (ACL)] (アクセスコントロールリスト (ACL)) セクションで、[Objects] (オブジェクト) 列の [Everyone (public access)] (全員 (パブリックアクセス)) の横にある [Read] (読み込み) チェックボックスをオンにします。

  12. [指定したオブジェクトに対するこれらの変更の影響を理解しています] チェックボックスをオンにします。

  13. ページの最下部で [アップロード] をクリックします。

    アップロードが完了したら、その URL を使用してこの項目に移動することができます。次に例を示します。

    https://<bucket name>.s3-<AWS Region>.amazonaws.com/<object name>

    バケットとコンテンツに基づいた適切な値で、<bucket name><AWS Region>、および <object name> を置き換えます。この手順で単純な Hello World ウェブサイトを使用している場合は、<object name>index.html に置き換えます。

    注記

    米国東部 (バージニア北部) リージョン (us-east-1) でバケットを作成している場合は、URL から <AWS Region> の部分を削除します。次に例を示します。

    https://<bucket name>.s3.amazonaws.com/<object name>

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

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

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

  1. https://console.aws.amazon.com/cloudfront/v3/home で CloudFront コンソールを開きます。

  2. [ディストリビューションの作成] を選択し、[今すぐ始める] をクリックします。

  3. [オリジンの設定] にある [オリジンドメイン名] で、前の手順で作成した Amazon S3 バケットを選択します。

    [Origin Settings (オリジンの設定)] の他の設定については、デフォルト値を使用します。

  4. [Default Cache Behavior Settings (デフォルトのキャッシュ動作の設定)] の設定については、デフォルト値を使用します。

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

  5. [ディストリビューション設定] の内容では、デフォルト値を受け入れます。

    ディストリビューションオプションの詳細については、「ディストリビューションの設定」を参照してください。

  6. ページの最下部で、[ディストリビューションの作成] をクリックします。

  7. CloudFront がディストリビューションを作成すると、ディストリビューションの [ステータス] 列の値が、[進行中] から [デプロイ済み] に変わります。これには通常数分かかります。

    CloudFront によってディストリビューションに割り当てられたドメイン名が記録され、ディストリビューションのリストに表示されます。(ドメイン名は、選択されたディストリビューションの [General] タブにも表示されます)。この表示は以下のようになります: d111111abcdef8.cloudfront.net

ステップ 3: CloudFront からコンテンツにアクセスする

CloudFront 経由でコンテンツにアクセスするには、CloudFront ディストリビューションのドメイン名を、コンテンツにアクセスするためのパスの中に含めます。ディストリビューションのドメイン名は、例として次のようになります: d111111abcdef8.cloudfront.net 一般的に、ウェブサイトのメインページにアクセスするためのパスは /index.html です。この場合には、CloudFront 経由でコンテンツにアクセスするための URL は、次のようになります。

https://d111111abcdef8.cloudfront.net/index.html

前の手順に従い、単純な Hello World Web ページを使用している場合は、これでウェブページのコンテンツが表示されます。


					Hello World ウェブページ 。

S3 バケットにアップロードした新しいコンテンツに CloudFront 経由でアクセスするには、CloudFront ディストリビューションのドメイン名 (d111111abcdef8.cloudfront.net など) を、S3 バケット内のオブジェクトへのパス内に組み入れます。たとえば、S3 バケットのルートに new-page.html という名前の新しいファイルをアップロードしている場合、CloudFront から次のような URL でこのページにアクセスできます。

https://d111111abcdef8.cloudfront.net/new-page.html

以上で、Amazon S3 に保存されているウェブサイトのコンテンツを配信するための、CloudFront の設定が正常に完了しました。さらに一歩進める場合は、カスタムドメイン名 (例えば www.example.com の代わりに d111111abcdef8.cloudfront.net) を使用するように、CloudFront ディストリビューションを設定できます。詳細については、「カスタム URL の使用」を参照してください。