web-dev-qa-db-ja.com

Amazon Application Load Balancerでパスを書き換える方法は?

現在の設定

次のALB DNSがあるとします。

  • my-alb-dns.com

eCSで実行されている次のコンテナ:

  • container-a
  • container-b

ALB経由で着信するトラフィックをルーティングできるように構成しました パスの書き換えを介して ECSクラスター内のそれぞれのサービスに:

  • my-alb-dns.com:80/container-a/my/endpoint -> container-a:8080/my/endpoint
  • my-alb-dns.com:80/container-b/my/endpoint -> container-b:8080/my/endpoint

これは(nginxを使用して)正常に動作しますが、パスの書き換えを実現するために追加のnginxサーバーを使用することが本当に必要かどうかを私は自問していました。カスタムパス書き換えルールによってALB機能を拡張する計画はありますか?これまでのところ、何も見つかりませんでした ドキュメント内

Lamda @ Edge も確認しましたが、単純な書き直しのためにCloudFrontにLamdaを導入するのは少しやり過ぎに思えます(比較としてnginx 1行の構成を使用します)。

これに関するベストプラクティスはありますか、またはAWSが遠い将来にそれを実装し、現在のnginxソリューションに固執することを期待し続ける必要がありますか?

7
bitbrain

ALBはリクエストの変更をサポートしていません。そのような機能を含める計画については知りません。これは巨大なcan o 'ワームなので、AWSが今のところそれを放置していることには驚きません。 nginx(または同等のもの(haproxyなど))を使用するか、アプリケーションを変更して/container-X要求パスの接頭辞。

2
womble

アプリケーションでサポートできる場合は、同様の状況でパスベースのルーティングではなくホストベースのルーティングを使用します。

例えば.

service1.mydomain.com -> myalb.com -> tg1 -> container1:8000
service2.mydomain.com -> myalb.com -> tg2 -> container2:8001

アプリケーションが呼び出す

service1.mydomain.com

の代わりに

mydomain.com/service1
0
Prabhat