====== Amazon ECS cluster ====== $ aws ecs create-cluster --cluster-name web2048 { "cluster": { "status": "ACTIVE", "defaultCapacityProviderStrategy": [], "statistics": [], "capacityProviders": [], "tags": [], "clusterName": "web2048", "settings": [ { "name": "containerInsights", "value": "disabled" } ], "registeredContainerInstancesCount": 0, "pendingTasksCount": 0, "runningTasksCount": 0, "activeServicesCount": 0, "clusterArn": "arn:aws:ecs:us-west-2:356565822870:cluster/web2048" } } [ssm-user@ip-10-0-0-251 2048]$ cd [ssm-user@ip-10-0-0-251 ~]$ ls -l total 0 drwxr-xr-x 6 ssm-user ssm-user 218 Mar 12 11:47 2048 [ssm-user@ip-10-0-0-251 ~]$ echo ${REPOSITORY_URI} 356565822870.dkr.ecr.us-west-2.amazonaws.com/web2048 [ssm-user@ip-10-0-0-251 ~]$ nano web2048_task_definition.json [ssm-user@ip-10-0-0-251 ~]$ nano web2048_task_definition.json [ssm-user@ip-10-0-0-251 ~]$ [ssm-user@ip-10-0-0-251 ~]$ [ssm-user@ip-10-0-0-251 ~]$ [ssm-user@ip-10-0-0-251 ~]$ cat web2048_task_definition.json { "family": "web2048", "networkMode": "awsvpc", "taskRoleArn": "arn:aws:iam::356565822870:role/LabStack-f52e059e-2596-4e94-a5-ECSTaskExecutionRole-t5jxEaH8qdlg", "executionRoleArn": "arn:aws:iam::356565822870:role/LabStack-f52e059e-2596-4e94-a5-ECSTaskExecutionRole-t5jxEaH8qdlg", "containerDefinitions": [ { "name": "web2048", "image": "356565822870.dkr.ecr.us-west-2.amazonaws.com/web2048", "portMappings": [ { "containerPort": 80, "hostPort": 80, "protocol": "tcp" } ], "essential": true } ], "requiresCompatibilities": [ "FARGATE" ], "cpu": "256", "memory": "512" } [ssm-user@ip-10-0-0-251 ~]$ [ssm-user@ip-10-0-0-251 ~]$ [ssm-user@ip-10-0-0-251 ~]$ [ssm-user@ip-10-0-0-251 ~]$ nano web2048_service.json [ssm-user@ip-10-0-0-251 ~]$ cat web2048_service.json { "cluster": "web2048", "serviceName": "web2048", "taskDefinition": "web2048", "loadBalancers": [ { "targetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:356565822870:targetgroup/ECS-Target-Group/7d892b651ae1129f", "containerName": "web2048", "containerPort": 80 } ], "desiredCount": 2, "launchType": "FARGATE", "platformVersion": "LATEST", "networkConfiguration": { "awsvpcConfiguration": { "subnets": [ "subnet-08e9ce23d9d655d24", "subnet-0870e5d36bd4b39d1" ], "securityGroups": [ "sg-0e926f7611285b7b4" ], "assignPublicIp": "ENABLED" } } } [ssm-user@ip-10-0-0-251 ~]$ [ssm-user@ip-10-0-0-251 ~]$ [ssm-user@ip-10-0-0-251 ~]$ aws ecs create-service --cli-input-json file://web2048_service.json An error occurred (ClientException) when calling the CreateService operation: TaskDefinition not found. [ssm-user@ip-10-0-0-251 ~]$ ls 2048 web2048_service.json web2048_task_definition.json [ssm-user@ip-10-0-0-251 ~]$ [ssm-user@ip-10-0-0-251 ~]$ [ssm-user@ip-10-0-0-251 ~]$ [ssm-user@ip-10-0-0-251 ~]$ aws ecs create-service --cli-input-json file://web2048_service.json An error occurred (ClientException) when calling the CreateService operation: TaskDefinition not found. [ssm-user@ip-10-0-0-251 ~]$ aws ecs register-task-definition --cli-input-json file://web2048_task_definition.json { "taskDefinition": { "status": "ACTIVE", "memory": "512", "networkMode": "awsvpc", "family": "web2048", "placementConstraints": [], "requiresAttributes": [ { "name": "com.amazonaws.ecs.capability.ecr-auth" }, { "name": "com.amazonaws.ecs.capability.task-iam-role" }, { "name": "ecs.capability.execution-role-ecr-pull" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.18" }, { "name": "ecs.capability.task-eni" } ], "cpu": "256", "executionRoleArn": "arn:aws:iam::356565822870:role/LabStack-f52e059e-2596-4e94-a5-ECSTaskExecutionRole-t5jxEaH8qdlg", "compatibilities": [ "EC2", "FARGATE" ], "volumes": [], "requiresCompatibilities": [ "FARGATE" ], "taskRoleArn": "arn:aws:iam::356565822870:role/LabStack-f52e059e-2596-4e94-a5-ECSTaskExecutionRole-t5jxEaH8qdlg", "taskDefinitionArn": "arn:aws:ecs:us-west-2:356565822870:task-definition/web2048:1", "containerDefinitions": [ { "environment": [], "name": "web2048", "mountPoints": [], "image": "356565822870.dkr.ecr.us-west-2.amazonaws.com/web2048", "cpu": 0, "portMappings": [ { "protocol": "tcp", "containerPort": 80, "hostPort": 80 } ], "systemControls": [], "essential": true, "volumesFrom": [] } ], "revision": 1 } } [ssm-user@ip-10-0-0-251 ~]$ [ssm-user@ip-10-0-0-251 ~]$ [ssm-user@ip-10-0-0-251 ~]$ [ssm-user@ip-10-0-0-251 ~]$ [ssm-user@ip-10-0-0-251 ~]$ aws ecs create-service --cli-input-json file://web2048_service.json { "service": { "networkConfiguration": { "awsvpcConfiguration": { "subnets": [ "subnet-08e9ce23d9d655d24", "subnet-0870e5d36bd4b39d1" ], "securityGroups": [ "sg-0e926f7611285b7b4" ], "assignPublicIp": "ENABLED" } }, "launchType": "FARGATE", "enableECSManagedTags": false, "loadBalancers": [ { "containerName": "web2048", "targetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:356565822870:targetgroup/ECS-Target-Group/7d892b651ae1129f", "containerPort": 80 } ], "deploymentController": { "type": "ECS" }, "desiredCount": 2, "clusterArn": "arn:aws:ecs:us-west-2:356565822870:cluster/web2048", "serviceArn": "arn:aws:ecs:us-west-2:356565822870:service/web2048/web2048", "deploymentConfiguration": { "maximumPercent": 200, "minimumHealthyPercent": 100 }, "createdAt": 1710246122.518, "healthCheckGracePeriodSeconds": 0, "schedulingStrategy": "REPLICA", "placementConstraints": [], "deployments": [ { "status": "PRIMARY", "networkConfiguration": { "awsvpcConfiguration": { "subnets": [ "subnet-08e9ce23d9d655d24", "subnet-0870e5d36bd4b39d1" ], "securityGroups": [ "sg-0e926f7611285b7b4" ], "assignPublicIp": "ENABLED" } }, "pendingCount": 0, "launchType": "FARGATE", "createdAt": 1710246122.518, "desiredCount": 2, "taskDefinition": "arn:aws:ecs:us-west-2:356565822870:task-definition/web2048:1", "updatedAt": 1710246122.518, "platformVersion": "1.4.0", "id": "ecs-svc/3790425555296024013", "runningCount": 0 } ], "serviceName": "web2048", "events": [], "runningCount": 0, "status": "ACTIVE", "serviceRegistries": [], "pendingCount": 0, "createdBy": "arn:aws:iam::356565822870:role/LabStack-f52e059e-2596-4e94-a521-68-CommandHostRole-K7bwxqUaDDFO", "platformVersion": "LATEST", "placementStrategy": [], "propagateTags": "NONE", "roleArn": "arn:aws:iam::356565822870:role/aws-service-role/ecs.amazonaws.com/AWSServiceRoleForECS", "taskDefinition": "arn:aws:ecs:us-west-2:356565822870:task-definition/web2048:1" } } [ssm-user@ip-10-0-0-251 ~]$ [ssm-user@ip-10-0-0-251 ~]$ [ssm-user@ip-10-0-0-251 ~]$ [ssm-user@ip-10-0-0-251 ~]$ aws ecs describe-clusters --cluster web2048 { "clusters": [ { "status": "ACTIVE", "defaultCapacityProviderStrategy": [], "statistics": [], "capacityProviders": [], "tags": [], "clusterName": "web2048", "settings": [], "registeredContainerInstancesCount": 0, "pendingTasksCount": 2, "runningTasksCount": 0, "activeServicesCount": 1, "clusterArn": "arn:aws:ecs:us-west-2:356565822870:cluster/web2048" } ], "failures": [] } [ssm-user@ip-10-0-0-251 ~]$ aws ecs describe-clusters --cluster web2048 { "clusters": [ { "status": "ACTIVE", "defaultCapacityProviderStrategy": [], "statistics": [], "capacityProviders": [], "tags": [], "clusterName": "web2048", "settings": [], "registeredContainerInstancesCount": 0, "pendingTasksCount": 0, "runningTasksCount": 2, "activeServicesCount": 1, "clusterArn": "arn:aws:ecs:us-west-2:356565822870:cluster/web2048" } ], "failures": [] } [ssm-user@ip-10-0-0-251 ~]$ aws ecs describe-clusters --cluster web2048 { "clusters": [ { "status": "ACTIVE", "defaultCapacityProviderStrategy": [], "statistics": [], "capacityProviders": [], "tags": [], "clusterName": "web2048", "settings": [], "registeredContainerInstancesCount": 0, "pendingTasksCount": 0, "runningTasksCount": 2, "activeServicesCount": 1, "clusterArn": "arn:aws:ecs:us-west-2:356565822870:cluster/web2048" } ], "failures": [] } [ssm-user@ip-10-0-0-251 ~]$