Amazon EC2 Linux 인스턴스에 연결된 볼륨을 인스턴스 스토어(휘발성) 볼륨으로 식별하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2019년 12월 19일

Amazon Elastic Block Store(Amazon EBS) 볼륨과 인스턴스 스토어(휘발성) 볼륨이 모두 연결된 Amazon Elastic Compute Cloud(Amazon EC2) Linux 인스턴스가 있습니다. 연결된 볼륨 중 인스턴스 스토어 볼륨이 어떤 것인지 확인하려면 어떻게 해야 합니까?

간략한 설명

Amazon EC2 Linux 인스턴스에서 인스턴스 스토어 볼륨을 식별하려면 먼저 인스턴스 유형이 인스턴스 스토어 볼륨을 지원하는지 확인해야 합니다. 인스턴스가 인스턴스 스토어 볼륨을 지원하는 경우 지원되는 인스턴스 스토어 볼륨의 유형을 확인하고 운영 체제(OS)의 볼륨 정보를 검토합니다.

​해결 방법

1.    인스턴스에서 지원하는 인스턴스 스토어 볼륨 유형(HDD, SSD 또는 NVMe SSD)을 확인합니다. 지원되는 각 인스턴스 유형에 사용할 수 있는 인스턴스 스토어 볼륨의 수량, 크기, 유형 및 성능 최적화를 보려면 Amazon EC2 인스턴스 스토어 – 인스턴스 스토어 볼륨을 참조하십시오.

2.    인스턴스에 연결된 볼륨이 인스턴스 스토어 볼륨인지 확인합니다. 사용되는 식별 방법은 NVMe SSD 또는 HDD/SSD 인스턴스 스토어 볼륨이 있는지 여부에 따라 다릅니다.

NVMe SSD 인스턴스 스토어 볼륨

1.    인스턴스에 연결합니다.

2.    Linux 배포용 패키지 관리 도구를 사용하여 NVMe 명령줄 패키지인 nvme-cli를 설치합니다. Amazon Linux 인스턴스의 경우 yum install 명령을 사용하여 nvme-cli 패키지를 설치합니다. 다른 배포에 대한 다운로드 및 설치 지침은 nvme-cli의 GitHub 설명서 또는 배포 관련 설명서를 참조하십시오.

3.    권한이 있는 사용자로 nvme list 명령을 실행합니다.

$ sudo nvme list

다음 출력 예제의 Model 열에는 연결된 각 디바이스가 Amazon Elastic Block Store 또는 Amazon EC2 NVMe 인스턴스 스토리지인지 여부가 나열됩니다. 예제 출력은 하나의 NVMe SSD 디바이스를 지원하는 인스턴스 유형에서 가져온 것입니다.

$ sudo nvme list
Node             SN                   Model                                    Namespace Usage                      Format           FW Rev
---------------- -------------------- ---------------------------------------- --------- -------------------------- ---------------- --------
/dev/nvme0n1     vol0923757ba05df9515 Amazon Elastic Block Store               1           0.00   B /   8.59  GB    512   B +  0 B   1.0
/dev/nvme1n1     AWS1A4FC25FB16B79F76 Amazon EC2 NVMe Instance Storage         1          50.00  GB /  50.00  GB    512   B +  0 B   0

HDD 또는 SSD 인스턴스 스토어 볼륨

HDD 또는 SSD 인스턴스 스토어 볼륨의 경우 OS에서 연결된 블록 디바이스 목록을 가져온 다음 인스턴스 메타데이터에 포함된 블록 디바이스 매핑 섹션을 검색합니다.

1.    인스턴스에 연결합니다.

2.     lsblk 명령을 실행합니다. lsblk 명령이 없으면 Linux 배포용 패키지 관리 도구를 사용하여 util-linux 패키지를 설치합니다. Amazon Linux 인스턴스의 경우 yum install 명령을 사용하여 util-linux 패키지를 설치합니다. 다른 배포에 대한 다운로드 및 설치 지침은 해당 배포 관련 설명서를 참조하십시오.

$ sudo lsblk

다음 출력 예제는 드라이브가 많고 SSD 인스턴스 스토어 볼륨을 지원하는 인스턴스 유형에서 실행 중인 인스턴스에서 검색되는 블록 디바이스 목록을 보여줍니다.

$ sudo lsblk
NAME    MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
xvda    202:0    0     8G  0 disk
└─xvda1 202:1    0     8G  0 part /
xvdb    202:16   0 745.2G  0 disk
xvdc    202:32   0 745.2G  0 disk
xvdd    202:48   0 745.2G  0 disk
xvde    202:64   0 745.2G  0 disk

3.    이전 예제 출력의 xvdb가 휘발성 드라이브인지 확인하려면 모든 인스턴스 메타데이터 요청에 대한 기본 URL(http://169.254.169.254/latest/meta-data/block-device-mapping)을 사용하여 블록 디바이스 매핑 메타데이터를 검색합니다.

$ curl http://169.254.169.254/latest/meta-data/block-device-mapping/ephemeral0
sdb
$ ls -l /dev/sdb
lrwxrwxrwx 1 root root 4 Aug 27 13:07 /dev/sdb -> xvdb

이전 예제에서 ephemeral0의 블록 디바이스 매핑은 xvdb의 심볼 링크인 sdb에 대한 매핑입니다. 따라서 이 예제에서 xvdb는 휘발성 디바이스입니다.

또는 다음 명령 세트를 사용하여 인스턴스에 연결된 휘발성 디바이스를 표시하도록 점검을 자동화할 수 있습니다.

OS 블록 디바이스를 식별합니다.

OSDEVICE=$(sudo lsblk -o NAME -n | grep -v '[[:digit:]]' | sed "s/^sd/xvd/g")

블록 디바이스 매핑 URL을 설정합니다.

BDMURL="http://169.254.169.254/latest/meta-data/block-device-mapping/"

OS 디바이스를 반복하고 블록 디바이스 매핑에서 매핑을 찾습니다.

for bd in $(curl -s ${BDMURL}); do MAPDEVICE=$(curl -s ${BDMURL}/${bd}/ | sed "s/^sd/xvd/g"); if grep -wq ${MAPDEVICE} <<< "${OSDEVICE}"; then echo "${bd} is ${MAPDEVICE}"; fi; done | grep ephemeral

다음은 예제 출력과 함께 앞서 설명한 세 가지 명령의 예입니다.

$ OSDEVICE=$(sudo lsblk -o NAME -n | grep -v '[[:digit:]]' | sed "s/^sd/xvd/g")
$ BDMURL="http://169.254.169.254/latest/meta-data/block-device-mapping/"
$ for bd in $(curl -s ${BDMURL}); do MAPDEVICE=$(curl -s ${BDMURL}/${bd}/ | sed "s/^sd/xvd/g"); if grep -wq ${MAPDEVICE} <<< "${OSDEVICE}"; then echo "${bd} is ${MAPDEVICE}"; fi; done | grep ephemeral
ephemeral0 is xvdb
ephemeral1 is xvdc
ephemeral2 is xvdd
ephemeral3 is xvde

이 문서가 도움이 되었습니까?

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?