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



Answers

이를 달성하기위한 또 하나의 방법이 있습니다.

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

echo $REGION

us-east-1
Question

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

나는 인스턴스 ID찾는 방법과 비슷한 것을 찾고있다.




내가 지금까지 발견 한 가장 쉬운 것

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



또는 우분투 또는이 도구를 요구 사항으로 삼지 말고 단순히 수행하십시오.

: "${EBS_VOLUME_AVAILABILITY_ZONE:=$(curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone)}"
: ${EBS_VOLUME_REGION:="${EBS_VOLUME_AVAILABILITY_ZONE%%*([![:digit:]])}"}



JS를 사용하여 지역을 얻으려고한다면이 방법이 효과적입니다 :

meta.request("/latest/meta-data/placement/availability-zone",function(err,data){
        if(err)
                console.log(err);
        else{
                console.log(data);
                str = data.substring(0, data.length - 1);
                AWS.config.update({region:str});
                ec2 = new AWS.EC2();
            }
     });

이것은 AWS DOCS에서 발견 된 매핑이었습니다. 메타 데이터 API 호출에 대한 응답으로 마지막 문자가 제대로 작동해야합니다.

  eu-west-1a :eu-west-1
  eu-west-1b :eu-west-1
  eu-west-1c :eu-west-1
  us-east-1a :us-east-1
  us-east-1b :us-east-1
  us-east-1c :us-east-1
  us-east-1d :us-east-1
  ap-northeast-1a :ap-northeast-1
  ap-northeast-1b :ap-northeast-1
  us-west-1a :us-west-1
  us-west-1b :us-west-1
  us-west-1c :us-west-1
  ap-southeast-1a :ap-southeast-1
  ap-southeast-1b :ap-southeast-1



가용성 영역에서 영역을 가져오고 영역의 마지막 문자를 제거합니다.

ec2-metadata -z | awk '{print $2}' | sed 's/[a-z]$//'



2 라이너는 ec2.internal을 검색 도메인으로 사용하는 한 작동합니다.

az=$(curl -s http://instance-data/latest/meta-data/placement/availability-zone)
region=${az:0:${#az} - 1}



ec2 메타 데이터를 사용할 수 있습니다.

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



eu-central-1은 물론 다양한 문자 영역에서도 작동합니다. (위의 sed 응답에 응답 할 충분한 담당자가 없습니다)

ec2-metadata --availability-zone | sed 's/[a-z]$//'



아주 단순한 라이너

export AVAILABILITY_ZONE=`wget -qO- http://instance-data/latest/meta-data/placement/availability-zone`
export REGION_ID=${AVAILABILITY_ZONE:0:${#AVAILABILITY_ZONE} - 1}



https://unix.stackexchange.com/a/144330/135640 bash 4.2 이상) 덕분에 가용성 영역에서 마지막 문자를 제거 할 수 있습니다.

$ region=`curl -s 169.254.169.254/latest/meta-data/placement/availability-zone`
$ region=${region::-1}
$ echo $region
us-east-1

여기에서는 AWS가 영역에 추가 된 가용성 영역에 대해 단일 문자를 계속 사용한다고 가정합니다.






Links