Amazon CloudFront Origin Shield の使用 - Amazon CloudFront

「翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。」

Amazon CloudFront Origin Shield の使用

CloudFront Origin Shield は、オリジンの負荷を最小限に抑え、可用性を向上させ、運用コストを削減するために役立つ、CloudFront キャッシュインフラストラクチャ内の追加レイヤーです。CloudFront Origin Shield の使用には、次のメリットがあります。

キャッシュヒット率の向上

Origin Shield は、オリジンの前に追加のキャッシュレイヤーを提供するため、CloudFront ディストリビューションのキャッシュヒット率を向上させるために役立ちます。Origin Shield を使用すると、CloudFront のすべてのキャッシュレイヤーからオリジンへのすべてのリクエストが Origin Shield を通過し、キャッシュがヒットする可能性が高くなります。CloudFront は、Origin Shield からの 1 つのオリジンリクエストを使用して各オブジェクトを取得できます。CloudFront キャッシュのその他のレイヤー (エッジロケーションとリージョン別エッジキャッシュ) はすべて、Origin Shield からオブジェクトを取得できます。

オリジンの負荷を軽減

Origin Shield を使用すると、オリジンに送信される同じオブジェクトへの同時リクエストの数をさらに減らすことができます。Origin Shield のキャッシュにないコンテンツへのリクエストは、同じオブジェクトに対する他のリクエストと統合され、オリジンに送信されるリクエストは 1 件のみになります。オリジンで処理するリクエスト数を減らすと、ピークロード時や想定外のトラフィック急増時にオリジンの可用性が維持され、ジャストインタイムパッケージング、画像変換、データ転送 (DTO) などのコストを削減できます。

ネットワークパフォーマンスの向上

オリジンに対するレイテンシーが最も低い AWS リージョンで Origin Shield を有効にすると、ネットワークパフォーマンスが向上します。AWS リージョン内のオリジンの場合、CloudFront のネットワークトラフィックはオリジンまでの間、ハイスループットの CloudFront ネットワーク上に残ります。AWS 以外のオリジンの場合、CloudFront のネットワークトラフィックはオリジンシールドまでの間、オリジンとの接続が低レイテンシーである CloudFront ネットワーク上に残ります。

Origin Shield の使用には追加料金が発生します。詳細については、「CloudFront 料金表」を参照してください。

Origin Shield のユースケース

CloudFront Origin Shield は、次のような多くのユースケースで役立ちます。

  • 異なる地理的リージョンにビューワーが分散している場合

  • ライブストリーミングまたはオンザフライ画像処理のために、オリジンがジャストインタイムパッケージを提供する場合

  • オンプレミスのオリジンに、容量または帯域幅の制約がある場合

  • ワークロードが複数のコンテンツ配信ネットワーク (CDN) を使用する場合

Origin Shield は、動的コンテンツがオリジンにプロキシ化される場合、コンテンツのキャッシュ可能性が低い安倍、コンテンツのリクエスト頻度の低い場合など、上記以外の状況には適さないことがあります。

以下のセクションでは、以下のユースケースにおける Origin Shield の利点について説明します。

異なる地理的リージョンにビューワーが分散している場合

Amazon CloudFront を使用すると、CloudFront がキャッシュを使用して処理できるリクエストはオリジンに送信されないため、オリジンの負荷が軽減されます。CloudFront が提供するエッジロケーションのグローバルネットワークに加え、リージョン別エッジキャッシュは中間層のキャッシュレイヤーとして機能します。これにより、地理的に近いリージョンのビューワーにキャッシュヒットが提供され、オリジンリクエストが統合されます。ビューワーリクエストは、まず近くの CloudFront エッジロケーションにルーティングされ、オブジェクトがそのロケーションでキャッシュされていない場合、リクエストはリージョン別エッジキャッシュに送信されます。

ビューワーのリージョンが地理的に異なる場合、リクエストは異なるリージョン別エッジキャッシュを介してルーティングされ、それぞれから同じコンテンツに対するリクエストがオリジンに送信される可能性があります。Origin Shield を使用すると、リージョン別エッジキャッシュとオリジンの間にキャッシュのレイヤーが追加されます。すべてのリージョン別エッジキャッシュからのリクエストはすべて、Origin Shield を通過し、オリジンの負荷をさらに軽減します。次の図にその概念を示します。次の図では、オリジンは AWS Elemental MediaPackage です。

Origin Shield を使用しない場合

Origin Shield を使用しない場合は、次の図に示されているように、同じコンテンツに対するリクエストをオリジンが重複して受け取る可能性があります。


                    CloudFront Origin Shield を使用しない場合、オリジンは重複したリクエストを受け取る可能性があります。

Origin Shield を使用する場合

Origin Shield を使用すると、次の図に示されているように、オリジンの負荷を軽減できます。


                    CloudFront オリジンシールドを使用すると、オリジンが受け取る重複リクエストを減らすことができます。

複数の CDN を使用する場合

ライブビデオイベントや人気のあるオンデマンドコンテンツを配信するには、複数のコンテンツ配信ネットワーク (CDN) を使用することがあります。複数の CDN の使用には利点もありますが、同じコンテンツに対して多数の重複リクエストをオリジンが受け取る可能性があります。それぞれのリクエストは、異なる CDN から送信されることも、同じ CDN 内の異なる場所から送信されることもあります。このような冗長リクエストにより、オリジンの可用性に影響することも、ジャストインタイムパッケージングやインターネットへのデータ転送 (DTO) などのプロセスに追加の運用コストが発生することもあります。

Origin Shield を使用し、他の CDN のオリジンとして CloudFront ディストリビューションを組み合わせると、次のようなメリットがあります。

  • オリジンで受信される冗長リクエストが少なくなるため、複数の CDN を使用した場合の悪影響を軽減できます。

  • CDN 全体で共通のキャッシュキーを使用し、オリジン向けの機能を一元管理できます。

  • ネットワークパフォーマンスの向上。他の CDN からのネットワークトラフィックが近くの CloudFront エッジロケーションで終了し、ローカルキャッシュからのヒットが発生する可能性があります。リクエストされたオブジェクトがエッジロケーションキャッシュ内にない場合、オリジンへのリクエストは Origin Shield までの間 CloudFront ネットワーク上に残り、オリジンへの高いスループットと低レイテンシーを提供します。リクエストされたオブジェクトが Origin Shield のキャッシュ内にある場合、オリジンへのリクエストは完全に回避されます。

重要

マルチ CDN アーキテクチャでの Origin Shield の使用と割引料金について詳しくは、AWS 日本担当チームまたは当社にお問い合わせください。追加料金が適用される場合があります。

以下の図は、複数の CDN で人気のあるライブビデオイベントを提供する場合に、この設定がオリジンへの負荷を最小限に抑える方法を示しています。次の図では、オリジンは AWS Elemental MediaPackage です。

Origin Shield を使用しない場合 (複数の CDN を使用)

Origin Shield を使用しない場合は、次の図に示されているように、同じコンテンツに対する多数の重複リクエストを (それぞれ異なる CDN から) オリジンが受け取る可能性があります。


                    CloudFront Origin Shield を使用しない場合、オリジンはそれぞれ異なる CDN から多数の重複リクエストを受け取る可能性があります。

Origin Shield を使用する場合 (複数の CDN を使用)

Origin Shield を使用し、他の CDN のオリジンとして CloudFront を組み合わせると、次の図に示されているように、オリジンの負荷を軽減できます。


                    CloudFront Origin Shield を使用し、他の CDN のオリジンとして CloudFront を組み合わせると、オリジンが受け取る重複リクエストの数を減らすことができます。

Origin Shield の AWS リージョンの選択

Amazon CloudFront では、CloudFront のリージョン別エッジキャッシュがある AWS リージョンで Origin Shield を提供しています。Origin Shield を有効にする際には、Origin Shield の AWS リージョンを選択します。オリジンに対するレイテンシーが最も低い AWS リージョンを選択する必要があります。Origin Shield は、AWS リージョン内にあるオリジンにも、AWS 外のオリジンにも使用できます。

オリジンが AWS リージョン内にある場合

オリジンが AWS リージョンにある場合は、まず、CloudFront が Origin Shield を提供するリージョン内にオリジンがあるかどうかを判断します。CloudFront は、以下の AWS リージョンで Origin Shield を提供しています。

  • 米国東部 (オハイオ) – us-east-2

  • 米国東部 (バージニア北部) – us-east-1

  • 米国西部 (オレゴン) – us-west-2

  • アジアパシフィック (ムンバイ) – ap-south-1

  • アジアパシフィック (ソウル) – ap-northeast-2

  • アジアパシフィック (シンガポール) – ap-southeast-1

  • アジアパシフィック (シドニー) – ap-southeast-2

  • アジアパシフィック (東京) – ap-northeast-1

  • 欧州 (フランクフルト) – eu-central-1

  • 欧州 (アイルランド) – eu-west-1

  • 欧州 (ロンドン) – eu-west-2

  • 南米 (サンパウロ) – sa-east-1

CloudFront で Origin Shield が提供されている AWS リージョン内にオリジンがある場合

CloudFront で Origin Shield が提供されている AWS リージョン (上のリストを参照) にオリジンがある場合は、オリジンと同じリージョンで Origin Shield を有効にします。

CloudFront が Origin Shield を提供する AWS リージョン内にオリジンがない場合

オリジンの場所が、CloudFront で Origin Shield が提供されている AWS リージョン内でない場合は、次の表で、Origin Shield を有効にするリージョンを確認します。

オリジンの場所

Origin Shield を有効にするリージョン

米国西部 (北カリフォルニア) – us-west-1

米国西部 (オレゴン) – us-west-2

アフリカ (ケープタウン) – af-south-1

欧州 (アイルランド) – eu-west-1

アジアパシフィック (香港) – ap-east-1

アジアパシフィック (シンガポール) – ap-southeast-1

カナダ (中部) – ca-central-1

米国東部 (バージニア北部) – us-east-1

欧州 (ミラノ) – eu-south-1

欧州 (フランクフルト) – eu-central-1

欧州 (パリ) – eu-west-3

欧州 (ロンドン) – eu-west-2

欧州 (ストックホルム) – eu-north-1

欧州 (ロンドン) – eu-west-2

中東 (バーレーン) – me-south-1

アジアパシフィック (ムンバイ) – ap-south-1

オリジンが AWS 外にある場合

Origin Shield は、オンプレミスのオリジンにも AWS リージョン内にないオリジンにも使用できます。その場合は、オリジンに対するレイテンシーが最も低い AWS リージョンで Origin Shield を有効にします。オリジンに対するレイテンシーが最も低い AWS リージョンがわからない場合は、以下の提案を参考にして判断することができます。

  • 上の表で、オリジンの地理的な場所に基づいて、どの AWS リージョンがオリジンに対してレイテンシーが最も低いかを概算します。

  • オリジンに地理的に近いいくつかの異なる AWS リージョンで Amazon EC2 インスタンスを起動し、ping を使用してテストを数回実行すると、これらのリージョンとオリジンの間の一般的なネットワークレイテンシーを測定できます。

Origin Shield の有効化

Origin Shield を有効にすると、キャッシュヒット率の向上、オリジンへの負荷の軽減、パフォーマンスの強化を図ることができます。オリジンシールドを有効にするには、CloudFront ディストリビューションのオリジン設定を変更します。Origin Shield は、オリジンのプロパティです。CloudFront ディストリビューションのオリジンごとに、そのオリジンに対して最適なパフォーマンスを提供している AWS リージョンで、個別に Origin Shield を有効化できます。

Origin Shield は、CloudFront コンソール、AWS CloudFormation、または CloudFront API で有効にすることができます。

既存のオリジンに対して Origin Shield を有効にするには (コンソール)

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

  2. 更新するオリジンがあるディストリビューションを選択します。

  3. [Origin and Origin Groups (オリジンおよびオリジングループ)] タブを選択します。

  4. 更新するオリジンを選択し、[編集] を選択します。

  5. [Origin Shield を有効にする] で、[はい] を選択します。

  6. [Origin Shield のリージョン] で、Origin Shield を有効にする AWS リージョンを選択します。リージョンの選択については、「Origin Shield の AWS リージョンの選択」を参照してください。

  7. ページの最下部で [はい、編集します] を選択します。

ディストリビューションのステータスが [デプロイ済み] であれば、Origin Shield の準備が完了しています。これには数分かかります。

新しいオリジンの Origin Shield を有効にするには (コンソール)

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

  2. 既存のディストリビューションに新しいオリジンを作成するには、次の操作を行います。

    1. オリジンを作成するディストリビューションを選択します。

    2. [オリジンの作成] を選択し、ステップ 3 に進みます。

    新しいディストリビューションに新しいオリジンを作成するには、次の操作を行います。

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

    2. [ウェブ] セクションで、[今すぐ始める] を選択します。[オリジン設定] セクションで、次の操作をステップ 3 から行います。

  3. [Origin Shield を有効にする] で、[はい] を選択します。

  4. [Origin Shield のリージョン] で、Origin Shield を有効にする AWS リージョンを選択します。リージョンの選択については、「Origin Shield の AWS リージョンの選択」を参照してください。

    新しいディストリビューションを作成する場合は、そのページの他の設定を使用して、ディストリビューションの設定を続けて行います。詳細については、「ディストリビューションを作成または更新する場合に指定する値」を参照してください。

  5. [作成] (既存のディストリビューションに新しいオリジンを作成する場合) を選択するか、[ディストリビューションの作成] (新しいディストリビューションに新しいオリジンを作成する場合) を選択して、変更内容を保存します。

ディストリビューションのステータスが [デプロイ済み] であれば、Origin Shield の準備が完了しています。これには数分かかります。

AWS CloudFormation で Origin Shield を有効にするには、AWS::CloudFront::Distribution リソースの Origin プロパティタイプの OriginShield プロパティを使用します。OriginShield プロパティは、既存の Origin に追加することも、新しい Origin を作成するときに含めることができます。

次の例は、米国西部 (オレゴン) リージョン (us-west-2) で OriginShield を有効にするための構文を YAML 形式で示しています。リージョンの選択については、「Origin Shield の AWS リージョンの選択」を参照してください。この例では、AWS::CloudFront::Distribution リソース全体ではなく、Origin プロパティタイプのみを示しています。

Origins: - DomainName: 3ae97e9482b0d011.mediapackage.us-west-2.amazonaws.com Id: Example-EMP-3ae97e9482b0d011 OriginShield: Enabled: true OriginShieldRegion: us-west-2 CustomOriginConfig: OriginProtocolPolicy: match-viewer OriginSSLProtocols: TLSv1

詳細については、AWS CloudFormation ユーザーガイドの「リソースとプロパティのリファレンス」セクションで「AWS::CloudFront::Distribution Origin」を参照してください。

AWS SDK または AWS コマンドラインインターフェイス (AWS CLI) を使用して CloudFront API でオリジンシールドを有効にするには、OriginShield タイプを使用します。OriginShield は、DistributionConfigOrigin 内で指定します。OriginShield タイプの詳細については、「Amazon CloudFront API リファレンス」の以下の情報を参照してください。

これらのタイプと操作を使用するための具体的な構文は、使用する SDK、CLI、API クライアントによって異なります。詳細については、SDK、CLI、またはクライアントのリファレンスドキュメントを参照してください。

Origin Shield のコストの見積もり

Origin Shield の料金は、増分レイヤーとして Origin Shield に送信されるリクエストの数に基づいて計算されます。

オリジンにプロキシ化される動的 (キャッシュ不可能な) リクエストの場合、Origin Shield は常に増分レイヤーとなります。動的リクエストでは、HTTP メソッド PUTPOSTPATCH、および DELETE を使用します。

動的リクエストに対する Origin Shield の料金を見積もるには、次の式を使用します。

動的リクエストの総数 x 10,000 リクエストあたりの Origin Shield 料金 / 10,000

キャッシュ可能なリクエスト (HTTP メソッド GETHEADOPTIONS) の場合、Origin Shield は増分レイヤーになることがあります。Origin Shield を有効にする際には、Origin Shield の AWS リージョンを選択します。Origin Shield と同じリージョン内のリージョン別エッジキャッシュに本来送信されるリクエストの場合、Origin Shield は増分レイヤーになりません。このようなリクエストに対して Origin Shield の料金は発生しません。Origin Shield とは異なるリージョンのリージョン別エッジキャッシュに送信されてから Origin Shield に送信されるリクエストの場合、Origin Shield は増分レイヤーになります。このようなリクエストに対しては、Origin Shield の料金が発生します。

キャッシュ可能なリクエストに対する Origin Shield の料金を見積もるには、次の式を使用します。

キャッシュ可能なリクエストの総数 x (1 – キャッシュヒット率) x 異なるリージョンのリージョン別エッジキャッシュから Origin Shield に送信されるリクエストの割合 x 10,000 リクエストあたりの Origin Shield 料金 / 10,000

Origin Shield の 10,000 リクエストあたりの料金について詳しくは、「CloudFront の料金」を参照してください。

Origin Shield の高可用性

Origin Shield では、Amazon CloudFront のリージョン別エッジキャッシュが活用されます。これらの各エッジキャッシュは、3 つ以上のアベイラビリティーゾーンと Auto Scaling Amazon EC2 インスタンスのフリートを使用して、AWS リージョン内に構築されます。CloudFront のロケーションから Origin Shield への接続では、リクエストごとにアクティブなエラー追跡が使用されます。これにより、プライマリ Origin Shield ロケーションが利用できない場合は、リクエストがセカンダリ Origin Shield ロケーションに自動的にルーティングされます。

Origin Shield と他の CloudFront 機能との連携

以下のセクションでは、Origin Shield と他の CloudFront 機能との連携について説明します。

Origin Shield と CloudFront ログ記録

Origin Shield がいつリクエストを処理したかを確認するには、以下のいずれかを有効にする必要があります。

Origin Shield からのキャッシュヒットは、CloudFront ログの x-edge-detailed-result-type フィールドに OriginShieldHit として表示されます。Origin Shield では、Amazon CloudFront のリージョン別エッジキャッシュが活用されます。リクエストが CloudFront エッジロケーションから Origin Shield として機能するリージョン別エッジキャッシュにルーティングされた場合、ログには OriginShieldHit としてではなく Hit として報告されます。

Origin Shield とオリジングループ

Origin Shield は CloudFront オリジングループとの互換性があります。Origin Shield はオリジンのプロパティであるため、オリジンがオリジングループの一部であっても、リクエストは常に各オリジンの Origin Shield を通過します。CloudFront はリクエストごとに、プライマリオリジンの Origin Shield を介してリクエストをオリジングループのプライマリオリジンにルーティングします。このリクエストが失敗した場合 (オリジングループのフェイルオーバー基準に従って)、CloudFront はセカンダリオリジンの Origin Shield を介してリクエストをセカンダリオリジンにルーティングします。

Origin Shield と Lambda@Edge

Origin Shield は Lambda@Edge 関数の機能には影響しませんが、これらの関数が実行される AWS リージョンに影響する可能性があります。Lambda@Edge と共に Origin Shield を使用する場合、オリジン向けトリガー (オリジンリクエストとオリジン応答) は、Origin Shield が有効になっている AWS リージョンで実行されます。ビューワー向けトリガーは影響を受けません。