Need advice about which tool to choose?Ask the StackShare community!
Amazon EC2 vs Amazon EC2 Container Service: What are the differences?
Introduction
In this comparison, we will outline the key differences between Amazon EC2 and Amazon EC2 Container Service (ECS).
Type of resource management: Amazon EC2 (Elastic Compute Cloud) is a service that provides resizable compute capacity in the cloud, while Amazon ECS is a fully managed container orchestration service for Docker containers.
Usage of Virtual Machines: With Amazon EC2, users manage individual virtual machines known as instances, and have full control over the operating system and application configurations. In contrast, with Amazon ECS, users work with container instances that run Docker containers and abstract away the underlying infrastructure details.
Scalability: Amazon EC2 allows for scaling resources vertically by adjusting the size of the instances, while Amazon ECS is optimized for scaling horizontally by adding or removing containers based on workload demand.
Service Management: Amazon EC2 provides virtual servers in the cloud, focusing more on traditional server-based application hosting. On the other hand, Amazon ECS simplifies managing, deploying, and scaling containerized applications.
Cost Structure: Amazon EC2 pricing is based on the type and size of instances, while Amazon ECS pricing includes the costs of underlying EC2 instances along with a nominal charge for the ECS service. Users of Amazon EC2 have more control over cost optimization based on instance usage.
Container Compatibility: While Amazon EC2 can run various applications and services, Amazon ECS is specifically designed for containerized applications built using Docker. It provides additional features to manage container deployments effectively.
In Summary, the key differences between Amazon EC2 and Amazon ECS lie in their resource management approaches, scalability strategies, service orientations, cost structures, and container compatibility.
DigitalOcean was where I began; its USD5/month is extremely competitive and the overall experience as highly user-friendly.
However, their offerings were lacking and integrating with other resources I had on AWS was getting more costly (due to transfer costs on AWS). Eventually I moved the entire project off DO's Droplets and onto AWS's EC2.
One may initially find the cost (w/o free tier) and interface of AWS daunting however with good planning you can achieve highly cost-efficient systems with savings plans, spot instances, etcetera.
Do not dive into AWS head-first! Seriously, don't. Stand back and read pricing documentation thoroughly. You can, not to the fault of AWS, easily go way overbudget. Your first action upon getting your AWS account should be to set up billing alarms for estimated and current bill totals.
We first selected Google Cloud Platform about five years ago, because HIPAA compliance was significantly cheaper and easier on Google compared to AWS. We have stayed with Google Cloud because it provides an excellent command line tool for managing resources, and every resource has a well-designed, well-documented API. SDKs for most of these APIs are available for many popular languages. I have never worked with a cloud platform that's so amenable to automation. Google is also ahead of its competitors in Kubernetes support.
If you want to integrate your cluster and control end to end your pipeline with AWS tools like ECR and Code Pipeline your best option is ECS using a EC2 instance. There are pros and cons but it's easier to integrate using cloud formation templates and visual UI for approvals, etc. ECS is free, you need to pay only for the EC2 instance but unfortunately, it is not standard then you cannot use standard tools to see and manage your Kubernetes. EKS in the other hand uses standard Kubernates definitions but you need to pay for the service and also for the EC2 instance(s) you have in your cluster.
GCE is much more user friendly than EC2, though Amazon has come a very long way since the early days (pre-2010's). This can be seen in how easy it is to edit the storage attached to an instance in GCE: it's under the instance details and is edited inline. In AWS you have to click the instance > click the storage block device (new screen) > click the edit option (new modal) > resize the volume > confirm (new model) then wait a very long time. Google's is nearly instant.
- In both cases, the instance much be shut down.
There also the preference between "user burden-of-security" and automatic security: AWS goes for the former, GCE the latter.
Most bioinformatics shops nowadays are hosting on AWS or Azure, since they have HIPAA tiers and offer enterprise SLA contracts. Meanwhile Heroku hasn't historically supported HIPAA. Rackspace and Google Cloud would be other hosting providers we would consider, but we just don't get requests for them. So, we mostly focus on AWS and Azure support.
Pros of Amazon EC2
- Quick and reliable cloud servers647
- Scalability515
- Easy management393
- Low cost277
- Auto-scaling271
- Market leader89
- Backed by amazon80
- Reliable79
- Free tier67
- Easy management, scalability58
- Flexible13
- Easy to Start10
- Widely used9
- Web-scale9
- Elastic9
- Node.js API7
- Industry Standard5
- Lots of configuration options4
- GPU instances2
- Simpler to understand and learn1
- Extremely simple to use1
- Amazing for individuals1
- All the Open Source CLI tools you could want.1
Pros of Amazon EC2 Container Service
- Backed by amazon100
- Familiar to ec272
- Cluster based53
- Simple API42
- Iam roles26
- Scheduler7
- Cluster management7
- Programmatic Control7
- Container-enabled applications4
- Socker support4
- No additional cost2
- Easy to use and cheap1
Sign up to add or upvote prosMake informed product decisions
Cons of Amazon EC2
- Ui could use a lot of work14
- High learning curve when compared to PaaS6
- Extremely poor CPU performance3