Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

(APP313) NEW LAUNCH: Amazon EC2 Container Service in Action | AWS re:Invent 2014

9,720 views

Published on

Container technology, particularly Docker, is all the rage these days. At AWS, our customers have been running Linux containers at scale for several years, and we are increasingly seeing customers adopt Docker, especially as they build loosely coupled distributed applications. However, to do so they have to run their own cluster management solutions, deal with configuration management, and manage their containers and associated metadata. We believe that those capabilities should be a core building block technology, just like EC2. Today, we are announcing the preview of Amazon EC2 Container Service, a new AWS service that makes is easy to run and manage Docker-enabled distributed applications using powerful APIs that allow you to launch and stop containers, get complete cluster state information, and manage linked containers. In this session we will discuss why we built the EC2 Container Service, some of the core concepts, and walk you through how you can use the service for your applications.

Published in: Technology
  • Be the first to comment

(APP313) NEW LAUNCH: Amazon EC2 Container Service in Action | AWS re:Invent 2014

  1. 1. APP313 Amazon EC2 Container Service Highly Scalable, High Performance Container Management Service Deepak Singh (@mndoci), Amazon Web Services Dan Gerdesmeier, Amazon Web Services November 13, 2014 | Las Vegas © 2014 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified, or distributed in whole or in part without the express consent of Amazon.com, Inc.
  2. 2. Welcome
  3. 3. Image: Izabella Reimers
  4. 4. +
  5. 5. Image: Stéphanie Kilgast
  6. 6. Why are customers running Docker in the cloud?
  7. 7. Environment fidelity
  8. 8. Easy deployments
  9. 9. Better fleet management
  10. 10. Distributed applications
  11. 11. We want to make running Docker-enabled applications in the cloud awesome Image: colinaut
  12. 12. Listening to our customers Image: highersights
  13. 13. Cluster management Scaling Configuration management Security Container sprawl Availability Image: RaSeLaSeD - ll Pinguino
  14. 14. Elastic Load Balancing ENIs Auto Scaling Security Groups IAM Image: xmatt Tagging Multi-AZ Amazon EBS
  15. 15. Image: Timothy Krause First class APIs
  16. 16. Amazon EC2 Container Service Image
  17. 17. What is Amazon EC2 Container Service? Image: nolifebeforecoffee
  18. 18. Building block service Image: ntr23
  19. 19. Cluster management service
  20. 20. Manages your containers
  21. 21. Manages cluster state
  22. 22. Schedules containers onto your cluster
  23. 23. Scalable
  24. 24. High performance
  25. 25. Secure
  26. 26. Your containers, your instances
  27. 27. VPC
  28. 28. Security Groups
  29. 29. Network ACLs
  30. 30. Components
  31. 31. Tasks Containers Clusters Container Instances
  32. 32. Task: A grouping of related containers Nginx Web Server Rails Application MySQL Database Log Collector
  33. 33. Task Definition { “family” : “my-website”, “version” : “1.0” “containers” : [ <<CONTAINER DEFINTIONS>> ] }
  34. 34. Container Definition • Names and identifies your image • Includes default runtime attributes for your container – Environment Variables – Port Mappings – Container entry point and commands – Resource constraints – Etc..
  35. 35. Example { “name” : “webServer”, “image” : “nginx:latest” “cpu” : 512, “memory” : 128, “portMappings” : [ { “containerPort” : 9443, “hostPort” : 443 }], “links” : [“rails”], “essential” : true }
  36. 36. Tasks Containers Clusters Container Instances
  37. 37. Cluster • Provides a pool of resources for your Tasks • A grouping of Container Instances • Starts empty, dynamically scalable
  38. 38. Container Instance • An instance on which Tasks are scheduled • Runs AMI with ECS Agent installed • Registers into cluster on launch
  39. 39. Demo
  40. 40. The following are in lieu of the demo which is available on Youtube. The demo shows a more complex use case
  41. 41. $ aws ecs create-cluster default { "cluster_arn": "arn:aws:ecs:us-west-2:956941867282:cluster/c1a329a8- ec8a-41dc-82f6-294434861bd1", "cluster_name": "default", "status": "ACTIVE" }
  42. 42. $ aws ecs list-container-instances –c default arn:aws:ecs:us-west-2:956941867282:container-instance/ 01be44c0-4d45-4c1f-b2ae-1fce16c35ab6 arn:aws:ecs:us-west-2:956941867282:container-instance/ 1c81279b-4b39-4985-b76d-224e0385b219 arn:aws:ecs:us-west-2:956941867282:container-instance/ 04c11c0e-94df-4334-b55c-200cd5d08007 arn:aws:ecs:us-west-2:956941867282:container-instance/ a0c6fef9-4b7a-46b2-a89f-6340fc204958 arn:aws:ecs:us-west-2:956941867282:container-instance/ eb974a8-23b6-4f15-88c5-f6ee4f10cdb1
  43. 43. $ cat wordpress.json { "containers" : [ { "image" : "tutum/wordpress-stackable", "name" : "wordpress", "cpu" : 10, "memory" : 50, "links" : ["db"], "environment" : [{ "name" : "DB_USER", "value" : "root"}, { "name" : "DB_PASS", "value" : "pass" }], "portMappings" : [{ "containerPort" : 80, "hostPort" : 80}] }, { "image" : "mysql", "name" : "db", "cpu" : 10, "memory" : 50, "environment" : [{ "name" : "MYSQL_ROOT_PASSWORD", "value" : "pass"}], } ] }
  44. 44. $ aws register-task-definition wordpress:1.0 –-file wordpress.json { “family” : “wordpress”, “version” : “1.0”, "containers" : [ { "image" : "tutum/wordpress-stackable", "name" : "wordpress", "cpu" : 100, "memory" : 100, "links" : ["db"], "environment" : [{ "name" : "DB_USER", "value" : "root"}, { "name" : "DB_PASS", "value" : "pass" }], "portMappings" : [{ "containerPort" : 80, "hostPort" : 80}] }, { "image" : "mysql", "name" : "db", "cpu" : 100, "memory" : 100, "environment" : [{ "name" : "MYSQL_ROOT_PASSWORD", "value" : "pass"}], } ] }
  45. 45. $ aws ecs run-task wordpress:1.0 { "tasks": [ { "task_arn": "arn:aws:ecs:us-west-2:956941867282:task/29da33da-1d71-454f-b036-df0da0284266", "task_definition_arn": "arn:aws:ecs:us-west-2:956941867282:task-definition/7fc71808-5102-47d3-9f76-0bded26a932b", "container_instance_arn": "arn:aws:ecs:us-west-2:956941867282:container-instance/01be44c0-4d45-4c1f-b2ae- 1fce16c35ab6", "overrides": {}, "last_status": "PENDING", "desired_status": "RUNNING", "containers": [ { "arn": "arn:aws:ecs:us-west-2:956941867282:container/1b33848e-1933-43b5-b9c7-4581efb70504", "task_arn": "arn:aws:ecs:us-west-2:956941867282:task/29da33da-1d71-454f-b036-df0da0284266", "name": "wordpress", "last_status": "PENDING", "exit_code": 0 }, { "arn": "arn:aws:ecs:us-west-2:956941867282:container/89c0d451-75d3-41c2-9b82-84b4e3affa47", "task_arn": "arn:aws:ecs:us-west-2:956941867282:task/29da33da-1d71-454f-b036-df0da0284266", "name": "db", "last_status": "PENDING", "exit_code": 0 } ] } ] }
  46. 46. $ aws ecs describe-container-instance { "container_instance_arn": "arn:aws:ecs:us-west-2:956941867282:container-instance/31ccf300-2b6f-4919-81d4-0b6e61aae089", "ec2_instance_id": "i-a7d37cad", "ec2_instance_type": "t2.micro", "remaining_resources": [ { "name": "CPU", "integer_value": 824 }, { "name": "MEMORY", "integer_value": 796 } ], "registered_resources": [ { "name": "CPU", "integer_value": 1024 }, { "name": "MEMORY", "integer_value": 996 } ], "status": "ACTIVE" }
  47. 47. wordpress
  48. 48. Coming Soon ! Elastic Load Balancing integration Amazon CloudWatch integration Amazon CloudWatch Logs integration AWS CloudFormation support Support for Tagging AWS Management Console Partner AMIs (including CoreOS)
  49. 49. Pricing
  50. 50. Pricing No additional charge You only pay for the AWS resources you consume
  51. 51. Sign up for the preview ! http://aws.amazon.com/ecs
  52. 52. Please give us your feedback on this presentation Join the conversation on Twitter with #reinvent APP313 © 2014 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified, or distributed in whole or in part without the express consent of Amazon.com, Inc.

×