instance id
ec2 인스턴스에서 ec2 인스턴스를 찾으려면 어떻게 해야합니까?
답변
해당 주제에 대한 EC2 설명서를 참조하십시오 .
운영:
wget -q -O - http://169.254.169.254/latest/meta-data/instance-id
스크립트 내에서 인스턴스 ID에 프로그래밍 방식으로 액세스해야하는 경우
die() { status=$1; shift; echo "FATAL: $*"; exit $status; }
EC2_INSTANCE_ID="`wget -q -O - http://169.254.169.254/latest/meta-data/instance-id || die \"wget instance-id has failed: $?\"`"
고급 사용의 예 (인스턴스 ID 및 가용 영역 및 리전 등) :
EC2_INSTANCE_ID="`wget -q -O - http://169.254.169.254/latest/meta-data/instance-id || die \"wget instance-id has failed: $?\"`"
test -n "$EC2_INSTANCE_ID" || die 'cannot obtain instance-id'
EC2_AVAIL_ZONE="`wget -q -O - http://169.254.169.254/latest/meta-data/placement/availability-zone || die \"wget availability-zone has failed: $?\"`"
test -n "$EC2_AVAIL_ZONE" || die 'cannot obtain availability-zone'
EC2_REGION="`echo \"$EC2_AVAIL_ZONE\" | sed -e 's:\([0-9][0-9]*\)[a-z]*\$:\\1:'`"
플랫폼에 설치된 내용에 따라을 curl
대신 사용할 수도 있습니다 wget
.
답변
Amazon Linux AMI에서 다음을 수행 할 수 있습니다.
$ ec2-metadata -i
instance-id: i-1234567890abcdef0
또는 우분투와 다른 리눅스 풍미에서 ec2metadata --instance-id
(이 명령은 우분투에는 기본적으로 설치되지 않을 수도 있지만을 사용하여 추가 할 수 있습니다 sudo apt-get install cloud-utils
)
이름에서 알 수 있듯이이 명령을 사용하여 다른 유용한 메타 데이터도 얻을 수 있습니다.
답변
우분투에서는 다음을 수행 할 수 있습니다.
sudo apt-get install cloud-utils
그리고 당신은 할 수 있습니다 :
EC2_INSTANCE_ID=$(ec2metadata --instance-id)
이 방법으로 인스턴스와 관련된 대부분의 메타 데이터를 얻을 수 있습니다.
ec2metadata --help 구문 : / usr / bin / ec2metadata [옵션] EC2 메타 데이터를 쿼리하고 표시합니다. 옵션이 제공되지 않으면 모든 옵션이 표시됩니다 옵션 : -h --help이 도움말을 표시합니다 --kernel-id 커널 ID를 표시합니다 --ramdisk-id 램 디스크 ID를 표시합니다 --reservation-id 예약 ID를 표시합니다 --ami-id는 ami id를 표시합니다 --ami-launch-index ami 실행 색인을 표시합니다 --ami-manifest-path ami 매니페스트 경로를 표시합니다 -조상 -ami-ids는 조상 ID를 표시합니다 --product-codes는 ami 관련 제품 코드를 표시합니다 --availability-zone은 ami 배치 영역을 표시합니다 --instance-id 인스턴스 ID를 표시합니다 -인스턴스 유형 인스턴스 유형을 표시합니다 --local-hostname은 로컬 호스트 이름을 표시합니다 --public-hostname은 공개 호스트 이름을 표시합니다 --local-ipv4는 로컬 ipv4 ip 주소를 표시합니다 --public-ipv4는 공개 ipv4 IP 주소를 표시합니다 --block-device-mapping 블록 장치 ID를 표시합니다 --security-groups는 보안 그룹을 표시합니다 --mac 인스턴스 mac 주소를 표시합니다 --profile 인스턴스 프로파일을 표시합니다 -인스턴스 액션은 인스턴스 액션을 표시 --public-keys는 openssh 공개 키를 표시합니다 --user-data 사용자 데이터를 표시합니다 (실제로는 메타 데이터가 아님).
답변
/dynamic/instance-identity/document
인스턴스 ID 이상을 쿼리해야하는 경우 URL을 사용하십시오 .
wget -q -O - http://169.254.169.254/latest/dynamic/instance-identity/document
이렇게하면 단일 요청 만으로 이와 같은 JSON 데이터 를 얻을 수 있습니다 .
{
"devpayProductCodes" : null,
"privateIp" : "10.1.2.3",
"region" : "us-east-1",
"kernelId" : "aki-12345678",
"ramdiskId" : null,
"availabilityZone" : "us-east-1a",
"accountId" : "123456789abc",
"version" : "2010-08-31",
"instanceId" : "i-12345678",
"billingProducts" : null,
"architecture" : "x86_64",
"imageId" : "ami-12345678",
"pendingTime" : "2014-01-23T45:01:23Z",
"instanceType" : "m1.small"
}
답변
.NET
사람들을 위해 :
string instanceId = new StreamReader(
HttpWebRequest.Create("http://169.254.169.254/latest/meta-data/instance-id")
.GetResponse().GetResponseStream())
.ReadToEnd();
답변
AWS Linux에서 :
ec2-metadata --instance-id | cut -d " " -f 2
산출:
i-33400429
변수 사용 :
ec2InstanceId=$(ec2-metadata --instance-id | cut -d " " -f 2);
ls "log/${ec2InstanceId}/";
답변
파워 쉘 사람들을 위해 :
(New-Object System.Net.WebClient).DownloadString("http://169.254.169.254/latest/meta-data/instance-id")