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
已提問 2 年前檢視次數 5012 次
1 個回答
1
已接受的答案

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

Jason_S
已回答 2 年前
AWS
專家
已審閱 2 年前
  • Thank you for feedback.

您尚未登入。 登入 去張貼答案。

一個好的回答可以清楚地回答問題並提供建設性的意見回饋,同時有助於提問者的專業成長。

回答問題指南