このドキュメントの学習には約10分かかります。このドキュメントを学習することで、以下を理解できます:
1. クライアントの地理特徴情報に基づいてオリジンサーバーを指定する必要がある理由
2. クライアントの地理特徴情報に基づいてオリジンサーバーを指定する適用シナリオ。
3. EdgeOneエッジ関数とルールエンジンを使用してクライアントの地理特徴に基づいてオリジンサーバーを指定する具体的な手順。
背景紹介
今日のグローバル化したビジネスにおいて、企業は地理的境界を越えたサービスを提供し、ユーザーがどこにいても一貫した体験を得られるようにしなければなりません。グローバルサービスへの要求により、企業は異なる地域のユーザーのニーズに迅速に対応し、パーソナライズされたコンテンツとサービスを提供することが求められます。また、EUの一般データ保護規則(GDPR)など、データ保護規制が世界的に厳格化する中で、企業はユーザーデータを扱う際にコンプライアンスを確保し、法的リスクや評判の低下を回避しなければなりません。
EdgeOneエッジ関数とルールエンジンを使用してユーザーの地理的位置に基づいて最寄りの指定オリジンサーバーへアクセスするソリューションは、上記の課題に対応できます。このソリューションは、ユーザーの地理的位置とネットワークリクエストを分析し、リクエストを最適な指定オリジンサーバーへルーティングします。具体的な原理は、エッジ関数がクライアントの地理的位置に基づいてオリジンサーバーへのリクエストヘッダーをカスタマイズし、ルールエンジンがこのリクエストヘッダーに基づいて指定されたオリジンサーバーへアクセスするというものです。このソリューションは、サービスの応答速度とパフォーマンスを向上させるだけでなく、データ処理のコンプライアンスも確保します。ユーザーが世界のどの地域にいても、高速かつ現地の法規制に準拠したサービス体験を得ることができ、企業がグローバル市場で競争力を維持するのに役立ちます。
適用シーン
EdgeOneは世界のユーザークライアントの所在地域に基づいて指定地域のオリジンサーバーへ振り分けます。以下は具体的な適用シナリオです:
企業の海外展開:企業の海外展開シナリオを支援するために、グローバルにカスタマイズされたサービスを提供します。例えば金融サービス分野では、取引リクエストが最も近いサーバーへ迅速かつ正確にルーティングされることを確保し、遅延を削減するとともに、地域特有の投資アドバイスや市場分析を提供し、異なる地域のユーザーニーズに対応します。また、越境ECプラットフォームは、ユーザーの地理的位置を特定することで、ローカライズされた製品やサービスを提供し、在庫と物流戦略を最適化し、ユーザー体験と運用効率を向上させます。
データプライバシーコンプライアンス:データ保護規制が厳格化する中で、企業はデータ処理活動がユーザーの地理的位置に対応する法規制の要件を満たすことを確保する必要があります。企業はデータリクエストを現地のデータ保護規制に準拠したサーバーへルーティングし、データのコンプライアンスを確保できます。これは企業が法的リスクを回避するのに役立つだけでなく、ユーザープライバシーの尊重でもあり、ユーザー信頼の構築に役立ち、企業の持続可能な発展の強固な基盤を築きます。
プリセットシナリオ
あなたがグローバルECプラットフォームの技術責任者であり、サイトドメイン example.com をEdgeOneに接続していると仮定します。あなたの目標は、Webサイトのアクセス速度とユーザー体験を最適化し、世界中のユーザーがWebサイトのコンテンツに迅速にアクセスできるようにすることです。この目標を実現するために、ユーザーの地理的位置に基づいてリクエストを最寄りのオリジンサーバーへ動的にルーティングし、同時にデータ処理活動がユーザーの所在地区のデータ保護規制要件に準拠することを確保する計画です。
このシナリオでは、2つのクライアント地区と2つの対応するオリジンサーバーグループを設定します:
中国本土クライアント:中国本土からのユーザーについて、それらのリクエストを中国本土のオリジンサーバーグループへルーティングすることを期待します。これにより、データをローカルで処理し、データ転送の遅延を削減し、アクセス速度を向上させることができます。同時に、これはデータ処理活動が中国本土のデータ保護規制に準拠することを確保し、ユーザープライバシーを保護し、法的リスクを回避するのにも役立ちます。リクエストを中国本土のオリジンサーバーへルーティングする必要があります。エッジ関数を通じてリクエストにオリジンリクエストヘッダーを定義します:X-Forwarded-For-Origin:cn
シンガポールクライアント:シンガポール(中国本土以外の地域のユーザーを代表)からのユーザーについて、それらのリクエストをシンガポールのオリジンサーバーグループへルーティングすることを期待します。地理的位置の優位性を活用して遅延を削減し、ユーザー体験を向上させるとともに、データ処理がシンガポールのデータ保護規制に準拠することを確保し、ユーザーデータのプライバシー安全を維持します。リクエストをシンガポールのオリジンサーバーへルーティングする必要があります。エッジ関数を通じてリクエストにオリジンリクエストヘッダーを定義します:X-Forwarded-For-Origin:sg
操作手順
ステップ1:EdgeOneへの接続
ステップ2:エッジ関数の作成と設定
1. EdgeOneコンソールにログインし、左側のメニューバーで「サービス概要」に入り、「Webサイト安全な加速」内で設定が必要なサイトをクリックします。
2. 左側のナビゲーションバーで、エッジ関数 > 関数管理をクリックします。
3. 関数管理ページで、新規関数をクリックします。
4. テンプレートを選択して作成するページで、Hello Worldを作成をクリックした後、次へをクリックします。
5. 新規関数ページで、関数名、関数の説明、関数コードを入力します。以下はクライアントの地理特徴情報に基づいてオリジンサーバーを指定するサンプルコードです:
const ROUTE_CLIENT_ORIGIN_MAP = {
'example.com': {
CN: 'cn',
_DEFAULT_: 'sg',
},
};
const ORIGIN_HEADER_NAME = 'X-Forwarded-For-Origin';
const OVERSEAS_AREA = '!CN';
const DEFAULT_AREA = '_DEFAULT_';
addEventListener('fetch', (event) => {
event.respondWith(handleEvent(event));
});
async function handleEvent(event) {
const { request } = event;
request.headers.delete(ORIGIN_HEADER_NAME);
let host = request.headers.get('host');
let countryCodeAlpha2 = request.eo.geo?.countryCodeAlpha2;
const clientOriginMap = ROUTE_CLIENT_ORIGIN_MAP[host];
if (clientOriginMap) {
const originName = clientOriginMap[countryCodeAlpha2];
if (originName) {
request.headers.set(ORIGIN_HEADER_NAME, originName);
} else if (clientOriginMap[OVERSEAS_AREA]) {
request.headers.set(ORIGIN_HEADER_NAME, clientOriginMap[OVERSEAS_AREA]);
} else if (clientOriginMap[DEFAULT_AREA]) {
request.headers.set(ORIGIN_HEADER_NAME, clientOriginMap[DEFAULT_AREA]);
}
}
return fetch(request);
}
ステップ3:エッジ関数のトリガールールの設定とデプロイ
1. 関数の編集が完了したら、作成してデプロイをクリックします。関数のデプロイ後、直接トリガールールを追加をクリックして、この関数のトリガールールを設定できます。
2. 関数のトリガールールで、この関数のトリガー条件を設定します。現在のシナリオ要件に応じて、複数のトリガー条件を設定し、And ロジックでトリガーできます。
ここでは、このリクエストのHOSTがexample.comと等しい場合のみ設定します。
リクエストURLが上記の条件を同時に満たす場合、ステップ1のエッジ関数がトリガーされ、クライアントの地理特徴情報に基づいてオリジンサーバーを指定する機能が実現されます。
3. OKをクリックすると、トリガールールが有効になります。
ステップ4:ルールエンジンの設定
1. EdgeOneコンソールにログインし、左側のメニューバーで「サービス概要」に入り、「Webサイト安全な加速」内で設定が必要なサイトをクリックします。
2. 左側のナビゲーションバーで「サイト加速」をクリックし、サイト全体設定ページに入り、「ルールエンジン」タブをクリックします。
3. ルールエンジンページで「ルールを作成」をクリックし、「新しい空白のルールを追加」を選択します。
4. ルール編集ページで、指定されたドメインのリクエストをマッチングするためにHOSTマッチングタイプを選択します。
ここでは、このリクエストのHOSTがexample.comと等しい場合のみ設定します。
5. ルール編集ページで、+IFをクリックし、エッジ関数の関数コード内のリクエストヘッダーの値に基づいて、異なるオリジンサーバーグループを設定します。
ここでは、条件がHTTPリクエストヘッダーX-Forwarded-For-Originがcnと等しい場合にのみ、リクエストは中国本土のオリジンサーバーグループに転送されて処理されます。条件がHTTPリクエストヘッダーX-Forwarded-For-Originがsgと等しい場合、リクエストはシンガポールのオリジンサーバーグループに転送されて処理されます。
6. 保存して公開をクリックすると、ルールエンジンがすぐに有効になります。
ステップ5:デプロイ効果の検証
エッジ関数の有効化状況を確認するには、以下の2つの方法で検証できます:
Mac/Linux環境で、Chromeブラウザのテストを例にすると、ターミナル内で次のコマンドを実行できます:curl --user-agent "Chrome" https://example.com
地理的位置がCNのリクエストについて、エッジ関数はリクエストを中国本土のオリジンサーバーグループへオリジンサーバーに転送します:
地理的位置がCNではないリクエストについて、エッジ関数はリクエストを指定されたシンガポールのオリジンサーバーグループへオリジンサーバーに転送します:
Chromeブラウザでテストアドレスにアクセスします:https://example.com
地理的位置がCNのリクエストについて、エッジ関数はリクエストを中国本土のオリジンサーバーグループへオリジンサーバーに転送します:
地理的位置がCNではないリクエストについて、エッジ関数はリクエストをシンガポールのオリジンサーバーグループへオリジンサーバーに転送します:
詳細を見る