mirror of
https://gitea.com/mcereda/oam.git
synced 2026-02-23 12:04:23 +00:00
chore(aws): revise and improve commands, add ecs
This commit is contained in:
114
knowledge base/cloud computing/aws/ecs.md
Normal file
114
knowledge base/cloud computing/aws/ecs.md
Normal file
@@ -0,0 +1,114 @@
|
||||
# Elastic Container Service
|
||||
|
||||
1. [TL;DR](#tldr)
|
||||
1. [Further readings](#further-readings)
|
||||
1. [Sources](#sources)
|
||||
|
||||
## TL;DR
|
||||
|
||||
<details>
|
||||
<summary>Usage</summary>
|
||||
|
||||
```sh
|
||||
# List services.
|
||||
aws ecs list-services --cluster 'clusterName'
|
||||
|
||||
# Scale services.
|
||||
aws ecs update-service --cluster 'clusterName' --service 'serviceName' --desired-count '0'
|
||||
aws ecs update-service --cluster 'clusterName' --service 'serviceName' --desired-count '10'
|
||||
|
||||
# Wait for services to be running.
|
||||
aws ecs wait services-stable --cluster 'clusterName' --services 'serviceName' …
|
||||
|
||||
# Delete services.
|
||||
# Cannot really be deleted if scaled above 0.
|
||||
aws ecs delete-service --cluster 'clusterName' --service 'serviceName'
|
||||
aws ecs delete-service --cluster 'clusterName' --service 'serviceName' --force
|
||||
|
||||
# List task definitions.
|
||||
aws ecs list-task-definitions --family-prefix 'familyPrefix'
|
||||
|
||||
# Deregister task definitions.
|
||||
aws ecs deregister-task-definition --task-definition 'taskDefinitionArn'
|
||||
|
||||
# Delete task definitions.
|
||||
# The task definition must be deregistered.
|
||||
aws ecs delete-task-definitions --task-definitions 'taskDefinitionArn' …
|
||||
|
||||
# List tasks.
|
||||
aws ecs list-tasks --cluster 'clusterName'
|
||||
aws ecs list-tasks --cluster 'clusterName' --service-name 'serviceName'
|
||||
|
||||
# Get information about tasks.
|
||||
aws ecs describe-tasks --cluster 'clusterName' --tasks 'taskIdOrArn' …
|
||||
|
||||
# Wait for tasks to be running.
|
||||
aws ecs wait tasks-running --cluster 'clusterName' --tasks 'taskIdOrArn' …
|
||||
|
||||
# Access shells on containers in ECS.
|
||||
aws ecs execute-command \
|
||||
--cluster 'clusterName' --task 'taskId' --container 'containerName' \
|
||||
--interactive --command '/bin/bash'
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Real world use cases</summary>
|
||||
|
||||
```sh
|
||||
# Get the ARNs of tasks for specific services.
|
||||
aws ecs list-tasks --cluster 'testCluster' --service-name 'testService' --query 'taskArns' --output 'text'
|
||||
|
||||
# Get the private IP Address of containers.
|
||||
aws ecs describe-tasks --output 'text' \
|
||||
--cluster 'testCluster' --tasks 'testTask' \
|
||||
--query "tasks[].attachments[].details[?(name=='privateDnsName')].value"
|
||||
|
||||
# Connect to the private DNS name of containers in ECS.
|
||||
curl -fs "http://$(\
|
||||
aws ecs describe-tasks --cluster 'testCluster' --tasks "$(\
|
||||
aws ecs list-tasks --cluster 'testCluster' --service-name 'testService' --query 'taskArns' --output 'text' \
|
||||
)" --query "tasks[].attachments[].details[?(name=='privateDnsName')].value" --output 'text' \
|
||||
):8080"
|
||||
|
||||
# Delete services.
|
||||
aws ecs delete-service --cluster 'testCluster' --service 'testService' --force
|
||||
|
||||
# Delete task definitions.
|
||||
aws ecs list-task-definitions --family-prefix 'testService' --output 'text' --query 'taskDefinitionArns' \
|
||||
| xargs -n '1' aws ecs deregister-task-definition --task-definition
|
||||
|
||||
# Wait for tasks to be running.
|
||||
aws ecs list-tasks --cluster 'testCluster' --family 'testService' --output 'text' --query 'taskArns' \
|
||||
| xargs -p aws ecs wait tasks-running --cluster 'testCluster' --tasks
|
||||
while [[ $(aws ecs list-tasks --query 'taskArns' --output 'text' --cluster 'testCluster' --service-name 'testService') == "" ]]; do sleep 1; done
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Further readings
|
||||
|
||||
- [Amazon Web Services]
|
||||
- [Amazon ECS task lifecycle]
|
||||
- AWS' [CLI]
|
||||
- [Troubleshoot Amazon ECS deployment issues]
|
||||
|
||||
### Sources
|
||||
|
||||
<!--
|
||||
Reference
|
||||
═╬═Time══
|
||||
-->
|
||||
|
||||
<!-- In-article sections -->
|
||||
<!-- Knowledge base -->
|
||||
[amazon web services]: README.md
|
||||
[cli]: cli.md
|
||||
|
||||
<!-- Files -->
|
||||
<!-- Upstream -->
|
||||
[amazon ecs task lifecycle]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-lifecycle-explanation.html
|
||||
[troubleshoot amazon ecs deployment issues]: https://docs.aws.amazon.com/codedeploy/latest/userguide/troubleshooting-ecs.html
|
||||
|
||||
<!-- Others -->
|
||||
Reference in New Issue
Block a user