Host ヘッダーを設定することで、API Gateway がリクエストを転送するバックエンドアプリケーションを制御し、バックエンドのセットアップに適した方法を選択できます。
Host ヘッダーの仕組み
Host ヘッダーは、複数のアプリケーションが同じサーバー IP を共有している場合に、API Gateway がリクエストを転送するバックエンドアプリケーションまたはサイトを識別するために使用します。一般的なケースは次のとおりです。
バックエンドサービスが仮想プライベートクラウド (VPC) タイプで、関連付けられた VPC 内で複数のアプリケーションまたはサイトが実行されている場合、Host ヘッダーはリクエストの転送先を識別します。
Host ヘッダーを設定するケース:バックエンドが仮想ホストベースのルーティング (1 つの IP の背後に複数のアプリケーション) を使用している場合にのみ設定が必要です。バックエンドが専用サーバーの場合、デフォルトの動作で通常は十分です。API Gateway は、設定されたバックエンドアドレスを Host ヘッダーに設定します。
API Gateway には 5 つの設定方法があります。複数の方法が有効な場合、有効になる方法は次の優先順位で決まります。
|
優先順位 |
方法 |
|
1 (最高) |
バックエンドルーティングプラグイン ( |
|
2 |
バックエンドサービスの設定 |
|
3 |
VPC アクセス認可 |
|
4 |
API グループの設定 (Host ヘッダーのパススルー) |
|
5 (最低) |
API 定義 (定数 |
Host ヘッダーの設定
バックエンドのセットアップに適した方法を選択し、対応する手順に従います。
方法 4: API グループの Host ヘッダーのパススルーを有効化
このオプションは、設定したバックエンドアドレスを使用する代わりに、クライアントの元の Host ヘッダーをバックエンドに転送します。
デフォルトの動作 (「Host ヘッダーのパススルー」がオフの場合):
Host: backend.test.com ← API Gateway は設定されたバックエンドアドレスを使用
「Host ヘッダーのパススルー」がオンの場合:
Host: apigateway.test.com ← API Gateway はクライアントの元の Host ヘッダーを転送
有効にするには、次の手順を実行します。
API Gateway コンソールにログインします。
左側メニューで、[API 管理] > [API グループ] を選択します。
対象の API グループの名前をクリックします。
[Host ヘッダーのパススルー] のスイッチをオンにします。
方法 5: API 定義への host 定数パラメータの追加
API を作成する際に、host という名前の定数パラメータを追加します。[パラメータの場所] を [Head] に設定し、パラメータ値としてバックエンドのドメイン名を入力します。
方法 3: VPC アクセス承認のための Host パラメーターの設定
Log on to the API Gateway console.
In the left-side navigation pane, choose .
In the upper-right corner, click [Create Authorization].
Select the region where the VPC is located, then click Create Authorization.
In the Create VPC Access Authorization dialog box, configure the following parameters:
Region
VPC Authorization Name: 4 to 50 characters
VPC ID
Instance ID or Address: supports ECS or SLB instance IDs, private IPs, or internal ALB domain names
Port
Host: enter the target Host header value
Click OK.
方法 4: バックエンドサービスのホストを設定する
Log on to the API Gateway console.
In the left-side navigation pane, choose .
In the upper-right corner, click Create Backend Service and create a backend service of the HTTP/HTTPS or VPC type. Only these two types support host configurations.
After the backend service is created, find it in the list and click [Configure Backend Service and View Associated APIs] in the Actions column.
On the Backend Service Definition page, click the tab for your target environment (for example, Test).
Click Create in the upper-right corner, then define the backend service URL and the Host field.
[ホスト] フィールドは、API Gateway がこのバックエンドサービスにリクエストを転送する際に送信する Host ヘッダーを設定します。
方法 5: バックエンドルーティングプラグインで Host ヘッダーを設定する
バックエンドルーティングプラグインの httpTargetHostName または vpcTargetHostName パラメーターを使用して、Host ヘッダーを設定します。この方法は最も高い優先度を持ち、他のすべての設定を上書きします。
パラメーターの詳細と設定構文については、バックエンドルーティングプラグインのセクション 1.3 をご参照ください。
Host ヘッダー設定の優先順位
複数の方法で Host ヘッダーを設定した場合、設定は「バックエンドルーティングプラグイン > バックエンドサービスの設定 > VPC アクセス認可 > API グループの設定 > API 定義」の優先順位で有効になります。
API グループで「Host ヘッダーのパススルー」が有効になっている場合、API Gateway はバックエンドの host 設定を、元のクライアントリクエストに含まれる Host ヘッダーで置き換えます。たとえば、クライアントが Host: apigateway.test.com を送信し、設定されたバックエンド URL が backend.test.com の場合、API Gateway はリクエストを apigateway.test.com に転送します。backend.test.com には転送されません。