ecs
cluster
$ aws ecs list-clusters
$ aws ecs describe-clusters --clusters <clusterArn>
$ aws ecs create-cluster --cluster-name <cluster-name> --tags '[{"key": "Name","value": "test"}]'
$ aws ecs delete-cluster --cluster <clusterArn>
$ aws ecs delete-cluster --cluster <clusterArn>
task definition
$ aws ecs list-task-definitions
$ aws ecs describe-task-definition --task-definition <taskDefinitionArn>
$ jq . task-definition.json
{
"family": "sample-fargate",
"networkMode": "awsvpc",
"containerDefinitions": [
{
"name": "fargate-app",
"image": "busybox",
"essential": true,
"command": [
"sleep",
"360"
]
}
],
"requiresCompatibilities": [
"FARGATE"
],
"cpu": "256",
"memory": "512"
}
$ aws ecs register-task-definition --cli-input-json file://task-definition.json
$ aws ecs deregister-task-definition --task-definition <taskDefinitionArn>
task
When you use fargate and retrieve docker image from docker hub, you have to use internet gateway or nat gateway in the vpc.
$ aws ecs list-tasks --cluster <clusterArn>
$ aws ecs describe-tasks --cluster <clusterArn> --tasks <taskArn>
$ jq . network-configuration.json
{
"awsvpcConfiguration": {
"subnets": [
"<subnet>"
],
"securityGroups": [
"<securitygroup>"
],
"assignPublicIp": "ENABLED"
}
}
$ aws ecs run-task --task-definition <taskDefinitionArn> --cluster <clusterArn> --count 1 --launch-type FARGATE --network-configuration file://network-configuration.json
$ aws ecs stop-task --cluster <clusterArn> --task <taskArn>
tags
$ aws ecs list-tags-for-resource --resource-arn <resource-arn>
$ aws ecs tag-resource --resource-arn <resource-arn> --tags '[{"key": "Name","value": "test"}]'
service
$ aws ecs list-services --cluster <clusterArn>
$ aws ecs describe-services --cluster <clusterArn> --services <serviceArn>
$ aws ecs create-service --cluster <clusterArn> --service-name <serviceName> --task-definition <task-definition> --desired-count 1 --launch-type FARGATE --network-configuration file://network-configuration.json
$ aws ecs list-tasks --cluster <clusterArn>
$ aws ecs describe-tasks --cluster <clusterArn> --tasks <taskArn>
$ aws ecs update-service --cluster <clusterArn> --service <serviceArn> --desired-count 0
$ aws ecs delete-service --cluster <clusterArn> --service <serviceArn>