[amazon-ec2] EC2 인스턴스 내에서 지역 찾기

인스턴스 내에서 인스턴스 영역을 찾는 방법이 있습니까?

인스턴스 id찾는 방법과 비슷한 것을 찾고 있습니다.



답변

해당 URL ( http://169.254.169.254/latest/dynamic/instance-identity/document )이 더 이상 작동하지 않는 것 같습니다. 사용하려고하면 404가 나타납니다. 그래도 작동하는 다음 코드가 있습니다.

EC2_AVAIL_ZONE=`curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone`
EC2_REGION="`echo \"$EC2_AVAIL_ZONE\" | sed 's/[a-z]$//'`"

도움이 되었기를 바랍니다.

편집 :sed 의견을 기반으로 개선


답변

이를 달성하는 또 다른 방법이 있습니다.

REGION=`curl http://169.254.169.254/latest/dynamic/instance-identity/document|grep region|awk -F\" '{print $4}'`

echo $REGION

us-east-1


답변

를 사용해도 괜찮다 jq면 다음을 실행할 수 있습니다.

curl -s http://169.254.169.254/latest/dynamic/instance-identity/document | jq .region -r

가장 깨끗한 방법이라고 생각합니다.


답변

ec2-metadata --availability-zone | sed 's/.$//'

데비안 기반 시스템의 경우 명령에는 대시가 없습니다.

ec2metadata --availability-zone | sed 's/.$//'


답변

정규 표현식을 피하려면 다음을 사용하여 파이썬으로 할 수있는 한 줄짜리입니다.

curl -s http://169.254.169.254/latest/dynamic/instance-identity/document | python -c "import json,sys; print json.loads(sys.stdin.read())['region']"


답변

ec2-metadata를 사용할 수 있습니다 :

ec2-metadata -z | grep -Po "(us|sa|eu|ap)-(north|south|central)?(east|west)?-[0-9]+"


답변

내가 찾은 가장 쉬운

 curl -s 169.254.169.254/latest/meta-data/placement/availability-zone | sed 's/.$//'