'AWS ECS Cli vs Docker Context ECS Cli
I need to deploy an application in AWS using ECS Fargate. This application has multiple services and a docker-compose
file. I see there are two main ways to do this:
- Using Docker's Context ECS cli, the official docs I found: Docker doc and AWS doc.
- Using Amazon's ECS cli as described here.
I am trying to understand the following but didn't find any comparison on the web:
- Which are the advantages/disadvantages of each way?
- Can the same result be achieved with both options, or is there something one can do that the other can't?
- What should I take in consideration when I choose one?
Thanks,
Solution 1:[1]
So I've been trying this this past week, both approaches, and here's what I have found.
- ecs-cli and docker support different sets of tags for nontrivial features, even things such as how much CPU and memory your container needs.
- For example docker wants the deploy config in a
deploy
tag under the service. See https://docs.docker.com/compose/compose-file/deploy/#memory - However ECS-CLI wants things in a acs-params.yml. There are almost no examples out there other than trivial ones though, and the ones published don't actually work with the current tooling. What they publish doesn't work.
- Docker ECS integration works and handles tons of details for you, including VPC, subnet creation, LBs, security groups, everything. This is an amazing part.
- ecs-cli offers tons more options than Docker CLI but you need to do a lot more work yourself, manual security group config, etc.
- I was never able to get ecs-cli to really work. It kept choking on cpu config, and what was written in AWS docs did not actually work\
- docker compose logs doesn't work
Overall neither CLI seems to be in production shape, but docker one seems to be far ahead of where the ecs-cli is IMO.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | Evan Chan |