新しいコードを作成しなくても、追加コストなしで、カスタマイズされた動的なウェブコンテンツを配信

一般的なウェブサイトには、通常、静的なコンテンツと動的なコンテンツが混在しています。静的なコンテンツには画像やスタイルシートが含まれます。動的なコンテンツ、つまりアプリケーションによって生成されるコンテンツには、閲覧者に応じてパーソナライズされたサイト要素が含まれます。これまでは、動的なコンテンツのパフォーマンスと信頼性を高めるためのオプションは限られていました。従来型の CDN によって提供されるソリューションは高額で、設定は難解な上、管理も容易ではありませんでした。


earth-networks-thumbnail
video-thumb-dynamic-content-02

Amazon CloudFront を使えば、データ転送とリクエストに対する Amazon CloudFront の既存の低価格以外の追加料金なしで、動的コンテンツを提供できます。長期契約や最低料金は必要ありません。前払いや月額料金、構成の支援を依頼する高額なコンサルタント料も不要です。

AWS を無料でお試しください

まずは無料で始める »
またはコンソールにサインイン

AWS の無料利用枠には、Amazon CloudFront における 50GB のデータ転送(アウト)と 2,000,000 件の HTTP および HTTPS リクエストが含まれています。

AWS アカウント作成の流れはこちら »

日本担当チームへお問い合わせ »

AWS がスポンサーとなって実施された Frost & Sullivan のこちらのホワイトペーパーをダウンロードし、amazon.com がグローバルな CDN トラフィックの大半を配信するために Amazon CloudFront を選んだ理由についてお読みください。Amazon CloudFront CDN ペーパーをダウンロードしてください。

Amazon CloudFront は、簡単でコスト効率の高い方法により、エンドユーザーごとに変わるサイトの静的コンテンツと動的部分のどちらについても、ウェブサイト全体のパフォーマンス、信頼性、グローバル化を向上します。

Amazon CloudFront は、カスタムコーディングや独自の設定を必要とせず、Amazon EC2 または AWS の外部で実行するお客様のオリジンで稼働する動的ウェブアプリケーションとシームレスに連携するため、シンプルなデプロイと管理が可能なサービスです。1 つの Amazon CloudFront ディストリビューションを使用して、静的コンテンツと動的(つまりインタラクティブな)コンテンツの両方を含むウェブサイト全体の配信が可能です。これは、静的コンテンツと動的コンテンツを区別したり、ウェブサイトで複数のドメイン名を管理したりせずに、ウェブサイト全体で、単一のドメイン名(www.example など)を使い続けることができることを意味しています。

Amazon CloudFront により、ビューアごとに、ウェブページのカスタマイズに役立つクエリ文字列パラメータや Cookie を含めることができます。さらに、ウェブサイトの URL パターンに基づいて、ウェブディストリビューション用の複数のキャッシュ動作を設定することもできます。これらのキャッシュ動作では、Amazon CloudFront でウェブサイトのさまざまな部分をどのようにキャッシュさせたいかを詳細に制御できます。

これらの機能について、下に詳しく説明します。

キャッシュ動作は、ファイル拡張子、ファイル名、またはウェブサイトの URL パスの一部 (*.jpg など) に基づいて指定した URL パターンに対して、お客様が設定するルールの組み合わせです。ウェブディストリビューション用の複数のキャッシュ動作を設定できます。Amazon CloudFront は、ユーザーから受信するリクエストをお客様の URL パターンリストとマッチングし、一致するものがあれば、その URL パターンに設定したキャッシュ動作に従います。各キャッシュ動作には、Amazon CloudFront の設定値として、オリジンサーバー名、ユーザーの接続プロトコル、最短失効期間、クエリ文字列パラメータ、Cookie、プライベートコンテンツの信頼された署名者を含めることができます。

Amazon CloudFront エッジロケーションでは、ユーザーエージェントヘッダーの値が確認され、すべての着信リクエストについてデバイスの種類が検出されます。Amazon CloudFront では、エンドユーザーのリクエストがデスクトップ、タブレット、スマート TV、モバイルデバイスのうちどれから来たかを特定でき、その情報が新しい HTTP ヘッダーの形式でオリジンサーバー – Amazon EC2、Elastic Load Balancing、またはカスタムオリジンサーバーに渡されます。オリジンサーバーは、デバイスの種類に関する情報を使用して、新しいヘッダーに基づいて異なるバージョンのコンテンツを生成できます。Amazon CloudFront では、エッジロケーションに異なるバージョンのコンテンツをキャッシュすることもできます。

Amazon CloudFront では、エンドユーザーによるコンテンツへのアクセス元の国を検出することもできます。Amazon CloudFront は次に、新しい HTTP ヘッダーにある国に関する情報をカスタムオリジンサーバーに渡します。オリジンサーバーでは、異なる国のユーザーに異なるバージョンのコンテンツを生成でき、これらの異なるバージョンをエッジロケーションでキャッシュして、同じ国からウェブサイトにアクセスする後続のユーザーにサービスを提供します。

Amazon CloudFront では、オリジンサーバー(Amazon S3 またはカスタムオリジン)が CORS (Cross-Origin Resource Sharing) 経由でクロスオリジンアクセスをサポートできるよう、オリジンヘッダー値の転送を設定できます。CORS は、特定のドメインにロードされたクライアントウェブアプリケーションが異なるドメイン内のリソースと通信する方法を定義します。

Amazon CloudFront ダウンロードディストリビューションに、1台または複数のオリジンサーバーを設定できます。Amazon S3、Amazon EC2、Elastic Load Balancing といった AWS をオリジンサーバーにすることも、AWS 以外のカスタムのオリジンサーバーを利用することもできます。Amazon CloudFront は、ユーザーがリクエストする URL をディストリビューションに設定したルールとマッチングすることにより、各オリジンサーバーのコンテンツをリクエストします。この機能により、ストレージには Amazon S3、コンピューティングには Amazon EC2 というように、各 AWS リソースをその目的に沿って柔軟に利用できます。また、そのために複数のディストリビューションを作成したり、ウェブサイト上で複数のドメイン名を管理したりする必要はありません。すでにセットアップ済みのオリジンサーバーを使い続ける場合も、データを移動させたり、アプリケーションコードをデプロイし直す必要はありません。

Amazon CloudFront は、お客様が(キャッシュコントロールヘッダーを使用して)ファイルに設定した失効期限を使用して、オリジンにファイルの更新バージョンを確認するかどうかを決定します。ファイルが頻繁に変更されることが想定される場合は、そのファイルの失効期間を短く設定できます。Amazon CloudFront では、失効期間を 0 秒に設定できます(この場合、Amazon CloudFront はユーザーリクエストごとにオリジンサーバーで再検証します)。Amazon CloudFront は、プライベートキャッシュや保存しないなど、特別なキャッシュコントロール指示にも対応しています。これらは、エッジでキャッシュされない場合のある動的コンテンツの配信時に役立ちます。

クエリ文字列パラメータは、オリジンサーバー上で動作するスクリプトにより生成される、カスタマイズされたコンテンツを返す場合によく使用されます。クエリ文字列をオリジンサーバーに転送し、キャッシュされたオブジェクトの一意の ID に含めるように設定することもできます。この機能は、設定した一意の各キャッシュ動作ごとに個別に有効にできます。クエリ文字列パラメータは、Amazon CloudFront エッジロケーションでコンテンツをキャッシュすることにより、パフォーマンスおよびスケーリングの利点を活用しながら、ユーザーごとにウェブページをカスタマイズするのに役立ちます。

Amazon CloudFront では、HTTP Cookie を使用してカスタマイズまたはパーソナライズされた動的コンテンツの配信がサポートされます。この機能を使用するには、一部またはすべての Cookie を Amazon CloudFront からお客様独自のオリジンサーバーに転送するかどうかを指定する必要があります。また、Cookie 名にワイルドカード文字を指定して、1 つの文字列形式に一致する複数の Cookie を転送することもできます。転送された Cookie の値は、Amazon CloudFront のキャッシュ内で一意のオブジェクトを特定するときに考慮されます。コンテンツ配信のエンドユーザーにとっては、Cookie を使用して自分だけのためにパーソナライズされたコンテンツと、Amazon CloudFront のパフォーマンスという、2 つのメリットがあります。

Amazon CloudFront を使用して、すべての(またはホワイトリストの)リクエストヘッダーをオリジンサーバーに転送できます。これらのヘッダーには、ビジターが使用するデバイスまたはコンテンツへのアクセス元の国などの情報が記載されています。CloudFront を設定して、カスタマイズされたコンテンツを閲覧者に配信できるように、ヘッダーの値に基づいてコンテンツをキャッシュできます。例えば、同じウェブサーバーで複数のウェブサイトをホストしている場合、Amazon CloudFront を設定してホストヘッダーをオリジンに転送できます。オリジンがホストヘッダーの値に基づいて同じオブジェクトの異なるバージョンを返した場合、Amazon CloudFront はこれらの値に基づいて別々にオブジェクトをキャッシュします。

独自 SSL 証明書機能を使用すると、独自のドメイン名および独自の SSL 証明書を使用して、コンテンツを HTTPS 経由で配信することができます。この機能により、ウェブサイトの訪問者が独自のドメイン名を使用する SSL 接続から CloudFront のセキュリティのメリットを利用できます。またレイテンシーが低下し、信頼性が向上します。オリジンフェッチ用に HTTPS 接続を使用するよう、CloudFront を設定することもできます。これにより、お客様のオリジンサーバーとエンドユーザーのエンドツーエンド間でデータが暗号化されます。独自 SSL 証明書機能の設定は簡単です。独自開発されたコードを学習したり、その設定を行うコンサルタントを雇用したりする必要はありません。CloudFront 独自 SSL の詳細ページにアクセスして、お客様のニーズに最も適合する独自 SSL 機能を選択してください。

SSL/TLS 証明書をプロビジョンし、CloudFront ディストリビューションに関連付けることが数分で行えます。新しい AWS Certificate Manager (ACM) を使用して証明書をプロビジョンし、わずか数クリックで CloudFront ディストリビューションにデプロイしてしまえば、後は ACM によって証明書の更新管理が実行されます。ACM を使うことで、証明書のプロビジョン、デプロイ、および管理を追加料金なしで実現できます。

CloudFront を使用すると、ルートドメインまたはウェブサイトの「zone apex」からコンテンツを配信することができます。たとえば、http://www.example.com と http://example.com の両方を、同じ CloudFront ディストリビューションを指すよう設定できます。リダイレクトサービスの管理による可用性の低減やパフォーマンスへの影響はありません。この機能を使うには、Amazon Route 53 エイリアスレコードを作成して、CloudFront ディストリビューションにドメインのルートをマッピングします。

Amazon CloudFront を設定して、キャッシュキーの一部としてエンドユーザーのリクエストのプロトコル(HTTP か HTTPS か)を含め、キャッシュ内のオブジェクトを一意に識別できます。これにより、エンドユーザーがコンテンツにアクセスするために使用しているプロトコルに基づいてコンテンツをカスタマイズできます。

Amazon CloudFront は、HTTP メソッドとして、GET、HEAD、POST、PUT、DELETE、OPTIONS、および PATCH をサポートしています。これにより、ウェブフォーム、コメント、ログインのボックス、「カートに追加」ボタンなど、エンドユーザーからデータをアップロードする機能を持つ動的なウェブサイトのパフォーマンスを高めることができます。また、1 つのドメイン名だけを使用して、CloudFront を通じてウェブサイト全体を配信することも可能になるため、ウェブサイトのダウンロードとアップロードのどちらも高速化できます。デフォルトで、GET メソッドと HEAD メソッドに対する応答が CloudFront エッジロケーションでキャッシュされます。OPTION リクエストの応答をキャッシュするように Amazon CloudFront ディストリビューションを構成することもできます。その他の HTTP メソッド(POST、PUT、DELETE、および PATCH)は、キャッシュされず、Amazon CloudFront エッジロケーションによってオリジンにプロキシされるだけです。既存の CloudFront ディストリビューションのために、AWS マネジメントコンソールまたは CloudFront API を使用して、これらの HTTP メソッドのサポートを有効にすることが必要な場合があります。

さらに、動的ウェブサイトを配信するように Amazon CloudFront を設定する際に、Amazon CloudFront のすべての機能を使用できます。これらの機能には、プライベートコンテンツの提供、コンテンツの安全な配信、オブジェクトのバージョニング、キャッシュの無効化、使用状況レポートのアクセスログ、モニタリングなどがあります。Amazon CloudFront のすべての機能の詳細については、Amazon CloudFront 開発者ガイドを参照してください。

Amazon CloudFront では、サービスレベルアグリーメント(SLA)も提供しています。これは、いずれかの請求サイクルで、お客様の月間のアップタイムパーセンテージが当社のサービス契約を下回る場合のサービスクレジットとして提供されています。詳細については、Amazon CloudFront SLA のページをご覧ください。

このページに加えて、関心の高そうな他のページには、Amazon CloudFront 製品ページや Amazon CloudFront 開発者ガイドがあります。

Amazon CloudFront は、オリジンからエンドユーザーへのウェブサイト全体(動的コンテンツと静的コンテンツの両方を含む)の配信を高速化するいくつかのパフォーマンス最適化を実装しています。これらのパフォーマンスの向上には、オリジンとの固定接続の維持、および動的コンテンツの配信を高速化するための他のネットワークパスの最適化などがあります。具体的には、各エンドユーザーは、インターネット待ち時間に基づいて、それぞれ最も近い Amazon CloudFront エッジロケーションに割り当てられます。ユーザーのリクエストは、Amazon によって接続のパフォーマンス監視と最適化が行われている接続によって、AWS で稼動するオリジンサーバーに返されます。

また、Amazon CloudFront エッジとオリジンサーバー間の既存の接続は再利用され、オリジンへの各リクエストの接続セットアップ待ち時間が短縮されます。他にも接続最適化策が採用され、インターネットの障害を回避しつつ、エッジロケーションとユーザーの間で利用できる帯域幅が最大限に活用されます。つまり、Amazon CloudFront により動的コンテンツの配信が高速化され、ウェブアプリケーションのユーザー体験は安定した高い信頼性を有しながらもパーソナライズされたものとなります。Amazon CloudFront では、動的コンテンツのダウンロードを求めるリクエストに適用されるのと同じパフォーマンス上のメリットが、アップロードリクエストにも提供されます。

Amazon CloudFront のパフォーマンスに関する Frost & Sullivan のホワイトペーパーAWS は Frost & Sullivan に、Amazon CloudFront のパフォーマンスを他の大手 CDN と比較するホワイトペーパーの作成を依頼しました。CDN 専門家 Dan Rayburn が執筆したそのホワイトペーパーは、パフォーマンスデータの比較を掲載し、さまざまなレイテンシーテストの結果、すべてのテストにおいて Amazon CloudFront が他の大手 CDN を平均レイテンシーで圧倒し、トップ CDN の中でも最速であると結論づけています。ホワイトペーパーはまた、Amazon.com サイト(複数の大手 CDN でパフォーマンステストを行っている)で実施したテスト結果を示し、Amazon.com サイトの CDN トラフィックの大部分が現在 Amazon CloudFront によって配信されている理由を述べています。ホワイトペーパーをダウンロード

Amazon CloudFront は、カスタムコーディングや独自の設定を必要とせず、Amazon EC2 または AWS の外部で実行するお客様のオリジンで稼働する動的ウェブアプリケーションとシームレスに連携するため、シンプルなデプロイと管理が可能なサービスです。単一の Amazon CloudFront ディストリビューションを使用して、静的および動的、つまりインタラクティブなコンテンツの両方を含むウェブサイト全体の配信が可能です。これは、静的コンテンツと動的コンテンツを区別したり、ウェブサイトで複数のドメイン名を管理したりせずに、ウェブサイト全体で単一のドメイン名 (www.example など) を使い続けられるということです。

AWS マネジメントコンソールのシンプルなグラフィカルユーザーインターフェイス経由で、Amazon CloudFront の操作を行うことができます。または、API を 1 回呼び出すだけで、Amazon CloudFront ネットワークを通じて、Amazon S3 バケットまたは Amazon EC2 インスタンス、他のオリジンサーバからのコンテンツ配信を開始することができます。既存の設定に対する変更はすべて、数分以内にグローバルネットワーク全体で有効になります。さらに、販売担当者との交渉が必要ないため、すぐに Amazon CloudFront を使用してウェブサイト全体の配信を開始できます。

AWS マネジメントコンソールでの Amazon CloudFront の設定

console

Amazon CloudFront は、他のアマゾン ウェブ サービスで使用するようにも設計されています。Amazon EC2 を Amazon CloudFront のオリジンサーバーとして使用する場合、同じツールセットを利用してウェブアプリケーション全体の配信を設定および管理できるという利点があります。また、Amazon EC2 の料金設定は Amazon CloudFront と同じく従量制です。さらに、Amazon CloudFront エッジロケーションと Amazon EC2 データセンターの間のルートは常に監視され、パフォーマンスと可用性が最適化されます。これらのネットワークルートの問題はすぐに検知されて修正されるか、あるいは Amazon が監視する他のネットワークルートに自動的にユーザーが転送されるため、アプリケーションのユーザーへの影響を最小限に抑えます。

ここでのウェブアプリケーションは高度にパーソナライズされていて(お勧めなど)、検索や閲覧で商品をスピーディに見つけ出す性能が不可欠です。この例にあげたアプリケーション向けのパフォーマンスが向上すると、収益やエンドユーザーのローヤリティに直接結び付きます。

エンドユーザーの集中力の持続時間が短くなっているため、ニュースとスポーツアプリケーションはエンドユーザーごとにカスタマイズする必要があります。ただし、このコンテンツは短時間 (例えば、数秒間) キャッシュすることで、スケーラビリティーとエンドユーザーに対するパフォーマンスを高めることができます。

ここでのウェブアプリケーションでは、エンドユーザー向けのコンテンツのカスタマイズにおいて地域が重要になります。コンテンツのタイプにより、エッジロケーションに対してさまざまな長さでコンテンツをキャッシュできます。例えば、1 時間ごとに更新される天気情報は最大 1 時間キャッシュし、緊急の気象警報などは数秒間のみキャッシュすることで、エンドユーザーに対して常に最新の情報を提供できます。

ターゲット広告は Cookie またはクエリ文字列データに基づき、オンザフライベースで計算されます。通常、広告主は、レイテンシーの短い広告配信を必要とします。Amazon CloudFront は、このようなアプリケーションのパフォーマンスとパーソナライズのニーズに対応します。

ここでのアプリケーションにも、ユーザープロファイル、設定、友人、およびアクティビティを統合した、パーソナライズされたインタラクティブなコンテンツがあります。これらの機能の結果、オリジンサーバーに頻繁にアクセスする必要がある長いコンテンツが発生します。CloudFront のネットワークとパスの最適化は、このようなコンテンツの配信を高速化して、ソーシャルメディアアプリケーションのパフォーマンスを高めるうえで有用です。

Earth Networks は消費者および企業に、天気と大気のデータを提供しています。数百万のユーザーがこの会社の WeatherBug 製品に頼っており、それらの製品には、モバイルアプリとデスクトップアプリケーション、ウエブサイト www.weatherbug.com があります。

Earth Networks は、きわめて小さいレイテンシーと優れた応答時間で、ユーザーに動的かつパーソナライズされたウェブベースのコンテンツを迅速に提供できるように、CDN を使用しています。具体的には、ほぼリアルタイムでローカル情報をエンドユーザーに提供できる必要があり、Time to Live、クエリ文字列、Cookie 情報などを調整でき、そのすべての情報をオリジンに戻して、ユーザーが必要なものだけをプルできるようにする CDN が必要です。

「地区レベルの天気情報のプロバイダとして、動的コンテンツと、クエリ文字列、Cookie、低い TTL などに基づいて最適化する機能の両方を備えていない CDN を使えてもどうしようもありません。当社のユースケースは、CloudFront が提供するあらゆる機能に渡ります」と、Earth Networks – WeatherBug の Director of Web and Desktop Development、Andy Rosenbaum 氏は述べています。「以前の CDN で抱えていた課題の 1 つは、その CDN 専用に書かれたコードが必要であったことでした。これにより、開発コストが大きくなっていました。カスタマイズしたコードを書く必要なく、同等のレベルのパフォーマンスを達成することができました。以前の CDN と同等のパフォーマンス基準でコストが約 50% 削減されると予想しており、最終的に、CloudFront の下に、Amazon EC2 オリジンインスタンスが約 20% 削減されると予想しています。

Earth Networks については www.earthnetworks.com をご覧になるか、www.weatherbug.com で会社の WeatherBug 製品をご覧ください。

2012 年 8 月 5 日、NASA の火星探査機キュリオシティは赤い惑星に着陸し、その全体の様子が mars.jpl.nasa.gov ウェブサイトを通じて世界中の視聴者に公開されました。NASA ジェット推進研究所(JPL)は、着陸の全体の様子をウェブサイトで配信するのに Amazon CloudFront を使用しました。この配信では、ブログや状態の更新を含む通常の HTTP ウェブサイトコンテンツ、火星からの写真を使用した静的な画像、およびインタラクティブなユニティゲームエンジンのダウンロードが提供されました。視聴者は、ゲームエンジンを使用して自宅から火星探索ローバーの操縦に参加し、ほぼリアルタイムで火星からの実際のデータに触れることができました。

JPL にとってパフォーマンスと拡張性は非常に重要であり、JPL はクエリ文字列、短い TTL、複数のオリジン、複数のキャッシュ動作といった Amazon CloudFront 機能を利用して http://mars.jpl.nasa.gov/ ウェブサイト全体の配信を高速化する一方で、引き続きウェブサイトの各種コンテンツ用のオリジンサーバーとしてさまざまな AWS サービスを使用しました。

NASA/JPL の CTO である Tom Solderstrom 氏は、不明点が数多くあったため、CloudFront の拡張性やリアルタイムのチューニング機能の多くを使用することになったと語っています。さらに Solderstrom 氏は、着陸中に配信されたトラフィックによると、キュリオシティの着陸はオリンピックよりも人気が高かったので、チューニング機能が本当に必要で役立ったと述べています。

このウェブサイトは http://mars.jpl.nasa.gov/ からアクセスできます。

Amazon CloudFront により、他の CDN が高い価格で販売している高品質で革新的なコンテンツ配信機能を、はるかに安価で簡単に使えるようにします。データ転送とリクエストに対する Amazon CloudFront の既存の低価格以外の追加料金なしで、動的コンテンツを提供できます。長期契約や最低料金は必要ありません。前払いや月額料金、構成の支援を依頼する高額なコンサルタント料も不要です。

このウェブサイトで登録し、数分以内に静的コンテンツと動的コンテンツをホストする Amazon CloudFront ディストリビューションを作成するだけで始めることができます。希望に応じて、Amazon CloudFront 営業チームのメンバーと話して、12 ヶ月以上の月間使用レベルに契約するオプションを使用することで、さらに節約できる使い方について検討することもできます。Amazon CloudFront 営業チームに問い合わせるには、このフォーム(http://aws.amazon.com/contact-us/aws-sales/)を提出します。

Amazon CloudFront では、サービスレベルアグリーメント(SLA)も提供しています。これは、いずれかの請求サイクルで、お客様の月間のアップタイムパーセンテージが当社のサービス契約を下回る場合のサービスクレジットとして提供されています。詳細については、Amazon CloudFront SLA のページをご覧ください。

支払いは実際に使用した分だけです。最低料金はありません。AWS 簡易見積りツールを使って月額料金をお見積りください。

Amazon CloudFront の料金表については、当社の料金表のページ http://aws.amazon.com/cloudfront/pricing/ をご覧ください。