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.
Timeout
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!
- Suggest an edit to this page (here's the contributing guide).
- Open an issue about this page to report a problem.