ALB の新機能
2025年10月15日に、AWS Application Load Balancer (ALB) で、URL とホストヘッダーの書き換えが可能になりました。
これまでは、Webサーバーのホスト名を書き換えるには、リバースプロキシを用意したり Web サーバーで設定を追加・変更したりといった作業が必要でした。しかし、この機能の登場により、ALB のルールを書き換えるだけで、ホスト名の変更が可能になります。
これまでは、ユーザーからのリクエストのホスト名・パスなどを書き換えて Webサーバーにルーティングすることはできませんでした。
新しい書き換え機能では、ルールに指定する「トランスフォーム」で、リクエスト中のホストヘッダーとパスを書き換えて、転送先のターゲットグループに渡すことができます。
例えば https://aaa.example.com/path_a/ でアクセスしていた URL を、 https://bbb.example.com/path_b/ でアクセスさせたい場合、
ホストヘッダーを aaa.example.com から bbb.example.com に変換し、パスを path_a から path_b に変換してあげれば、 Webサーバーの設定を何らイジることなくアクセスする URL を変更することができます。
書き換えの設定方法
ALB のリスナールールを開くと、リスナールール一覧の表に「トランスフォーム」という列が増えているのがわかります。
アクションの鉛筆アイコンをクリックすると、ルールの編集画面に遷移するのですが、ここに「トランスフォーム」セクションが追加されています。
このセクションでは「ホストヘッダー」と「URL パス」をそれぞれ 1個ずつ追加することができます。
書き換えは正規表現で行われますので注意が必要です。
ピリオド「.」は任意の1文字を表すので、ピリオドそのものを表したいときは、手前にバックスラッシュを付けてエスケープする必要があります。
例えば、ホストヘッダーを aaa.example.com から bbb.example.com に変換するには、以下のように入力してください。
| 項目 | 設定値 | 備考 |
|---|---|---|
| ホストヘッダー正規表現値の一致 | aaa.example.com | ピリオドは \. でエスケープが必要 |
| 置換値 | bbb.example.com | 置換後の文字列を指定 |
まとめ
今回の ALB の新機能リリースにより、ホスト名やパスの変更がより簡単に実現できるようになりました。
この便利機能を大いに活用していきたいと思います。