Amazon Elastic Container Service (Amazon ECS) is a scalable, high performance container management service that supports Docker containers.
$0
per hour per GB
CircleCI
Score 9.4 out of 10
N/A
CircleCI is a software delivery engine from the company of the same name in San Francisco, that helps teams ship software faster, offering their platform for Continuous Integration and Continuous Delivery (CI/CD). Ultimately, the solution helps to map every source of change for software teams, so they can accelerate innovation and growth.
$0
for up to 6,000 build minutes and up to 5 active users per month
Docker
Score 8.7 out of 10
N/A
Docker Enterprise was sold to Mirantis in 2019; that product is now sold as Mirantis Kubernetes Engine. But Docker now offers a 2-product suite that includes Docker Desktop, which they present as a fast way to containerize applications on a desktop; and, Docker Hub, a service for finding and sharing container images with a team and the Docker community, a repository of container images with an array of…
There is no additional charge for Amazon ECS. You pay for AWS resources (e.g., Amazon EC2 instances or Amazon EBS volumes) you create to store and run your application. You only pay for what you use, as you use it; there are no minimum fees and no upfront commitments.
We need a solution where initially we can use an OS to trigger our pipeline to be used by terraform and then later in ansible. After doing all work it automatically get exited and we can reclaim the space of our VM. So we created a gitlab pipeline and at the initial stage we …
Features
Amazon Elastic Container Service (Amazon ECS)
CircleCI
Docker
Container Management
Comparison of Container Management features of Product A and Product B
Amazon ECS is well suited for the scenarios where you want to deploy a microservice to a cloud and instead of manually specifying instance size, number of instances and then specifying the configurations and connecting it with other cloud services like database service, secret manager service etc., you just want to specify these configurations as a file and using that file, the ECS would deploy the service and keep it healthy. It might be less suited for a scenario when you don't want to stick to AWS specific solution for your microservice deployment. The ECS configuration file is specific to AWS ECS and may not be useful for other cloud providers like Azure etc.
Based on our experience, CircleCI is well-suited for automating mobile app release cycles. For example, to release an iOS app, you would need to build, sign, and upload it to TestFlight, which requires a dedicated Mac in the office. But with CircleCI, you can have macOS executors, so you don't have to manage a physical build machine. Another benefit is that CircleCI's certified AWS Orbs abstract away complex authentication and deployment logic, allowing us to build, push, and deploy Docker containers to Amazon ECS with minimal configuration and high reliability. CircleCI is less suited for smaller projects where the development and deployment are not that extensive, for example, a static site. Once you have built a static site, you probably won't make any further changes, so there's no point in paying for it.
You are going to be able to find the most resources and examples using Docker whenever you are working with a container orchestration software like Kubernetes. There will always some entropy when you run in a container, a containerized application will never be as purely performant as an app running directly on the OS. However, in most scenarios this loss will be negligible to the time saved in deployment, monitoring, etc.
One of the biggest advantages is the flexibility to change underlying EC2 instances. As the traffic or demand increases, we can easily change EC2 instances without any issues.
Amazon ECS APIs are extremely robust and one can start and stop containers by firing one post request only. So, it is not mandatory to keep the demo solutions up for every time. Just at the time of demo fire the command - make the container up and running - do the demo - down the container with API. A simple portal can control every container which helps non-technical (sales, marketing) to do the demo without keeping the solutions up for the entire time frame.
Automated builds! This is really why you get CircleCI, to automate the build process. This makes building your application far more reliable and repeatable. It can also run tests and verify your application is working as expected.
Simple. Unlike Jenkins, Teamcity, or other platforms, CircleCI doesn't need a lot of setup. It's completely hosted, so there's no infrastructure to set up. The config file does take a bit to understand, but if you follow their example and start with something small and add to it, you can get it up and going quicker than it first looks.
Scales easily. Again, since it's all cloud-based, you don't have to manage or scale infrastructure. Simply subscribe to the number of containers you want, and scaling up just means buying more containers.
Another AWS Service - While AWS has a service for just about everything, that is also a negative point. There is no service that does 4 out of 4 things you need. This service does 3 out of 4, another service does the fourth thing you need and another two things that the other service does.
With AWS things in general, it's really hard to remain cloud agnostic. Keep that in mind.
Aside from some ECS-specific terms to learn at first, learning & starting to use ECS is relatively straightforward. AWS docs on the topic are also of high quality, with sound & relevant examples to follow. Troubleshooting container issues is also a breeze thanks to CloudWatch integration & helpful error messages on the AWS console.
The reliability & speed, it just works. The ability to spin up macOS runners and Docker containers on demand without managing hardware is a huge win. The Orbs system makes integrating with AWS and Slack incredibly easy, saving us weeks of custom scripting and providing real-time updates in our Slack channel. This makes it easy for us to track and ensures that everyone involved knows the status. Of course, it has drawbacks related to configuration complexity and, in some cases, cost transparency, but overall, it is an industry-standard, robust tool that solves our core infrastructure problems well.
I have been using Docker for more than 3 years and it really simplifies the modern application development and deployment. I like the ability of Docker to improve efficiency, portability and scalability for developers and operations teams. Another reason for giving this rating is because Docker integrates CI/CD pipelines very well
It's pretty snappy, even with using workflows with multiple steps and different docker images. I've seen builds take a long time if it's really involved, but from what I can tell, it's still at least on par if not faster than other build tools.
Support is relatively good, although the documentation sometimes is lacking, as well as outdated in our experience, especially when we initiated the process of using this service. But once we found how to assemble things, we haven't really required support from anyone at AWS, the service works without problems so we haven't had the need to contact support, which speaks well of how ECS is built.
Unless you have a reasonably large account, you're going to be mainly stuck reading their documentation. Which has improved somewhat over the years but is still extremely limited compared to a platform like Digital Ocean who invested in the documentation and a community to ensure it's kept up to date. If you can't find your answer there, you can be stuck.
I chose Amazon ECS over Amazon EKS and other products because the whole infrastructure was decided to be designed on AWS cloud and Amazon ECS made it easier to make the clusters live in just a few minutes. Amazon ECS has better integration with other AWS services and we don't have to look for plugins to do the things, everything is available and can be configured from the AWS console.
Jenkins is usually self-hosted, Travis CI's infrastructure is largely unreliable (lots of tests time out for no discernable reason), and Semaphore encourages you to configure your CI/CD from a web UI. We like CircleCI because its hosted, our tests run largely as expected on their infrastructure, and we can configure it from a config file that we track in GitHub.
The reason why we are still using Docker right now is due to that is the best among its peers and suits our needs the best. However, the trend we foresee for the future might indicate Amazon lambda could potentially fit our needs to code enviornmentless in the near future.
It is the only tool in our toolset that has not [had] any issues so far. That is really a mark of reliability, and it's a testimony to how well the product is made, and a tool that does its job well is a tool well worth having. It is the base tool that I would say any organisation must have if they do scalable deployment.
We pay over $5K/ month and we have high expectations for service. Sometimes I feel that we don't get the value, but only sometimes.
We have had to build our own application to keep state and broker releases and deployments. We call our app deployer. I feel that CircleCI could do more to understand our needs and possibly build additional features that would enable us to invest less in build and deployment infrastructure and justify paying more for Circle.