Upload
amazon-web-services
View
4.470
Download
1
Tags:
Embed Size (px)
DESCRIPTION
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.
Citation preview
© 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.
November 13, 2014 | Las Vegas
APP313
Amazon EC2 Container Service Highly Scalable, High Performance Container Management Service
Deepak Singh (@mndoci), Amazon Web ServicesDan Gerdesmeier, Amazon Web Services
Welcome
Image: Izabella Reimers
+
Image: Stéphanie Kilgast
Why are customers running Docker in the
cloud?
Environment fidelity
Easy deployments
Better fleet management
Distributed applications
We want to make running Docker-enabled applications in the cloud awesome
Image: colinaut
Listening to our customersImage: highersights
Cluster management
Configuration management
Scaling
SecurityAvailabilityContainer sprawl
Image: RaSeLaSeD - ll Pinguino
Elastic Load Balancing
ENIs
Auto Scaling
Security Groups
IAM
Image: xmatt
Tagging
Multi-AZ
Amazon EBS
What is Amazon EC2 Container Service?
Image: nolifebeforecoffee
Cluster management service
Manages your containers
Manages cluster state
Schedules containers onto your cluster
Scalable
High performance
Secure
Your containers, your instances
VPC
Security Groups
Network ACLs
Components
Tasks Containers
Clusters Container Instances
Task: A grouping of related containers
Nginx Web Server Rails Application
MySQL Database
Log Collector
Task Definition{ “family” : “my-website”, “version” : “1.0” “containers” : [ <<CONTAINER DEFINTIONS>> ] }
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..
Example{ “name” : “webServer”, “image” : “nginx:latest” “cpu” : 512, “memory” : 128, “portMappings” : [ { “containerPort” : 9443, “hostPort” : 443 }], “links” : [“rails”], “essential” : true }
Tasks Containers
Clusters Container Instances
Cluster
• Provides a pool of resources for your Tasks • A grouping of Container Instances • Starts empty, dynamically scalable
Container Instance
• An instance on which Tasks are scheduled • Runs AMI with ECS Agent installed • Registers into cluster on launch
Demo
The following are in lieu of the demo which is available on Youtube. The demo shows a more complex use case
$ 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" }
$ 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
$ 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"}], } ] }
$ 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"}], } ] }
$ 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 } ] } ] }
$ 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" }
wordpress
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)
Pricing
Pricing
No additional charge You only pay for the AWS resources you consume
Please give us your feedback on this presentation
© 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.
Join the conversation on Twitter with #reinvent
APP313