ECS Fargate - How to get IP Address

0

Hi All,

I am running an ECS Cluster for our Kafka Connect Images and have a working configuration deployed. To scale up Kafka Connect one of the things you need to do for each container is ensure that the Kafka Connect Rest Hostname is set to prevent a 409 Conflict when adding tasks (if you are running as part of a cluster). Using localhost is fine for a single node - but not for multiple.

Since I am running ECS in Fargate awsvpc mode. I didn't see a way to get the IP of the Container (per AWS docs not supported in awsvpc mode).

To work around this problem I added a custom command for the container on startup to call the container metadata service and set it that way e.g.

JSON=$(curl ${ECS_CONTAINER_METADATA_URI}/task)
TASK=$(echo $JSON | jq -r '.Containers[0].Networks[0].IPv4Addresses[0]')
CONNECT_REST_ADVERTISED_HOST_NAME=$TASK

Is there a more native way to do this?

Best, Wayne

xathras
asked 2 years ago4834 views
1 Answer
1
Accepted Answer

The container metadata URI is the AWS native way to get node ENI IP.

Jason_S
answered 2 years ago
AWS
EXPERT
reviewed 2 years ago
  • Thank you for feedback.

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions