ECS Deploy: Codebuild ufo ship vs CodePipeline ECS Deploy
CodePipeline comes with many Action Type Integrations. One of the Integrations is Amazon Elastic Container Service deployment. It is recommended to use codebuild and ufo to handle deployment to ECS though. We discuss some reasons below.
With the CodePipeline ECS Deploy if your ECS service fails to stabilize then the pipeline stage will not timeout until 60 minutes later. There is no built-in way to abort the pipeline stage. This is discussed here: CodePipeline stage timeouts / abort?.
A workaround is discussed here: How to stop an execution or set set timeout for an action in AWS CodePipeline? So to workaround waiting for 60 minutes, we can update the pipeline. This is a little bit inconvenient. By using a CodeBuild project, we have control over the timeout.
It’s Less Powerful
The way the current CodePipeline ECS Deploy Action works is that it pulls down the current ECS task definition of the ECS service. It then replaces the image property on it. Last, it then updates the ECS service with the newly built Docker image.
Pro tip: Use the <- and -> arrow keys to move back and forward.