AMI에 블록 디바이스 매핑 추가
각 AMI에는 AMI에서 시작될 때 인스턴스로 연결될 블록 디바이스를 지정하는 블록 디바이스 매핑이 있습니다. AMI에 추가 블록 디바이스를 추가하려면 고유 AMI를 생성해야 합니다.
AMI용 블록 디바이스 매핑 지정
두 가지 방법으로 AMI를 생성할 때 루트 디바이스 볼륨과 볼륨을 지정할 수 있습니다. 인스턴스에서 AMI를 생성하기 전 실행 중인 인스턴스에 볼륨을 이미 연결한 경우 AMI용 블록 디바이스 매핑에는 동일한 해당 볼륨이 포함됩니다. EBS 볼륨에서 기존 데이터는 새 스냅샷에 저장되고 블록 디바이스 매핑에 새로운 이 스냅샷이 지정됩니다. 인스턴스 스토어 볼륨의 경우 데이터는 보존되지 않습니다.
EBS 기반 AMI의 경우 블록 디바이스 매핑을 사용하여 EBS 볼륨 및 인스턴스 스토어 볼륨을 추가할 수 있습니다. Amazon S3 지원 AMI의 경우 이미지를 등록할 때 이미지 매니페스트 파일에서 블록 디바이스 매핑 항목을 수정하여 인스턴스 저장소 볼륨만 추가할 수 있습니다.
M3 인스턴스의 경우 실행 시 인스턴스에 대한 블록 디바이스 매핑에 인스턴스 스토어 볼륨을 반드시 지정해야 합니다. M3 인스턴스 실행 시 인스턴스 스토어 볼륨이 인스턴스 블록 디바이스 매핑으로 지정되지 않으면 AMI용 블록 디바이스 매핑에 지정된 인스턴스 스토어 볼륨이 무시될 수 있습니다.
- Console
-
AMI에 볼륨을 추가하려면 다음을 수행하세요.
-
Amazon EC2 콘솔을 엽니다.
-
탐색 창에서 인스턴스를 선택합니다.
-
인스턴스를 선택하고 [작업(Actions)], [이미지 및 템플릿(Image and templates)], [이미지 생성(Create image)]을 선택합니다.
-
이미지의 이름과 설명을 입력합니다.
-
[인스턴스 볼륨(Instance volumes)] 아래에 인스턴스 볼륨이 나타납니다. 다른 볼륨을 추가하려면 [볼륨 추가(Add volume)]를 선택합니다.
-
[볼륨 유형(Volume type)]에서 볼륨 유형을 선택합니다. [디바이스(Device)]에서 디바이스 이름을 선택합니다. EBS 볼륨의 경우 스냅샷, 볼륨 크기, 볼륨 유형, IOPS 및 암호화 상태와 같은 추가 세부 정보를 지정할 수 있습니다.
-
이미지 생성(Create image)을 선택합니다.
- AWS CLI
-
AMI에 볼륨을 추가하려면 다음을 수행하세요.
create-image 명령을 사용하여 EBS 지원 AMI에 블록 디바이스 매핑을 지정합니다. register-image 명령을 사용하여 Amazon S3 지원 AMI에 대한 블록 디바이스 매핑을 지정합니다.
--block-device-mappings 파라미터를 사용하여 블록 디바이스 매핑을 지정합니다. 다음과 같이 JSON으로 인코딩된 인수를 명령줄에서 직접 지정하거나 JSON 파일을 참조하여 지정할 수 있습니다.
--block-device-mappings file://mapping.json
인스턴스 스토어 볼륨을 추가하려면 다음 매핑을 사용합니다. NVMe 인스턴스 저장소 볼륨은 자동으로 추가됩니다.
{
"DeviceName": "device_name",
"VirtualName": "ephemeral0"
}
비어 있는 100GiB 볼륨을 추가하려면 다음 매핑을 사용합니다.
{
"DeviceName": "device_name",
"Ebs": {
"VolumeSize": 100
}
}
스냅샷 기반 EBS 볼륨을 추가하려면 다음 매핑을 사용합니다.
{
"DeviceName": "device_name",
"Ebs": {
"SnapshotId": "snap-1234567890abcdef0"
}
}
디바이스에 대한 매핑을 생략하려면 다음 매핑을 사용합니다.
{
"DeviceName": "device_name",
"NoDevice": ""
}
- PowerShell
-
New-EC2Image cmdlet을 사용하여 EBS 지원 AMI에 대한 블록 디바이스 매핑을 지정합니다. Register-EC2Image cmdlet을 사용하여 Amazon S3 지원 AMI에 대한 블록 디바이스 매핑을 지정합니다.
bdm에 업데이트를 지정하여 -BlockDeviceMapping 옵션을 추가합니다.
-BlockDeviceMapping $bdm
다음 매핑은 스냅샷을 기반으로 볼륨을 추가합니다.
$ebd = New-Object -TypeName Amazon.EC2.Model.EbsBlockDevice
$ebd.SnapshotId = "snap-1234567890abcdef0"
$bdm = New-Object -TypeName Amazon.EC2.Model.BlockDeviceMapping
$bdm.DeviceName = "device_name"
$bdm.Ebs = $ebd
다음 매핑은 비어 있는 100GiB 볼륨을 추가합니다.
$ebd = New-Object -TypeName Amazon.EC2.Model.EbsBlockDevice
$ebd.VolumeSize = 100
$bdm = New-Object -TypeName Amazon.EC2.Model.BlockDeviceMapping
$bdm.DeviceName = "device_name"
$bdm.Ebs = $ebd
AMI 블록 디바이스 매핑에서 EBS 볼륨 보기
AMI의 블록 디바이스 매핑에서 EBS 볼륨을 쉽게 확인할 수 있습니다.
- Console
-
AMI용 EBS 볼륨을 보려면 다음을 수행하세요.
-
Amazon EC2 콘솔을 엽니다.
-
탐색 창에서 AMI를 선택합니다.
-
필터 목록에서 EBS 이미지를 선택하여 EBS 지원 AMI 목록을 가져옵니다.
-
원하는 AMI를 선택한 후 세부 정보 탭을 확인합니다. 루트 볼륨(루트 디바이스라는 용어가 루트 볼륨과 동일한 경우)에 대해 최소한 다음 정보를 사용할 수 있습니다.
AMI가 블록 디바이스 매핑을 사용하여 추가 EBS 볼륨으로 생성된 경우 블록 디바이스 필드에 해당 추가 볼륨에 대한 매핑도 표시됩니다. (이 화면에는 인스턴스 스토어 볼륨이 표시되지 않습니다.)
- AWS CLI
-
AMI용 EBS 볼륨을 보려면 다음을 수행하세요.
describe-images 명령을 사용합니다.
aws ec2 describe-images \
--image-ids ami-0abcdef1234567890 \
--query Image[0].BlockDeviceMappings
- PowerShell
-
AMI용 EBS 볼륨을 보려면 다음을 수행하세요.
Get-EC2Image cmdlet을 사용합니다.
(Get-EC2Image -ImageId ami-0abcdef1234567890).BlockDeviceMappings