Skip to content

Instantly share code, notes, and snippets.

@adiii717
Created July 3, 2020 07:01
Show Gist options
  • Save adiii717/bbfdfaad6e2930bc1ee1003587bbb908 to your computer and use it in GitHub Desktop.
Save adiii717/bbfdfaad6e2930bc1ee1003587bbb908 to your computer and use it in GitHub Desktop.
Get EC2 IP address for all tasks running in a particular AWS ECS services against cluster
#!/bin/bash
CLUSTER_NAME="mycluster"
SERVICE_NAME="app-service"
REGION="us-west-2"
echo "[INFO] Fetching tasks list for Cluster: $CLUSTER_NAME and Service: $SERVICE_NAME"
TASKS_ARN=($(aws ecs list-tasks --cluster $CLUSTER_NAME --service $SERVICE_NAME --query 'taskArns[]' --output text))
for task in ${!TASKS_ARN[@]}; do
container_instances=$(aws ecs describe-tasks --cluster $CLUSTER_NAME --tasks ${TASKS_ARN[$task]} --query 'tasks[].containerInstanceArn' --output text)
ec2_instance_id=$(aws ecs describe-container-instances --cluster $CLUSTER_NAME --container-instances $container_instances --region $REGION --query 'containerInstances[*].ec2InstanceId' --output text)
ec2_ip=$(aws ec2 describe-instances --instance-id $ec2_instance_id --query 'Reservations[].Instances[].PublicIpAddress' --output text)
echo "[INFO] Task having ARN ${TASKS_ARN[$task]} runnng on EC2 machine having IP: $ec2_ip"
echo "[INFO] Fetchec completed for task number $(($task+1)) out of ${#TASKS_ARN[@]},having Task ARN: ${TASKS_ARN[$task]}"
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment