Más contenido relacionado La actualidad más candente (20) Similar a (APP313) NEW LAUNCH: Amazon EC2 Container Service in Action | AWS re:Invent 2014 (20) Más de Amazon Web Services (20) (APP313) NEW LAUNCH: Amazon EC2 Container Service in Action | AWS re:Invent 20141. 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.
12. We want to make running Docker-enabled
applications in the cloud awesome
Image: colinaut
33. Task: A grouping of related containers
Nginx Web Server Rails Application
MySQL Database
Log Collector
34. Task Definition
{ “family” : “my-website”,
“version” : “1.0”
“containers” : [
<<CONTAINER DEFINTIONS>>
]
}
35. 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..
36. Example
{ “name” : “webServer”,
“image” : “nginx:latest”
“cpu” : 512,
“memory” : 128,
“portMappings” : [ { “containerPort” :
9443, “hostPort” : 443 }],
“links” : [“rails”],
“essential” : true
}
38. Cluster
• Provides a pool of resources for your Tasks
• A grouping of Container Instances
• Starts empty, dynamically scalable
39. Container Instance
• An instance on which Tasks are scheduled
• Runs AMI with ECS Agent installed
• Registers into cluster on launch
41. The following are in lieu of the demo which is available on Youtube. The demo shows
a more complex use case
42. $ 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"
}
44. $ 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
45. $ 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"}],
}
]
}
46. $ 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"}],
}
]
}
47. $ 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
}
]
}
]
}
48. $ 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"
}
50. 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)
53. Sign up for the preview
!
http://aws.amazon.com/ecs
54. 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.