I’m trying to get Kafka running on an AWS ECS container. I have this setup already / working fine on my local docker environment, using the
To get this working locally, I needed to ensure the ADVERTISED_HOST environment variable was set.
ADVERTISED_HOST needed to be set as the containers external IP, otherwise when I try to connect it was just giving me
docker-compose.yaml has this for the kafka container:
Now the problem is, I don’t know what the IP is going to be, as I dont know which instance this will run on. So how do I set that environment variable?
Your entrypoint script will need to call the EC2 Metadata Service on startup (in this case http://169.254.169.254/latest/meta-data/local-hostname) to get the external-to-docker hostname and set that variable.
[ec2-user ~]$ curl http://169.254.169.254/latest/meta-data/local-hostname