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

基本的な CloudFront ディストリビューションの開始方法

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

  • ディストリビューションオリジンとして使用するバケットを作成します。

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

  • オリジンアクセスコントロール (OAC) を使用して、認証済みのリクエストを Amazon S3 オリジンに送信します。OAC は CloudFront を介してリクエストを送信することで、ビューワーが S3 バケットに直接アクセスできないようにします。OAS の詳細については、「Amazon Simple Storage Service オリジンへのアクセスを制限する」を参照してください。

  • オブジェクトの URL で CloudFront ドメイン名を使用します (例: https://d111111abcdef8.cloudfront.net/index.html)。

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

大半のオプションはカスタマイズ可能です。CloudFront ディストリビューションのオプションをカスタマイズする方法の詳細については、「ディストリビューションを作成する」を参照してください。

前提条件

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

Amazon S3 バケットを作成する

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

このチュートリアルでは、基本的なウェブページを作成するために提供されたサンプルの hello world ファイルを使用して S3 バケットを作成します。

バケットを作成するには

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

  2. この「開始方法」では、Hello World サンプルを使用することをお勧めします。hello world ウェブページ (hello-world-html.zip) をダウンロードします。解凍して、css フォルダと index ファイルを使いやすい場所 (ブラウザを実行しているデスクトップなど) に保存します。

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

  4. 「Amazon Simple Storage Service ユーザーガイド」の「汎用バケットの命名規則」に準拠した一意のバケット名を入力します。

  5. [リージョン] では、地理的に近い AWS リージョンを選択することをお勧めします (これにより、レイテンシーが短縮され、コストが削減されます)。

    • 別のリージョンを選択することもできます。規制要件に対応する場合などは、別のリージョンを選択することがあります。

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

コンテンツをバケットにアップロードする

Amazon S3 バケットを作成したら、解凍した hello world ファイルの内容をバケットにアップロードします (このファイルは Amazon S3 バケットを作成する にダウンロードして解凍しました)。

コンテンツを Amazon S3 にアップロードするには
  1. [汎用バケット] セクションで、新しいバケットの名前を選択します。

  2. [アップロード] を選択します。

  3. [アップロード] ページで、css フォルダと index ファイルをドロップ領域内にドラッグします。

  4. 他のすべての設定はデフォルトのままにして、[アップロード] を選択します。

OAC を使用する Amazon S3 オリジンで CloudFront ディストリビューションを作成する

このチュートリアルでは、オリジンアクセスコントロール (OAC) で Amazon S3 オリジンを使用する CloudFront ディストリビューションを作成します。OAC は、認証済みのリクエストを Amazon S3 オリジンに安全に送信するのに役立ちます。OAC の詳細については、「Amazon Simple Storage Service オリジンへのアクセスを制限する」を参照してください。

OAC を使用する Amazon S3 オリジンで CloudFront ディストリビューションを作成するには
  1. CloudFront コンソール (https://console.aws.amazon.com/cloudfront/v4/home) を開きます。

  2. [ディストリビューションの作成] を選択します。

  3. [オリジン][オリジンドメイン] で、このチュートリアル用に作成した S3 バケットを選択します。

  4. [オリジン][オリジンアクセス] で、[オリジンアクセスコントロール設定 (推奨)] を選択します。

  5. [オリジンアクセスコントロール] で、[新しい OAC を作成] を選択します。

  6. [新しい OAC を作成] ペインは、デフォルト設定のままにして、[作成] を選択します。

  7. [ウェブアプリケーションファイアウォール (WAF)] で、いずれかのオプションを選択します。

  8. 他のすべてのセクションや設定は、デフォルト値のままにします。これらのパラメータの詳細については、「ディストリビューションの設定」を参照してください。

  9. [ディストリビューションの作成] を選択します。

  10. [S3 バケットポリシーを更新する必要があります] バナーで、メッセージを読み、[ポリシーをコピー] を選択します。

  11. 同じバナーで、[S3 バケットのアクセス許可に移動してポリシーを更新する] へのリンクを選択します (これにより、Amazon S3 コンソールのバケットの詳細ページに移動します)。

  12. [バケットポリシー] で、[編集] を選択します。

  13. [ステートメントを編集] フィールドに、ステップ 10 でコピーしたポリシーを貼り付けます。

  14. [Save changes] (変更の保存) をクリックします。

  15. CloudFront コンソールに戻り、新しいディストリビューションの [詳細] セクションを確認します。ディストリビューションのデプロイが完了すると、[最終変更日] フィールドが [デプロイ中] から 日付と時刻に変わります。

  16. CloudFront がディストリビューションに割り当てるドメイン名を記録します。この表示は以下のようになります: d111111abcdef8.cloudfront.net

このチュートリアルのディストリビューションと S3 バケットを本番環境で使用する前に、特定のニーズに合うように設定してください。本番環境でのアクセス権の設定方法については、「コンテンツへのセキュアなアクセスの設定とアクセスの制限」を参照してください。

CloudFront を介してコンテンツにアクセスする

CloudFront からコンテンツにアクセスするには、CloudFront ディストリビューションのドメイン名と、コンテンツのメインページを組み合わせます (ディストリビューションのドメイン名は OAC を使用する Amazon S3 オリジンで CloudFront ディストリビューションを作成する に記録しました)。

  • ディストリビューションのドメイン名は、d111111abcdef8.cloudfront.net のようになります。

  • 通常、ウェブサイトのメインページへのパスは /index.html です。

したがって、CloudFront からコンテンツにアクセスするための URL は次のようになります。

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

前の手順に従い、Hello World のウェブページを使用している場合は、[Hello world!] と記載されたウェブページが表示されるはずです。

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

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

クリーンアップ

学習目的のためだけにディストリビューションと S3 バケットを作成した場合は、削除して料金が発生しないようにします。最初にディストリビューションを削除します。詳細については、以下のリンクを参照してください。

基本的なディストリビューションを拡張する

この開始方法チュートリアルでは、ディストリビューションを作成するための最小限のフレームワークを提供します。以下の拡張機能を試してみることをお勧めします。

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

  • CloudFront のプライベートコンテンツ機能を使用して、Amazon S3 バケット内のコンテンツへのアクセスを制限できます。プライベートコンテンツの配信の詳細については、「署名付き URL と署名付き Cookie を使用したプライベートコンテンツを提供する」を参照してください。

  • CloudFront ディストリビューションは、カスタムドメイン名 (d111111abcdef8.cloudfront.net の代わりに www.example.com など) を使用するように設定できます。詳細については、「カスタム URL を使用する」を参照してください。

  • このチュートリアルでは、オリジンアクセスコントロール (OAC) で Amazon S3 オリジンを使用しています。ただし、オリジンがウェブサイトエンドポイントとして設定した S3 バケットである場合は、OAC を使用できません。この場合は、CloudFront でバケットをカスタムオリジンとして設定する必要があります。詳細については、「ウェブサイトのエンドポイントとして設定された Amazon S3 バケットを使用する」を参照してください。OAC の詳細については、「Amazon Simple Storage Service オリジンへのアクセスを制限する」を参照してください。