How to get an instance ID on AWS EC2 instance
Hey everyone!
Hope you are safe and doing great!
When we try to automate some of our projects within AWS EC2 instances, getting instances ID via a terminal/script might be pretty helpful.
In this short guide, we will see how we can accomplish this.
1. Via cat command
cat /sys/devices/virtual/dmi/id/board_asset_tag
2. Via aws ec2 describe-instances command
ip=$(hostname -I | awk {'print $1'})
aws ec2 describe-instances --filters Name=private-ip-address,Values=$ip | grep InstanceId | awk {'print $2'} | tr -d \",
3. Official AWS way
TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \
&& curl -H "X-aws-ec2-metadata-token: $TOKEN" -v http://169.254.169.254/latest/meta-data/instance-id
4. Variables adapted way
TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"`
AWS_REGION=`/usr/bin/curl -H "X-aws-ec2-metadata-token: $TOKEN" -v http://169.254.169.254/latest/meta-data/placement/region`
EC2_INSTANCE_ID=`/usr/bin/curl -H "X-aws-ec2-metadata-token: $TOKEN" -v http://169.254.169.254/latest/meta-data/instance-id`
You are awesome!
That is it. Hope this short guide helped you and saved your time for the best.
Thank you for reading and see you soon.