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...
U AWS (a cloudu obecně) začne většina věcí dávat smysl až při větším počtu instancí. Dobře se tomu jde naproti zmenšováním aplikace, aby běžela na slabších instancích. Tzn místo jedné c4.xlarge mít raději dvě c4.large a podobně.
U ECS mi ale vadilo, že deployment dost trval. Než se všechno odregistrovalo z balanceru, aktualizovalo, registrovalo, .... Máme proto teď dva způsoby pro deploy - opatrný, který tohle všechno dělá a pak přímý, který akorát na všech instancích udělá git pull z repozitáře s buildovanou aplikací. Většinu času se pak dělá ten přímý, protože většina úprav se týká nějaké konkrétní funkce a nemá vliv na nic dalšího.