ドメイン名やパスなどのリクエスト属性、または HTTP ヘッダーやクッキーなどのリクエスト内のデータに基づいてトラフィックを配信および処理する必要がある場合は、リスナーにカスタム転送ルールを作成できます。リスナーは、一致するリクエストに対して特定の転送アクションを実行します。このトピックでは、転送ルールの仕組みと、その追加および管理方法について説明します。
仕組み
ルールタイプ
すべてのリスナーには、次の 2 種類の転送ルールがあります。
デフォルト転送ルール:リスナーの作成時に自動的に作成され、デフォルトエンドポイントグループに関連付けられます。各リスナーには、デフォルトルールが 1 つだけ存在します。その優先順位は変更できず、変更または削除もできません。
カスタム転送ルール:リスナーの設定後に作成するルールです。リスナーには複数のカスタムルールを設定でき、優先順位を調整できます。
ルールコンポーネント
各転送ルールは、[転送条件] と [転送アクション] で構成されます。アクションは、リクエストがルール内のすべての条件に一致する場合にのみ適用されます。
使用可能な条件タイプとアクションタイプは、リスナープロトコルによって異なります。
リスナープロトコル | 転送条件 | 転送アクション |
TCP | [ドメイン名] | [转发至]、[丢弃(阻断流量)] |
HTTP または HTTPS | [ドメイン名]、[パス]、[HTTP ヘッダー]、[HTTP リクエストメソッド]、クッキー、送信元 IP アドレス、[クエリ文字列] | [转发至]、[重定向至]、[トラフィックミラーリング]、[返回固定响应]、[リライト]、[写入Header]、[删除Header]、[丢弃(阻断流量)] |
お使いの標準 Global Accelerator (GA) インスタンスが ドメイン名 および パス の転送条件と 転送 アクションのみをサポートしている場合、インスタンスのバージョンが他のタイプをサポートしていない可能性があります。インスタンスをアップグレードするには、担当のビジネスマネージャーにお問い合わせください。
お使いの標準 GA インスタンスが TCP リスナーの転送ルールをサポートしていない場合、インスタンスのバージョンがこの機能をサポートしていない可能性があります。アップグレードするには、担当のビジネスマネージャーにお問い合わせください。
リクエストの一致方法
リクエストは、優先順位が高い順にカスタム転送ルールと照合されます。ルール番号が小さいほど、優先順位が高くなります。
リクエストがカスタムルールに一致する場合、つまりすべての条件を満たす場合、対応するアクションが直ちに適用されます。
リクエストが一致しない場合、優先順位に従って次のルールと照合されます。
リクエストがどのカスタムルールとも一致しない場合、デフォルト転送ルールが適用されます。リクエストはデフォルトエンドポイントグループに転送されます。
リスナーに複数のデフォルトエンドポイントグループがある場合、デフォルトルールは、エンドポイントグループのトラフィック分散設定に基づいてトラフィックを分散します。詳細については、「さまざまなシナリオでエンドポイントグループ間でトラフィックを分散する」をご参照ください。
パスを/*に設定すると、すべてのパスに一致します。 予期しないリクエストをキャッチオールルールで処理するには、パス条件を/*に設定し、アクションで 404 または 403 ステータスコードの固定レスポンスを返すように設定します。 その後、ルールをルールリストの最後から 2 番目の位置にドラッグします。
前提条件
-
ご利用の GA インスタンスがサブスクリプション課金方法を使用している場合、基本帯域幅プランを購入し、関連付け済みである必要があります。
インテリジェントルーティングリスナーが追加されていること。詳細については、「インテリジェントルーティングリスナーの追加と管理」をご参照ください。
転送ルールの追加
カスタム転送ルールを追加して、ルールに一致するリクエストに対して特定のアクションを実行できます。
- Global Acceleratorコンソールにログインします。
-
インスタンスページで対象の GA インスタンスを見つけ、操作 列の リスナーの設定 をクリックします。
リスナー タブで、管理したいリスナーを見つけ、その ID をクリックします。
リスナー詳細ページで、転送ルール タブをクリックします。
転送ルールタブで、転送ルールの追加をクリックし、パラメーターを設定してからOK をクリックします。
HTTP または HTTPS
パラメータ
説明
[名前]
カスタム転送ルールの名前。
[転送条件]
転送条件タイプを選択します。また、[+ 条件の追加] をクリックして、複数の条件を追加することもできます。
[ドメイン名]: 1 つ以上のドメイン名を入力します。完全一致ドメイン名、ワイルドカードドメイン名、正規表現がサポートされています。詳細については、「ホストベースのルール」をご参照ください。
1 つの転送ルールでサポートされるドメイン名タイプの転送条件は 1 つのみです。この条件には複数のホストを含めることができ、それらの関係は論理和です。
例: *.example.com
[パス]: 1 つ以上のパスを入力します。完全一致パス、ワイルドカードパス、正規表現がサポートされています。詳細については、「パスベースのルール」をご参照ください。
転送ルールに複数の パス 条件を作成できます。 複数の パス 条件間の論理関係は OR です。 1 つの パス 条件に複数のパスを指定できます。 複数のパス間の論理関係は OR です。
例: URL
www.example.com/test/test1?x=1&y=2の場合、パスを /test/* に設定できます。[HTTP ヘッダー]: キー フィールドに HTTP ヘッダーのキーを、値 フィールドに HTTP ヘッダーの値を入力します。複数の値を追加できます。転送ルールでは、複数の HTTP ヘッダー 条件を作成できます。複数の HTTP ヘッダー 条件間の論理関係は AND です。各 HTTP ヘッダーキーは、一意である必要があります。単一の HTTP ヘッダー 条件で、複数の一意の値を指定できます。
例: キーは user-agent、値は Mozilla/4.0 です。
[HTTP リクエストメソッド]:1 つ以上の HTTP リクエストメソッドを選択します。 有効な値:HEAD、GET、POST、OPTIONS、PUT、PATCH、および DELETE。 転送ルールには、HTTP リクエストメソッド 条件を 1 つだけ作成できます。 単一の条件で複数のメソッドを指定できます。 複数のメソッド間の論理関係は OR です。
クッキー: 1 つ以上のクッキーを入力します。転送ルールには、複数の クッキー 条件を作成できます。複数の クッキー 条件間の論理関係は AND です。1 つの クッキー 条件に複数のキーと値のペアを指定できます。複数のキーと値のペア間の論理関係は OR です。
例: key: value
送信元 IP アドレス: 1 つ以上の IP アドレスまたは CIDR ブロックを入力します。転送ルールには、送信元 IP アドレス 条件を 1 つだけ作成できます。1 つの条件に複数の IP アドレスまたは CIDR ブロックを指定できます。それらの間の論理関係は OR です。
IP アドレスの例: 1.1.XX.XX/32。CIDR ブロックの例: 2.2.XX.XX/24
[クエリ文字列]:1 つ以上のクエリ文字列を入力します。転送ルールに複数のクエリ文字列 条件を作成できます。複数のクエリ文字列 条件間の論理関係は AND です。単一のクエリ文字列 条件に複数のキー値ペアを指定できます。複数のキー値ペア間の論理関係は OR です。
例: URL
www.example.com/test/test1?x=1&y=2の場合、キーと値のペアを x:1 または y:2 に設定できます。
[転送操作]
転送アクションタイプを選択します。[+ アクションを追加] をクリックすると、複数のアクションを追加できます。
各転送ルールは、クライアントからのリクエストが破棄されないように、转发至、重定向至、返回固定响应 などの終端アクションを少なくとも 1 つ含む必要があります。
転送ルールには、終端アクションとして转发至、重定向至、または返回固定响应のいずれか 1 つのみを設定できます。
転送ルールに リライト、写入Header、または 删除Header アクションが含まれる場合、转发至 アクションも含める必要があります。その他のアクションは、转发至 アクションの前に配置する必要があります。
[转发至]:転送先のエンドポイントグループを選択します。
選択できるエンドポイントグループは、GA インスタンスの課金方法によって異なります。
従量課金: デフォルトのエンドポイントグループや仮想エンドポイントグループなど、複数のエンドポイントグループを選択できます。 各リージョンから選択できるエンドポイントグループは 1 つだけです。 デフォルトでは、最大 10 個のエンドポイントグループを関連付けることができます。 クォータの引き上げをリクエストするには、ビジネス マネージャーにお問い合わせください。
サブスクリプション: 仮想エンドポイントグループを 1 つだけ選択できます。
[重定向至]:プロトコル と ステータスコード を選択し、宛先の ホスト、ポート、パス、および 検索 文字列を入力します。プロトコル、ホスト、ポート、パス、および 検索 パラメーターは、すべてを同時に空のままにしたり、デフォルト値に設定したりすることはできません。
重定向至 内の パス の高度な設定ルールについては、「リライトとリダイレクトにおけるパスの高度な設定ルール」をご参照ください。
[トラフィックミラーリング]: 一致したリクエストトラフィックのコピーをミラーリングする転送先のエンドポイントグループを選択します。
トラフィックミラーリング機能はプレビュー段階です。この機能を使用するには、担当のビジネスマネージャーにお問い合わせください。
従量課金制の GA インスタンスのみが、トラフィックミラーリング アクションをサポートしています。
トラフィックミラーリング アクションを設定する場合、转发至 アクションも設定する必要があります。トラフィックミラーリング アクションは、转发至 アクションの前に配置する必要があります。これら 2 つのアクションでは、同じエンドポイントグループを選択することはできません。
トラフィックミラーリングには、1 つのエンドポイントグループ (デフォルトエンドポイントグループまたは仮想エンドポイントグループ) のみを選択できます。
[返回固定响应]:ステータスコード を入力し、レスポンスボディタイプ を選択し、レスポンスボディ を入力します。
[リライト]: 転送先の ドメイン名、パス、および クエリ文字列 を入力します。
リライト の パス における拡張設定ルールについては、「書き換えとリダイレクトにおけるパスの拡張設定ルール」をご参照ください。
[写入Header]: キー フィールドに HTTP ヘッダーキーを入力し、値 フィールドに値を入力します。 このアクションは、リクエスト内の同じキーを持つ既存のヘッダーを上書きします。 写入Header アクションで指定されたキーは、一意であり、かつ 删除Header アクションで指定されたキーとは異なる必要があります。
ヘッダーに システム定義 リクエスト ID を追加できるのは、インスタンスが従量課金制の場合のみです。
[删除Header]: HTTP ヘッダーキーを入力します。 删除Header アクションで指定されたキーは、一意であり、かつ 写入Header アクションで指定されたキーとは異なる必要があります。
[丢弃(阻断流量)]: ルールに一致するすべての受信トラフィックを破棄します。
TCP
重要TCP リスナーの転送ルールを追加する場合、トラフィックが転送されるバックエンドサービスが HTTPS サービスであることを確認してください。そうでない場合、転送ルールは有効になりません。
パラメータ
説明
[[名前]]
カスタム転送ルールの名前。
[転送条件]
転送条件を設定します。ドメイン名 タイプのみがサポートされています。
完全一致ドメイン名、ワイルドカードドメイン名、正規表現がサポートされています。詳細については、「ホストベースのルール」をご参照ください。
例: *.example.com
[+ ホストの追加] をクリックして複数のホストを追加できます。 それらの関係は論理和です。
[アクション]
転送アクションタイプを選択します。
転送ルールには、转发至 または 丢弃(阻断流量) のいずれか 1 種類のアクションしか含めることができません。
[转发至]:転送先のデフォルトエンドポイントグループまたは仮想エンドポイントグループを選択します。
選択できるエンドポイントグループは、GA インスタンスの課金方法によって異なります。
従量課金: デフォルトおよび仮想エンドポイントグループを含む、複数のエンドポイントグループを選択できます。各リージョンから選択できるエンドポイントグループは 1 つだけです。デフォルトでは、最大 10 個のエンドポイントグループを関連付けることができます。クォータの引き上げをリクエストするには、ビジネス担当者にお問い合わせください。
サブスクリプション: デフォルトエンドポイントグループまたは仮想エンドポイントグループを 1 つだけ選択できます。
[丢弃(阻断流量)]:ルールに一致するすべての受信トラフィックを破棄します。
新しいルールの追加 をクリックすると、一度に複数の転送ルールを追加できます。
転送ルールをさらに追加する場合は、転送ルールの追加 をクリックします。
関連操作
デフォルト転送ルールの編集、削除、優先順位の変更はできません。
アクション | 説明 |
転送ルールの編集 | 転送ルール タブで、編集するルールを見つけます。ルールの右上隅にポインターを合わせ、表示される |
転送ルールの優先順位の変更 | GA は、優先順位が高い順にルールを評価します。数値が小さいほど、優先順位が高くなります。カスタム転送ルールの優先順位は変更できます。 転送ルール タブで、ルールを探し、目的の位置までドラッグします。 次に、ページの右上隅にある 優先度の変更を保存 をクリックします。 |
転送ルールの削除 | 単一の転送ルールの削除
複数の転送ルールの削除
|
ユースケース
仮想エンドポイントグループへの転送
Web アプリケーションは 2 台のサーバーにデプロイされ、example.com と example.net という 2 つの異なるドメイン名でサービスを提供しています。Global Accelerator は、サービス品質とユーザーエクスペリエンスを向上させるために使用されます。
Global Accelerator で HTTPS リスナーを設定し、デフォルトのエンドポイントグループを追加して、デフォルトの証明書をリスナーにバインドできます。これにより、example.com へのリクエストはデフォルトのエンドポイントグループに転送されます。その後、仮想エンドポイントグループを追加し、追加の証明書をバインドし、ドメイン名 転送ルールを作成して、example.net 宛てのリクエストを指定された仮想エンドポイントグループに転送できます。
複数の HTTPS ドメインへのアクセスを高速化するために複数の証明書と転送ルールを設定する方法の詳細については、「単一の GA インスタンスを使用して複数の HTTPS ドメインへのアクセスを高速化する」をご参照ください。
HTTP リクエストの HTTPS へのリダイレクト
セキュリティを向上させるために、ウェブサイトは HTTP から HTTPS に切り替わります。しかし、既存のユーザーは HTTP を使用してウェブサイトにアクセスできない場合があります。この場合、Global Accelerator で リダイレクト 転送ルールを使用できます。デフォルトでは、このルールは HTTP 301 リダイレクトを使用して、受信 HTTP リクエストをより安全な HTTPS リクエストに変更します。
ドメインベースのトラフィックブロック
ドメイン名 example.com を介してサービスを提供し、サードパーティのコンテンツ配信ネットワーク (CDN) サービスでホストされているウェブサイトは、グローバルなユーザーエクスペリエンスを向上させるために、Alibaba Cloud Global Accelerator を使用し、CDN をバックエンドサービスとして設定してコンテンツ配信を高速化します。
CDN サービスはマルチテナントであり、イングレス IP アドレスを共有します。Global Accelerator が example.com へのアクセスを高速化すると、CDN サービス全体に対して事実上、高速化チャネルを開くことになります。CDN サービスの他のテナントが Global Accelerator から高速化された IP アドレスを取得した場合、その IP アドレスに example.net などの他のドメイン名を解決できてしまいます。「便乗 (hitchhiking)」として知られるこの行為は、example.com の所有者のトラフィックコストを増加させ、セキュリティリスクをもたらす可能性があります。
このリスクを軽減するために、Global Accelerator の転送ルールを使用して、example.com からのリクエストのみを許可し、他のすべてのリクエストを 丢弃(阻断流量) することができます。これにより、異なるドメインからのトラフィックを厳密に分離し、リクエストソースを検証して、Web サイトのセキュリティを確保します。
関連ドキュメント
CreateForwardingRules: 転送ルールを作成します。
UpdateForwardingRules: 転送ルールを更新します。
ListForwardingRules: 作成された転送ルールに関する情報を照会します。
DeleteForwardingRules: 転送ルールを削除します。