ドメイン名やパスなどのリクエスト属性、またはHTTPヘッダーやCookieなどのリクエスト内の情報に基づいてトラフィックを分散して処理する場合は、リスナーのカスタム転送ルールを作成できます。 リスナーは転送ルールに基づいてリクエストを転送します。 このトピックでは、転送ルールの仕組みと、転送ルールを作成および管理する方法について説明します。
転送ルールの仕組み
転送ルールの種類
転送ルールは、デフォルト転送ルールとカスタム転送ルールに分類されます。
デフォルトの転送ルール: リスナーを作成すると、システムは自動的にデフォルトの転送ルールを作成し、そのルールをデフォルトのエンドポイントグループに関連付けます。 リスナーにはデフォルトの転送ルールが1つしかありません。デフォルトの転送ルールの優先度の変更、変更、削除はできません。
カスタム転送ルール: リスナーを作成した後、ビジネス要件に基づいてカスタム転送ルールを作成できます。 リスナーに対して複数のカスタム転送ルールを作成し、カスタム転送ルールの優先順位を変更できます。
転送ルールのコンポーネント
各転送ルールには、転送条件と転送アクションが含まれます。 転送アクションは、すべての転送条件に一致する要求に対して実行されます。
リスナーがサポートする転送条件と転送アクションは、リスナーのプロトコルによって異なります。
リスナープロトコル | 転送条件 | 転送アクション |
TCP | ホスト | トラフィックの転送とドロップ |
HTTPまたはHTTPS | Host、Path、HTTPヘッダー、HTTPリクエストメソッド、Cookie、SourceIP、クエリ文字列 | Forward、Redirect、Return Fixed Response、Rewrite、Add Header、Remove Header、Drop Traffic |
標準のGAインスタンスがHostおよびPathタイプの転送条件とForwardタイプの転送アクションのみをサポートしている場合、インスタンスは以前のバージョンを使用している可能性があります。 GAインスタンスをアップグレードするには、アカウントマネージャーにお問い合わせください。
標準GAインスタンスのTCPリスナーが転送ルールをサポートしていない場合、インスタンスは以前のバージョンを使用している可能性があります。 GAインスタンスをアップグレードするには、アカウントマネージャーにお問い合わせください。
リクエストと転送ルールの照合方法
リクエストは、優先度の高い順にカスタム転送ルールと照合されます。 より小さい数を有する転送ルールは、より高い優先度を有します。
リクエストがカスタム転送ルールのすべての転送条件に一致する場合、カスタム転送ルールのすべての転送アクションがすぐに実行されます。
リクエストが現在のカスタム転送ルールと一致しない場合、リクエストは優先度の低いカスタム転送ルールと照合されます。
リクエストがカスタム転送ルールと一致しない場合、リクエストは、優先度が最も低いデフォルト転送ルールに基づいて、デフォルトのエンドポイントグループに転送されます。
TCPリスナーに複数のデフォルトのエンドポイントグループがあり、デフォルトの転送ルールが適用される場合、ネットワークトラフィックはエンドポイントグループのトラフィック分布率に基づいて転送されます。 詳細については、「異なるシナリオでのエンドポイントグループ間のトラフィックの分散」をご参照ください。
パスが /*
に設定されている場合、すべてのパスへのリクエストが一致します。 予期しないリクエストを転送する場合は、転送条件のパスを /*
に設定し、転送アクションをReturn Fixed Responsesに設定し、ステータスコードを404または403に設定します。 転送ルールを設定したら、ルールリストの最後から2番目の位置にルールをドラッグします。
前提条件
標準のGlobal Acceleratorインスタンスが作成されます。 詳細については、「標準GAインスタンスの作成と管理」をご参照ください。
基本帯域幅プランが購入され、帯域幅課金方法がサブスクリプションであるGAインスタンスに関連付けられます。
インテリジェントルーティングリスナーが追加されます。 詳細については、「インテリジェントルーティングリスナーの追加と管理」をご参照ください。
転送ルールの作成
特定の条件を満たすリクエストに対して特定のアクションを実行する転送ルールを作成するには、次の手順を実行します。
GAコンソールにログインします。
インスタンス ページで、管理するGAインスタンスを見つけ、操作 列の リスナーの設定 をクリックします。
リスナー タブで、管理するリスナーを見つけ、リスナーのIDをクリックします。
リスナーの詳細ページで、転送ルール をクリックします。
転送ルール タブで、転送ルールの追加 をクリックし、次のパラメーターを設定し、OK をクリックします。
HTTPまたはHTTPSリスナーの転送ルール
パラメーター
説明
名前
転送ルールの名前を入力します。
If (すべての条件に一致)
条件のタイプを選択します。 [転送ルールの追加] をクリックすると、複数の条件を追加できます。
ホスト: 1つ以上のドメイン名を入力します。 正確なドメイン名、ワイルドカードドメイン名、および正規表現がサポートされています。 詳細については、「ドメイン名ベースの転送ルール」をご参照ください。
転送ルールに作成できるホスト条件は1つだけです。 ホスト条件には複数のドメイン名を指定できます。 複数のドメイン名の論理関係はORです。
例: * .example.com
パス: 1つ以上のパスを入力します。 正確なパス、ワイルドカードパス、および正規表現がサポートされています。 詳細については、「パスベースの転送ルール」をご参照ください。
転送ルールには、パスタイプの複数の転送条件を作成できます。 Pathタイプの複数の転送条件間の論理関係はORです。 パスタイプの転送条件では、複数のパスを指定できます。 複数のパス間の論理関係はORである。
たとえば、URLが
www.example.com/test/test1?x=1&y=2
の場合、パラメーターを /test/* に設定できます。HTTPヘッダー: keyフィールドにHTTPヘッダーのキーを入力し、valueフィールドにHTTPヘッダーの値を入力します。 複数の値を設定できます。 転送ルールで複数のHTTPヘッダー条件を作成できます。 HTTPヘッダータイプの複数の条件間の論理関係はANDです。 各HTTPヘッダーキーは一意である必要があります。 各HTTPヘッダー条件で複数のHTTPヘッダー値を設定できます。 各HTTPヘッダー値は一意である必要があります。
例: キー: user-agent 値: * Mozilla/4.0 *
HTTPリクエスト方法: HTTPリクエスト方法を選択します。 有効な値: HEAD、GET、POST、OPTIONS、PUT、PATCH、DELETE。 転送ルールに作成できるHTTPリクエストメソッド条件は1つだけです。 1つの条件で複数のHTTPリクエストメソッドを指定できます。 複数のHTTPリクエストメソッド間の論理関係はORです。
Cookie: 1つ以上のCookieを入力します。 転送ルールで複数のCookie条件を作成できます。 複数のCookie条件間の論理関係はANDです。 Cookie条件では、複数のキーと値のペアを指定できます。 複数のキーと値のペア間の論理関係はORです。
例: key: value
SourceIP: 1つ以上のIPアドレスまたはCIDRブロックを入力します。 転送ルールに作成できるSourceIP条件は1つだけです。 1つの条件で複数のIPアドレスまたはCIDRブロックを指定できます。 複数の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に設定できます。
次に
アクションの種類を選択します。 [アクションの追加] をクリックすると、複数のアクションを追加できます。
説明各転送ルールには、[転送] 、[リダイレクト] 、または [固定応答を返す] アクションが含まれている必要があります。 これにより、GAインスタンスは引き続きクライアント要求を転送します。
転送ルールには、転送、リダイレクト、Return Fixed Responseのいずれかのアクションのみを含めることができます。
転送ルールに [書き換え] 、[ヘッダーの追加] 、または [ヘッダーの削除] タイプのアクションが含まれている場合は、転送ルールに [転送] タイプのアクションを設定します。 Forwardアクションの前に、Rewrite、Add Header、またはRemove Headerアクションを実行する必要があります。
転送: 宛先仮想エンドポイントグループを選択します。
リダイレクト: プロトコル、ステータスコード、ホスト、ポート、パス、および検索パラメーターを設定します。 [プロトコル] 、[ホスト] 、[ポート] 、[パス] 、および [クエリ] パラメーターを同時に空のままにしたり、パラメーターにデフォルト値を同時に使用したりすることはできません。
リダイレクトアクションのパスの設定方法の詳細については、「書き換えとリダイレクトのパスの設定」をご参照ください。
固定応答を返す: 応答ステータスコード、応答コンテンツタイプ、および応答コンテンツパラメーターを設定します。
書き換え: [ドメイン名] 、[パス] 、[検索] パラメーターを設定します。
書き換えアクションのパスを設定する方法の詳細については、「書き換えとリダイレクトのパスの設定」をご参照ください。
[ヘッダーの追加]: [キー] フィールドにHTTPヘッダーキーを入力し、[値] フィールドにHTTPヘッダー値を入力します。 指定されたヘッダーは、リクエストのヘッダーを上書きします。 異なる [ヘッダーの追加] アクションのHTTPヘッダーキーは一意である必要があり、[ヘッダーの削除] アクションのキーとは異なる必要があります。
Remove Header: HTTPヘッダーキーを入力します。 異なる [ヘッダーの削除] アクションのHTTPヘッダーキーは一意である必要があり、[ヘッダーの追加] アクションのキーとは異なる必要があります。
Drop Traffic: GAはトラフィックをドロップします。
TCPリスナーの転送ルール
重要TCPリスナーの転送ルールを追加するときは、トラフィックの転送先のバックエンドサービスがHTTPSサービスであることを確認してください。 それ以外の場合、転送ルールは有効になりません。
パラメーター
説明
名前
転送ルールの名前を入力します。
If (すべての条件に一致)
条件のタイプを選択します。 ホストのみがサポートされています。
正確なドメイン名、ワイルドカードドメイン名、および正規表現がサポートされています。 詳細については、「ドメイン名ベースの転送ルール」をご参照ください。
例: * .example.com
[+ ドメイン名の追加] をクリックすると、ホストタイプの複数の転送条件を追加できます。 複数のホスト条件間の論理関係はORです。
次に
アクションの種類を選択します。
転送ルールには、[転送] または [トラフィックの削除] タイプの転送アクションを1つだけ含めることができます。
転送: デフォルトのエンドポイントグループまたは仮想エンドポイントグループを選択します。
Drop Traffic: トラフィックをドロップします。
新しいルールの追加 をクリックすると、一度に複数の転送ポリシーを追加できます。
複数の転送ルールを追加する場合は、転送ルールの追加 をクリックします。
その他操作
デフォルトの転送ルールの変更、優先度の変更、または削除はできません。
API 操作 | 手順 |
転送ルールの変更 | 転送ルール タブで、変更する転送ルールを見つけ、ポインタを右上隅に移動して、表示されるアイコンをクリックします。 転送ルールを設定し、[保存] をクリックします。 |
転送ルールの優先度の変更 | ルールは優先度の高い順に評価されます。 より低い値は、より高い優先度を指定する。 カスタム転送ルールの優先度を変更できます。 デフォルトの転送ルールの優先度は変更できません。 転送ルール タブで、転送ルールを見つけて目的の位置までドラッグし、右上隅にある 優先度の変更を保存 をクリックします。 |
転送ルールの削除 | 転送ルールの削除
複数の転送ルールの削除
|
例
特定の仮想エンドポイントグループへのリクエストの転送
webアプリケーションは2つのサーバーにデプロイされ、ドメイン名example.com
とexample.net
を使用してサービスを提供します。 GAは、アプリケーションへのアクセスを高速化し、ユーザーエクスペリエンスを向上させるために使用されます。
GAでHTTPSリスナーを作成し、デフォルトのエンドポイントグループを追加し、デフォルトの証明書をリスナーに関連付けることができます。 このようにして、example.com
向けのリクエストはデフォルトのエンドポイントグループに転送されます。 次に、仮想エンドポイントグループを追加し、追加の証明書をリスナーに関連付けてから、example.net
宛てのリクエストを仮想エンドポイントグループに転送するホスト転送ルールを作成できます。
次の図は、ホスト転送ルールを設定する方法を示しています。
複数の証明書と転送ルールを設定してHTTPS経由で複数のドメイン名へのアクセスを高速化する方法の詳細については、「1つのGAインスタンスを使用して複数のHTTPS対応ドメイン名へのアクセスを高速化する」をご参照ください。
HTTP リクエストを HTTPS へリダイレクトする方法
セキュリティを向上させるために、WebサイトはHTTPからHTTPSに切り替わります。 ただし、既存のユーザーはHTTPを使用してWebサイトにアクセスできない場合があります。 この例では、GAでリダイレクト転送ルールを作成し、301リダイレクトを使用してHTTPリクエストをHTTPSにリダイレクトできます。
この例では、HTTPリスナーのポート80宛てのリクエストは、HTTPSリスナーのポート443にリダイレクトされます。 次の図は、リダイレクト転送ルールを設定する方法を示しています。
ドメイン名に基づいてトラフィックをドロップする
Webサイトは、ドメイン名example.com
を介して外部サービスを提供し、コンテンツ配信ネットワーク (CDN) サービスでドメイン名をホストします。 ユーザーエクスペリエンスを向上させるために、WebサイトはGAをデプロイし、CDNサービスをGAのバックエンドサービスとして指定します。 このようにして、Webサイトリソースの配信が加速されます。
複数のテナントが同じIPアドレスを共有してCDNサービスに接続します。 GAがexample.com
へのアクセスを高速化すると、GAはCDNサービスの高速化サービスも提供します。 CDNサービスの他のテナントがGAの高速化IPアドレスを取得した場合、テナントはexample.net
などの他のドメイン名を高速化IPアドレスに解決し、これらのドメイン名を高速化できます。 これにより、追加のトラフィックとexample.com
コストが発生し、セキュリティリスクを引き起こす可能性があります。
リスクを防ぐために、example.com
からのリクエストのみを転送し、他のドメイン名からのリクエストをドロップする転送ルールを設定できます。 これにより、異なるドメイン名からのリクエストが分離され、リクエストのソースが検証され、Webサイトのセキュリティが確保されます。
この例では、example.com
ドメイン名からのリクエストは、対応するエンドポイントグループのバックエンドサービスに転送されます。 他のドメイン名からのリクエストはドロップされます。
関連ドキュメント
CreateForwardingRules: 転送ルールを作成します。
UpdateForwardingRules: 転送ルールを更新します。
ListForwardingRules: 転送ルールに関する情報を照会します。
DeleteForwardingRules: 転送ルールを削除します。