Join me here :
DevOps/Cloud Lead Consultant
Docker Geneva Community Leader
Join me here :
EC2
VPC
S3
EBS
EFS
IAM
CLOUDFORMATION
ELB
CERTIFICATE MANAGER
an open-source system for packaging software into standardized units (called containers) for development, shipment and deployment
> ssh -i my-ec2-key-pair.pem ec2-user@<EC2-INSTANCE-PUBLIC-IP-ADDRESS>
[ec2-user]$ sudo yum update -y
[ec2-user]$ sudo yum install -y docker
[ec2-user]$ sudo service docker start
[ec2-user]$ sudo usermod -a -G docker ec2-user
[ec2-user]$ docker run -d -p 80:5000 training/webapp:latest python app.py
[ec2-user]$ curl http://localhost
Hello world!
Container definition
Task definition
Service
Cluster
{"ipcMode": null,
"executionRoleArn": null,
"containerDefinitions": [
{
******
"portMappings": [
{
"hostPort": 8081,
"protocol": "tcp",
"containerPort": 8081
}
],
******
"mountPoints": [
{
"readOnly": null,
"containerPath": "/var/opt/jfrog/artifactory/data",
"sourceVolume": "data"
}
],
"cpu": 744,
"memory": 812,
"memoryReservation": null,
"volumesFrom": [],
"image": "************.dkr.ecr.eu-west-1.amazonaws.com/sw_artifactory",
"disableNetworking": null,
"interactive": null,
"healthCheck": null,
"essential": true,
"links": null,
"hostname": null,
"extraHosts": null,
"pseudoTerminal": null,
"user": null,
"readonlyRootFilesystem": null,
"dockerLabels": null,
"systemControls": null,
"privileged": true,
"name": "artifactory"
}
],
"placementConstraints": [],
"memory": null,
"taskRoleArn": null,
"compatibilities": [
"EC2"
],
"taskDefinitionArn": "arn:aws:ecs:eu-west-1:************:task-definition/artifactory:6",
"family": "artifactory",
"requiresAttributes": [
{
"targetId": null,
"targetType": null,
"value": null,
"name": "com.amazonaws.ecs.capability.privileged-container"
},
{
"targetId": null,
"targetType": null,
"value": null,
"name": "com.amazonaws.ecs.capability.ecr-auth"
}
],
"pidMode": null,
"requiresCompatibilities": [],
"networkMode": "bridge",
"cpu": null,
"revision": 6,
"status": "ACTIVE",
"volumes": [
{
"name": "data",
"host": {
"sourcePath": "/mnt/data/artifactory/data"
},
"dockerVolumeConfiguration": null
},
{
"name": "logs",
"host": {
"sourcePath": "/mnt/data/artifactory/logs"
},
"dockerVolumeConfiguration": null
},
{
"name": "etc",
"host": {
"sourcePath": "/mnt/data/artifactory/etc"
},
"dockerVolumeConfiguration": null
}
]
}
"placementConstraints": [],
"memory": null,
"taskRoleArn": null,
"compatibilities": [
"EC2"
],
"taskDefinitionArn": "arn:aws:ecs:eu-west-1:************:task-definition/artifactory:6",
"family": "artifactory",
"requiresAttributes": [
{
"targetId": null,
"targetType": null,
"value": null,
"name": "com.amazonaws.ecs.capability.privileged-container"
},
{
"targetId": null,
"targetType": null,
"value": null,
"name": "com.amazonaws.ecs.capability.ecr-auth"
}
],
"pidMode": null,
"requiresCompatibilities": [],
"networkMode": "bridge",
"cpu": null,
"revision": 6,
"status": "ACTIVE",
"volumes": [
{
"name": "data",
"host": {
"sourcePath": "/mnt/data/artifactory/data"
},
"dockerVolumeConfiguration": null
}
]
}
$(aws ecr get-login --no-include-email --region us-east-1)
an open-source system for automating deployment, scaling, and management of containerized applications across clusters of machines
of Kubernetes workloads
run on AWS today
— Cloud Native Computing Foundation
57%
+
No instances to manage
Task native API
Resource based price
Simple, easy to use, powerful and new consumption model
IAM Roles for Tasks
Task Auto Scaling
Task Load Balancers
Task Networking
Large workload, optimized for price
Large workload, optimized for low overhead
Small workload, with occasional bursts
Tiny workload
Batch workloads
Fargate mode for EKS : coming soon
follow @AWSreInvent or join the recap