問題タブ [aws-elb]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - AWS ECS: タスクが間違ったターゲット グループにマッピングされる
Pets と Owners の 2 つのモジュールを含む Spring プロジェクトがあります。それぞれが単一の MySQL DB からデータを取得するマイクロサービスです。2 つのタスク (マイクロサービスごとに 1 つ) を持つ単一の Docker コンテナーに 2 つをプッシュすると、両方が起動して実行され、タスクは異なるホスト ポート (32768 & 32769) にマップされます。ただし、http://{elb-dns}/pet に移動すると 404 が返されますが、http://{elb-dns}/owner に移動すると、予期したデータが返されます。ペット タスクが間違ったターゲット グループにマップされることを知りましたが、その理由はわかりません。
ECS クラスターを作成した後、これは次の AWS CLI の「describe」コマンドの出力です。
個別にデプロイすると、各マイクロサービスが分離して動作することを確認しました。私は Application Load Balancer を使用しており、各マイクロサービスには独自のターゲット グループがあります。他に何を試したりチェックしたりするべきかわかりません。誰かが同様の問題を経験しましたか? 他にどこで手がかりを探すべきですか?
更新 1
ログ レベルを TRACE に変更したところ、すべての /pet および /owner 呼び出しが所有者タスクに排他的にルーティングされていることがわかりました。次のログは、http://{elb-dns}/pet/1 を試したときの所有者タスクからのものです。
同じ呼び出しでは、ペット タスクにログが生成されません。これは、コンテナー内の正しいタスクにルーティングされていないことを示しています。だから私はまだこの問題にこだわっています。
更新 2
ELB ログは、/pet と /owner の両方で、すべての呼び出しが同じターゲット グループにルーティングされていることを示しています。ただし、/pet は 1 つの TG にルーティングし、/owner は別の TG にルーティングする必要があります。明確にするために、私は 3 つの TG を持っています。1 つは /pet のコンテナー ポート 8080 に、もう 1 つは /owner のコンテナー ポート 8080 に、もう 1 つは HTTP 要求を受け入れるコンテナー ポート 80 にあります。3 つの TG はすべて同じ VPC にあります。
tcp - TCP バックプレッシャーは AWS ALB でどのように機能しますか?
このAWS docに基づいて、レイヤー 4 とレイヤー 7 ALBS の両方がクライアント接続を終了し、バックエンド インスタンスとの新しい TCP 接続を確立します (接続は両端で再利用されます)。
- これらの接続の管理方法に関する情報はありますか? (つまり、クライアント接続ごとに 1 つのサーバー接続?)
- TCP バックプレッシャーはどのように処理されますか? サーバーが TCP パケットの読み取りを停止した場合、クライアントはそれを認識してバックプレッシャできるようになりますか?
laravel - 現在のホスト名ではなくELBホスト名に設定されたLaravelリクエストオブジェクトホスト
AWS にデプロイされた Laravel アプリがあり、2 つのアプリ サーバー間で ELB を介して負荷分散されています。
私が抱えている問題は、Laravel リクエストで、host
プロパティが現在のホスト名ではなく ELB のホスト名に設定されていることです。
これは、route()
ヘルパーのようなものが、正しいホスト名ではなく ELB ホスト名で URL を生成していることを意味します。
たとえば、次のことを期待しています。
しかし、私は得る:
これは奇妙な動作のように思えます。この問題を賢明な方法で解決する方法がわかりません。