You can use AWS EC2 metadata service to get the EC2 instance region or availability zone from within an ec2 instance.
The link to EC2 metadata service is http://169.254.169.254/latest/meta-data/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
## ----------------- ## Availability Zone ## ----------------- ## for IMDSv1 (default) curl http://169.254.169.254/latest/meta-data/placement/availability-zone ## for IMDSv2 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/placement/availability-zone ## ------ ## Region ## ------ ## for IMDSv1 (default) REGION="`wget -qO- http://instance-data/latest/meta-data/placement/availability-zone | sed -e 's:\([0-9][0-9]*\)[a-z]*\$:\\1:'`" echo $REGION ## for IMDSv2 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/public-ipv4 | sed -e 's:\([0-9][0-9]*\)[a-z]*\$:\\1:' |