Zatím mám jenom jednu ECS instanci. A mám problém s portama. Task je v modu Host a container má Port mappings: Container port 80 tcp
.
Pokud service nastavím Number of tasks na 2. Tj chci aby běželi 2 containery tak dostanu error.
service goodbaby-test-service was unable to place a task because no container instance met all of its requirements. The closest matching container-instance bcf744e7-7ad5-xxxx-xxxx-ab277caa9c0d is already using a port required by your task. For more information, see the Troubleshooting section.
Celé to je napojené na ELB (classic protože TCP).
S předchozím problémem se dost pravděpodobně pojí i možnost aktualizace na novější image. Protože když udělám novou revizi tasku a aktualizuju service tak se nic nestane protože porty...
To asi nepůjde. Už vůbec ne s classic balancerem, který ani nechápe containery a balancuje jen na instanci. A ve specifikaci ALB zase je, že každý port může jít na jednu instanci (ono to dává smysl).
Řeší trochu jinou situaci - kdy různá části aplikace jsou v různých containerech. Zvenčí je pak port 443, ale uvnitř jde /js/ na porty 10121, /css/ na 10122 atd.
To co se ty snažíš vyřešit bych spíš udělal přes jednoduché haproxy na instanci a mít pak dva tasky - každý s jiným portem a deploy do nich udělat postupně. Každopádně to ale jde celé proti logice ECS a asi i AWS obecně, takže se moc nevyužije a bude se to muset částečně lepit ručně.