Download - Scheduling Containers on Amazon ECS
![Page 1: Scheduling Containers on Amazon ECS](https://reader031.vdocument.in/reader031/viewer/2022030304/58781f2f1a28aba12d8b62db/html5/thumbnails/1.jpg)
© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Chad Schmutzer, AWS Solutions Architect
October 24th, 2016
Scheduling Containers on
Amazon ECS
![Page 2: Scheduling Containers on Amazon ECS](https://reader031.vdocument.in/reader031/viewer/2022030304/58781f2f1a28aba12d8b62db/html5/thumbnails/2.jpg)
![Page 3: Scheduling Containers on Amazon ECS](https://reader031.vdocument.in/reader031/viewer/2022030304/58781f2f1a28aba12d8b62db/html5/thumbnails/3.jpg)
What is Amazon ECS?
Amazon EC2 Container Service (ECS) is a highly scalable,
high performance container management service. You
can use Amazon ECS to schedule the placement of
containers across your cluster. You can also integrate your
own scheduler or third-party scheduler to meet business
or application specific requirements.
![Page 4: Scheduling Containers on Amazon ECS](https://reader031.vdocument.in/reader031/viewer/2022030304/58781f2f1a28aba12d8b62db/html5/thumbnails/4.jpg)
Agenda
Container Management
Scheduling
Benefits
Demo
![Page 5: Scheduling Containers on Amazon ECS](https://reader031.vdocument.in/reader031/viewer/2022030304/58781f2f1a28aba12d8b62db/html5/thumbnails/5.jpg)
Container Management
![Page 6: Scheduling Containers on Amazon ECS](https://reader031.vdocument.in/reader031/viewer/2022030304/58781f2f1a28aba12d8b62db/html5/thumbnails/6.jpg)
Maintains Available Resources
Tracks Resource Changes
Accepts Resource Requests
Guarantees Accuracy and Consistency
What is a Container Manager?
![Page 7: Scheduling Containers on Amazon ECS](https://reader031.vdocument.in/reader031/viewer/2022030304/58781f2f1a28aba12d8b62db/html5/thumbnails/7.jpg)
CPU
Memory
Ports
Disk Space
Disk IOPS
Network Bandwidth
Resources
![Page 8: Scheduling Containers on Amazon ECS](https://reader031.vdocument.in/reader031/viewer/2022030304/58781f2f1a28aba12d8b62db/html5/thumbnails/8.jpg)
ECS
Agent
Docker
Task
Container Instance
Container
ECS Agent
Task
Container
![Page 9: Scheduling Containers on Amazon ECS](https://reader031.vdocument.in/reader031/viewer/2022030304/58781f2f1a28aba12d8b62db/html5/thumbnails/9.jpg)
Instance Registration
register-container-instance --total-resources
[
{
“name” : “cpu”,
“type” : “integerValue”,
“integerValue” : 2048
},
…
]
![Page 10: Scheduling Containers on Amazon ECS](https://reader031.vdocument.in/reader031/viewer/2022030304/58781f2f1a28aba12d8b62db/html5/thumbnails/10.jpg)
Modifying Exposed Resources
![Page 11: Scheduling Containers on Amazon ECS](https://reader031.vdocument.in/reader031/viewer/2022030304/58781f2f1a28aba12d8b62db/html5/thumbnails/11.jpg)
Accepting Resource Requests
![Page 12: Scheduling Containers on Amazon ECS](https://reader031.vdocument.in/reader031/viewer/2022030304/58781f2f1a28aba12d8b62db/html5/thumbnails/12.jpg)
Tasks
Shared Data Volume
Containers
launchContainer
Instance
Volume Definitions
Container Definitions
![Page 13: Scheduling Containers on Amazon ECS](https://reader031.vdocument.in/reader031/viewer/2022030304/58781f2f1a28aba12d8b62db/html5/thumbnails/13.jpg)
Starting a Task
API
User /
Scheduler
StartTask
![Page 14: Scheduling Containers on Amazon ECS](https://reader031.vdocument.in/reader031/viewer/2022030304/58781f2f1a28aba12d8b62db/html5/thumbnails/14.jpg)
Starting a Task
API
User /
Scheduler
StartTask
Cluster Management Engine
![Page 15: Scheduling Containers on Amazon ECS](https://reader031.vdocument.in/reader031/viewer/2022030304/58781f2f1a28aba12d8b62db/html5/thumbnails/15.jpg)
Starting a Task
API
User /
Scheduler
StartTask
Cluster Management Engine
Agent Communication
![Page 16: Scheduling Containers on Amazon ECS](https://reader031.vdocument.in/reader031/viewer/2022030304/58781f2f1a28aba12d8b62db/html5/thumbnails/16.jpg)
Starting a Task
API
User /
Scheduler
StartTask
Cluster Management Engine
Agent Communication
Docker
Container Instance
ECS Agent
Task
Container
WebSocket
![Page 17: Scheduling Containers on Amazon ECS](https://reader031.vdocument.in/reader031/viewer/2022030304/58781f2f1a28aba12d8b62db/html5/thumbnails/17.jpg)
Starting a Task
API
User /
Scheduler
StartTask
Cluster Management Engine
Agent Communication
Docker
Task
Container Instance
Container
ECS Agent
Task
Container
SubmitStateChange
![Page 18: Scheduling Containers on Amazon ECS](https://reader031.vdocument.in/reader031/viewer/2022030304/58781f2f1a28aba12d8b62db/html5/thumbnails/18.jpg)
Tracking Resource Changes
![Page 19: Scheduling Containers on Amazon ECS](https://reader031.vdocument.in/reader031/viewer/2022030304/58781f2f1a28aba12d8b62db/html5/thumbnails/19.jpg)
Terminated Task
API
User /
Scheduler
StartTask
Cluster Management Engine
Agent Communication
Docker
Task
Container Instance
Container
ECS Agent
SubmitStateChange
![Page 20: Scheduling Containers on Amazon ECS](https://reader031.vdocument.in/reader031/viewer/2022030304/58781f2f1a28aba12d8b62db/html5/thumbnails/20.jpg)
Missing Container Instance
API
User /
Scheduler
StartTask
Cluster Management Engine
Docker
Task
Container Instance
Container
ECS Agent
?
Agent Communication
![Page 21: Scheduling Containers on Amazon ECS](https://reader031.vdocument.in/reader031/viewer/2022030304/58781f2f1a28aba12d8b62db/html5/thumbnails/21.jpg)
Terminated Container Instance
API
User /
Scheduler
StartTask
Cluster Management Engine
Agent Communication
Termination
Notifier
Docker
Task
Container Instance
Container
ECS Agent
![Page 22: Scheduling Containers on Amazon ECS](https://reader031.vdocument.in/reader031/viewer/2022030304/58781f2f1a28aba12d8b62db/html5/thumbnails/22.jpg)
Guaranteeing Accuracy and
Consistency
![Page 23: Scheduling Containers on Amazon ECS](https://reader031.vdocument.in/reader031/viewer/2022030304/58781f2f1a28aba12d8b62db/html5/thumbnails/23.jpg)
Amazon ECS under the Hood
IDN-1 IDN IDN+1 IDN+2 IDN+3 IDN+4 IDN+5
IDN+6
IDN+5
WRITE
READ
![Page 24: Scheduling Containers on Amazon ECS](https://reader031.vdocument.in/reader031/viewer/2022030304/58781f2f1a28aba12d8b62db/html5/thumbnails/24.jpg)
Amazon ECS under the Hood
IDN-1 IDN IDN+1 IDN+2 IDN+3 IDN+4 IDN+5
IDN+6IDN+3
IDN+5IDN+2
WRITE WRITE
READREAD
![Page 25: Scheduling Containers on Amazon ECS](https://reader031.vdocument.in/reader031/viewer/2022030304/58781f2f1a28aba12d8b62db/html5/thumbnails/25.jpg)
Schedulers
![Page 26: Scheduling Containers on Amazon ECS](https://reader031.vdocument.in/reader031/viewer/2022030304/58781f2f1a28aba12d8b62db/html5/thumbnails/26.jpg)
What is a Scheduler?
Determine Desired State
Check Against Current State
Perform Action
![Page 27: Scheduling Containers on Amazon ECS](https://reader031.vdocument.in/reader031/viewer/2022030304/58781f2f1a28aba12d8b62db/html5/thumbnails/27.jpg)
ECS Schedulers
Batch Jobs
ECS Task scheduler
Run tasks once
Batch jobs
RunTask (random)
StartTask (placed)
Long-Running Apps
ECS Service scheduler
Health management
Scale-up and scale-down
AZ aware
Grouped Containers
![Page 28: Scheduling Containers on Amazon ECS](https://reader031.vdocument.in/reader031/viewer/2022030304/58781f2f1a28aba12d8b62db/html5/thumbnails/28.jpg)
Custom Schedulers
1. Calls the ECS List* and Describe* API operations to
determine the current state of the cluster.
2. Selects one (or more) container instances according to
the logic implemented.
3. Calls StartTask API to start a task on the selected
container instance.
![Page 29: Scheduling Containers on Amazon ECS](https://reader031.vdocument.in/reader031/viewer/2022030304/58781f2f1a28aba12d8b62db/html5/thumbnails/29.jpg)
Integration with third party schedulers
ECS allows you to use third party schedulers, e.g.
Marathon and Chronos
Integration via ECS API
For Mesos schedulers, the ECSSchedulerDriver interprets
the command given when scheduling jobs with Mesos and
starts a task with TaskDefinition family:revision
![Page 30: Scheduling Containers on Amazon ECS](https://reader031.vdocument.in/reader031/viewer/2022030304/58781f2f1a28aba12d8b62db/html5/thumbnails/30.jpg)
Amazon ECS Service Scheduler
![Page 31: Scheduling Containers on Amazon ECS](https://reader031.vdocument.in/reader031/viewer/2022030304/58781f2f1a28aba12d8b62db/html5/thumbnails/31.jpg)
Discovering DifferencesDeployment Status Desired Pending Running
ecs-svc/1 PRIMARY 5 0 0
Minimum Healthy Maximum Healthy
50% 200%
![Page 32: Scheduling Containers on Amazon ECS](https://reader031.vdocument.in/reader031/viewer/2022030304/58781f2f1a28aba12d8b62db/html5/thumbnails/32.jpg)
Steady State
Determine
Placement Options
Deploy Task
Service State Machine
RUNNING == DESIRED
RUNNING != DESIRED &&
STATUS == PRIMARY
ALL_RUNNING < MAX_HEALTHY
![Page 33: Scheduling Containers on Amazon ECS](https://reader031.vdocument.in/reader031/viewer/2022030304/58781f2f1a28aba12d8b62db/html5/thumbnails/33.jpg)
Discovering DifferencesDeployment Status Desired Pending Running
ecs-svc/2 PRIMARY 10 0 0
ecs-svc/1 ACTIVE 5 0 5
Minimum Healthy Maximum Healthy
50% 200%
![Page 34: Scheduling Containers on Amazon ECS](https://reader031.vdocument.in/reader031/viewer/2022030304/58781f2f1a28aba12d8b62db/html5/thumbnails/34.jpg)
Steady State
Determine
Placement Options
Deploy Task
RUNNING == DESIRED
RUNNING != DESIRED &&
STATUS == PRIMARY
ALL_RUNNING < MAX_HEALTHY
Service State Machine
Clear Deployment Kill Task
ALL_RUNNING >
MAX_HEALTHY
RUNNING != DESIRED &&
STATUS == ACTIVE
![Page 35: Scheduling Containers on Amazon ECS](https://reader031.vdocument.in/reader031/viewer/2022030304/58781f2f1a28aba12d8b62db/html5/thumbnails/35.jpg)
Other Considerations
ELB Registration/Deregistration
Permissions and Errors
Task Health
Scale Down Requests
![Page 36: Scheduling Containers on Amazon ECS](https://reader031.vdocument.in/reader031/viewer/2022030304/58781f2f1a28aba12d8b62db/html5/thumbnails/36.jpg)
![Page 37: Scheduling Containers on Amazon ECS](https://reader031.vdocument.in/reader031/viewer/2022030304/58781f2f1a28aba12d8b62db/html5/thumbnails/37.jpg)
Multiple Schedulers
![Page 38: Scheduling Containers on Amazon ECS](https://reader031.vdocument.in/reader031/viewer/2022030304/58781f2f1a28aba12d8b62db/html5/thumbnails/38.jpg)
Amazon ECS – Scheduling
![Page 39: Scheduling Containers on Amazon ECS](https://reader031.vdocument.in/reader031/viewer/2022030304/58781f2f1a28aba12d8b62db/html5/thumbnails/39.jpg)
Amazon ECS – Scheduling
![Page 40: Scheduling Containers on Amazon ECS](https://reader031.vdocument.in/reader031/viewer/2022030304/58781f2f1a28aba12d8b62db/html5/thumbnails/40.jpg)
Amazon ECS – Scheduling
![Page 41: Scheduling Containers on Amazon ECS](https://reader031.vdocument.in/reader031/viewer/2022030304/58781f2f1a28aba12d8b62db/html5/thumbnails/41.jpg)
Amazon ECS – Scheduling
![Page 42: Scheduling Containers on Amazon ECS](https://reader031.vdocument.in/reader031/viewer/2022030304/58781f2f1a28aba12d8b62db/html5/thumbnails/42.jpg)
Demo
![Page 43: Scheduling Containers on Amazon ECS](https://reader031.vdocument.in/reader031/viewer/2022030304/58781f2f1a28aba12d8b62db/html5/thumbnails/43.jpg)
© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
All attendees will receive a special giveaway gift!
Please join us for the
AWS DevDay Networking Reception
5:00 - 6:30 PM
JW Grand Foyer
![Page 44: Scheduling Containers on Amazon ECS](https://reader031.vdocument.in/reader031/viewer/2022030304/58781f2f1a28aba12d8b62db/html5/thumbnails/44.jpg)
Thank You!
![Page 45: Scheduling Containers on Amazon ECS](https://reader031.vdocument.in/reader031/viewer/2022030304/58781f2f1a28aba12d8b62db/html5/thumbnails/45.jpg)
Don’t Forget Evaluations!