Amazon EC2 Container Service(Amazon ECS) is a fully managed container orchestration service. Customers such as Duolingo, Samsung, GE, and Cookpad use ECS to run their most sensitive and mission critical applications because of its security, reliability, and scalability.
ECS is a great choice to run containers for several reasons. First, you can choose to run your ECS clusters using AWS Fargate, which is serverless compute for containers. Fargate removes the need to provision and manage servers, lets you specify and pay for resources per application, and improves security through application isolation by design. Second, ECS is used extensively within Amazon to power services such as Amazon SageMaker, AWS Batch, Amazon Lex, and Amazon.com’s recommendation engine, ensuring ECS is tested extensively for security, reliability, and availability.
Additionally, because ECS has been a foundational pillar for key Amazon services, it can natively integrate with other services such as Amazon Route 53, Secrets Manager, AWS Identity and Access Management (IAM), and Amazon CloudWatch providing you a familiar experience to deploy and scale your containers. ECS is also able to quickly integrate with other AWS services to bring new capabilities to ECS. For example, ECS allows your applications the flexibility to use a mix of Amazon EC2 and AWS Fargate with Spot and On-Demand pricing options. ECS also integrates with AWS App Mesh, which is a service mesh, to bring rich observability, traffic controls and security features to your applications. ECS has grown rapidly since launch and is currently launching 5X more containers every hour than EC2 launches instances.
ECS supports Fargate to provide serverless compute for containers. Fargate removes the need to provision and manage servers, lets you specify and pay for resources per application, and improves security through application isolation by design.
ECS capacity providers help you to focus on building and managing applications instead of infrastructure. With capacity provider the demands of your application determines the compute capacity allocated to it and you get the flexibility to use a mix of EC2 and Fargate with Spot and On-Demand pricing options for your applications.
ECS powers several key services at Amazon and is built on technology developed from many years of experience running highly scalable services. You can rapidly launch thousands of containers using ECS with no additional complexity.
ECS launches your containers in your own Amazon VPC, allowing you to use your VPC security groups and network ACLs. No compute resources are shared with other customers. You can also assign granular access permissions for each of your containers using IAM to restrict access to each service and what resources a container can access. This high level of isolation helps you use ECS to build highly secure applications.
ECS runs on the best global infrastructure with 69 Availability Zones (AZ) across 22 Regions. AWS provides >2x more regions with multiple availability zones than the next largest cloud provider (22 vs. 8). ECS is backed by the AWS Compute SLA which guarantees a Monthly Uptime Percentage of at least 99.99% for ECS giving you ease of mind.
With ECS, you can use Fargate Spot tasks or EC2 Spot instances to realize up to 90% discounts compared to on-demand prices for running stateless and fault tolerant applications. You can use savings plan and realize up to 50% discount for persistent workloads. You can easily run ECS clusters at scale by mixing Spot Instances with On-Demand and Reserved Instances.
Below are the cmdlets which are available with Amazon EC2 Container Service
CmdletName | ServiceOperation |
Add-ECSResourceTag | TagResource |
Get-ECSAccountSetting | ListAccountSettings |
Get-ECSAttributeList | ListAttributes |
Get-ECSCapacityProvider | DescribeCapacityProviders |
Get-ECSClusterDetail | DescribeClusters |
Get-ECSClusterList | ListClusters |
Get-ECSClusterService | ListServices |
Get-ECSContainerInstanceDetail | DescribeContainerInstances |
Get-ECSContainerInstanceList | ListContainerInstances |
Get-ECSService | DescribeServices |
Get-ECSTagsForResource | ListTagsForResource |
Get-ECSTaskDefinitionDetail | DescribeTaskDefinition |
Get-ECSTaskDefinitionFamilyList | ListTaskDefinitionFamilies |
Get-ECSTaskDefinitionList | ListTaskDefinitions |
Get-ECSTaskDetail | DescribeTasks |
Get-ECSTaskList | ListTasks |
Get-ECSTaskSet | DescribeTaskSets |
New-ECSCapacityProvider | CreateCapacityProvider |
New-ECSCluster | CreateCluster |
New-ECSService | CreateService |
New-ECSTask | RunTask |
New-ECSTaskSet | CreateTaskSet |
Register-ECSTaskDefinition | RegisterTaskDefinition |
Remove-ECSAccountSetting | DeleteAccountSetting |
Remove-ECSAttribute | DeleteAttributes |
Remove-ECSCluster | DeleteCluster |
Remove-ECSResourceTag | UntagResource |
Remove-ECSService | DeleteService |
Remove-ECSTaskSet | DeleteTaskSet |
Start-ECSTask | StartTask |
Stop-ECSTask | StopTask |
Submit-ECSAttachmentStateChange | SubmitAttachmentStateChanges |
Unregister-ECSContainerInstance | DeregisterContainerInstance |
Unregister-ECSTaskDefinition | DeregisterTaskDefinition |
Update-ECSClusterSetting | UpdateClusterSettings |
Update-ECSContainerAgent | UpdateContainerAgent |
Update-ECSContainerInstancesState | UpdateContainerInstancesState |
Update-ECSService | UpdateService |
Update-ECSServicePrimaryTaskSet | UpdateServicePrimaryTaskSet |
Update-ECSTaskSet | UpdateTaskSet |
Write-ECSAccountSetting | PutAccountSetting |
Write-ECSAccountSettingDefault | PutAccountSettingDefault |
Write-ECSAttribute | PutAttributes |
Write-ECSClusterCapacityProvider | PutClusterCapacityProviders |
You can also check other AWS Services, and each services cmdlets we are providing.