2. What to Expect From This Session
• Why Containers & how they are used
• Challenges of scaling containerised workloads
• How to scale containerised workloads using Amazon ECS
13. Scaling Microservices
Order UI User UI UI
Order Service Service
Shipping
Service
Order UI
Order UI
User UI UIShipping
UI
Order Service
Order Service
Service
Service
Service
Service
User
Service
Shipping
Service
16. ..to this – 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
43. Service Discovery with DNS
https://github.com/awslabs/service-discovery-ecs-dns
TASK A TASK B TASK C
ecssd_agent ecssd_agent
Route53 Private
Hosted Zone
44. Service Discovery with DNS
https://github.com/awslabs/service-discovery-ecs-dns
TASK A TASK B TASK C
ecssd_agent ecssd_agent
Route53 Private
Hosted Zone
45. Service Discovery with Weaveworks
•DNS interface for cross-host container communication
•Gossip protocol to share grouped updates
•Overlay network between hosts
46. Service Discovery with Weaveworks
HTTP Server
Data Producer
Docker
Weave
Router/DNS
Weave Proxy
ECS Agent
ECS Task
HTTP Server
Data Producer
Docker
Weave
Router/DNS
Weave Proxy
ECS Agent
ECS Task
HTTP Server
Data Producer
Docker
Weave
Router/DNS
Weave Proxy
ECS Agent
ECS Task
Amazon ECS Infrastructure
47. Service Discovery with Consul
• Consul Agent – Runs on each node, responsible for checking the
health of the services and of the node itself.
• One or more Consul servers – Store and replicate data, leader
elected using the Raft consensus algorithm
• Registrator agent – Automatically register / deregisters services
based on published ports and metadata from the container
environment variables defined in the ECS task definition
48. Service Discovery with Consul
Back end 1
Back end 2
Registrator
Consul Agent
Front end
Registrator
Consul Agent
Consul-Server
ECSClusterECSCluster
50. Monitoring with Amazon CloudWatch
• Metric data sent to CloudWatch in 1-minute periods and
recorded for a period of two weeks
• Available metrics: CPUReservation, MemoryReservation,
CPUUtilization, MemoryUtilization
• Available dimensions: ClusterName, ServiceName
52. Monitoring with Amazon CloudWatch
• Use the CloudWatch monitoring scripts to monitor additional
metrics, e.g. disk space:
# Edit crontab
> crontab -e
# Add command to report disk space utilization to CloudWatch every five minutes
*/5 * * * * <path_to>/mon-put-instance-data.pl --disk-space-util --disk-space-used --disk-
space-avail --disk-path=/ --from-cron
53. Logging with CloudWatch Logs
{
"image": ”nginx:latest",
...
"logConfiguration": {
"logDriver": "awslogs",
"options": {
"awslogs-group": ”nginx",
"awslogs-region": "us-east-1"
}
}
{
• Defined within the task definition
• Available log drivers:
• awslogs
• fluentd
• splunk
• syslog
61. Scheduling Containers: Long Running App
• Blue-Green Deployments
• Define two ECS services
• Each service is associated w/ ELB
• Both ELBs in Route 53 record set
with weighted routing policy, 100%
primary, 0% secondary
• Deploy to blue or green service and
switch weights
TASK A TASK B
Route53 Record Set
With Weighted Routing
Policy
100% 0%
62. IAM Roles for Tasks
DynamoDB
ECS Cluster
EC2 Instance EC2 Instance
TASK A
TASK B
TASK B
S3 Storage
72. New Features!
• ECS adds console support for Spot fleet creation
• https://aws.amazon.com/about-aws/whats-new/2017/06/amazon-ecs-
adds-console-support-for-spot-fleet-creation/
• ECS adds support for time and event based scheduling
• https://aws.amazon.com/about-aws/whats-new/2017/06/amazon-ecs-now-
supports-time-and-event-based-task-scheduling/