Slide 1

Slide 1 text

.co.il www. EC2 Container Service

Slide 2

Slide 2 text

.co.il www. Evgeny Zislis www.devops.co.il il.linkedin.com/in/evgenyzislis

Slide 3

Slide 3 text

.co.il www. (very) short intro to containers virtual machine container linux

Slide 4

Slide 4 text

.co.il www. docker host docker registry docker image static website user data web frontend docker solves “problems” 3. execution 2. distribution 1. packaging

Slide 5

Slide 5 text

.co.il www. static website user data web frontend queue analytics development environments customer data center production cluster public cloud

Slide 6

Slide 6 text

.co.il www. docker doesn’t make coffee (yet)

Slide 7

Slide 7 text

.co.il www. discovery monitoring infrastructure provisioning migration to docker orchestration - legacy apps - micro services? - where is X? - who is my Y? - what is my Z? - health - performance - where? - when?

Slide 8

Slide 8 text

.co.il www. Docker API host containers

Slide 9

Slide 9 text

.co.il www. shipper orchestration

Slide 10

Slide 10 text

.co.il www. shipper mesos or

Slide 11

Slide 11 text

.co.il www. shipper coreos / fleet geard mesos or or or

Slide 12

Slide 12 text

.co.il www. discovery shipper coreos / fleet geard mesos or or or consul helios etcd centurion

Slide 13

Slide 13 text

.co.il www. infrastructure shipper coreos / fleet geard mesos or or or consul helios etcd centurion EC2 Rack space GCE Orchard Tutum Heroku

Slide 14

Slide 14 text

.co.il www.

Slide 15

Slide 15 text

.co.il www. www.gosquared.com/blog/reinvent-2014-ec2-container-service-demo

Slide 16

Slide 16 text

.co.il www. AWS EC2 Container Service - ECS ECS coreos / fleet geard mesos or or or consul helios etcd centurion EC2 Rack space GCE Orchard Tutum Heroku

Slide 17

Slide 17 text

.co.il www. ECS Terminology EC2 EC2 EC2 EC2 EC2 EC2 EC2 EC2 EC2 Cluster container instance task definition task Scheduler container definition container definition container definition

Slide 18

Slide 18 text

.co.il www. container instance task container instance task container instance task container instance task container instance task service ECS Terminology cluster

Slide 19

Slide 19 text

.co.il www. container instance task container instance container instance container instance container instance ECS Container Instance task task task ECS Container Agent github.com/aws/amazon-ecs-agent ● IAM Role ● Security Groups ● VPC NAT ● AutoScaling Group

Slide 20

Slide 20 text

.co.il www. container instance ECS Container Instance AMI ECS Container Agent ● CoreOS ● Linux with Docker ● Amazon ECS-optimized AMI Region AMI Name AMI ID us-east-1 amzn-ami-2015.03.b-amazon-ecs-optimized ami-d0b9acb8 us-west-2 amzn-ami-2015.03.b-amazon-ecs-optimized ami-6b88b95b eu-west-1 amzn-ami-2015.03.b-amazon-ecs-optimized ami-ed7c149a ap-northeast-1 amzn-ami-2015.03.b-amazon-ecs-optimized ami-c6c609c6 ap-southeast-2 amzn-ami-2015.03.b-amazon-ecs-optimized ami-39017e03

Slide 21

Slide 21 text

.co.il www. container instance ECS Cluster Configuration ECS Container Agent user data #/bin/sh echo ECS_CLUSTER=cluster_name >> \ /etc/ecs/ecs.config #/bin/sh aws s3 cp s3://bucket_name/ecs.config \ /etc/ecs/ecs.config

Slide 22

Slide 22 text

.co.il www. ECS Agent Container docker run \ --name ecs-agent \ -d \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /var/log/ecs/:/log \ -p 127.0.0.1:51678:51678 \ -v /var/lib/ecs/data:/data \ -e ECS_LOGFILE=/log/ecs-agent.log \ -e ECS_LOGLEVEL=info \ -e ECS_DATADIR=/data \ -e ECS_CLUSTER=cluster_name \ amazon/amazon-ecs-agent:latest 1 2 3 4 5 6 7 8 9 10 11 12

Slide 23

Slide 23 text

.co.il www.

Slide 24

Slide 24 text

.co.il www. ECS Cluster Status

Slide 25

Slide 25 text

.co.il www.

Slide 26

Slide 26 text

.co.il www.

Slide 27

Slide 27 text

.co.il www. docker run --name naX imgY -c 2048 -m 512 { "family: "taskName", "containerDefinitions": [ { "name": "...naX...", "image": "...imgY...", "cpu": 2048, "memory": 512, ECS Task Definitions

Slide 28

Slide 28 text

.co.il www. ECS Container Definitions { "links": [ "name:internalName" ], "portMappings": [ { "hostPort": 80, "containerPort": 80 } ],

Slide 29

Slide 29 text

.co.il www. ECS Container Definitions { "environment": [ { "name": "SECRET_SAUCE", "value": "magic" } ], "command": [ "/bin/hocpocus" ],

Slide 30

Slide 30 text

.co.il www.

Slide 31

Slide 31 text

.co.il www. ECS Scheduler ● Service ● RunTask ● Custom! orchestration - where? - when?

Slide 32

Slide 32 text

.co.il www. { "serviceName": "", "taskDefinition": "", "loadBalancers": [ { "loadBalancerName": "", "containerName": "", "containerPort": 0 } ], "desiredCount": 0, "clientToken": "", } ECS Service Scheduler

Slide 33

Slide 33 text

.co.il www.

Slide 34

Slide 34 text

.co.il www.

Slide 35

Slide 35 text

.co.il www. $ crontab -l 0 * * * * aws ecs --run-task --task-definition "work:1" ECS RunTask

Slide 36

Slide 36 text

.co.il www. maltmurphy.com/2015-05-17-lambda-ecs-batch.html

Slide 37

Slide 37 text

.co.il www. Task Life

Slide 38

Slide 38 text

.co.il www. ● github.com/awslabs/ecs-mesos-scheduler-driver ECS Custom Scheduler

Slide 39

Slide 39 text

.co.il www. AutoScaling for ECS Tasks aws.amazon.com/blogs/compute /scaling-amazon-ecs-services-automatically-using-amazon-cloudwatch-and-aws-lambda/

Slide 40

Slide 40 text

.co.il www. ● register-task-definition ● list-task-definitions ● describe-task-definition ● register-task-definition ● deregister-task-definition ● run-task ● start-task (service) ● list-tasks ● describe-tasks ● stop-task CLI $ aws ecs ● create-cluster ● list-clusters ● describe-clusters ● delete-cluster ● register-container-instance ● list-container-instances ● describe-container-instances ● deregister-container-instance ● create-service ● list-services ● describe-services ● update-service ● delete-service docs.aws.amazon.com/cli/latest/reference/ecs/

Slide 41

Slide 41 text

.co.il www.

Slide 42

Slide 42 text

.co.il www. demo?

Slide 43

Slide 43 text

.co.il www. youtu.be/UgJMlHdZEx4

Slide 44

Slide 44 text

.co.il www. We invite you to join Operations Israel Facebook group on on.fb.me/Ops-IL link to slides dvps.me/aws-ecs Thank you! www.devops.co.il