$ 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 ~]$