AWS ECS: タスクを配置できません

AWS ECS: タスクを配置できません

自動スケーリングを使用して AWS サービスをセットアップしようとしています。アプリケーション ロードバランサーを使用してクラスターを作成し、ポート 8080 で開く必要がある Docker イメージを使用してタスクを作成しました。そのタスクに基づいてサービスを作成し、インスタンスの最小数と希望数を 1、最大数を 10 に設定し、スケールアップとスケールダウンのルールを作成しました。ただし、新しいインスタンスは作成されず、一定の間隔でイベント リストに表示されるのは次の内容だけです。

サービス microrecieverservice は、すべての要件を満たすコンテナ インスタンスがないため、タスクを配置できませんでした。最も近いコンテナ インスタンス 97d97ce9-967d-49ad-83ad-f4f904aae1f6 は、タスクに必要なポートを既に使用しています。詳細については、トラブルシューティングのセクションを参照してください。

関連するものは何も見つけられませんでしたトラブルシューティングセクション手動で別のインスタンスをクラスターに追加できましたが、指定されたイベントには変化がありませんでした。このインスタンスに ssh で接続できましたが、2 つの Docker イメージがありました。1 つは amazon-ecs-agent:latest で、もう 1 つはタスク定義でした。この時点で、サーバーに REST リクエストを送信して、それが通過するかどうかを確認しようとしましたが、接続が拒否されました。ほぼ同時に、Docker イメージが再起動しました。

コンテナはポート 8080 を使用する他のものを実行しておらず、netstat -lntpポート 8080 を使用するプロセスは Docker イメージのプロセスです。

答え1

おそらく、タスクはポート 8080 を静的ポートとして使用します。

クラスターにはインスタンスが 1 つしかないため、配置戦略を順守しながらサービスを更新することはできません。配置戦略では、まず新しいタスクを開始し、ヘルス チェックが成功するまで待ってから、古いタスクを停止する必要がある可能性が高くなります。

ポート 8080 でタスクが実行されているインスタンスが 1 つしかないため、タスクを開始できるインスタンスがありません。

使用ECS 動的ポート マッピング、またはクラスター内でさらにインスタンスを起動します。

関連情報