
메타데이터에서 인스턴스 ID를 얻는 방법처럼 인스턴스에 연결된 볼륨 ID를 얻고 싶습니다.
InstanceID=`curl http://169.254.169.254/latest/meta-data/instance-id
답변1
메타데이터에서는 볼륨 ID를 사용할 수 없습니다. 가상 장치는 다음에서 사용할 수 있습니다.block-device-mapping/
인스턴스에 할당된 볼륨 ID를 얻으려면 AWS CLI(또는 스크립트, 프로그램 등)를 사용해야 합니다.
CLI를 사용하면:
aws ec2 describe-volumes
출력에는 볼륨이 연결된 인스턴스 ID가 포함됩니다.
인스턴스 ID를 알고 나면 해당 인스턴스에 연결된 볼륨만 필터링할 수 있습니다.
aws ec2 describe-volumes --filters Name=attachment.instance-id,Values=i-555550604eaf99999
문서에는 더 자세한 내용과 예제가 있습니다.
답변2
제 경우에는 셸 액세스 권한만 있는 인스턴스에서 볼륨 ID를 검색해야 했습니다. VM을 설정한 고객에게 볼륨 ID를 전달해야 했습니다.
이 경우 aws 프로필이 없고 볼륨 ID만 얻으면 ebsnvme-id
Linux 배포판에 사전 설치된 aws 도구를 사용할 수 있습니다(https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nvme-ebs-volumes.html)
그래서 예:
$ sudo /sbin/ebsnvme-id /dev/nvme1n1
Volume ID: vol-c26087a73f2293647
sdb
답변3
답변은 이미 제공되었지만 쿼리를 실행 중인 현재 인스턴스 연결 볼륨을 찾고 있었습니다.
따라서 instance Id
컬 응답에서 을 전달할 수 있습니다.
aws ec2 describe-volumes --filters Name=attachment.instance-id,Values=$(curl -s http://169.254.169.254/latest/meta-data/instance-id)
샘플 출력
{
"Volumes": [
{
"AvailabilityZone": "us-west-2b",
"Attachments": [
{
"AttachTime": "2018-03-01T07:47:43.000Z",
"InstanceId": "i-abcdedf",
"VolumeId": "vol-12345",
"State": "attached",
"DeleteOnTermination": true,
"Device": "/dev/xvda"
}
],
"Encrypted": false,
"VolumeType": "gp2",
"VolumeId": "vol-123456",
"State": "in-use",
"Iops": 450,
"SnapshotId": "snap-1234",
"CreateTime": "2018-03-01T07:47:43.261Z",
"Size": 150
}
]
}