Amazon CloudFront を使用します

このチュートリアルでは、 Amazon CloudFront を使用して、コンテンツを配信する方法、ウェブアプリケーションのエンドユーザーの待機時間を減らす方法を学習します。CloudFront は、エッジロケーションと呼ばれるデータセンターのグローバルネットワークを活用することによって、エンドユーザーに近いコンテンツをキャッシュして配信時間を減らし、コンテンツ配信速度をスピードアップします。CloudFront は、コンテンツがエッジロケーションにまだない場合は、Amazon S3 バケット、Amazon EC2 インスタンス、Amazon Elastic Load Balancing ロードバランサー、独自のウェブサーバーなどのオリジンからコンテンツを取得します。CloudFront を使用することで、動的、静的、ストリーミング、インタラクティブのコンテンツを含め、ウェブサイトまたはアプリケーション全体を配信できます。

以下の手順では、Amazon S3 バケットをオリジンとして設定し、ウェブブラウザを使用してディストリビューションをテストし、コンテンツが配信されていることを確認します。

このチュートリアルはすべて無料利用枠の範囲で実行できます。

高速のコンテンツ配信にはアカウントが必要です

コンソールにサインイン

AWS 無料利用枠には、1 年間、1 か月あたり 50 GB のデータ転送 (アウト) と 2,000,000 件の HTTP または HTTPS リクエストが含まれます。 

AWS 無料利用枠の詳細はこちら »


このステップでは、サンプルの静的コンテンツを Amazon S3 バケットにアップロードします。後続のステップで、このバケットを CloudFront オリジンとして使用します。Amazon S3 は、画像、動画、HTML ページ、.css ファイル、.js ファイルなどの静的コンテンツを含む Amazon CloudFront オリジンに適しています。


a. このチュートリアルで使用するサンプル画像は、cloudfront-test-image.png という PNG 画像です。右側のボタンをクリックしてサンプル画像をダウンロードし、cloudfront-test-image.png として保存されていることを確認します。

サンプル画像をダウンロードする

b. ここをクリックすると、AWS マネジメントコンソールが新しいブラウザウィンドウで開きます。検索ボックスに "S3" と入力し、ダブルクリックするとダッシュボードが表示されます。

tmt_faster-content-delivery-01

(クリックして拡大)

tmt_faster-content-delivery-01

c. S3 ダッシュボードで、[Create Bucket (バケットの作成)] ボタンをクリックします。

  • Region: レイテンシーを最適化し、コストを最小化し、規制要件に対応するために最寄りのリージョンを選択できます。

[Next (次へ)] を選択します。

[Set properties (プロパティの設定)] パネルには、[Versioning (バージョニング)]、[Server Access Logging (サーバーアクセスロギング)]、[Tags (タグ)]、[Object-level Logging (オブジェクトレベルロギング)]、[Default Encryption (デフォルトの暗号化)] など、S3 バケットの役立つオプションが数多く用意されています。このチュートリアルでは、こういったオプションを無効にしておきます。

[Next (次へ)] を選択します。

[Set permissions (プロパティの設定)] パネルでバケットのアクセスコントロール権限を設定できます。このチュートリアルでは、こういったオプションを無効にしておきます。

[Next (次へ)] を選択します。

[Review (確認)] パネルで [Create bucket (バケットの作成)] を選択します。

tmt_faster-content-delivery-02

(クリックして拡大)

tmt_faster-content-delivery-02

d. バケット名をダブルクリックします。[Upload (アップロード)]、[Add Files (ファイルの追加)] の順に選択し、コンピュータから cloudf ont-test-image.png を選択します。 

[Next] を選択します。

tmt_faster-content-delivery-03

(クリックして拡大)

tmt_faster-content-delivery-03

e. [Set permissions (権限の設定)] タブで画像をパブリックで読み取れるようにする必要があります。 デフォルトでは、S3 オブジェクトはプライベートに設定されます。[Manage public permissions (パブリックの権限管理)] を [Grant public access to objects(s) (オブジェクトへのパブリックアクセスの許可)] に変更します。

[Next (次へ)] を選択します。

[Set properties (権限の設定)] タブでは、[Storage class (ストレージクラス)]、[Encryption (暗号化)]、[Metadata (メタデータ)] を設定できます。このチュートリアルでは、こういったオプションを無効にしておきます。

[Next (次へ)] を選択します。

[Review (確認)] タブでファイルのアップロードを確認します。

[Upload] を選択します。

tmt_faster-content-delivery-04

(クリックして拡大)

tmt_faster-content-delivery-04

お客様のコンテンツは Amazon S3 にアップロードされ、Amazon CloudFront コンソールを使用して世界中のエンドユーザーにコンテンツを提供します。


a. ここをクリックすると、AWS マネジメントコンソールが新しいブラウザタブで開きます。 [Storage&Content Delivery (ストレージおよびコンテンツの配布)] の下のCloudFrontを見つけ、クリックしてAmazon CloudFront コンソールを開きます。

tmt_faster-content-delivery-06

(クリックして拡大)

tmt_faster-content-delivery-06

b. [Create Distribution (ディストリビューションを作成)] をクリックします。


 

tmt_faster-content-delivery-07

(クリックして拡大)

tmt_faster-content-delivery-07

ウェブディストリビューションは、ユーザーがリクエストしたとき、 CloudFront が、どのオリジンからコンテンツを取得したらよいかがか分かるように設定を指定します。Amazon S3 バケット (ストレージフォルダ) および HTTP サーバー (例えば、ウェブサーバー) をオリジンとして使用できます。


a. 最初にコンテンツのための配信方法を選択します。  ウェブディストリビューション は、静的コンテンツと動的コンテンツで使用され、RTMP ディストリビューションは、Adobe Flash Media Server の RTMP プロトコルでメディアファイルのストリーミングを行うのに最適です。

cloudfront-test-image.png は静的イメージ であるため、[Web] オプションの下の[Get Started (開始する)] を選択します。

tmt_faster-content-delivery-08

(クリックして拡大)

tmt_faster-content-delivery-08

b. 次に、ご自分の設定を行います。 

[Origin Domain Name (オリジンのドメイン名)] で、cloudfront-test-image.png を保存したS3 バケットの名前を選択します。

その他の設定をそのまま使用し、このチュートリアルのためにデフォルト値を使用して設定することができます。 各設定についての詳細をお知りになりたい場合は、下のドロップダウンをクリックしてください。

デフォルトのキャッシュ動作の設定:

ディストリビューションの設定:

  • Price Class CloudFrontは、世界中でサポートを希望するエッジロケーションの数によって、3 つの価格クラスがあります。デフォルトでは、CloudFrontは、最高のパフォーマンスを確保するためにすべてのエッジロケーションを使用します。詳細については、「Amazon CloudFront の価格設定」をご覧ください。
  • AWS WAF ウェブ ACL:指定した条件に基づいてHTTPと HTTPS リクエストを許可またはブロックする場合は、 このディストリビューションに関連付けられたウェブ ACLを選択します。詳細については、「AWS WAF 開発者ガイド」をご参照ください。
  • 代替ドメイン名 :CloudFront は、ウェブディストリビューションを作成する際に、ドメイン名を自動的に割り当てます (例えば、http://abcdefghi888.cloudfront.net/filename.jpg) 。CloudFront ディストリビューションに DNS クエリをルーティングするよう DNS 設定を更新すると、オブジェクトの URL 内で独自のドメイン名を指定することもできます (http://yourDomain.com/filename.jpgなど) 。このチュートリアルでは、このフィールドを空欄にしておきます。
  • SSL 証明書:CloudFront では、デフォルトの証明書または独自 SSL 証明書を指定することができます。
  • [Default Root Object (デフォルトのルートオブジェクト)]:これは、 ディストリビューションのルート URLだけをユーザーがリクエストするときに、CloudFront にオリジンから要求するオブジェクトを指定する場合です。例えば、ユーザーが http://www.example.com/ をリクエストすると、http://www.example.com/product-description.html が配信されるように指定できます。デフォルトのルートオブジェクトを指定すると、ディストリビューションのコンテンツが公開されなくなります。
  • Logging (ログ記録):CludFrontは、オブジェクトの各リクエストについての情報をログすることができ、ログファイルを Amazon S3 バケットに保存することができます。ログ作成を有効にしても追加料金はかかりませんが、ファイルの保存とアクセスについては、Amazon S3 料金が発生します。
  • Bucket for Logs (ログのためのバケット) :Amazon S3 バケットにアクセスログを保存するように指定する場合、CloudFront は各ユーザーのオブジェクトのリクエストに関する情報を記録し、ファイルを指定された Amazon S3 バケットに保存することができます。ログ記録は、いつでも有効または無効にできます。CloudFront のアクセスログの詳細については、「アクセスログ」を参照してください。
  • Log Prefix (ログのプレフィックス):[Logging (ログ記録) ] で [On] を選択した場合、CloudFront でこのディストリビューションのためのアクセスログのファイル名にプレフィックスとして使用する文字列を指定できます。CloudFront のアクセスログの詳細については、「アクセスログ」を参照してください。
  • Cookie Logging:オブジェクトのオリジンとして Amazon S3 を使用する場合、Amazon S3 は Cookie を処理しません。したがって、ディストリビューションが Amazon EC2 または他のカスタムオリジンを含んでいる場合を除き、[Cookie Logging] の値に [Off] を選択する必要があります。Cookie の詳細については、「Cookie に基づいてオブジェクトをキャッシュするように CloudFront を設定する」を参照してください。
  • Comment (コメント):ディストリビューションとともに保存するコメントを入力することができます。
  • Distribution Status (配布のステータス):デフォルトは [Enabled (有効)] になります。これらの例からわかるように、ディストリビューションが作成された後すぐにコンテンツをご利用いただけるようになります。
tmt_faster-content-delivery-09

(クリックして拡大)

tmt_faster-content-delivery-09

ディストリビューションを設定すると、CloudFront でディストリビューションが作成され、使用できるように CloudFront ネットワーク全体に伝達されます。  [Create Distribution (ディストリビューションを作成)] を選択します。

このプロセスが完了したら、ステータス列が、[In Progress (実行中)] から [Deployed (デプロイ済み)] に変わります。

注意:この処理には数分かかることがあります。

CloudFrontによってディストリビューションに割り当てられたドメイン名は、ディストリビューションの一覧に表示されます。このことを念頭に置いてください。これは次のステップで必要になります。 [Distribution ID (ディストリビューションID)] フィールドをクリックすると、[Domain Name (ドメイン名) ] の下に完全な CloudFront ドメインが表示されているページに移動します。

tmt_faster-content-delivery-10

(クリックして拡大)

tmt_faster-content-delivery-10

ウェブディストリビューションを作成した後、CloudFront がオリジンからオブジェクトを取得することを確認することによって、それをテストすることができ、それをウェブブラウザに返すことができます。 このテストでは、ステップ 4 からの CloudFront ドメイン名、およびステップ 1 で S3 バケットにアップロードしたイメージ名が必要になります。


a. コンピュータのテキストエディターを開きます。以下の HTML コードをコピーして貼り付けます。

My CloudFront テスト

My テキストコンテンツがここに入ります。

my test image

  • ドメイン名を、 CloudFront がディストリビューションに割り当てたドメイン名 (例えば、d111111abcdef8.cloudfront.net) に置き換えます。
  • オブジェクト名 を、Amazon S3 バケットのイメージファイルの名前 ( この場合は cloudfront-test-image.png) に置き換えます。
  • mycloudfronttest.html としてテキストをファイルに保存します。

b. ブラウザでウェブページを開いて、コンテンツが表示されるか確認します。 

cloudfront-16

(クリックして拡大)

cloudfront-16

CloudFront コンソールからディストリビューションを簡単に無効にすることができます。 ここでは、課金され続けることが無いように、使用しないディストリビューションは無効にしていただくことをお勧めします。ただし、ディストリビューションを無効にすると、そのディストリビューションでサポートされているウェブサイトがダウンしてしまうため、エンドユーザーにはアクセスできなくなるということにご注意ください。


a. 作成したディストリビューションの隣にあるチェックボックスを選択して、[Disable (無効)] をクリックします。

tmt_faster-content-delivery-11

(クリックして拡大)

tmt_faster-content-delivery-11

b.  確認するよう求められますので、[Yes, Disable (はい、無効にします)] をクリックします。

tmt_faster-content-delivery-12

(クリックして拡大)

tmt_faster-content-delivery-12

最初の Amazon CloudFront ウェブディストリビューションを作成して、Amazon S3 経由でクラウドでホストされた静的コンテンツの配信を行いました。設定をいくつか変更することで、CloudFront を使用して、ミーティング、カンファレンス、コンサートなどのライブイベントの動的コンテンツを HTTP または HTTPS でリアルタイムで配信できます。Amazon Cloudfront を使用すれば、動的、静的、ストリーミング、インタラクティブのコンテンツを含め、ウェブサイトまたはアプリケーション全体の配信を高速化できます。

Amazon CloudFront でウェブディストリビューションをセットアップし、静的コンテンツを配信する方法を学習しました。ご不明な点がございましたら、営業時間内または次回の AWS Tech Talks で CloudFront の担当エキスパートにお問い合わせください。

Amazon CloudFront の開始方法のページ >>

 

はい
いいえ