Skip to main content

AWS ECS Exec

Execute commands inside a running container (Tasks) in a ECS Cluster, this type is useful when there's a necessity to change the state of a running system. It's possible to pass any kind of command to a container through Runops.

Type: ecs-exec

In order for this to work the ECS need to be configured properly with the steps:

1. Enabling and using ECS Exec#

2. Grant permissions to execute command#

Run the script bellow to create an AWS user for Runops.

It has the permissions to access ECS clusters with the tag: access=runops.

export AWS_REGION=us-east-2
mkdir runops; cd runops
curl -s https://www.runops.io/docs/quickstart/ecs-exec.tf -o main.tf
terraform init; terraform apply

After execution get the terraform output for the next step:

terraform output id
terraform output secret

Then add a tag with key=access, and value=runops to any cluster you want to connect to Runops.

3. Create a connection with the configurations#

NameRequiredDescription
ECS_CLUSTERyesThe name of the ECS Cluster.
ECS_SERVICE_NAMEyesThe name of the ECS service.
ECS_CONTAINERyesThe name of the running container of the ECS Task.
ECS_AWS_ACCESS_KEY_IDyesECS AWS Access Key ID.
ECS_AWS_SECRET_ACCESS_KEYyesECS AWS Secret Access Key.
ECS_AWS_REGIONyesECS AWS Region.
info

The ECS task id is obtained dynamically listing it by its service name

Examples#

Run env command to dump the environment variables of a container instance.

runops tasks create --target my-ecs-service --script 'env'

Limitations#

  • Executing an invalid ECS task will not result in an Runops Task error.