를 사용한 Amazon ECS 예제 AWS CLI - AWS Command Line Interface

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

를 사용한 Amazon ECS 예제 AWS CLI

다음 코드 예제에서는 Amazon 에서 를 사용하여 작업을 수행하고 일반적인 시나리오 AWS Command Line Interface 를 구현하는 방법을 보여줍니다ECS.

작업은 대규모 프로그램에서 발췌한 코드이며 컨텍스트에 맞춰 실행해야 합니다. 작업은 개별 서비스 함수를 직접적으로 호출하는 방법을 보여주며 관련 시나리오의 컨텍스트에 맞는 작업을 볼 수 있습니다.

각 예제에는 컨텍스트에서 코드를 설정하고 실행하는 방법에 대한 지침을 찾을 수 있는 전체 소스 코드에 대한 링크가 포함되어 있습니다.

주제

작업

다음 코드 예시에서는 create-capacity-provider을 사용하는 방법을 보여 줍니다.

AWS CLI

용량 공급자를 생성하려면

다음 create-capacity-provider 예제에서는 내 라는 Auto Scaling 그룹을 사용하고 관리형 스케일링 및 관리형 종료 보호ASG가 활성화된 용량 공급자를 생성합니다. 이 구성은 Amazon ECS 클러스터 자동 조정에 사용됩니다.

aws ecs create-capacity-provider \ --name "MyCapacityProvider" \ --auto-scaling-group-provider "autoScalingGroupArn=arn:aws:autoscaling:us-east-1:123456789012:autoScalingGroup:57ffcb94-11f0-4d6d-bf60-3bac5EXAMPLE:autoScalingGroupName/MyASG,managedScaling={status=ENABLED,targetCapacity=100},managedTerminationProtection=ENABLED"

출력:

{ "capacityProvider": { "capacityProviderArn": "arn:aws:ecs:us-east-1:123456789012:capacity-provider/MyCapacityProvider", "name": "MyCapacityProvider", "status": "ACTIVE", "autoScalingGroupProvider": { "autoScalingGroupArn": "arn:aws:autoscaling:us-east-1:132456789012:autoScalingGroup:57ffcb94-11f0-4d6d-bf60-3bac5EXAMPLE:autoScalingGroupName/MyASG", "managedScaling": { "status": "ENABLED", "targetCapacity": 100, "minimumScalingStepSize": 1, "maximumScalingStepSize": 10000, "instanceWarmupPeriod": 300 }, "managedTerminationProtection": "ENABLED" }, "tags": [] }

자세한 내용은 Amazon 개발자 안내서의 Amazon ECS 클러스터 자동 조정을 참조하세요. ECS

다음 코드 예시에서는 create-cluster을 사용하는 방법을 보여 줍니다.

AWS CLI

예 1: 새 클러스터를 생성하는 방법

다음 create-cluster 예시에서는 클러스터를 생성합니다.

aws ecs create-cluster \ --cluster-name MyCluster

출력:

{ "cluster": { "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/MyCluster", "clusterName": "MyCluster", "status": "ACTIVE", "registeredContainerInstancesCount": 0, "pendingTasksCount": 0, "runningTasksCount": 0, "activeServicesCount": 0, "statistics": [], "tags": [] } }

자세한 내용은 Amazon ECS 개발자 안내서클러스터 생성을 참조하세요.

예 2: 용량 공급자를 사용하여 새 클러스터를 생성하는 방법

다음 create-cluster 예시에서는 클러스터를 생성하고 기존 용량 공급자 2개를 클러스터에 연결합니다. create-capacity-provider 명령을 사용하여 용량 공급자를 생성합니다. 기본 용량 공급자 전략을 지정하는 것은 선택 사항이지만 권장됩니다. 이 예시에서는 이름이 MyCluster인 클러스터를 생성하고 여기에 MyCapacityProvider1MyCapacityProvider2 용량 공급자를 연결합니다. 기본 용량 공급자 전략이 지정되어 태스크를 두 용량 공급자 모두에 균등하게 분산합니다.

aws ecs create-cluster --cluster-name MyCluster --capacity-providers MyCapacityProvider1 MyCapacityProvider2 --default-capacity-provider-strategy capacityProvider=MyCapacityProvider1,weight=1 capacityProvider=MyCapacityProvider2,weight=1

출력:

{ "cluster": { "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/MyCluster", "clusterName": "MyCluster", "status": "PROVISIONING", "registeredContainerInstancesCount": 0, "pendingTasksCount": 0, "runningTasksCount": 0, "activeServicesCount": 0, "statistics": [], "settings": [ { "name": "containerInsights", "value": "enabled" } ], "capacityProviders": [ "MyCapacityProvider1", "MyCapacityProvider2" ], "defaultCapacityProviderStrategy": [ { "capacityProvider": "MyCapacityProvider1", "weight": 1, "base": 0 }, { "capacityProvider": "MyCapacityProvider2", "weight": 1, "base": 0 } ], "attachments": [ { "id": "0fb0c8f4-6edd-4de1-9b09-17e470ee1918", "type": "asp", "status": "PRECREATED", "details": [ { "name": "capacityProviderName", "value": "MyCapacityProvider1" }, { "name": "scalingPlanName", "value": "ECSManagedAutoScalingPlan-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" } ] }, { "id": "ae592060-2382-4663-9476-b015c685593c", "type": "asp", "status": "PRECREATED", "details": [ { "name": "capacityProviderName", "value": "MyCapacityProvider2" }, { "name": "scalingPlanName", "value": "ECSManagedAutoScalingPlan-a1b2c3d4-5678-90ab-cdef-EXAMPLE22222" } ] } ], "attachmentsStatus": "UPDATE_IN_PROGRESS" } }

자세한 내용은 Amazon ECS 개발자 안내서클러스터 용량 공급자를 참조하세요.

예 3: 여러 태그가 포함된 새 클러스터를 생성하는 방법

다음 create-cluster 예시에서는 여러 태그가 있는 클러스터를 만듭니다. 단축형 구문을 사용하여 태그를 추가하는 방법에 대한 자세한 내용은 AWS CLI 사용 설명서AWS 명령줄 인터페이스에서 단축형 구문 사용을 참조하세요.

aws ecs create-cluster \ --cluster-name MyCluster \ --tags key=key1,value=value1 key=key2,value=value2 key=key3,value=value3

출력:

{ "cluster": { "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/MyCluster", "clusterName": "MyCluster", "status": "ACTIVE", "registeredContainerInstancesCount": 0, "pendingTasksCount": 0, "runningTasksCount": 0, "activeServicesCount": 0, "statistics": [], "tags": [ { "key": "key1", "value": "value1" }, { "key": "key2", "value": "value2" }, { "key": "key3", "value": "value3" } ] } }

자세한 내용은 Amazon ECS 개발자 안내서클러스터 생성을 참조하세요.

  • 자세한 API 내용은 명령 참조CreateCluster의 섹션을 참조하세요. AWS CLI

다음 코드 예시에서는 create-service을 사용하는 방법을 보여 줍니다.

AWS CLI

예 1: Fargate 태스크를 사용하여 서비스를 생성하는 방법

다음 create-service 예시에서는 Fargate 태스크를 사용하여 서비스를 생성하는 방법을 보여줍니다.

aws ecs create-service \ --cluster MyCluster \ --service-name MyService \ --task-definition sample-fargate:1 \ --desired-count 2 \ --launch-type FARGATE \ --platform-version LATEST \ --network-configuration "awsvpcConfiguration={subnets=[subnet-12344321],securityGroups=[sg-12344321],assignPublicIp=ENABLED}" \ --tags key=key1,value=value1 key=key2,value=value2 key=key3,value=value3

출력:

{ "service": { "serviceArn": "arn:aws:ecs:us-west-2:123456789012:service/MyCluster/MyService", "serviceName": "MyService", "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/MyCluster", "loadBalancers": [], "serviceRegistries": [], "status": "ACTIVE", "desiredCount": 2, "runningCount": 0, "pendingCount": 0, "launchType": "FARGATE", "platformVersion": "LATEST", "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/sample-fargate:1", "deploymentConfiguration": { "maximumPercent": 200, "minimumHealthyPercent": 100 }, "deployments": [ { "id": "ecs-svc/1234567890123456789", "status": "PRIMARY", "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/sample-fargate:1", "desiredCount": 2, "pendingCount": 0, "runningCount": 0, "createdAt": 1557119253.821, "updatedAt": 1557119253.821, "launchType": "FARGATE", "platformVersion": "1.3.0", "networkConfiguration": { "awsvpcConfiguration": { "subnets": [ "subnet-12344321" ], "securityGroups": [ "sg-12344321" ], "assignPublicIp": "ENABLED" } } } ], "roleArn": "arn:aws:iam::123456789012:role/aws-service-role/ecs.amazonaws.com/AWSServiceRoleForECS", "events": [], "createdAt": 1557119253.821, "placementConstraints": [], "placementStrategy": [], "networkConfiguration": { "awsvpcConfiguration": { "subnets": [ "subnet-12344321" ], "securityGroups": [ "sg-12344321" ], "assignPublicIp": "ENABLED" } }, "schedulingStrategy": "REPLICA", "tags": [ { "key": "key1", "value": "value1" }, { "key": "key2", "value": "value2" }, { "key": "key3", "value": "value3" } ], "enableECSManagedTags": false, "propagateTags": "NONE" } }

예제 2: EC2 시작 유형을 사용하여 서비스를 생성하려면

다음 create-service 예제에서는 EC2 시작 유형을 사용하는 작업과 ecs-simple-service 함께 라는 서비스를 생성하는 방법을 보여줍니다. 이 서비스는 sleep360 태스크 정의를 사용하며 태스크의 인스턴스화 1개를 유지 관리합니다.

aws ecs create-service \ --cluster MyCluster \ --service-name ecs-simple-service \ --task-definition sleep360:2 \ --desired-count 1

출력:

{ "service": { "serviceArn": "arn:aws:ecs:us-west-2:123456789012:service/MyCluster/ecs-simple-service", "serviceName": "ecs-simple-service", "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/MyCluster", "loadBalancers": [], "serviceRegistries": [], "status": "ACTIVE", "desiredCount": 1, "runningCount": 0, "pendingCount": 0, "launchType": "EC2", "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/sleep360:2", "deploymentConfiguration": { "maximumPercent": 200, "minimumHealthyPercent": 100 }, "deployments": [ { "id": "ecs-svc/1234567890123456789", "status": "PRIMARY", "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/sleep360:2", "desiredCount": 1, "pendingCount": 0, "runningCount": 0, "createdAt": 1557206498.798, "updatedAt": 1557206498.798, "launchType": "EC2" } ], "events": [], "createdAt": 1557206498.798, "placementConstraints": [], "placementStrategy": [], "schedulingStrategy": "REPLICA", "enableECSManagedTags": false, "propagateTags": "NONE" } }

예 3: 외부 배포 컨트롤러를 사용하는 서비스를 생성하는 방법

다음 create-service 예시에서는 외부 배포 컨트롤러를 사용하는 서비스를 생성합니다.

aws ecs create-service \ --cluster MyCluster \ --service-name MyService \ --deployment-controller type=EXTERNAL \ --desired-count 1

출력:

{ "service": { "serviceArn": "arn:aws:ecs:us-west-2:123456789012:service/MyCluster/MyService", "serviceName": "MyService", "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/MyCluster", "loadBalancers": [], "serviceRegistries": [], "status": "ACTIVE", "desiredCount": 1, "runningCount": 0, "pendingCount": 0, "launchType": "EC2", "deploymentConfiguration": { "maximumPercent": 200, "minimumHealthyPercent": 100 }, "taskSets": [], "deployments": [], "roleArn": "arn:aws:iam::123456789012:role/aws-service-role/ecs.amazonaws.com/AWSServiceRoleForECS", "events": [], "createdAt": 1557128207.101, "placementConstraints": [], "placementStrategy": [], "schedulingStrategy": "REPLICA", "deploymentController": { "type": "EXTERNAL" }, "enableECSManagedTags": false, "propagateTags": "NONE" } }

예 4: 로드 밸런서 뒤에 새 서비스를 생성하는 방법

다음 create-service 예시에서는 로드 밸런서 뒤에 있는 서비스를 생성하는 방법을 보여줍니다. 컨테이너 인스턴스와 동일한 리전에 로드 밸런서가 구성되어 있어야 합니다. 이 예제에서는 다음 콘텐츠와 ecs-simple-service-elb.json 함께 라는 --cli-input-json 옵션과 JSON 입력 파일을 사용합니다.

{ "serviceName": "ecs-simple-service-elb", "taskDefinition": "ecs-demo", "loadBalancers": [ { "loadBalancerName": "EC2Contai-EcsElast-123456789012", "containerName": "simple-demo", "containerPort": 80 } ], "desiredCount": 10, "role": "ecsServiceRole" }

명령:

aws ecs create-service \ --cluster MyCluster \ --service-name ecs-simple-service-elb \ --cli-input-json file://ecs-simple-service-elb.json

출력:

{ "service": { "status": "ACTIVE", "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/ecs-demo:1", "pendingCount": 0, "loadBalancers": [ { "containerName": "ecs-demo", "containerPort": 80, "loadBalancerName": "EC2Contai-EcsElast-123456789012" } ], "roleArn": "arn:aws:iam::123456789012:role/ecsServiceRole", "desiredCount": 10, "serviceName": "ecs-simple-service-elb", "clusterArn": "arn:aws:ecs:<us-west-2:123456789012:cluster/MyCluster", "serviceArn": "arn:aws:ecs:us-west-2:123456789012:service/ecs-simple-service-elb", "deployments": [ { "status": "PRIMARY", "pendingCount": 0, "createdAt": 1428100239.123, "desiredCount": 10, "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/ecs-demo:1", "updatedAt": 1428100239.123, "id": "ecs-svc/1234567890123456789", "runningCount": 0 } ], "events": [], "runningCount": 0 } }

자세한 내용은 Amazon ECS 개발자 안내서서비스 생성을 참조하세요.

  • 자세한 API 내용은 명령 참조CreateService의 섹션을 참조하세요. AWS CLI

다음 코드 예시에서는 create-task-set을 사용하는 방법을 보여 줍니다.

AWS CLI

작업 세트를 생성하려면

다음 create-task-set 예제에서는 외부 배포 컨트롤러를 사용하는 서비스에서 태스크 세트를 생성합니다.

aws ecs create-task-set \ --cluster MyCluster \ --service MyService \ --task-definition MyTaskDefinition:2 \ --network-configuration "awsvpcConfiguration={subnets=[subnet-12344321],securityGroups=[sg-12344321]}"

출력:

{ "taskSet": { "id": "ecs-svc/1234567890123456789", "taskSetArn": "arn:aws:ecs:us-west-2:123456789012:task-set/MyCluster/MyService/ecs-svc/1234567890123456789", "status": "ACTIVE", "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/MyTaskDefinition:2", "computedDesiredCount": 0, "pendingCount": 0, "runningCount": 0, "createdAt": 1557128360.711, "updatedAt": 1557128360.711, "launchType": "EC2", "networkConfiguration": { "awsvpcConfiguration": { "subnets": [ "subnet-12344321" ], "securityGroups": [ "sg-12344321" ], "assignPublicIp": "DISABLED" } }, "loadBalancers": [], "serviceRegistries": [], "scale": { "value": 0.0, "unit": "PERCENT" }, "stabilityStatus": "STABILIZING", "stabilityStatusAt": 1557128360.711 } }
  • 자세한 API 내용은 명령 참조CreateTaskSet의 섹션을 참조하세요. AWS CLI

다음 코드 예시에서는 delete-account-setting을 사용하는 방법을 보여 줍니다.

AWS CLI

특정 IAM 사용자 또는 IAM 역할에 대한 계정 설정을 삭제하려면

다음 예제에서는 특정 IAM 사용자 또는 IAM 역할에 대한 계정 설정을 delete-account-setting 삭제합니다.

aws ecs delete-account-setting \ --name serviceLongArnFormat \ --principal-arn arn:aws:iam::123456789012:user/MyUser

출력:

{ "setting": { "name": "serviceLongArnFormat", "value": "enabled", "principalArn": "arn:aws:iam::123456789012:user/MyUser" } }

자세한 내용은 Amazon 개발자 안내서의 Amazon 리소스 이름(ARNs) 및 IDs 섹션을 참조하세요. ECS

다음 코드 예시에서는 delete-attributes을 사용하는 방법을 보여 줍니다.

AWS CLI

Amazon ECS 리소스에서 사용자 지정 속성을 하나 이상 삭제하려면

다음은 컨테이너 인스턴스stack에서 이름이 인 속성을 delete-attributes 삭제합니다.

aws ecs delete-attributes \ --attributes name=stack,targetId=arn:aws:ecs:us-west-2:130757420319:container-instance/1c3be8ed-df30-47b4-8f1e-6e68ebd01f34

출력:

{ "attributes": [ { "name": "stack", "targetId": "arn:aws:ecs:us-west-2:130757420319:container-instance/1c3be8ed-df30-47b4-8f1e-6e68ebd01f34", "value": "production" } ] }
  • 자세한 API 내용은 명령 참조DeleteAttributes의 섹션을 참조하세요. AWS CLI

다음 코드 예시에서는 delete-capacity-provider을 사용하는 방법을 보여 줍니다.

AWS CLI

예제 1: Amazon 리소스 이름(ARN)을 사용하여 용량 공급자를 삭제하려면

다음 delete-capacity-provider 예제에서는 용량 공급자의 Amazon 리소스 이름(ARN)을 지정하여 용량 공급자를 삭제합니다. ARN 및 용량 공급자 삭제 상태는 describe-capacity-providers 명령을 사용하여 검색할 수 있습니다.

aws ecs delete-capacity-provider \ --capacity-provider arn:aws:ecs:us-west-2:123456789012:capacity-provider/ExampleCapacityProvider

출력:

{ "capacityProvider": { "capacityProviderArn": "arn:aws:ecs:us-west-2:123456789012:capacity-provider/ExampleCapacityProvider", "name": "ExampleCapacityProvider", "status": "ACTIVE", "autoScalingGroupProvider": { "autoScalingGroupArn": "arn:aws:autoscaling:us-west-2:123456789012:autoScalingGroup:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111:autoScalingGroupName/MyAutoScalingGroup", "managedScaling": { "status": "ENABLED", "targetCapacity": 100, "minimumScalingStepSize": 1, "maximumScalingStepSize": 10000 }, "managedTerminationProtection": "DISABLED" }, "updateStatus": "DELETE_IN_PROGRESS", "tags": [] } }

자세한 내용은 Amazon ECS 개발자 안내서클러스터 용량 공급자를 참조하세요.

예제 2: 이름을 사용하여 용량 공급자를 삭제하려면

다음 delete-capacity-provider 예제에서는 용량 공급자의 짧은 이름을 지정하여 용량 공급자를 삭제합니다. 짧은 이름과 용량 공급자 삭제 상태는 describe-capacity-providers 명령을 사용하여 검색할 수 있습니다.

aws ecs delete-capacity-provider \ --capacity-provider ExampleCapacityProvider

출력:

{ "capacityProvider": { "capacityProviderArn": "arn:aws:ecs:us-west-2:123456789012:capacity-provider/ExampleCapacityProvider", "name": "ExampleCapacityProvider", "status": "ACTIVE", "autoScalingGroupProvider": { "autoScalingGroupArn": "arn:aws:autoscaling:us-west-2:123456789012:autoScalingGroup:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111:autoScalingGroupName/MyAutoScalingGroup", "managedScaling": { "status": "ENABLED", "targetCapacity": 100, "minimumScalingStepSize": 1, "maximumScalingStepSize": 10000 }, "managedTerminationProtection": "DISABLED" }, "updateStatus": "DELETE_IN_PROGRESS", "tags": [] } }

자세한 내용은 Amazon ECS 개발자 안내서클러스터 용량 공급자를 참조하세요.

다음 코드 예시에서는 delete-cluster을 사용하는 방법을 보여 줍니다.

AWS CLI

빈 클러스터를 삭제하는 방법

다음 delete-cluster 예시에서는 지정된 빈 클러스터를 삭제합니다.

aws ecs delete-cluster --cluster MyCluster

출력:

{ "cluster": { "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/MyCluster", "status": "INACTIVE", "clusterName": "MyCluster", "registeredContainerInstancesCount": 0, "pendingTasksCount": 0, "runningTasksCount": 0, "activeServicesCount": 0 "statistics": [], "tags": [] } }

자세한 내용은 Amazon ECS 개발자 안내서클러스터 삭제를 참조하세요.

  • 자세한 API 내용은 명령 참조DeleteCluster의 섹션을 참조하세요. AWS CLI

다음 코드 예시에서는 delete-service을 사용하는 방법을 보여 줍니다.

AWS CLI

서비스를 삭제하는 방법

다음 ecs delete-service 예시에서는 클러스터에서 지정된 서비스를 삭제합니다. --force 파라미터를 포함하면 태스크가 없도록 축소되지 않은 서비스도 삭제할 수 있습니다.

aws ecs delete-service --cluster MyCluster --service MyService1 --force

자세한 내용은 Amazon ECS 개발자 안내서서비스 삭제를 참조하세요.

  • 자세한 API 내용은 명령 참조DeleteService의 섹션을 참조하세요. AWS CLI

다음 코드 예시에서는 delete-task-definitions을 사용하는 방법을 보여 줍니다.

AWS CLI

작업 정의를 삭제하려면

다음 delete-task-definitions 예제에서는 INACTIVE 작업 정의를 삭제합니다.

aws ecs delete-task-definitions \ --task-definition curltest:1

출력:

{ "taskDefinitions": [ { "taskDefinitionArn": "arn:aws:ecs:us-east-1:123456789012:task-definition/curltest:1", "containerDefinitions": [ { "name": "ctest", "image": "mreferre/eksutils", "cpu": 0, "portMappings": [], "essential": true, "entryPoint": [ "sh", "-c" ], "command": [ "curl ${ECS_CONTAINER_METADATA_URI_V4}/task" ], "environment": [], "mountPoints": [], "volumesFrom": [], "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-create-group": "true", "awslogs-group": "/ecs/curltest", "awslogs-region": "us-east-1", "awslogs-stream-prefix": "ecs" } } } ], "family": "curltest", "taskRoleArn": "arn:aws:iam::123456789012:role/ecsTaskExecutionRole", "executionRoleArn": "arn:aws:iam::123456789012:role/ecsTaskExecutionRole", "networkMode": "awsvpc", "revision": 1, "volumes": [], "status": "DELETE_IN_PROGRESS", "compatibilities": [ "EC2", "FARGATE" ], "requiresCompatibilities": [ "FARGATE" ], "cpu": "256", "memory": "512", "registeredAt": "2021-09-10T12:56:24.704000+00:00", "deregisteredAt": "2023-03-14T15:20:59.419000+00:00", "registeredBy": "arn:aws:sts::123456789012:assumed-role/Admin/jdoe" } ], "failures": [] }

자세한 내용은 Amazon 개발자 안내서의 Amazon ECS 작업 정의를 참조하세요. ECS

다음 코드 예시에서는 delete-task-set을 사용하는 방법을 보여 줍니다.

AWS CLI

작업 세트를 삭제하려면

다음 delete-task-set 예제에서는 작업 세트를 삭제하는 방법을 보여줍니다. 0으로 조정되지 않았더라도 --force 파라미터를 포함시켜 태스크 세트를 삭제할 수 있습니다.

aws ecs delete-task-set \ --cluster MyCluster \ --service MyService \ --task-set arn:aws:ecs:us-west-2:123456789012:task-set/MyCluster/MyService/ecs-svc/1234567890123456789 \ --force

출력:

{ "taskSet": { "id": "ecs-svc/1234567890123456789", "taskSetArn": "arn:aws:ecs:us-west-2:123456789012:task-set/MyCluster/MyService/ecs-svc/1234567890123456789", "status": "DRAINING", "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/sample-fargate:2", "computedDesiredCount": 0, "pendingCount": 0, "runningCount": 0, "createdAt": 1557130260.276, "updatedAt": 1557130290.707, "launchType": "EC2", "networkConfiguration": { "awsvpcConfiguration": { "subnets": [ "subnet-12345678" ], "securityGroups": [ "sg-12345678" ], "assignPublicIp": "DISABLED" } }, "loadBalancers": [], "serviceRegistries": [], "scale": { "value": 0.0, "unit": "PERCENT" }, "stabilityStatus": "STABILIZING", "stabilityStatusAt": 1557130290.707 } }
  • 자세한 API 내용은 명령 참조DeleteTaskSet의 섹션을 참조하세요. AWS CLI

다음 코드 예시에서는 deregister-container-instance을 사용하는 방법을 보여 줍니다.

AWS CLI

클러스터에서 컨테이너 인스턴스 등록을 취소하려면

다음 deregister-container-instance 예제에서는 지정된 클러스터에서 컨테이너 인스턴스의 등록을 취소합니다. 컨테이너 인스턴스에서 여전히 실행 중인 태스크가 있는 경우 등록을 취소하기 전에 해당 태스크를 중지하거나 --force 옵션을 사용해야 합니다.

aws ecs deregister-container-instance \ --cluster arn:aws:ecs:us-west-2:123456789012:cluster/MyCluster \ --container-instance arn:aws:ecs:us-west-2:123456789012:container-instance/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE \ --force

출력:

{ "containerInstance": { "remainingResources": [ { "integerValue": 1024, "doubleValue": 0.0, "type": "INTEGER", "longValue": 0, "name": "CPU" }, { "integerValue": 985, "doubleValue": 0.0, "type": "INTEGER", "longValue": 0, "name": "MEMORY" }, { "type": "STRINGSET", "integerValue": 0, "name": "PORTS", "stringSetValue": [ "22", "2376", "2375", "51678", "51679" ], "longValue": 0, "doubleValue": 0.0 }, { "type": "STRINGSET", "integerValue": 0, "name": "PORTS_UDP", "stringSetValue": [], "longValue": 0, "doubleValue": 0.0 } ], "agentConnected": true, "attributes": [ { "name": "ecs.capability.secrets.asm.environment-variables" }, { "name": "com.amazonaws.ecs.capability.logging-driver.syslog" }, { "value": "ami-01a82c3fce2c3ba58", "name": "ecs.ami-id" }, { "name": "ecs.capability.secrets.asm.bootstrap.log-driver" }, { "name": "com.amazonaws.ecs.capability.logging-driver.none" }, { "name": "ecs.capability.ecr-endpoint" }, { "name": "com.amazonaws.ecs.capability.logging-driver.json-file" }, { "value": "vpc-1234567890123467", "name": "ecs.vpc-id" }, { "name": "ecs.capability.execution-role-awslogs" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.17" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.18" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.19" }, { "name": "ecs.capability.docker-plugin.local" }, { "name": "ecs.capability.task-eni" }, { "name": "ecs.capability.task-cpu-mem-limit" }, { "name": "ecs.capability.secrets.ssm.bootstrap.log-driver" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.30" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.31" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.32" }, { "name": "ecs.capability.execution-role-ecr-pull" }, { "name": "ecs.capability.container-health-check" }, { "value": "subnet-1234567890123467", "name": "ecs.subnet-id" }, { "value": "us-west-2a", "name": "ecs.availability-zone" }, { "value": "t2.micro", "name": "ecs.instance-type" }, { "name": "com.amazonaws.ecs.capability.task-iam-role-network-host" }, { "name": "ecs.capability.aws-appmesh" }, { "name": "com.amazonaws.ecs.capability.logging-driver.awslogs" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.24" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.25" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.26" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.27" }, { "name": "com.amazonaws.ecs.capability.privileged-container" }, { "name": "ecs.capability.container-ordering" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.28" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.29" }, { "value": "x86_64", "name": "ecs.cpu-architecture" }, { "value": "93f43776-2018.10.0", "name": "ecs.capability.cni-plugin-version" }, { "name": "ecs.capability.secrets.ssm.environment-variables" }, { "name": "ecs.capability.pid-ipc-namespace-sharing" }, { "name": "com.amazonaws.ecs.capability.ecr-auth" }, { "value": "linux", "name": "ecs.os-type" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.20" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.21" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.22" }, { "name": "ecs.capability.task-eia" }, { "name": "ecs.capability.private-registry-authentication.secretsmanager" }, { "name": "com.amazonaws.ecs.capability.task-iam-role" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.23" } ], "pendingTasksCount": 0, "tags": [], "containerInstanceArn": "arn:aws:ecs:us-west-2:123456789012:container-instance/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "registeredResources": [ { "integerValue": 1024, "doubleValue": 0.0, "type": "INTEGER", "longValue": 0, "name": "CPU" }, { "integerValue": 985, "doubleValue": 0.0, "type": "INTEGER", "longValue": 0, "name": "MEMORY" }, { "type": "STRINGSET", "integerValue": 0, "name": "PORTS", "stringSetValue": [ "22", "2376", "2375", "51678", "51679" ], "longValue": 0, "doubleValue": 0.0 }, { "type": "STRINGSET", "integerValue": 0, "name": "PORTS_UDP", "stringSetValue": [], "longValue": 0, "doubleValue": 0.0 } ], "status": "INACTIVE", "registeredAt": 1557768075.681, "version": 4, "versionInfo": { "agentVersion": "1.27.0", "agentHash": "aabe65ee", "dockerVersion": "DockerVersion: 18.06.1-ce" }, "attachments": [], "runningTasksCount": 0, "ec2InstanceId": "i-12345678901234678" } }

자세한 내용은 ECS 개발자 안내서컨테이너 인스턴스 등록 취소를 참조하세요.

다음 코드 예시에서는 deregister-task-definition을 사용하는 방법을 보여 줍니다.

AWS CLI

작업 정의를 등록 취소하려면

다음 deregister-task-definition 예제에서는 기본 리전에서 curler 태스크 정의의 첫 번째 개정을 등록 취소합니다.

aws ecs deregister-task-definition --task-definition curler:1

결과 출력에서 태스크 정의 상태는 를 표시합니다INACTIVE.

{ "taskDefinition": { "status": "INACTIVE", "family": "curler", "volumes": [], "taskDefinitionArn": "arn:aws:ecs:us-west-2:123456789012:task-definition/curler:1", "containerDefinitions": [ { "environment": [], "name": "curler", "mountPoints": [], "image": "curl:latest", "cpu": 100, "portMappings": [], "entryPoint": [], "memory": 256, "command": [ "curl -v http://example.com/" ], "essential": true, "volumesFrom": [] } ], "revision": 1 } }

자세한 내용은 Amazon 개발자 안내서의 Amazon ECS 작업 정의를 참조하세요. ECS

다음 코드 예시에서는 describe-capacity-providers을 사용하는 방법을 보여 줍니다.

AWS CLI

예제 1: 모든 용량 공급자 설명

다음 describe-capacity-providers 예제에서는 모든 용량 공급자에 대한 세부 정보를 검색합니다.

aws ecs describe-capacity-providers

출력:

{ "capacityProviders": [ { "capacityProviderArn": "arn:aws:ecs:us-west-2:123456789012:capacity-provider/MyCapacityProvider", "name": "MyCapacityProvider", "status": "ACTIVE", "autoScalingGroupProvider": { "autoScalingGroupArn": "arn:aws:autoscaling:us-west-2:123456789012:autoScalingGroup:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111:autoScalingGroupName/MyAutoScalingGroup", "managedScaling": { "status": "ENABLED", "targetCapacity": 100, "minimumScalingStepSize": 1, "maximumScalingStepSize": 1000 }, "managedTerminationProtection": "ENABLED" }, "tags": [] }, { "capacityProviderArn": "arn:aws:ecs:us-west-2:123456789012:capacity-provider/FARGATE", "name": "FARGATE", "status": "ACTIVE", "tags": [] }, { "capacityProviderArn": "arn:aws:ecs:us-west-2:123456789012:capacity-provider/FARGATE_SPOT", "name": "FARGATE_SPOT", "status": "ACTIVE", "tags": [] } ] }

자세한 내용은 Amazon ECS 개발자 안내서클러스터 용량 공급자를 참조하세요.

예제 2: 특정 용량 공급자 설명

다음 describe-capacity-providers 예제에서는 특정 용량 공급자에 대한 세부 정보를 검색합니다. --include TAGS 파라미터를 사용하면 용량 공급자와 연결된 태그가 출력에 추가됩니다.

aws ecs describe-capacity-providers \ --capacity-providers MyCapacityProvider \ --include TAGS

출력:

{ "capacityProviders": [ { "capacityProviderArn": "arn:aws:ecs:us-west-2:123456789012:capacity-provider/MyCapacityProvider", "name": "MyCapacityProvider", "status": "ACTIVE", "autoScalingGroupProvider": { "autoScalingGroupArn": "arn:aws:autoscaling:us-west-2:123456789012:autoScalingGroup:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111:autoScalingGroupName/MyAutoScalingGroup", "managedScaling": { "status": "ENABLED", "targetCapacity": 100, "minimumScalingStepSize": 1, "maximumScalingStepSize": 1000 }, "managedTerminationProtection": "ENABLED" }, "tags": [ { "key": "environment", "value": "production" } ] } ] }

자세한 내용은 Amazon ECS 개발자 안내서클러스터 용량 공급자를 참조하세요.

다음 코드 예시에서는 describe-clusters을 사용하는 방법을 보여 줍니다.

AWS CLI

예 1: 클러스터를 설명하는 방법

다음 describe-clusters 예시에서는 지정된 클러스터에 대한 세부 정보를 검색합니다.

aws ecs describe-clusters \ --cluster default

출력:

{ "clusters": [ { "status": "ACTIVE", "clusterName": "default", "registeredContainerInstancesCount": 0, "pendingTasksCount": 0, "runningTasksCount": 0, "activeServicesCount": 1, "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/default" } ], "failures": [] }

자세한 내용은 Amazon 개발자 안내서의 Amazon ECS 클러스터를 참조하세요. ECS

예 2: 첨부 파일 옵션을 사용하여 클러스터를 설명하는 방법

다음 describe-clusters 예제에서는 ATTACHMENTS 옵션을 지정합니다. 지정된 클러스터에 대한 세부 정보와 클러스터에 연결된 리소스 목록을 첨부 파일 형식으로 검색합니다. 클러스터와 함께 용량 공급자를 사용하는 경우 AutoScaling 계획 또는 조정 정책인 리소스는 asp 또는 as_policy 로 표시됩니다ATTACHMENTS.

aws ecs describe-clusters \ --include ATTACHMENTS \ --clusters sampleCluster

출력:

{ "clusters": [ { "clusterArn": "arn:aws:ecs:af-south-1:123456789222:cluster/sampleCluster", "clusterName": "sampleCluster", "status": "ACTIVE", "registeredContainerInstancesCount": 0, "runningTasksCount": 0, "pendingTasksCount": 0, "activeServicesCount": 0, "statistics": [], "tags": [], "settings": [], "capacityProviders": [ "sampleCapacityProvider" ], "defaultCapacityProviderStrategy": [], "attachments": [ { "id": "a1b2c3d4-5678-901b-cdef-EXAMPLE22222", "type": "as_policy", "status": "CREATED", "details": [ { "name": "capacityProviderName", "value": "sampleCapacityProvider" }, { "name": "scalingPolicyName", "value": "ECSManagedAutoScalingPolicy-3048e262-fe39-4eaf-826d-6f975d303188" } ] } ], "attachmentsStatus": "UPDATE_COMPLETE" } ], "failures": [] }

자세한 내용은 Amazon 개발자 안내서의 Amazon ECS 클러스터를 참조하세요. ECS

  • 자세한 API 내용은 명령 참조DescribeClusters의 섹션을 참조하세요. AWS CLI

다음 코드 예시에서는 describe-container-instances을 사용하는 방법을 보여 줍니다.

AWS CLI

컨테이너 인스턴스를 설명하려면

다음 describe-container-instances 예제에서는 컨테이너 인스턴스를 식별자UUID로 사용하여 update 클러스터의 컨테이너 인스턴스에 대한 세부 정보를 검색합니다.

aws ecs describe-container-instances \ --cluster update \ --container-instances a1b2c3d4-5678-90ab-cdef-11111EXAMPLE

출력:

{ "failures": [], "containerInstances": [ { "status": "ACTIVE", "registeredResources": [ { "integerValue": 2048, "longValue": 0, "type": "INTEGER", "name": "CPU", "doubleValue": 0.0 }, { "integerValue": 3955, "longValue": 0, "type": "INTEGER", "name": "MEMORY", "doubleValue": 0.0 }, { "name": "PORTS", "longValue": 0, "doubleValue": 0.0, "stringSetValue": [ "22", "2376", "2375", "51678" ], "type": "STRINGSET", "integerValue": 0 } ], "ec2InstanceId": "i-A1B2C3D4", "agentConnected": true, "containerInstanceArn": "arn:aws:ecs:us-west-2:123456789012:container-instance/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "pendingTasksCount": 0, "remainingResources": [ { "integerValue": 2048, "longValue": 0, "type": "INTEGER", "name": "CPU", "doubleValue": 0.0 }, { "integerValue": 3955, "longValue": 0, "type": "INTEGER", "name": "MEMORY", "doubleValue": 0.0 }, { "name": "PORTS", "longValue": 0, "doubleValue": 0.0, "stringSetValue": [ "22", "2376", "2375", "51678" ], "type": "STRINGSET", "integerValue": 0 } ], "runningTasksCount": 0, "versionInfo": { "agentVersion": "1.0.0", "agentHash": "4023248", "dockerVersion": "DockerVersion: 1.5.0" } } ] }

자세한 내용은 Amazon 개발자 안내서의 Amazon ECS 컨테이너 인스턴스를 참조하세요. ECS

다음 코드 예시에서는 describe-services을 사용하는 방법을 보여 줍니다.

AWS CLI

서비스를 설명하려면

다음 describe-services 예제에서는 기본 클러스터의 my-http-service 서비스에 대한 세부 정보를 검색합니다.

aws ecs describe-services --services my-http-service

출력:

{ "services": [ { "status": "ACTIVE", "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/amazon-ecs-sample:1", "pendingCount": 0, "loadBalancers": [], "desiredCount": 10, "createdAt": 1466801808.595, "serviceName": "my-http-service", "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/default", "serviceArn": "arn:aws:ecs:us-west-2:123456789012:service/my-http-service", "deployments": [ { "status": "PRIMARY", "pendingCount": 0, "createdAt": 1466801808.595, "desiredCount": 10, "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/amazon-ecs-sample:1", "updatedAt": 1428326312.703, "id": "ecs-svc/1234567890123456789", "runningCount": 10 } ], "events": [ { "message": "(service my-http-service) has reached a steady state.", "id": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "createdAt": 1466801812.435 } ], "runningCount": 10 } ], "failures": [] }

자세한 내용은 Amazon ECS 개발자 안내서서비스를 참조하세요.

  • 자세한 API 내용은 명령 참조DescribeServices의 섹션을 참조하세요. AWS CLI

다음 코드 예시에서는 describe-task-definition을 사용하는 방법을 보여 줍니다.

AWS CLI

작업 정의를 설명하려면

다음 describe-task-definition 예제에서는 작업 정의의 세부 정보를 검색합니다.

aws ecs describe-task-definition \ --task-definition hello_world:8

출력:

{ "taskDefinition": { "taskDefinitionArn": "arn:aws:ecs:us-east-1:012345678910:task-definition/hello_world:8", "containerDefinitions": [ { "cpu": 10, "environment": [], "essential": true, "image": "wordpress", "links": [ "mysql" ] , "memory": 500, "mountPoints": [], "name": "wordpress", "portMappings": [ { "containerPort": 80, "hostPort": 80 } ], "volumesFrom": [] }, { "cpu": 10, "environment": [ { "name": "MYSQL_ROOT_PASSWORD", "value": "password" } ], "essential": true, "image": "mysql", "memory": 500, "mountPoints": [], "name": "mysql", "portMappings": [], "volumesFrom": [] } ], "family": "hello_world", "revision": 8, "volumes": [], "status": "ACTIVE", "placementConstraints": [], "compatibilities": [ "EXTERNAL", "EC2" ], "registeredAt": "2024-06-21T11:15:12.669000-05:00", "registeredBy": "arn:aws:sts::012345678910:assumed-role/demo-role/jane-doe" }, "tags": [] }

자세한 내용은 Amazon 개발자 안내서의 Amazon ECS 작업 정의를 참조하세요. ECS

다음 코드 예시에서는 describe-task-sets을 사용하는 방법을 보여 줍니다.

AWS CLI

작업 세트를 설명하려면

다음 describe-task-sets 예제에서는 외부 배포자를 사용하는 서비스의 태스크 세트를 설명합니다.

aws ecs describe-task-sets \ --cluster MyCluster \ --service MyService \ --task-sets arn:aws:ecs:us-west-2:123456789012:task-set/MyCluster/MyService/ecs-svc/1234567890123456789

출력:

{ "taskSets": [ { "id": "ecs-svc/1234567890123456789", "taskSetArn": "arn:aws:ecs:us-west-2:123456789012:task-set/MyCluster/MyService/ecs-svc/1234567890123456789", "status": "ACTIVE", "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/sample-fargate:2", "computedDesiredCount": 0, "pendingCount": 0, "runningCount": 0, "createdAt": 1557207715.195, "updatedAt": 1557207740.014, "launchType": "EC2", "networkConfiguration": { "awsvpcConfiguration": { "subnets": [ "subnet-12344321" ], "securityGroups": [ "sg-1234431" ], "assignPublicIp": "DISABLED" } }, "loadBalancers": [], "serviceRegistries": [], "scale": { "value": 0.0, "unit": "PERCENT" }, "stabilityStatus": "STEADY_STATE", "stabilityStatusAt": 1557207740.014 } ], "failures": [] }
  • 자세한 API 내용은 명령 참조DescribeTaskSets의 섹션을 참조하세요. AWS CLI

다음 코드 예시에서는 describe-tasks을 사용하는 방법을 보여 줍니다.

AWS CLI

예 1: 단일 태스크를 설명하는 방법

다음 describe-tasks 예시에서는 클러스터의 태스크 세부 정보를 검색합니다. ID 또는 전체 태스크를 사용하여 태스크를 지정할 수 ARN 있습니다. 이 예제에서는 전체 ARN 작업을 사용합니다.

aws ecs describe-tasks \ --cluster MyCluster \ --tasks arn:aws:ecs:us-east-1:123456789012:task/MyCluster/4d590253bb114126b7afa7b58EXAMPLE

출력:

{ "tasks": [ { "attachments": [], "attributes": [ { "name": "ecs.cpu-architecture", "value": "x86_64" } ], "availabilityZone": "us-east-1b", "clusterArn": "arn:aws:ecs:us-east-1:123456789012:cluster/MyCluster", "connectivity": "CONNECTED", "connectivityAt": "2021-08-11T12:21:26.681000-04:00", "containerInstanceArn": "arn:aws:ecs:us-east-1:123456789012:container-instance/test/025c7e2c5e054a6790a29fc1fEXAMPLE", "containers": [ { "containerArn": "arn:aws:ecs:us-east-1:123456789012:container/MyCluster/4d590253bb114126b7afa7b58eea9221/a992d1cc-ea46-474a-b6e8-24688EXAMPLE", "taskArn": "arn:aws:ecs:us-east-1:123456789012:task/MyCluster/4d590253bb114126b7afa7b58EXAMPLE", "name": "simple-app", "image": "httpd:2.4", "runtimeId": "91251eed27db90006ad67b1a08187290869f216557717dd5c39b37c94EXAMPLE", "lastStatus": "RUNNING", "networkBindings": [ { "bindIP": "0.0.0.0", "containerPort": 80, "hostPort": 80, "protocol": "tcp" } ], "networkInterfaces": [], "healthStatus": "UNKNOWN", "cpu": "10", "memory": "300" } ], "cpu": "10", "createdAt": "2021-08-11T12:21:26.681000-04:00", "desiredStatus": "RUNNING", "enableExecuteCommand": false, "group": "service:testupdate", "healthStatus": "UNKNOWN", "lastStatus": "RUNNING", "launchType": "EC2", "memory": "300", "overrides": { "containerOverrides": [ { "name": "simple-app" } ], "inferenceAcceleratorOverrides": [] }, "pullStartedAt": "2021-08-11T12:21:28.234000-04:00", "pullStoppedAt": "2021-08-11T12:21:33.793000-04:00", "startedAt": "2021-08-11T12:21:34.945000-04:00", "startedBy": "ecs-svc/968695068243EXAMPLE", "tags": [], "taskArn": "arn:aws:ecs:us-east-1:123456789012:task/MyCluster/4d590253bb114126b7afa7b58eea9221", "taskDefinitionArn": "arn:aws:ecs:us-east-1:123456789012:task-definition/console-sample-app-static2:1", "version": 2 } ], "failures": [] }

자세한 내용은 Amazon 개발자 안내서의 Amazon ECS 작업 정의를 참조하세요. ECS

예 2: 여러 태스크를 설명하는 방법

다음 describe-tasks 예시에서는 클러스터에 있는 여러 태스크의 세부 정보를 검색합니다. ID 또는 전체 태스크를 사용하여 태스크를 지정할 수 ARN 있습니다. 이 예제에서는 IDs 전체 작업을 사용합니다.

aws ecs describe-tasks \ --cluster MyCluster \ --tasks "74de0355a10a4f979ac495c14EXAMPLE" "d789e94343414c25b9f6bd59eEXAMPLE"

출력:

{ "tasks": [ { "attachments": [ { "id": "d9e7735a-16aa-4128-bc7a-b2d51EXAMPLE", "type": "ElasticNetworkInterface", "status": "ATTACHED", "details": [ { "name": "subnetId", "value": "subnet-0d0eab1bb3EXAMPLE" }, { "name": "networkInterfaceId", "value": "eni-0fa40520aeEXAMPLE" }, { "name": "macAddress", "value": "0e:89:76:28:07:b3" }, { "name": "privateDnsName", "value": "ip-10-0-1-184.ec2.internal" }, { "name": "privateIPv4Address", "value": "10.0.1.184" } ] } ], "attributes": [ { "name": "ecs.cpu-architecture", "value": "x86_64" } ], "availabilityZone": "us-east-1b", "clusterArn": "arn:aws:ecs:us-east-1:123456789012:cluster/MyCluster", "connectivity": "CONNECTED", "connectivityAt": "2021-12-20T12:13:37.875000-05:00", "containers": [ { "containerArn": "arn:aws:ecs:us-east-1:123456789012:container/MyCluster/74de0355a10a4f979ac495c14EXAMPLE/aad3ba00-83b3-4dac-84d4-11f8cEXAMPLE", "taskArn": "arn:aws:ecs:us-east-1:123456789012:task/MyCluster/74de0355a10a4f979ac495c14EXAMPLE", "name": "web", "image": "nginx", "runtimeId": "74de0355a10a4f979ac495c14EXAMPLE-265927825", "lastStatus": "RUNNING", "networkBindings": [], "networkInterfaces": [ { "attachmentId": "d9e7735a-16aa-4128-bc7a-b2d51EXAMPLE", "privateIpv4Address": "10.0.1.184" } ], "healthStatus": "UNKNOWN", "cpu": "99", "memory": "100" } ], "cpu": "256", "createdAt": "2021-12-20T12:13:20.226000-05:00", "desiredStatus": "RUNNING", "enableExecuteCommand": false, "group": "service:tdsevicetag", "healthStatus": "UNKNOWN", "lastStatus": "RUNNING", "launchType": "FARGATE", "memory": "512", "overrides": { "containerOverrides": [ { "name": "web" } ], "inferenceAcceleratorOverrides": [] }, "platformVersion": "1.4.0", "platformFamily": "Linux", "pullStartedAt": "2021-12-20T12:13:42.665000-05:00", "pullStoppedAt": "2021-12-20T12:13:46.543000-05:00", "startedAt": "2021-12-20T12:13:48.086000-05:00", "startedBy": "ecs-svc/988401040018EXAMPLE", "tags": [], "taskArn": "arn:aws:ecs:us-east-1:123456789012:task/MyCluster/74de0355a10a4f979ac495c14EXAMPLE", "taskDefinitionArn": "arn:aws:ecs:us-east-1:123456789012:task-definition/webserver:2", "version": 3, "ephemeralStorage": { "sizeInGiB": 20 } }, { "attachments": [ { "id": "214eb5a9-45cd-4bf8-87bc-57fefEXAMPLE", "type": "ElasticNetworkInterface", "status": "ATTACHED", "details": [ { "name": "subnetId", "value": "subnet-0d0eab1bb3EXAMPLE" }, { "name": "networkInterfaceId", "value": "eni-064c7766daEXAMPLE" }, { "name": "macAddress", "value": "0e:76:83:01:17:a9" }, { "name": "privateDnsName", "value": "ip-10-0-1-41.ec2.internal" }, { "name": "privateIPv4Address", "value": "10.0.1.41" } ] } ], "attributes": [ { "name": "ecs.cpu-architecture", "value": "x86_64" } ], "availabilityZone": "us-east-1b", "clusterArn": "arn:aws:ecs:us-east-1:123456789012:cluster/MyCluster", "connectivity": "CONNECTED", "connectivityAt": "2021-12-20T12:13:35.243000-05:00", "containers": [ { "containerArn": "arn:aws:ecs:us-east-1:123456789012:container/MyCluster/d789e94343414c25b9f6bd59eEXAMPLE/9afef792-609b-43a5-bb6a-3efdbEXAMPLE", "taskArn": "arn:aws:ecs:us-east-1:123456789012:task/MyCluster/d789e94343414c25b9f6bd59eEXAMPLE", "name": "web", "image": "nginx", "runtimeId": "d789e94343414c25b9f6bd59eEXAMPLE-265927825", "lastStatus": "RUNNING", "networkBindings": [], "networkInterfaces": [ { "attachmentId": "214eb5a9-45cd-4bf8-87bc-57fefEXAMPLE", "privateIpv4Address": "10.0.1.41" } ], "healthStatus": "UNKNOWN", "cpu": "99", "memory": "100" } ], "cpu": "256", "createdAt": "2021-12-20T12:13:20.226000-05:00", "desiredStatus": "RUNNING", "enableExecuteCommand": false, "group": "service:tdsevicetag", "healthStatus": "UNKNOWN", "lastStatus": "RUNNING", "launchType": "FARGATE", "memory": "512", "overrides": { "containerOverrides": [ { "name": "web" } ], "inferenceAcceleratorOverrides": [] }, "platformVersion": "1.4.0", "platformFamily": "Linux", "pullStartedAt": "2021-12-20T12:13:44.611000-05:00", "pullStoppedAt": "2021-12-20T12:13:48.251000-05:00", "startedAt": "2021-12-20T12:13:49.326000-05:00", "startedBy": "ecs-svc/988401040018EXAMPLE", "tags": [], "taskArn": "arn:aws:ecs:us-east-1:123456789012:task/MyCluster/d789e94343414c25b9f6bd59eEXAMPLE", "taskDefinitionArn": "arn:aws:ecs:us-east-1:123456789012:task-definition/webserver:2", "version": 3, "ephemeralStorage": { "sizeInGiB": 20 } } ], "failures": [] }

자세한 내용은 Amazon 개발자 안내서의 Amazon ECS 작업 정의를 참조하세요. ECS

  • 자세한 API 내용은 명령 참조DescribeTasks의 섹션을 참조하세요. AWS CLI

다음 코드 예시에서는 execute-command을 사용하는 방법을 보여 줍니다.

AWS CLI

interactive /bin/sh 명령을 실행하려면

다음 execute-command 예제에서는 id가 인 태스크에 MyContainer 대해 라는 컨테이너에 대해 interactive /bin/sh 명령을 실행합니다arn:aws:ecs:us-east-1:123456789012:task/MyCluster/d789e94343414c25b9f6bd59eEXAMPLE.

aws ecs execute-command \ --cluster MyCluster \ --task arn:aws:ecs:us-east-1:123456789012:task/MyCluster/d789e94343414c25b9f6bd59eEXAMPLE \ --container MyContainer \ --interactive \ --command "/bin/sh"

이 명령은 출력을 생성하지 않습니다.

자세한 내용은 Amazon 개발자 안내서의 디버깅에 Amazon ECS Exec 사용을 참조하세요. ECS

  • 자세한 API 내용은 명령 참조ExecuteCommand의 섹션을 참조하세요. AWS CLI

다음 코드 예시에서는 list-account-settings을 사용하는 방법을 보여 줍니다.

AWS CLI

예제 1: 계정의 계정 설정을 보려면

다음 list-account-settings 예제에서는 계정에 대한 유효 계정 설정을 보여줍니다.

aws ecs list-account-settings --effective-settings

출력:

{ "settings": [ { "name": "containerInstanceLongArnFormat", "value": "enabled", "principalArn": "arn:aws:iam::123456789012:root" }, { "name": "serviceLongArnFormat", "value": "enabled", "principalArn": "arn:aws:iam::123456789012:root" }, { "name": "taskLongArnFormat", "value": "enabled", "principalArn": "arn:aws:iam::123456789012:root" } ] }

예제 2: 특정 IAM 사용자 또는 IAM 역할에 대한 계정 설정을 보려면

다음 list-account-settings 예제에서는 지정된 IAM 사용자 또는 IAM 역할에 대한 계정 설정을 표시합니다.

aws ecs list-account-settings --principal-arn arn:aws:iam::123456789012:user/MyUser

출력:

{ "settings": [ { "name": "serviceLongArnFormat", "value": "enabled", "principalArn": "arn:aws:iam::123456789012:user/MyUser" } ] }

자세한 내용은 Amazon 개발자 안내서의 Amazon 리소스 이름(ARNs) 및 IDs 섹션을 참조하세요. ECS

  • 자세한 API 내용은 명령 참조ListAccountSettings의 섹션을 참조하세요. AWS CLI

다음 코드 예시에서는 list-attributes을 사용하는 방법을 보여 줍니다.

AWS CLI

특정 속성을 포함하는 컨테이너 인스턴스를 나열하려면

다음 예제에서는 속성이 기본 클러스터에 있는 컨테이너 인스턴스의 stack=production 속성을 나열합니다.

aws ecs list-attributes \ --target-type container-instance \ --attribute-name stack \ --attribute-value production \ --cluster default

출력:

{ "attributes": [ { "name": "stack", "targetId": "arn:aws:ecs:us-west-2:130757420319:container-instance/1c3be8ed-df30-47b4-8f1e-6e68ebd01f34", "value": "production" } ] }

자세한 내용은 Amazon 개발자 안내서의 Amazon ECS Container Agent 구성을 참조하세요. ECS

  • 자세한 API 내용은 명령 참조ListAttributes의 섹션을 참조하세요. AWS CLI

다음 코드 예시에서는 list-clusters을 사용하는 방법을 보여 줍니다.

AWS CLI

사용 가능한 클러스터를 나열하는 방법

다음 list-clusters 예시에서는 사용 가능한 클러스터를 모두 나열합니다.

aws ecs list-clusters

출력:

{ "clusterArns": [ "arn:aws:ecs:us-west-2:123456789012:cluster/MyECSCluster1", "arn:aws:ecs:us-west-2:123456789012:cluster/AnotherECSCluster" ] }

자세한 내용은 Amazon 개발자 안내서의 Amazon ECS 클러스터를 참조하세요. ECS

  • 자세한 API 내용은 명령 참조ListClusters의 섹션을 참조하세요. AWS CLI

다음 코드 예시에서는 list-container-instances을 사용하는 방법을 보여 줍니다.

AWS CLI

클러스터의 컨테이너 인스턴스를 나열하려면

다음 list-container-instances 예제에서는 클러스터에서 사용 가능한 모든 컨테이너 인스턴스를 나열합니다.

aws ecs list-container-instances --cluster MyCluster

출력:

{ "containerInstanceArns": [ "arn:aws:ecs:us-west-2:123456789012:container-instance/MyCluster/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "arn:aws:ecs:us-west-2:123456789012:container-instance/MyCluster/a1b2c3d4-5678-90ab-cdef-22222EXAMPLE" ] }

자세한 내용은 Amazon 개발자 안내서의 Amazon ECS 컨테이너 인스턴스를 참조하세요. ECS

다음 코드 예시에서는 list-services-by-namespace을 사용하는 방법을 보여 줍니다.

AWS CLI

네임스페이스에 서비스를 나열하려면

다음 list-services-by-namespace 예제에서는 기본 리전의 지정된 네임스페이스에 대해 구성된 모든 서비스를 나열합니다.

aws ecs list-services-by-namespace \ --namespace service-connect

출력:

{ "serviceArns": [ "arn:aws:ecs:us-west-2:123456789012:service/MyCluster/MyService", "arn:aws:ecs:us-west-2:123456789012:service/tutorial/service-connect-nginx-service" ] }

자세한 내용은 Amazon ECS 개발자 안내서Service Connect를 참조하세요.

다음 코드 예시에서는 list-services을 사용하는 방법을 보여 줍니다.

AWS CLI

클러스터의 서비스를 나열하는 방법

다음 list-services 예시에서는 클러스터에서 실행되는 서비스를 나열하는 방법을 보여줍니다.

aws ecs list-services --cluster MyCluster

출력:

{ "serviceArns": [ "arn:aws:ecs:us-west-2:123456789012:service/MyCluster/MyService" ] }

자세한 내용은 Amazon ECS 개발자 안내서서비스를 참조하세요.

  • 자세한 API 내용은 명령 참조ListServices의 섹션을 참조하세요. AWS CLI

다음 코드 예시에서는 list-tags-for-resource을 사용하는 방법을 보여 줍니다.

AWS CLI

리소스의 태그를 나열하려면

다음 list-tags-for-resource 예제에서는 특정 클러스터의 태그를 나열합니다.

aws ecs list-tags-for-resource \ --resource-arn arn:aws:ecs:us-west-2:123456789012:cluster/MyCluster

출력:

{ "tags": [ { "key": "key1", "value": "value1" }, { "key": "key2", "value": "value2" }, { "key": "key3", "value": "value3" } ] }
  • 자세한 API 내용은 명령 참조ListTagsForResource의 섹션을 참조하세요. AWS CLI

다음 코드 예시에서는 list-task-definition-families을 사용하는 방법을 보여 줍니다.

AWS CLI

예제 1: 등록된 태스크 정의 패밀리를 나열하려면

다음 list-task-definition-families 예제에서는 등록된 태스크 정의 패밀리를 모두 나열합니다.

aws ecs list-task-definition-families

출력:

{ "families": [ "node-js-app", "web-timer", "hpcc", "hpcc-c4-8xlarge" ] }

예제 2: 등록된 태스크 정의 패밀리를 필터링하려면

다음 list-task-definition-families 예제에서는 “hpcc”로 시작하는 태스크 정의 개정을 나열합니다.

aws ecs list-task-definition-families --family-prefix hpcc

출력:

{ "families": [ "hpcc", "hpcc-c4-8xlarge" ] }

자세한 내용은 Amazon ECS 개발자 안내서작업 정의 파라미터를 참조하세요.

다음 코드 예시에서는 list-task-definitions을 사용하는 방법을 보여 줍니다.

AWS CLI

예제 1: 등록된 작업 정의를 나열하려면

다음 list-task-definitions 예제에서는 등록된 모든 태스크 정의를 나열합니다.

aws ecs list-task-definitions

출력:

{ "taskDefinitionArns": [ "arn:aws:ecs:us-west-2:123456789012:task-definition/sleep300:2", "arn:aws:ecs:us-west-2:123456789012:task-definition/sleep360:1", "arn:aws:ecs:us-west-2:123456789012:task-definition/wordpress:3", "arn:aws:ecs:us-west-2:123456789012:task-definition/wordpress:4", "arn:aws:ecs:us-west-2:123456789012:task-definition/wordpress:5", "arn:aws:ecs:us-west-2:123456789012:task-definition/wordpress:6" ] }

예제 2: 패밀리에 등록된 태스크 정의를 나열하려면

다음 list-task-definitions 예제에서는 지정된 패밀리의 태스크 정의 개정을 나열합니다.

aws ecs list-task-definitions --family-prefix wordpress

출력:

{ "taskDefinitionArns": [ "arn:aws:ecs:us-west-2:123456789012:task-definition/wordpress:3", "arn:aws:ecs:us-west-2:123456789012:task-definition/wordpress:4", "arn:aws:ecs:us-west-2:123456789012:task-definition/wordpress:5", "arn:aws:ecs:us-west-2:123456789012:task-definition/wordpress:6" ] }

자세한 내용은 Amazon 개발자 안내서의 Amazon ECS 작업 정의를 참조하세요. ECS

  • 자세한 API 내용은 명령 참조ListTaskDefinitions의 섹션을 참조하세요. AWS CLI

다음 코드 예시에서는 list-tasks을 사용하는 방법을 보여 줍니다.

AWS CLI

예 1: 클러스터의 태스크를 나열하는 방법

다음 list-tasks 예시에서는 클러스터의 모든 태스크를 나열합니다.

aws ecs list-tasks --cluster default

출력:

{ "taskArns": [ "arn:aws:ecs:us-west-2:123456789012:task/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "arn:aws:ecs:us-west-2:123456789012:task/a1b2c3d4-5678-90ab-cdef-22222EXAMPLE" ] }

예 2: 특정 컨테이너 인스턴스의 태스크를 나열하는 방법

다음 list-tasks 예제에서는 컨테이너 인스턴스를 필터UUID로 사용하여 컨테이너 인스턴스의 작업을 나열합니다.

aws ecs list-tasks --cluster default --container-instance a1b2c3d4-5678-90ab-cdef-33333EXAMPLE

출력:

{ "taskArns": [ "arn:aws:ecs:us-west-2:123456789012:task/a1b2c3d4-5678-90ab-cdef-44444EXAMPLE" ] }

자세한 내용은 Amazon 개발자 안내서의 Amazon ECS 작업 정의를 참조하세요. ECS

  • 자세한 API 내용은 명령 참조ListTasks의 섹션을 참조하세요. AWS CLI

다음 코드 예시에서는 put-account-setting-default을 사용하는 방법을 보여 줍니다.

AWS CLI

기본 계정 설정을 수정하려면

다음 put-account-setting-default 예제에서는 계정의 모든 IAM 사용자 또는 역할에 대한 기본 계정 설정을 수정합니다. IAM 사용자 또는 역할이 이러한 설정을 명시적으로 재정의하지 않는 한 이러한 변경 사항은 전체 AWS 계정에 적용됩니다.

aws ecs put-account-setting-default --name serviceLongArnFormat --value enabled

출력:

{ "setting": { "name": "serviceLongArnFormat", "value": "enabled", "principalArn": "arn:aws:iam::123456789012:root" } }

자세한 내용은 Amazon 개발자 안내서의 Amazon 리소스 이름(ARNs) 및 IDs 섹션을 참조하세요. ECS

다음 코드 예시에서는 put-account-setting을 사용하는 방법을 보여 줍니다.

AWS CLI

IAM 사용자 계정의 계정 설정을 수정하려면

다음 put-account-setting 예제에서는 IAM 사용자 serviceLongArnFormat 계정에 대한 계정 설정을 활성화합니다.

aws ecs put-account-setting --name serviceLongArnFormat --value enabled

출력:

{ "setting": { "name": "serviceLongArnFormat", "value": "enabled", "principalArn": "arn:aws:iam::130757420319:user/your_username" } }

자세한 내용은 Amazon ECS 개발자 안내서계정 설정 수정을 참조하세요.

  • 자세한 API 내용은 명령 참조PutAccountSetting의 섹션을 참조하세요. AWS CLI

다음 코드 예시에서는 put-account-settings을 사용하는 방법을 보여 줍니다.

AWS CLI

IAM 사용자 또는 IAM 역할에 대한 계정 설정을 수정하려면

다음 put-account-setting 예제에서는 지정된 IAM 사용자 또는 IAM 역할에 대한 계정 설정을 수정합니다.

aws ecs put-account-setting \ --name serviceLongArnFormat \ --value enabled \ --principal-arn arn:aws:iam::123456789012:user/MyUser

출력:

{ "setting": { "name": "serviceLongArnFormat", "value": "enabled", "principalArn": "arn:aws:iam::123456789012:user/MyUser" } }
  • 자세한 API 내용은 명령 참조PutAccountSettings의 섹션을 참조하세요. AWS CLI

다음 코드 예시에서는 put-attributes을 사용하는 방법을 보여 줍니다.

AWS CLI

속성을 생성하고 Amazon ECS 리소스와 연결하려면

다음은 이름 스택과 값 프로덕션이 있는 속성을 컨테이너 인스턴스에 put-attributes 적용합니다.

aws ecs put-attributes \ --attributes name=stack,value=production,targetId=arn:aws:ecs:us-west-2:130757420319:container-instance/1c3be8ed-df30-47b4-8f1e-6e68ebd01f34

출력:

{ "attributes": [ { "name": "stack", "targetId": "arn:aws:ecs:us-west-2:130757420319:container-instance/1c3be8ed-df30-47b4-8f1e-6e68ebd01f34", "value": "production" } ] }
  • 자세한 API 내용은 명령 참조PutAttributes의 섹션을 참조하세요. AWS CLI

다음 코드 예시에서는 put-cluster-capacity-providers을 사용하는 방법을 보여 줍니다.

AWS CLI

예제 1: 클러스터에 기존 용량 공급자를 추가하려면

다음 put-cluster-capacity-providers 예제에서는 클러스터에 기존 용량 공급자를 추가합니다. create-capacity-provider 명령을 사용하여 용량 공급자를 생성합니다. 이 describe-clusters 명령은 현재 용량 공급자와 클러스터와 연결된 기본 용량 공급자 전략을 설명하는 데 사용됩니다. 클러스터에 새 용량 공급자를 추가할 때는 클러스터와 연결하려는 새 용량 공급자 외에 기존 용량 공급자를 모두 지정해야 합니다. 클러스터와 연결할 기본 용량 공급자 전략도 지정해야 합니다. 이 예제에서는 MyCluster 클러스터에 연결된 MyCapacityProvider1 용량 공급자가 있으며, 두 용량 공급자 모두에 작업이 균등하게 분산되도록 MyCapacityProvider2 용량 공급자를 추가하고 기본 용량 공급자 전략에 포함하려는 경우

aws ecs put-cluster-capacity-providers \ --cluster MyCluster \ --capacity-providers MyCapacityProvider1 MyCapacityProvider2 \ --default-capacity-provider-strategy capacityProvider=MyCapacityProvider1,weight=1 capacityProvider=MyCapacityProvider2,weight=1

출력:

{ "cluster": { "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/MyCluster", "clusterName": "MyCluster", "status": "ACTIVE", "registeredContainerInstancesCount": 0, "runningTasksCount": 0, "pendingTasksCount": 0, "activeServicesCount": 0, "statistics": [], "tags": [], "settings": [ { "name": "containerInsights", "value": "enabled" } ], "capacityProviders": [ "MyCapacityProvider1", "MyCapacityProvider2" ], "defaultCapacityProviderStrategy": [ { "capacityProvider": "MyCapacityProvider1", "weight": 1, "base": 0 }, { "capacityProvider": "MyCapacityProvider2", "weight": 1, "base": 0 } ], "attachments": [ { "id": "0fb0c8f4-6edd-4de1-9b09-17e470ee1918", "type": "as_policy", "status": "ACTIVE", "details": [ { "name": "capacityProviderName", "value": "MyCapacityProvider1" }, { "name": "scalingPolicyName", "value": "ECSManagedAutoScalingPolicy-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" } ] }, { "id": "ae592060-2382-4663-9476-b015c685593c", "type": "as_policy", "status": "ACTIVE", "details": [ { "name": "capacityProviderName", "value": "MyCapacityProvider2" }, { "name": "scalingPolicyName", "value": "ECSManagedAutoScalingPolicy-a1b2c3d4-5678-90ab-cdef-EXAMPLE22222" } ] } ], "attachmentsStatus": "UPDATE_IN_PROGRESS" } }

자세한 내용은 Amazon ECS 개발자 안내서클러스터 용량 공급자를 참조하세요.

예제 2: 클러스터에서 용량 공급자를 제거하려면

다음 put-cluster-capacity-providers 예제에서는 클러스터에서 용량 공급자를 제거합니다. 이 describe-clusters 명령은 클러스터와 연결된 현재 용량 공급자를 설명하는 데 사용됩니다. 클러스터에서 용량 공급자를 제거할 때는 클러스터와 연결하려는 용량 공급자와 클러스터와 연결할 기본 용량 공급자 전략을 지정해야 합니다. 이 예제에서는 클러스터에 MyCapacityProvider1MyCapacityProvider2 용량 공급자가 연결되어 있고 MyCapacityProvider2 용량 공급자를 제거하려고 하므로 업데이트된 기본 용량 공급자 전략과 함께 명령MyCapacityProvider1에만 를 지정합니다.

aws ecs put-cluster-capacity-providers \ --cluster MyCluster \ --capacity-providers MyCapacityProvider1 \ --default-capacity-provider-strategy capacityProvider=MyCapacityProvider1,weight=1,base=0

출력:

{ "cluster": { "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/MyCluster", "clusterName": "MyCluster", "status": "ACTIVE", "registeredContainerInstancesCount": 0, "runningTasksCount": 0, "pendingTasksCount": 0, "activeServicesCount": 0, "statistics": [], "tags": [], "settings": [ { "name": "containerInsights", "value": "enabled" } ], "capacityProviders": [ "MyCapacityProvider1" ], "defaultCapacityProviderStrategy": [ "capacityProvider": "MyCapacityProvider1", "weight": 1, "base": 0 ], "attachments": [ { "id": "0fb0c8f4-6edd-4de1-9b09-17e470ee1918", "type": "as_policy", "status": "ACTIVE", "details": [ { "name": "capacityProviderName", "value": "MyCapacityProvider1" }, { "name": "scalingPolicyName", "value": "ECSManagedAutoScalingPolicy-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" } ] }, { "id": "ae592060-2382-4663-9476-b015c685593c", "type": "as_policy", "status": "DELETING", "details": [ { "name": "capacityProviderName", "value": "MyCapacityProvider2" }, { "name": "scalingPolicyName", "value": "ECSManagedAutoScalingPolicy-a1b2c3d4-5678-90ab-cdef-EXAMPLE22222" } ] } ], "attachmentsStatus": "UPDATE_IN_PROGRESS" } }

자세한 내용은 Amazon ECS 개발자 안내서클러스터 용량 공급자를 참조하세요.

예제 3: 클러스터에서 모든 용량 공급자 제거

다음 put-cluster-capacity-providers 예제에서는 클러스터에서 기존 용량 공급자를 모두 제거합니다.

aws ecs put-cluster-capacity-providers \ --cluster MyCluster \ --capacity-providers [] \ --default-capacity-provider-strategy []

출력:

{ "cluster": { "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/MyCluster", "clusterName": "MyCluster", "status": "ACTIVE", "registeredContainerInstancesCount": 0, "runningTasksCount": 0, "pendingTasksCount": 0, "activeServicesCount": 0, "statistics": [], "tags": [], "settings": [ { "name": "containerInsights", "value": "enabled" } ], "capacityProviders": [], "defaultCapacityProviderStrategy": [], "attachments": [ { "id": "0fb0c8f4-6edd-4de1-9b09-17e470ee1918", "type": "as_policy", "status": "DELETING", "details": [ { "name": "capacityProviderName", "value": "MyCapacityProvider1" }, { "name": "scalingPolicyName", "value": "ECSManagedAutoScalingPolicy-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" } ] }, { "id": "ae592060-2382-4663-9476-b015c685593c", "type": "as_policy", "status": "DELETING", "details": [ { "name": "capacityProviderName", "value": "MyCapacityProvider2" }, { "name": "scalingPolicyName", "value": "ECSManagedAutoScalingPolicy-a1b2c3d4-5678-90ab-cdef-EXAMPLE22222" } ] } ], "attachmentsStatus": "UPDATE_IN_PROGRESS" } }

자세한 내용은 Amazon ECS 개발자 안내서클러스터 용량 공급자를 참조하세요.

다음 코드 예시에서는 register-task-definition을 사용하는 방법을 보여 줍니다.

AWS CLI

예제 1: JSON 파일에 작업 정의를 등록하려면

다음 register-task-definition 예제에서는 지정된 패밀리에 태스크 정의를 등록합니다. 컨테이너 정의는 지정된 파일 위치에 JSON 형식으로 저장됩니다.

aws ecs register-task-definition \ --cli-input-json file://<path_to_json_file>/sleep360.json

sleep360.json의 콘텐츠:

{ "containerDefinitions": [ { "name": "sleep", "image": "busybox", "cpu": 10, "command": [ "sleep", "360" ], "memory": 10, "essential": true } ], "family": "sleep360" }

출력:

{ "taskDefinition": { "status": "ACTIVE", "family": "sleep360", "placementConstraints": [], "compatibilities": [ "EXTERNAL", "EC2" ], "volumes": [], "taskDefinitionArn": "arn:aws:ecs:us-east-1:123456789012:task-definition/sleep360:1", "containerDefinitions": [ { "environment": [], "name": "sleep", "mountPoints": [], "image": "busybox", "cpu": 10, "portMappings": [], "command": [ "sleep", "360" ], "memory": 10, "essential": true, "volumesFrom": [] } ], "revision": 1 } }

자세한 내용은 Amazon ECS 개발자 안내서작업 정의 예제를 참조하세요.

예제 2: JSON 문자열 파라미터로 작업 정의를 등록하려면

다음 register-task-definition 예제에서는 이스케이프된 큰따옴표가 있는 JSON 문자열 파라미터로 제공된 컨테이너 정의를 사용하여 작업 정의를 등록합니다.

aws ecs register-task-definition \ --family sleep360 \ --container-definitions "[{\"name\":\"sleep\",\"image\":\"busybox\",\"cpu\":10,\"command\":[\"sleep\",\"360\"],\"memory\":10,\"essential\":true}]"

출력은 이전 예제와 동일합니다.

자세한 내용은 Amazon ECS 개발자 안내서작업 정의 생성을 참조하세요.

다음 코드 예시에서는 run-task을 사용하는 방법을 보여 줍니다.

AWS CLI

기본 클러스터에서 작업을 실행하려면

다음 run-task 예제에서는 기본 클러스터에서 작업을 실행하고 클라이언트 토큰을 사용합니다.

aws ecs run-task \ --cluster default \ --task-definition sleep360:1 \ --client-token 550e8400-e29b-41d4-a716-446655440000

출력:

{ "tasks": [ { "attachments": [], "attributes": [ { "name": "ecs.cpu-architecture", "value": "x86_64" } ], "availabilityZone": "us-east-1b", "capacityProviderName": "example-capacity-provider", "clusterArn": "arn:aws:ecs:us-east-1:123456789012:cluster/default", "containerInstanceArn": "arn:aws:ecs:us-east-1:123456789012:container-instance/default/bc4d2ec611d04bb7bb97e83ceEXAMPLE", "containers": [ { "containerArn": "arn:aws:ecs:us-east-1:123456789012:container/default/d6f51cc5bbc94a47969c92035e9f66f8/75853d2d-711e-458a-8362-0f0aEXAMPLE", "taskArn": "arn:aws:ecs:us-east-1:123456789012:task/default/d6f51cc5bbc94a47969c9203EXAMPLE", "name": "sleep", "image": "busybox", "lastStatus": "PENDING", "networkInterfaces": [], "cpu": "10", "memory": "10" } ], "cpu": "10", "createdAt": "2023-11-21T16:59:34.403000-05:00", "desiredStatus": "RUNNING", "enableExecuteCommand": false, "group": "family:sleep360", "lastStatus": "PENDING", "launchType": "EC2", "memory": "10", "overrides": { "containerOverrides": [ { "name": "sleep" } ], "inferenceAcceleratorOverrides": [] }, "tags": [], "taskArn": "arn:aws:ecs:us-east-1:123456789012:task/default/d6f51cc5bbc94a47969c9203EXAMPLE", "taskDefinitionArn": "arn:aws:ecs:us-east-1:123456789012:task-definition/sleep360:1", "version": 1 } ], "failures": [] }

자세한 내용은 Amazon ECS 개발자 안내서작업 실행을 참조하세요.

  • 자세한 API 내용은 명령 참조RunTask의 섹션을 참조하세요. AWS CLI

다음 코드 예시에서는 start-task을 사용하는 방법을 보여 줍니다.

AWS CLI

새 작업을 시작하려면

다음은 기본 클러스터의 지정된 컨테이너 인스턴스에서 작업 정의의 최신 개정을 사용하여 sleep360 작업을 start-task 시작합니다.

aws ecs start-task \ --task-definition sleep360 \ --container-instances 765936fadbdd46b5991a4bd70c2a43d4

출력:

{ "tasks": [ { "taskArn": "arn:aws:ecs:us-west-2:130757420319:task/default/666fdccc2e2d4b6894dd422f4eeee8f8", "clusterArn": "arn:aws:ecs:us-west-2:130757420319:cluster/default", "taskDefinitionArn": "arn:aws:ecs:us-west-2:130757420319:task-definition/sleep360:3", "containerInstanceArn": "arn:aws:ecs:us-west-2:130757420319:container-instance/default/765936fadbdd46b5991a4bd70c2a43d4", "overrides": { "containerOverrides": [ { "name": "sleep" } ] }, "lastStatus": "PENDING", "desiredStatus": "RUNNING", "cpu": "128", "memory": "128", "containers": [ { "containerArn": "arn:aws:ecs:us-west-2:130757420319:container/75f11ed4-8a3d-4f26-a33b-ad1db9e02d41", "taskArn": "arn:aws:ecs:us-west-2:130757420319:task/default/666fdccc2e2d4b6894dd422f4eeee8f8", "name": "sleep", "lastStatus": "PENDING", "networkInterfaces": [], "cpu": "10", "memory": "10" } ], "version": 1, "createdAt": 1563421494.186, "group": "family:sleep360", "launchType": "EC2", "attachments": [], "tags": [] } ], "failures": [] }
  • 자세한 API 내용은 명령 참조StartTask의 섹션을 참조하세요. AWS CLI

다음 코드 예시에서는 stop-task을 사용하는 방법을 보여 줍니다.

AWS CLI

작업을 중지하려면

다음은 지정된 태스크가 기본 클러스터에서 실행되지 않도록 stop-task 중지합니다.

aws ecs stop-task \ --task 666fdccc2e2d4b6894dd422f4eeee8f8

출력:

{ "task": { "taskArn": "arn:aws:ecs:us-west-2:130757420319:task/default/666fdccc2e2d4b6894dd422f4eeee8f8", "clusterArn": "arn:aws:ecs:us-west-2:130757420319:cluster/default", "taskDefinitionArn": "arn:aws:ecs:us-west-2:130757420319:task-definition/sleep360:3", "containerInstanceArn": "arn:aws:ecs:us-west-2:130757420319:container-instance/default/765936fadbdd46b5991a4bd70c2a43d4", "overrides": { "containerOverrides": [] }, "lastStatus": "STOPPED", "desiredStatus": "STOPPED", "cpu": "128", "memory": "128", "containers": [], "version": 2, "stoppedReason": "Taskfailedtostart", "stopCode": "TaskFailedToStart", "connectivity": "CONNECTED", "connectivityAt": 1563421494.186, "pullStartedAt": 1563421494.252, "pullStoppedAt": 1563421496.252, "executionStoppedAt": 1563421497, "createdAt": 1563421494.186, "stoppingAt": 1563421497.252, "stoppedAt": 1563421497.252, "group": "family:sleep360", "launchType": "EC2", "attachments": [], "tags": [] } }
  • 자세한 API 내용은 명령 참조StopTask의 섹션을 참조하세요. AWS CLI

다음 코드 예시에서는 tag-resource을 사용하는 방법을 보여 줍니다.

AWS CLI

리소스에 태그를 지정하려면

다음 tag-resource 예제에서는 지정된 리소스에 단일 태그를 추가합니다.

aws ecs tag-resource \ --resource-arn arn:aws:ecs:us-west-2:123456789012:cluster/MyCluster --tags key=key1,value=value1

이 명령은 출력을 생성하지 않습니다.

리소스에 여러 태그를 추가하려면

다음 tag-resource 예제에서는 지정된 리소스에 여러 태그를 추가합니다.

aws ecs tag-resource \ --resource-arn arn:aws:ecs:us-west-2:123456789012:cluster/MyCluster \ --tags key=key1,value=value1 key=key2,value=value2 key=key3,value=value3

이 명령은 출력을 생성하지 않습니다.

  • 자세한 API 내용은 명령 참조TagResource의 섹션을 참조하세요. AWS CLI

다음 코드 예시에서는 untag-resource을 사용하는 방법을 보여 줍니다.

AWS CLI

리소스에서 태그를 제거하려면

다음 untag-resource 예제에서는 지정된 리소스에서 나열된 태그를 제거합니다.

aws ecs untag-resource \ --resource-arn arn:aws:ecs:us-west-2:123456789012:cluster/MyCluster \ --tag-keys key1,key2

이 명령은 출력을 생성하지 않습니다.

  • 자세한 API 내용은 명령 참조UntagResource의 섹션을 참조하세요. AWS CLI

다음 코드 예시에서는 update-cluster-settings을 사용하는 방법을 보여 줍니다.

AWS CLI

클러스터의 설정을 수정하려면

다음 update-cluster-settings 예제에서는 default 클러스터에 대한 CloudWatch Container Insights를 활성화합니다.

aws ecs update-cluster-settings \ --cluster default \ --settings name=containerInsights,value=enabled

출력:

{ "cluster": { "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/MyCluster", "clusterName": "default", "status": "ACTIVE", "registeredContainerInstancesCount": 0, "runningTasksCount": 0, "pendingTasksCount": 0, "activeServicesCount": 0, "statistics": [], "tags": [], "settings": [ { "name": "containerInsights", "value": "enabled" } ] } }

자세한 내용은 Amazon ECS 개발자 안내서계정 설정 수정을 참조하세요.

다음 코드 예시에서는 update-container-agent을 사용하는 방법을 보여 줍니다.

AWS CLI

Amazon 컨테이너 인스턴스에서 ECS 컨테이너 에이전트를 업데이트하려면

다음 update-container-agent 예제에서는 기본 클러스터의 지정된 컨테이너 인스턴스에서 컨테이너 에이전트를 업데이트합니다.

aws ecs update-container-agent --cluster default --container-instance a1b2c3d4-5678-90ab-cdef-11111EXAMPLE

출력:

{ "containerInstance": { "status": "ACTIVE", ... "agentUpdateStatus": "PENDING", "versionInfo": { "agentVersion": "1.0.0", "agentHash": "4023248", "dockerVersion": "DockerVersion: 1.5.0" } } }

자세한 내용은 Amazon 개발자 안내서의 Amazon ECS 컨테이너 에이전트 업데이트를 참조하세요. ECS

다음 코드 예시에서는 update-container-instances-state을 사용하는 방법을 보여 줍니다.

AWS CLI

컨테이너 인스턴스의 상태를 업데이트하려면

다음은 클러스터에서 DRAINING 제거할 지정된 컨테이너 인스턴스의 상태를 등록된 클러스터에서 update-container-instances-state 업데이트합니다.

aws ecs update-container-instances-state \ --container-instances 765936fadbdd46b5991a4bd70c2a43d4 \ --status DRAINING

출력:

{ "containerInstances": [ { "containerInstanceArn": "arn:aws:ecs:us-west-2:130757420319:container-instance/default/765936fadbdd46b5991a4bd70c2a43d4", "ec2InstanceId": "i-013d87ffbb4d513bf", "version": 4390, "versionInfo": { "agentVersion": "1.29.0", "agentHash": "a190a73f", "dockerVersion": "DockerVersion:18.06.1-ce" }, "remainingResources": [ { "name": "CPU", "type": "INTEGER", "doubleValue": 0, "longValue": 0, "integerValue": 1536 }, { "name": "MEMORY", "type": "INTEGER", "doubleValue": 0, "longValue": 0, "integerValue": 2681 }, { "name": "PORTS", "type": "STRINGSET", "doubleValue": 0, "longValue": 0, "integerValue": 0, "stringSetValue": [ "22", "2376", "2375", "51678", "51679" ] }, { "name": "PORTS_UDP", "type": "STRINGSET", "doubleValue": 0, "longValue": 0, "integerValue": 0, "stringSetValue": [] } ], "registeredResources": [ { "name": "CPU", "type": "INTEGER", "doubleValue": 0, "longValue": 0, "integerValue": 2048 }, { "name": "MEMORY", "type": "INTEGER", "doubleValue": 0, "longValue": 0, "integerValue": 3705 }, { "name": "PORTS", "type": "STRINGSET", "doubleValue": 0, "longValue": 0, "integerValue": 0, "stringSetValue": [ "22", "2376", "2375", "51678", "51679" ] }, { "name": "PORTS_UDP", "type": "STRINGSET", "doubleValue": 0, "longValue": 0, "integerValue": 0, "stringSetValue": [] } ], "status": "DRAINING", "agentConnected": true, "runningTasksCount": 2, "pendingTasksCount": 0, "attributes": [ { "name": "ecs.capability.secrets.asm.environment-variables" }, { "name": "ecs.capability.branch-cni-plugin-version", "value": "e0703516-" }, { "name": "ecs.ami-id", "value": "ami-00e0090ac21971297" }, { "name": "ecs.capability.secrets.asm.bootstrap.log-driver" }, { "name": "com.amazonaws.ecs.capability.logging-driver.none" }, { "name": "ecs.capability.ecr-endpoint" }, { "name": "ecs.capability.docker-plugin.local" }, { "name": "ecs.capability.task-cpu-mem-limit" }, { "name": "ecs.capability.secrets.ssm.bootstrap.log-driver" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.30" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.31" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.32" }, { "name": "ecs.availability-zone", "value": "us-west-2c" }, { "name": "ecs.capability.aws-appmesh" }, { "name": "com.amazonaws.ecs.capability.logging-driver.awslogs" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.24" }, { "name": "ecs.capability.task-eni-trunking" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.25" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.26" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.27" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.28" }, { "name": "com.amazonaws.ecs.capability.privileged-container" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.29" }, { "name": "ecs.cpu-architecture", "value": "x86_64" }, { "name": "com.amazonaws.ecs.capability.ecr-auth" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.20" }, { "name": "ecs.os-type", "value": "linux" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.21" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.22" }, { "name": "ecs.capability.task-eia" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.23" }, { "name": "ecs.capability.private-registry-authentication.secretsmanager" }, { "name": "com.amazonaws.ecs.capability.logging-driver.syslog" }, { "name": "com.amazonaws.ecs.capability.logging-driver.json-file" }, { "name": "ecs.capability.execution-role-awslogs" }, { "name": "ecs.vpc-id", "value": "vpc-1234" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.17" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.18" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.19" }, { "name": "ecs.capability.task-eni" }, { "name": "ecs.capability.execution-role-ecr-pull" }, { "name": "ecs.capability.container-health-check" }, { "name": "ecs.subnet-id", "value": "subnet-1234" }, { "name": "ecs.instance-type", "value": "c5.large" }, { "name": "com.amazonaws.ecs.capability.task-iam-role-network-host" }, { "name": "ecs.capability.container-ordering" }, { "name": "ecs.capability.cni-plugin-version", "value": "91ccefc8-2019.06.0" }, { "name": "ecs.capability.pid-ipc-namespace-sharing" }, { "name": "ecs.capability.secrets.ssm.environment-variables" }, { "name": "com.amazonaws.ecs.capability.task-iam-role" } ], "registeredAt": 1560788724.507, "attachments": [], "tags": [] } ], "failures": [] }

다음 코드 예시에서는 update-service-primary-task-set을 사용하는 방법을 보여 줍니다.

AWS CLI

서비스의 기본 태스크 세트를 업데이트하려면

다음 update-service-primary-task-set 예제에서는 지정된 서비스에 대한 기본 태스크 세트를 업데이트합니다.

aws ecs update-service-primary-task-set \ --cluster MyCluster \ --service MyService \ --primary-task-set arn:aws:ecs:us-west-2:123456789012:task-set/MyCluster/MyService/ecs-svc/1234567890123456789

출력:

{ "taskSet": { "id": "ecs-svc/1234567890123456789", "taskSetArn": "arn:aws:ecs:us-west-2:123456789012:task-set/MyCluster/MyService/ecs-svc/1234567890123456789", "status": "PRIMARY", "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/sample-fargate:2", "computedDesiredCount": 1, "pendingCount": 0, "runningCount": 0, "createdAt": 1557128360.711, "updatedAt": 1557129412.653, "launchType": "EC2", "networkConfiguration": { "awsvpcConfiguration": { "subnets": [ "subnet-12344321" ], "securityGroups": [ "sg-12344312" ], "assignPublicIp": "DISABLED" } }, "loadBalancers": [], "serviceRegistries": [], "scale": { "value": 50.0, "unit": "PERCENT" }, "stabilityStatus": "STABILIZING", "stabilityStatusAt": 1557129279.914 } }

다음 코드 예시에서는 update-service을 사용하는 방법을 보여 줍니다.

AWS CLI

예 1: 서비스에 사용되는 태스크 정의를 변경하는 방법

다음 update-service 예시에서는 amazon-ecs-sample 태스크 정의를 사용하도록 my-http-service 서비스를 업데이트합니다.

aws ecs update-service --service my-http-service --task-definition amazon-ecs-sample

예 2: 서비스의 태스크 수를 변경하는 방법

다음 update-service 예시에서는 my-http-service 서비스의 원하는 태스크 수를 3으로 업데이트합니다.

aws ecs update-service --service my-http-service --desired-count 3

자세한 내용은 Amazon ECS 개발자 안내서서비스 업데이트를 참조하세요.

  • 자세한 API 내용은 명령 참조UpdateService의 섹션을 참조하세요. AWS CLI

다음 코드 예시에서는 update-task-set을 사용하는 방법을 보여 줍니다.

AWS CLI

작업 세트를 업데이트하려면

다음 update-task-set 예제에서는 작업 세트를 업데이트하여 스케일을 조정합니다.

aws ecs update-task-set \ --cluster MyCluster \ --service MyService \ --task-set arn:aws:ecs:us-west-2:123456789012:task-set/MyCluster/MyService/ecs-svc/1234567890123456789 \ --scale value=50,unit=PERCENT

출력:

{ "taskSet": { "id": "ecs-svc/1234567890123456789", "taskSetArn": "arn:aws:ecs:us-west-2:123456789012:task-set/MyCluster/MyService/ecs-svc/1234567890123456789", "status": "ACTIVE", "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/sample-fargate:2", "computedDesiredCount": 0, "pendingCount": 0, "runningCount": 0, "createdAt": 1557128360.711, "updatedAt": 1557129279.914, "launchType": "EC2", "networkConfiguration": { "awsvpcConfiguration": { "subnets": [ "subnet-12344321" ], "securityGroups": [ "sg-12344321" ], "assignPublicIp": "DISABLED" } }, "loadBalancers": [], "serviceRegistries": [], "scale": { "value": 50.0, "unit": "PERCENT" }, "stabilityStatus": "STABILIZING", "stabilityStatusAt": 1557129279.914 } }
  • 자세한 API 내용은 명령 참조UpdateTaskSet의 섹션을 참조하세요. AWS CLI