Deep Dive:EC2 Container Service
-
Upload
amazon-web-services -
Category
Technology
-
view
969 -
download
0
Transcript of Deep Dive:EC2 Container Service
![Page 1: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/1.jpg)
AWS Pop-up Loft London
![Page 2: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/2.jpg)
Ian Massingham @IanMmmmChief Evangelist (EMEA), AWS
Deep Dive: EC2 Container Service
![Page 3: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/3.jpg)
Scaling Applications
![Page 4: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/4.jpg)
Order UI User UI Shipping UI
Order Service
User Service
Shipping Service
Data Access
![Page 5: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/5.jpg)
![Page 6: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/6.jpg)
Order UI User UI Shipping UI
Order Service
User Service
Shipping Service
![Page 7: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/7.jpg)
Order UI User UI UI
Order Service Service Shipping
Service
Order UIOrder UI
User UI UIShipping UI
Order ServiceOrder
ServiceService
ServiceService
ServiceUser
Service
Shipping Service
![Page 8: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/8.jpg)
![Page 9: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/9.jpg)
What are Containers?
OS virtualization
Process isolation
Images
Automation Server
Guest OS
Bins/Libs Bins/Libs
App2App1
![Page 10: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/10.jpg)
Container Advantages
Portable
Flexible
Fast
EfficientServer
Guest OS
Bins/Libs Bins/Libs
App2App1
![Page 11: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/11.jpg)
Containers are Natural for Microservices
Simple to model
Any app, any language
Image is the version
Test & deploy same artefact
Stateless servers decrease change risk
![Page 12: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/12.jpg)
Server
Guest OS
Bins/Libs Bins/Libs
App2App1
Managing One Host is Straightforward
![Page 13: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/13.jpg)
Managing a Fleet is Hard
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
AZ 1 AZ 2
AZ 3
![Page 14: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/14.jpg)
What is Amazon ECS?
Amazon EC2 Container Service (Amazon 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 15: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/15.jpg)
Our Goals with Amazon ECS
![Page 16: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/16.jpg)
Container Management at Any Scale
Nothing to run
Complete state
Control and monitoring
Scale
![Page 17: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/17.jpg)
Flexible Container Placement
Long running applications
Batch jobs
Multiple schedulers
![Page 18: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/18.jpg)
Integration with the AWS Platform
Elastic Load Balancing Amazon Elastic Block Store Amazon Virtual Private Cloud Amazon CloudWatch AWS Identity and Access Management AWS CloudTrail
![Page 19: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/19.jpg)
Container Management
![Page 20: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/20.jpg)
What is a Container Manager?• Maintains available resources
• Tracks resource changes
• Accepts resource requests
• Guarantees accuracy and consistency
![Page 21: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/21.jpg)
CPU
Memory
Ports
Disk space
Disk IOPS
Network bandwidth
Resources
![Page 22: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/22.jpg)
ECS Agent
Docker
Task
Container Instance
Container
ECS Agent
Task
Container
https://github.com/aws/amazon-ecs-agent
![Page 23: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/23.jpg)
Instance Registration
register-container-instance--total-resources
[{“name”:“cpu”,“type”:“integerValue”,“integerValue”:2048},…]
![Page 24: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/24.jpg)
Modifying Exposed Resources
![Page 25: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/25.jpg)
How do you model your applications?
![Page 26: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/26.jpg)
![Page 27: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/27.jpg)
{ "environment": [], "name": "simple-demo", "image": "my-demo", "cpu": 10, "memory": 500, "portMappings": [ { "containerPort": 80, "hostPort": 80 } ], "mountPoints": [ { "sourceVolume": "my-vol", "containerPath": "/var/www/my-vol" } ], "entryPoint": [ "/usr/sbin/apache2", "-D", "FOREGROUND" ], "essential": true },
![Page 28: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/28.jpg)
Tasks
Shared Data Volume
Containers
launchContainer Instance
Volume Definitions
Container Definitions
![Page 29: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/29.jpg)
Starting a Task
API
User / Scheduler
StartTask
![Page 30: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/30.jpg)
Starting a Task
API
User / Scheduler
StartTask
Cluster Management Engine
![Page 31: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/31.jpg)
Starting a Task
API
User / Scheduler
StartTask
Cluster Management Engine
Agent Communication
![Page 32: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/32.jpg)
Starting a Task
API
User / Scheduler
StartTask
Cluster Management Engine
Agent Communication
Docker
Container Instance
ECS Agent
TaskContainer
WebSocket
![Page 33: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/33.jpg)
Starting a Task
API
User / Scheduler
StartTask
Cluster Management Engine
Agent Communication
DockerTask
Container Instance
Container
ECS Agent
TaskContainer
SubmitStateChange
![Page 34: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/34.jpg)
Tracking Resource Changes
![Page 35: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/35.jpg)
Terminated Task
API
User / Scheduler
StartTask
Cluster Management Engine
Agent Communication
DockerTask
Container Instance
Container
ECS Agent
SubmitStateChange
![Page 36: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/36.jpg)
Missing Container Instance
API
User / Scheduler
StartTask
Cluster Management Engine
DockerTask
Container Instance
Container
ECS Agent
?
Agent Communication
![Page 37: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/37.jpg)
Terminated Container Instance
API
User / Scheduler
StartTask
Cluster Management Engine
Agent Communication
Termination Notifier
DockerTask
Container Instance
Container
ECS Agent
![Page 38: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/38.jpg)
Guaranteeing Accuracy and Consistency
![Page 39: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/39.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 40: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/40.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 41: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/41.jpg)
Scalable
![Page 42: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/42.jpg)
Schedulers
![Page 43: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/43.jpg)
What is a Scheduler?• Determine desired state
• Check against current state
• Perform action
![Page 44: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/44.jpg)
Amazon ECS Service Scheduler
![Page 45: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/45.jpg)
What is a Service?• Models a long-running application
• Maintains desired state
• Optionally runs behind an Elastic Load Balancing load
balancer
![Page 46: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/46.jpg)
Discovering DifferencesDeployment Status Desired Pending Running
ecs-svc/1 PRIMARY 5 0 0
Minimum Healthy Maximum Healthy
50% 200%
![Page 47: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/47.jpg)
![Page 48: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/48.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 49: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/49.jpg)
![Page 50: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/50.jpg)
Other Considerations• ELB registration/deregistration • Permissions and errors • Task health • Scale down requests
![Page 51: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/51.jpg)
![Page 52: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/52.jpg)
Multiple Schedulers
![Page 53: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/53.jpg)
Amazon ECS: Scheduling
![Page 54: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/54.jpg)
Amazon ECS: Scheduling
![Page 55: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/55.jpg)
Amazon ECS: Scheduling
![Page 56: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/56.jpg)
Amazon ECS: Scheduling
![Page 57: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/57.jpg)
To recap
![Page 58: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/58.jpg)
![Page 59: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/59.jpg)
{ "environment": [], "name": "simple-demo", "image": "my-demo", "cpu": 10, "memory": 500, "portMappings": [ { "containerPort": 80, "hostPort": 80 } ], "mountPoints": [ { "sourceVolume": "my-vol", "containerPath": "/var/www/my-vol" } ], "entryPoint": [ "/usr/sbin/apache2", "-D", "FOREGROUND" ], "essential": true },
“Task Definitions”
![Page 60: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/60.jpg)
![Page 61: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/61.jpg)
![Page 62: Deep Dive:EC2 Container Service](https://reader034.fdocuments.in/reader034/viewer/2022052705/586fb4671a28abe57d8b710f/html5/thumbnails/62.jpg)
Thank YouIan Massingham @IanMmmmChief Evangelist (EMEA), AWS