問題タブ [aws-ecs]
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.
docker - DNS の背後で負荷分散および自動スケーリングを行うように AWS ECS クラスターを構成する
AWS ECS で実行しようとしている、最近 Docker 化された Web アプリがあります。DNS には Route 53 を使用しています。
Route 53 にはまだ設定していませんが、私の計画は の DNS レコードを作成するapi.uat.myapp.example.com
ことです。私が望むのは、そのドメイン名を、ECS にある私のコンテナーの負荷分散された自動スケーリング可能なクラスターによって支えられるようにすることです。
ECS Container Network Configuration タブにいます:
「私は信じます!」ボタンを 1 分間押して、api.uat.myapp.example.com
Route 53 でドメイン名を既に作成したと仮定してみましょう。次のように、ここで追加する必要がある値/構成は何ですか?
- リモート クライアントが接続しようとすると
api.uat.myapp.example.com
、ECS クラスターで実行されている負荷分散されたコンテナーにルーティングされますか?; と - その負荷分散された ECS クラスターは自動スケーリングです (自動スケーリングのプロパティを設定できる場所がわかれば、それらの設定方法もわかるはずです!)
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 にあります。
amazon-ec2 - awsvpc ネットワーク モードでコンテナにインターネット アクセスを許可する
状況は次のとおりです。
2 つのコンテナが同じタスク定義に存在します。
このタスク定義を持つサービスは、特定の ec2 インスタンスで実行されています。
このインスタンスの VPC を NAT ゲートウェイを使用するように設定しました。インスタンス自体から Google に ping できるようになったので、これは成功したと思います。
ただし、問題は、私のインスタンスで実行されている Docker コンテナーがインターネットにアクセスできないことです。
ネットワーク モードをブリッジに切り替えると明らかにこの問題は解決しますが、これら 2 つのコンテナー間で双方向の REST トラフィックが必要です。私の知る限り、ブリッジモードでは一方向のトラフィックのみが可能です。
私の質問:
コンテナー内からインターネットにアクセスするにはどうすればよいですか?