Home 技術記事 オンラインビジネス向けのEdgeの構成
Applications

オンラインビジネス向けのEdgeの構成

About The Author

Outline

概要

EdgeCast(現Edgio)は、メディア企業やグローバル企業向けにエッジソリューションを提供しています。 最先端のグローバルエッジネットワーク上に構築されたEdgioの高品質な配信、コンピューティング、セキュリティ、ストリーミングソリューションは、世界最大級のウェブサイト、アプリ、OTTサービスを強化し、保護します。 当社は、お客様にとって構成可能性と柔軟性の重要性を理解しており、そのために制御を可能にする多数のテクノロジーを提供しています。 Rules Engineはその一例に過ぎません。

EdgioのRules Engineを使用すると、エッジネットワークによるリクエストの処理方法をカスタマイズできます。 デフォルトでは、Edgioはカスタマーオリジンから送信されたすべてのヘッダーを優先します。 ただし、コンテンツとお客様の使用事例によっては、オリジンのデフォルト動作を上書きするためにカスタムルールが必要になる場合があります。 Rules Engineとその関連APIは、優れた柔軟性と設定可能性を提供します。 これにより、顧客はコンテンツ配信とセキュリティのニーズを比類のない精度で制御できます。 この記事では、いくつかの一般的なユースケースに飛び込み、Rules Engineで定義されたさまざまなルールを使用することで得られる利点を特定します。

ルールエンジンの機能

Rules Engineには、一連の一致条件によって識別される要求に適用されるアクションのタイプを定義する、多くの便利な機能が含まれています。 一致条件は、一連の機能が実行される特定のタイプの要求を識別します。 まず、お客様が利用できる機能の種類を見てみましょう。 これらは、エッジネットワークがコンテンツの要求を管理する方法をカスタマイズします。

アクセス: これらの機能は、コンテンツへのアクセスを制御します。 たとえば、トークン認証機能は、リクエストにトークンベース認証を適用するかどうかを決定します。 これにより、データ、ファイル、またはページへのアクセスを、適切な権限を持つユーザーのみに制限したりロックしたりできます。 これにより、コンテンツや情報が権限のないユーザーと共有されるのを防ぐことができます。 その他のアクセス制御には、国/地域が含まれます。

				
					<rule>
   <description>Enable Token Auth</description>
   <match.request.edge-cname.literal hostnames="origin.example-edgecast.com">
      <feature.access.token-auth enabled="true"/>
   </match.request.edge-cname.literal>
</rule>
				
			

キャッシュ: これらの機能は、コンテンツをキャッシュするタイミングと方法をカスタマイズします。 Rules Engineには、エッジでのコンテンツの処理方法を微調整するための多数のキャッシング機能があります。 たとえば、部分キャッシュ共有(PCS)は、部分キャッシュされたファイルが後続のリクエストでキャッシュヒットとして処理されるようにするかどうか、またはエッジから処理する前にファイルを完全にキャッシュする必要があるかどうかを指定します。 イネーブルされると、PCSはオリジンの負荷を低減し、性能を向上させるのに役立ちます。 これは、ソースコンテンツに対するオリジンリクエストが少なくなることを意味し、その結果、ホスト/オリジンでの帯域幅の請求が少なくなる可能性があります。 同時に、キャッシュを最適化することで、可能な限りCDNエッジからコンテンツを提供することで、パフォーマンスを向上させることができます。

				
					<rule>
   <description>Enable Partial Cache Sharing</description>
   <match.request.edge-cname.literal hostnames="origin.example-edgecast.com">
      <feature.caching.partial-cache-sharing enabled="true"/>
   </match.request.edge-cname.literal>
</rule>
				
			

ヘッダー: これらの機能は、リクエストヘッダーやレスポンスヘッダーをオンザフライで操作します。 たとえば、Modify Client Request Headerを使用すると、リクエストのヘッダーを上書き、追加、または削除できます。 ユーザーは、クライアントから送信されるデータやサーバーから受信するデータをカスタマイズすることで、Webサイトやアプリケーションの動作を制御できます。

				
					<rule>
    <description>Add CORS Header</description>
    <match.request.edge-cname.literal hostnames="origin.example-edgecast.com">
        <feature.headers.modify-client-response-header action="set" name="access-control-allow-origin" value="*"/>
    </match.request.edge-cname.literal>
</rule>
				
			

ログ: UIベースの分析スイートの中で、CDNとセキュリティトラフィックフットプリントの詳細(または360度)ビューのために、未加工、リアルタイム、およびカスタムログを生成できます。 これらの機能は、rawログファイルに保存されているデータをカスタマイズします。 たとえば、Mask Client Subnetは、クライアントのIPアドレスをロギングおよびレポートの目的でマスクするかどうかを決定します。 これは、一般データ保護規則(GDPR)への準拠に役立ちます。 リアルタイムのログ配信を使用して、グローバルなフィンテック企業であるPlus500をサポートし、ソフトウェアリリースをより迅速かつ安全に行えるようにしました。

オリジン: これらの機能は、CDNがオリジンサーバーと通信する方法を制御します。 たとえば、Keep-Alive Requestsの最大数は、Keep-Alive接続がクローズされるまでのリクエストの最大数を定義します。 これにより、要求に必要なTCP認証手順の数を最小限に抑えることで、エッジのパフォーマンスが向上します。

専門分野: これらの機能は、オリジンまたはクライアントとのCDNの動作に関する高度な機能を提供します。 たとえば、QUICルールを切り替えることで、CDNサービスがQUICをサポートしていることをクライアントに通知するかどうかを指定できます。 そうすることで、Edgioは最高のパフォーマンスを発揮するように最適化されたWebページを提供できます。

				
					<rule>
    <description>Enable QUIC</description>
    <match.request.edge-cname.literal hostnames="origin.example-edgecast.com">
        <feature.specialty.quic enabled="true"/>
    </match.request.edge-cname.literal>
</rule>
				
			

User Variable: カスタムトラフィック処理ソリューションに渡されるユーザー定義変数に値を割り当てます。 これは、カスタムバックエンドスクリプト言語(LUA)でよく使用されます。 1つの利点は、ユーザーが静的構成にユーザー定義変数を挿入して、サーバーロードバランシングのバックエンドを制御できることです。

ルールエンジンの機能と利点の概要。

ユースケース

HTTPをHTTPSにリダイレクトする: ウェブサイトやアプリケーションのトラフィックをTLSで強制していない場合、訪問者はブラウザに恐ろしいセキュリティ警告ポップアップが表示されます。 Webサイトの訪問者は、安全でないサイトは、情報を盗む可能性のある攻撃に対して脆弱であることを知っています。 安全なサイトは信頼を植え付ける。 訪問者は、あなたが個人データを保護するためにあなたの役割を果たしていることを知ることができます。 HTTPSはセキュリティとアクセシビリティを確保するための鍵であり、HTTPからHTTPSへのリダイレクトはRules Engineを使用して簡単に実行できます。 Edgioは、SSL用のキーボールト統合を介して、完全に管理されたSecure Socket Layer(SSL)とBring Your Own Certificate(BYOC) SSLも提供しています。

訪問者の地域とデバイスの種類を理解する: 企業は、Webプロパティの訪問者がどこから来ているのか、どのような種類のデバイスが使用されているのかを理解することで、豊富なインテリジェンスを得ることができます。 Rules Engineを使用すると、カスタムログフィールドを追加して、リクエストのジオロケーションと使用されるデバイスタイプを把握できます。 HTTP変数を使用すると、これが簡単になり、これらのメトリックを生のログに追加できます。 これにより、より徹底的なログ、内部レポート、監視、洞察、トラブルシューティングが作成されます。

さらに、URLリダイレクト機能により、企業はエンドユーザーの地域に基づいて異なるURLにリクエストをリダイレクトできます。 この機能は、地域ごとに異なるバージョンのWebサイト(言語やテーマなど)を管理している多国籍企業に特に役立ちます。

				
					<rule>
   <description>Language Redirect</description>
   <select.first-match>
       <match.location.country.literal result="match" codes="US">
           <feature.url.url-redirect source="/80666BA/Origin1/(.*)" destination="%{scheme}://www.example-edgecat.com/us/$1" code="301"/>
       </match.location.country.literal>
       <match.location.country.literal result="match" codes="DE">
           <feature.url.url-redirect source="/80666BA/Origin1/(.*)" destination="%{scheme}://www.example-edgecat.com/de/$1" code="301"/>
       </match.location.country.literal>
   </select.first-match>
</rule>
				
			

ファームウェアのダウンロードに関連する地理的なユースケースもあります。 多くの場合、グローバルに分散している顧客は、ファームウェアダウンロード用のURLを1つだけ持っています。 しかし、エンドユーザエクスペリエンスを向上させ、サーバが過剰な要求で過負荷にならないようにするために、最も近い地域のサーバから要求をプルする必要があります。 Rules Engineでは、URL書き換えを適用して、要求を開始したジオロケーションに基づいて、要求をリージョナルサーバに再ルーティングできます。

				
					<rule>
    <description>Rewrite for Regional Origin Servers</description>
    <select.first-match>
        <match.location.country.literal result="match" codes="US">
            <feature.url.url-rewrite source="/80666BA/Origin1/(.*)" destination="/80666BA/Origin-US/$1"/>
        </match.location.country.literal>
        <match.location.country.literal result="match" codes="DE">
            <feature.url.url-rewrite source="/80666BA/Origin1/(.*)" destination="/80666BA/Origin-DE/(.*)"/>
        </match.location.country.literal>
    </select.first-match>
</rule>
				
			

コンテンツへのアクセスを拒否する: オンラインビジネスがコンテンツへのアクセスを拒否またはブロックする必要がある理由はたくさんあります。 ジオブロックは、エンドユーザーの場所に基づいてコンテンツへのアクセスを制限します。 これは、企業が経済制裁やプライバシー法を遵守したり、セキュリティ上の脅威を阻止したりするために必要な場合があります。 ジオブロックルールは、Rules Engineで設定して、地域コードや国コードなど、さまざまなロケーション一致条件を使用してコンテンツへのアクセスを拒否または許可することができます。

				
					<rule>
    <description>Deny RU Access</description>
    <match.location.country.literal result="match" codes="RU">
        <feature.access.deny-access enabled="true"/>
    </match.location.country.literal>
</rule>
				
			

また、トークンベース認証を使用してコンテンツへのアクセスを拒否することもできます。 これには、正確な位置情報、URLパス、さまざまなヘッダーやCookieの値、ファイル名、IPアドレスなど、着信リクエストの多数の特徴に基づいてコンテンツへのアクセスを拒否または許可することが含まれます。 ジオブロッキングはネットフリックスやHuluのようなストリーミングサービスで、インターネット上で配信するコンテンツのライセンス法を遵守するために使用されている。

Cache-control: Rules Engineを使用すると、エッジサーバー上でコンテンツをキャッシュする方法を微調整できます。 コンテンツと配信の要件に応じて適用できるキャッシングルールは多数あります。 いくつかの使用例を次に示します。

  • デフォルトでは、CDNはオリジンによって設定されたキャッシュディレクティブに従います。 ただし、オリジンがキャッシュをバイパスするように要求した場合、顧客はこのディレクティブを無視してアセットをキャッシュして配送することができます。 これにより、Rules Engineを使用したキャッシュ制御が簡素化され、お客様がオリジンを変更する必要がなくなります。
  • External Max-Ageルールを使用すると、エッジサーバキャッシュの再検証に対するブラウザの制御が可能になります。 つまり、お客様は、ブラウザーがエッジサーバーからアセットの新しいバージョンを確認するまでの時間を指定できます。
  • Stale while revalidateルールは、エッジサーバーが再検証の実行中に古いコンテンツを要求者に提供できるようにすることで、パフォーマンスを向上させます。 お客様は、存続可能時間(TTL)の満了後、CDNが古いコンテンツを配信するまでの時間を完全に制御できます。 これのバージョンは、エラー時の失効コンテンツ配信ルールです。 これは、キャッシュの再検証中、または要求されたコンテンツをオリジンサーバから取得するときに、エラーが発生したときに期限切れのキャッシュコンテンツを提供するために使用できます。 場合によっては、エンドユーザーにエラーを転送するよりも、これを好むことがあります。
  • ネガティブキャッシングは、Rules Engineを介して設定して、エラーを生成する要求の急増からオリジンを保護するために、特定の障害を短時間キャッシュすることもできます。 この構成により、要求が満たされないときにオリジンからの圧力が軽減されることがわかりました。 これは、4xxまたは5xxリクエストでのオリジンスパイクを減らすようにユーザーが設定できる優れた機能です。
  • Rules Engineのストリーミング最適化機能は、ライブストリームのパフォーマンスを最適化し、オリジンサーバーの負荷を軽減するようにキャッシング設定を調整するのに最適です。

ニーズに合わせた独自の構成

お客様が同じであることはなく、同じ業界の2つの企業でもコンテンツ要件が異なることはわかっています。 Rules Engineを使用すると、コンテンツを処理するためのネットワークの設定方法を完全に制御できます。 私たちは大小の企業と協力しており、コンテンツの専門家の配信に合わせてネットワークを微調整できます。

Rules Engineがコンテンツと配信のニーズをどのようにサポートできるかについては、お問い合わせください