ドメイン名、パス、HTTP ヘッダー、Cookie などのリクエスト属性に基づいてトラフィックを分散および処理するには、リスナーに対してカスタム転送ルールを作成します。リスナーはこれらのルールに基づいて、アクセスリクエストに対して異なる転送アクションを実行します。このトピックでは、転送ルールの仕組みと、その追加・管理方法について説明します。
転送ルールの仕組み
転送ルールのタイプ
転送ルールは、デフォルトとカスタムに分類されます。
-
デフォルトの転送ルール:リスナーを作成すると、システムは自動的にデフォルトの転送ルールを作成し、デフォルトのエンドポイントグループに関連付けます。各リスナーにはデフォルトの転送ルールが 1 つだけ存在します。デフォルトの転送ルールの優先度の変更、修正、削除はできません。
-
カスタム転送ルール:リスナーを作成した後、必要に応じてカスタム転送ルールを作成できます。リスナーに対して複数のカスタム転送ルールを作成し、その優先度を変更することができます。
転送ルールのコンポーネント
各転送ルールは転送条件と転送アクションで構成されます。リクエストがすべての転送条件に一致する場合にのみ、そのリクエストに対して転送アクションが実行されます。
サポートされる転送条件と転送アクションは、リスナープロトコルによって異なります。
|
リスナープロトコル |
転送条件 |
転送アクション |
|
TCP |
ドメイン |
転送先、ドロップ (トラフィックをブロック) |
|
HTTP または HTTPS |
ホスト、パス、HTTP ヘッダー、HTTP リクエストメソッド、Cookie、ソース IP、クエリ文字列 |
転送先、リダイレクト先、トラフィックのミラーリング先、固定レスポンスを返す、書き換え、ヘッダーの挿入、ヘッダーの削除、ドロップ (トラフィックをブロック) |
-
ご利用の標準 Global Accelerator インスタンスがドメインとパスの転送条件、および転送先の転送アクションのみをサポートしている場合、インスタンスのバージョンが他の条件やアクションタイプをサポートしていない可能性があります。これらの機能を使用するには、アカウントマネージャーに連絡してインスタンスをアップグレードしてください。
-
ご利用の標準 GA インスタンスが TCP リスナーの転送ルール追加をサポートしていない場合、インスタンスのバージョンがこの機能をサポートしていない可能性があります。この機能を使用するには、アカウントマネージャーに連絡してインスタンスをアップグレードしてください。
リクエストと転送ルールの照合方法
-
リクエストは、優先度の降順でカスタム転送ルールと 1 つずつ照合されます。ルール番号が小さいほど、優先度が高くなります。
-
リクエストがカスタム転送ルールに一致する場合 (つまり、ルールのすべての転送条件を満たす場合)、対応する転送アクションが直ちに実行されます。
-
リクエストがカスタム転送ルールに一致しない場合、リクエストは次に優先度の高いカスタム転送ルールと照合されます。
-
-
リクエストがどのカスタム転送ルールにも一致しない場合、最も優先度の低いデフォルトの転送ルールが適用されます。リクエストはデフォルトのエンドポイントグループに転送されます。
リスナーに複数のデフォルトのエンドポイントグループがある場合、デフォルトの転送ルールはエンドポイントグループのトラフィック分散ルールに基づいてトラフィックを転送します。詳細については、「複数のエンドポイントグループにまたがるトラフィック分散とそのシナリオ」をご参照ください。
パスを /* に設定すると、すべてのパスへのリクエストが一致します。予期しないリクエストを処理するためのキャッチオールルールが必要な場合は、転送条件のパスを /* に設定し、転送アクションとして 404 または 403 ステータスコードを持つ固定レスポンスを返すように設定できます。ルールを設定した後、ルールリストの最後から 2 番目の位置にドラッグします。
前提条件
-
インテリジェントルーティングリスナーを追加済みであること。詳細については、「インテリジェントルーティングリスナーの追加と管理」をご参照ください。
転送ルールの追加
以下の手順に従って、条件に一致するリクエストに対して特定のアクションを実行するカスタム転送ルールを追加します。
Global Accelerator コンソールにログインします。
-
リスナー タブで、対象のリスナーを見つけ、その ID をクリックします。
-
リスナー詳細ページで、転送ルール タブをクリックします。
-
転送ルール タブで、転送ルールの追加 をクリックします。以下の情報を使用して転送ルールを設定し、OK をクリックします。
HTTP または HTTPS リスナーの転送ルール
パラメーター
説明
ポリシー名
カスタム転送ルールの名前。
転送条件
転送条件のタイプを選択します。[+転送条件を追加] をクリックして、複数の転送条件を追加することもできます。
-
ホスト:1 つ以上のドメイン名を入力します。完全一致ドメイン名、ワイルドカードドメイン名、正規表現がサポートされています。詳細については、「転送条件のドメイン名設定ルール」をご参照ください。
1 つの転送ルールに作成できる [ホスト] 転送条件は 1 つだけです。条件内に複数のドメイン名を設定できます。ドメイン名間の論理関係は OR です。
例:*.example.com
-
パス:1 つ以上のパスを入力します。完全一致パス、ワイルドカードパス、正規表現がサポートされています。詳細については、「転送条件のパス設定ルール」をご参照ください。
1 つの転送ルールに複数の [パス] 転送条件を作成できます。複数の [パス] 転送条件間の論理関係は OR です。1 つの [パス] 条件内に複数のパスを設定できます。パス間の論理関係は OR です。
例:URL が
www.example.com/test/test1?x=1&y=2の場合、このパラメーターを /test/* に設定できます。 -
HTTP ヘッダー: [キーは] フィールドに HTTP ヘッダーの名前を入力し、[値は] フィールドに HTTP ヘッダーの内容を入力します。複数の HTTP ヘッダー値を追加できます。1 つの転送ルールで複数の HTTP ヘッダー 転送条件を作成できます。複数の HTTP ヘッダー 転送条件間の論理関係は AND です。HTTP ヘッダーのキーは一意である必要があります。1 つの HTTP ヘッダー 転送条件で複数の HTTP ヘッダー値を設定できます。HTTP ヘッダーの値は一意である必要があります。
例:キー user-agent の場合、値は *Mozilla/4.0* です。
-
HTTP リクエストメソッド:HTTP リクエストメソッドを選択します。有効な値は HEAD、GET、POST、OPTIONS、PUT、PATCH、DELETE です。1 つの転送ルールに作成できる [HTTP リクエストメソッド] 転送条件は 1 つだけです。条件内に複数の HTTP リクエストメソッドを設定できます。HTTP リクエストメソッド間の論理関係は OR です。
-
Cookie:1 つ以上の Cookie を入力します。1 つの転送ルールに複数の [Cookie] 転送条件を作成できます。複数の [Cookie] 転送条件間の論理関係は AND です。1 つの [Cookie] 条件内に複数の Cookie のキーと値のペアを設定できます。Cookie のキーと値のペア間の論理関係は OR です。
例:key:value
-
ソース IP:1 つ以上の IP アドレスまたは CIDR ブロックを入力します。1 つの転送ルールに作成できる [ソース IP] 転送条件は 1 つだけです。条件内に複数の IP アドレスまたは CIDR ブロックを設定できます。IP アドレスまたは CIDR ブロック間の論理関係は OR です。
IP アドレスの例:1.1.XX.XX/32。CIDR ブロックの例:2.2.XX.XX/24。
-
クエリ文字列:1 つ以上のクエリ文字列を入力します。1 つの転送ルールに複数の [クエリ文字列] 転送条件を作成できます。複数の [クエリ文字列] 転送条件間の論理関係は AND です。1 つの [クエリ文字列] 条件内に複数の文字列のキーと値のペアを設定できます。文字列のキーと値のペア間の論理関係は OR です。
例:URL が
www.example.com/test/test1?x=1&y=2の場合、このパラメーターを x:1 または y:2 に設定できます。
転送操作
転送アクションのタイプを選択します。[+アクションを追加] をクリックして、複数の転送アクションを追加することもできます。
説明-
クライアントリクエストが中断されないように、転送ルールには [転送先]、[リダイレクト先]、または [固定レスポンスを返す] アクションを含める必要があります。
-
転送ルールには、[転送先]、[リダイレクト先]、または [固定レスポンスを返す] タイプのアクションを 1 つしか含めることができません。
-
転送ルールに [書き換え]、[ヘッダーの挿入]、または [ヘッダーの削除] アクションが含まれる場合は、[転送先] アクションも設定する必要があります。[書き換え]、[ヘッダーの挿入]、または [ヘッダーの削除] アクションは、[転送先] アクションの前に配置する必要があります。
-
転送先:送信先のエンドポイントグループを選択します。
説明エンドポイントグループの選択は、ご利用の GA インスタンスの課金方法に基づいて以下の制限を受けます。
-
従量課金: デフォルトのエンドポイントグループや仮想エンドポイントグループを含む、複数のエンドポイントグループを選択できます。ただし、リージョンごとに 1 つのエンドポイントグループしか選択できません。デフォルトでは、最大 10 個のエンドポイントグループを関連付けることができます。より大きなクォータが必要な場合は、アカウントマネージャーにお問い合わせください。
-
サブスクリプション:仮想エンドポイントグループを 1 つだけ選択できます。
-
-
[リダイレクト先]: [プロトコル] および [ステータスコード] を選択し、リダイレクト先の [ホスト]、[ポート]、[パス]、および [クエリ] 文字列を入力します。[プロトコル]、[ホスト]、[ポート]、[パス]、および [クエリ] の各パラメーターをすべて空のままにしたり、デフォルト値のままにしたりすることはできません。
[リダイレクト先] 操作における [パス] パラメーターの詳細設定ルールについては、「書き換えとリダイレクトにおけるパスの詳細設定」をご参照ください。
-
トラフィックのミラーリング先:送信先のエンドポイントグループを選択します。一致したリクエストトラフィックのコピーがこのエンドポイントグループにミラーリングされます。
説明-
トラフィックミラーリング機能は段階的に展開されています。この機能を使用するには、アカウントマネージャーにお問い合わせください。
-
[トラフィックのミラーリング先] 転送アクションは、従量課金の GA インスタンスのみがサポートしています。
-
[トラフィックのミラーリング先] アクションを設定する場合は、[転送先] アクションも設定する必要があります。[トラフィックのミラーリング先] アクションは、[転送先] アクションの前に配置する必要があります。これら 2 つのアクションで選択されたエンドポイントグループは同じであってはなりません。
-
トラフィックミラーリングには、1 つのエンドポイントグループ (デフォルトのエンドポイントグループまたは仮想エンドポイントグループ) のみを選択できます。
-
-
固定レスポンスを返す:[レスポンスステータスコード] を入力し、[レスポンスボディタイプ] を選択して [レスポンスボディ] を入力します。
-
書き換え:送信先の [ホスト]、[パス]、[クエリ文字列] を入力します。
[書き換え] 操作における [パス] パラメーターの詳細設定ルールについては、「書き換えとリダイレクトのパスに関する詳細設定」をご参照ください。
-
ヘッダーの挿入:[キー] フィールドに HTTP ヘッダー名を入力し、[値] フィールドに HTTP ヘッダーの内容を入力します。入力された情報は、リクエスト内の既存のヘッダー変数を上書きします。[ヘッダーの挿入] アクションの HTTP ヘッダーキーは一意である必要があり、[ヘッダーの削除] アクションのキーと同じであってはなりません。
説明従量課金インスタンスのみが、ヘッダーへの [システム定義] の [リクエスト ID] の挿入をサポートしています。
-
ヘッダーの削除:HTTP ヘッダー名を入力します。[ヘッダーの削除] アクションの HTTP ヘッダーキーは一意である必要があり、[ヘッダーの挿入] アクションのキーと同じであってはなりません。
-
ドロップ (トラフィックをブロック):アクセス トラフィックを直接ドロップします。
TCP リスナー
重要TCP リスナーに転送ルールを追加する場合、トラフィックが HTTPS を使用するバックエンドサービスに転送されるようにする必要があります。そうしないと、転送ルールは有効になりません。
パラメーター
説明
名前
カスタム転送ルールの名前。
転送条件
転送条件のタイプを設定できますが、サポートされているのは [ドメイン] タイプのみです。
ホスト転送条件は、完全一致ドメイン名、ワイルドカードドメイン名、正規表現をサポートしています。詳細については、「転送条件のドメイン名設定ルール」をご参照ください。
例:*.example.com
[+ドメイン名を追加] をクリックして、複数のホスト転送条件を追加することもできます。条件間の論理関係は OR です。
転送アクション
転送アクションのタイプを選択します。
転送ルールには、[転送先] または [ドロップ (トラフィックをブロック)] タイプのアクションを 1 つしか含めることができません。
-
転送先:送信先のデフォルトのエンドポイントグループまたは仮想エンドポイントグループを選択します。
説明エンドポイントグループの選択は、ご利用の GA インスタンスの課金方法に基づいて以下の制限を受けます。
-
従量課金: デフォルトおよび仮想エンドポイントグループを含む、複数のエンドポイントグループを選択できます。ただし、各リージョンごとに1つのエンドポイントグループのみ選択できます。デフォルトでは、最大10個のエンドポイントグループを関連付けることができます。より大きなクォータが必要な場合は、アカウントマネージャーにお問い合わせください。
-
サブスクリプション:デフォルトのエンドポイントグループまたは仮想エンドポイントグループを 1 つだけ選択できます。
-
-
ドロップ (トラフィックをブロック):アクセス トラフィックを直接ドロップします。
新しいルールの追加 をクリックして、一度に複数の転送ルールを追加できます。
-
-
別の転送ルールを追加するには、転送ルールの追加 をクリックします。
その他の操作
デフォルトの転送ルールの編集、優先度の変更、削除はできません。
|
操作 |
説明 |
|
転送ルールの編集 |
転送ルール タブで、対象の転送ルールを見つけ、マウスポインターを右上に移動させ、表示される |
|
転送ルールの優先度の変更 |
転送ルールは上から下へ、優先度の降順で照合されます。番号が小さいほど優先度が高くなります。カスタム転送ルールの優先度は変更できますが、デフォルトの転送ルールは変更できません。 転送ルール タブで、対象の転送ルールを見つけ、目的の位置にドラッグします。その後、ページの右上隅にある 優先度の変更を保存 をクリックします。 |
|
転送ルールの削除 |
単一の転送ルールを削除する
複数の転送ルールを削除する
|
使用例
特定仮想エンドポイントグループへのリクエスト転送
Web アプリケーションが 2 つのサーバーにデプロイされ、ドメイン名 example.com と example.net を使用してサービスを提供しています。Web アプリケーションサービスの品質を向上させ、ユーザーエクスペリエンスを向上させるために Global Accelerator が使用されます。
Global Accelerator で HTTPS リスナーを設定し、デフォルトのエンドポイントグループを追加し、リスナーにデフォルト証明書をバインドすることができます。これにより、example.com 宛てのリクエストはデフォルトのエンドポイントグループに転送されます。その後、仮想エンドポイントグループを追加し、追加証明書をバインドし、[ホスト] 転送ルールを作成して、example.net 宛てのリクエストを指定された仮想エンドポイントグループに転送します。
次の図は、この例における [ホスト] 転送ルールの設定を示しています。
複数の証明書と転送ルールを設定して複数の HTTPS ドメイン名へのアクセスを高速化する方法の詳細については、「単一の Global Accelerator インスタンスを使用して複数の HTTPS ドメイン名へのアクセスを高速化する」をご参照ください。
HTTP リクエストの HTTPS へのリダイレクト
セキュリティ向上のために Web サイトが HTTP から HTTPS に切り替わると、ユーザーは HTTP 経由でサイトにアクセスできなくなる可能性があります。この場合、Global Accelerator の転送ルール機能を使用して [リダイレクト] 転送ルールを設定できます。デフォルトでは、このルールは HTTP 301 ステータスコードを返し、クライアントからの HTTP リクエストを安全な HTTPS の対応するリクエストにリダイレクトします。
この例では、ポート 80 の HTTP リクエストがポート 443 の HTTPS にリダイレクトされます。次の図は、[リダイレクト] 転送ルールの設定を示しています。

ドメインベースのトラフィックブロッキングの設定
ある Web サイトがドメイン名 example.com を通じて外部サービスを提供し、そのドメイン名をコンテンツデリバリーネットワーク (CDN) サービスでホストしています。グローバルユーザーのアクセス体験をさらに向上させるため、この Web サイトは Alibaba Cloud Global Accelerator を導入し、CDN を Global Accelerator のバックエンドサービスとして使用して Web サイトリソースの配信を高速化しています。
CDN サービスはマルチテナントであり、アクセス IP アドレスを共有しているため、Global Accelerator が example.com の高速化を提供すると、CDN の高速化チャネルも開かれます。CDN の他のテナントが Global Accelerator の高速化 IP を取得すると、example.net などの他のドメイン名をその高速化 IP に解決し、高速化サービスに「便乗」することができてしまいます。これにより、example.com は追加のトラフィックコストを負担することになり、潜在的なセキュリティリスクにつながる可能性さえあります。
これらのリスクを軽減するために、Global Accelerator の転送ルール機能を使用して、example.com からのリクエストのみが Global Accelerator にアクセスできるようにし、他のすべてのリクエストをドロップするルールを設定できます。この設定により、異なるドメイン名からのアクセスリクエストが厳密に分離され、リクエスト元が検証されるため、Web サイトのセキュリティが確保されます。
この例では、example.com へのリクエストは対応するエンドポイントグループのバックエンドサービスに転送されます。他のすべてのドメイン名については、転送アクションは [ドロップ (トラフィックをブロック)] です。

参考文献
-
CreateForwardingRules:転送ルールを作成します。
-
UpdateForwardingRules:転送ルールを更新します。
-
ListForwardingRules:作成された転送ルールを照会します。
-
DeleteForwardingRules:転送ルールを削除します。