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.

The ufo tool is more powerful. The ufo ship command also handles creating the ELB Load Balancer and a vanity Route53 endpoint for us. Also, it keeps task definitions codified.

Pro tip: Use the <- and -> arrow keys to move back and forward.

Edit this page

See a typo or an error? You can improve this page. This website is available on GitHub, and contributions are encouraged and welcomed. We love pull requests from you!