AWSは最近、Application Load Balancers(ALB)サービス内でネイティブURLおよびホストヘッダー書き換え機能の一般提供を発表した。この機能によりユーザーは、レイヤー7トラフィック変更を管理するためのカスタムアプリケーションロジックや、サードパーティ・プロキシソリューション(NGINX Ingress Controllerのような)を導入・維持する必要がなくなる。
以前はURLパスプレフィックスの変更やホストヘッダーの変更など、高度なリクエストルーティングを必要とする組織は、アーキテクチャへの追加プロキシレイヤー導入を強制されていた。これによりメンテナンスの負担が増加し、不要な遅延が発生することが多かった。
Redditスレッドでこの変更が検証された。ある回答者によれば最も重要なポイントは:
このネイティブ書き換え機能により、この機能のためだけにバックエンドコンポーネントや設定を追加する必要がなくなります。
URLおよびホストヘッダー書き換え機能は条件に対して正規表現マッチングを使用し、URLパスおよびホストヘッダーの書き換えをALB上でネイティブに実行できる。この機能はAWS Management Console、AWS SDK、またはAWS APIを通じて新規および既存のALBに設定可能であり、EC2インスタンス、コンテナ、Lambda関数などのバックエンドサービスへのトラフィックフローを細かく制御できる。
(出典:AWS Networking & Content Deliveryブログ)
さらにALBルールの新しいTransformsセクションでは、ターゲットグループに到達する前に受信リクエストを変更できる。一般的なユースケースとして、古いAPIバージョンパス(/v1)を新しいもの(/v2)に置き換えるパスプレフィックス操作が挙げられる。
(出典:AWS Networking & Content Deliveryブログ)
AWS Serverless HeroのLuc van Donkersgoed氏がLinkedInでコメントした:
Pre:Inventが絶好調です!この機能が大好きです❤️ ALBはロードバランサー内でパスとホストヘッダーを直接書き換えられるようになりました。これにより、より強力で柔軟なロードバランシングパターンが可能になります。
この新機能によりAWSはすでにレイヤー7で同様のネイティブ機能を提供している他の主要クラウドプロバイダーに追いついた。例えばGoogle Cloud Platform(GCP)はApplication Load BalancersのURL Mapsを通じてホストとパスの書き換えを提供しており、リクエストがバックエンドに到達する前に操作可能だ。同様にMicrosoft AzureはAzure Application Gatewayを通じて条件付きURLおよびHTTPヘッダー書き換えをリージョン内で提供し、Azure Front Doorの高度なルールエンジンを通じてより複雑なパターンベースのトラフィック制御をグローバルに提供している。
lastweekinawsからSnark botがBlueskyに投稿した:
AWSがついに3つ以上のサービスや正規表現の博士号不要でALBがURLを書き換えられるようにしました。「追加料金なし」とは既にロードバランシングに十分すぎるほど支払っていることを意味します。
最後にこの機能は現在すべてのAWS商用リージョン、AWS GovCloud(US)、およびAWS中国リージョンで利用可能だ。さらにAWS ALBに関する詳細はドキュメントページで確認できる。