AMI에 블록 디바이스 매핑 추가하기
AMI에 블록 디바이스 매핑 추가하기
각 AMI에는 AMI에서 인스턴스를 실행할 때 연결할 블록 디바이스를 지정하는 **블록 디바이스 매핑(block device mapping)**이 있어요. AMI에 더 많은 블록 디바이스를 추가하려면 자체 AMI를 만들어야 합니다.
출처: 문서
본문
목차 (Contents)
- Specify a block device mapping for an AMI
- View the EBS volumes in an AMI block device mapping
AMI용 블록 디바이스 매핑 지정하기 (Specify a block device mapping for an AMI)
AMI를 만들 때 루트 볼륨 외에 볼륨을 지정하는 방법은 두 가지가 있어요. 인스턴스에서 AMI를 만들기 전에 실행 중인 인스턴스에 볼륨을 이미 연결했다면, AMI의 블록 디바이스 매핑에 같은 볼륨이 포함됩니다. EBS 볼륨의 경우 기존 데이터가 새 스냅샷으로 저장되고, 블록 디바이스 매핑에 지정되는 것은 이 새 스냅샷이에요. 인스턴스 스토어 볼륨의 경우 데이터는 보존되지 않습니다.
EBS 기반 AMI는 블록 디바이스 매핑을 사용해 EBS 볼륨과 인스턴스 스토어 볼륨을 추가할 수 있어요. Amazon S3 기반 AMI는 이미지 등록 시 이미지 매니페스트 파일의 블록 디바이스 매핑 항목을 수정해야만 인스턴스 스토어 볼륨을 추가할 수 있습니다.
참고: M3 인스턴스의 경우 인스턴스 실행 시 인스턴스용 블록 디바이스 매핑에 인스턴스 스토어 볼륨을 지정해야 합니다. M3 인스턴스를 실행할 때 AMI의 블록 디바이스 매핑에 지정된 인스턴스 스토어 볼륨은 인스턴스 블록 디바이스 매핑의 일부로 지정되지 않으면 무시될 수 있어요.
콘솔 (Console)
AMI에 볼륨을 추가하려면
- Amazon EC2 콘솔을 엽니다.
- 탐색 창에서 Instances를 선택합니다.
- 인스턴스를 선택하고 Actions, Image and templates, Create image를 선택합니다.
- 이미지의 이름과 설명을 입력합니다.
- 인스턴스 볼륨이 Instance volumes 아래에 나타납니다. 다른 볼륨을 추가하려면 Add volume을 선택합니다.
- Volume type에서 볼륨 유형을, Device에서 장치 이름을 선택합니다. EBS 볼륨의 경우 스냅샷, 볼륨 크기, 볼륨 유형, IOPS, 암호화 상태 같은 추가 세부 정보를 지정할 수 있어요.
- Create image를 선택합니다.
AWS CLI
AMI에 볼륨을 추가하려면 EBS 기반 AMI에는 create-image 명령을, Amazon S3 기반 AMI에는 register-image 명령을 사용해 블록 디바이스 매핑을 지정합니다.
--block-device-mappings 파라미터로 블록 디바이스 매핑을 지정합니다. 다음과 같이 명령줄에 직접 JSON으로 인코딩된 인수를 지정하거나 JSON 파일을 참조할 수 있어요.
--block-device-mappings file://mapping.json
인스턴스 스토어 볼륨을 추가하려면 다음 매핑을 사용합니다. NVMe 인스턴스 스토어 볼륨은 자동으로 추가됩니다.
{
"DeviceName": "device_name",
"VirtualName": "ephemeral0"
}
빈 100 GiB 볼륨을 추가하려면 다음 매핑을 사용합니다.
{
"DeviceName": "device_name",
"Ebs": {
"VolumeSize": 100
}
}
스냅샷 기반 EBS 볼륨을 추가하려면 다음 매핑을 사용합니다.
{
"DeviceName": "device_name",
"Ebs": {
"SnapshotId": "snap-1234567890abcdef0"
}
}
장치에 대한 매핑을 생략하려면 다음 매핑을 사용합니다.
{
"DeviceName": "device_name",
"NoDevice": ""
}
PowerShell
EBS 기반 AMI에는 New-EC2Image cmdlet을, Amazon S3 기반 AMI에는 Register-EC2Image cmdlet을 사용해 블록 디바이스 매핑을 지정합니다.
-BlockDeviceMapping 옵션을 추가해 bdm의 업데이트를 지정합니다.
-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
다음 매핑은 빈 100 GB 볼륨을 추가합니다.
$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 볼륨 보기 (View the EBS volumes in an AMI block device mapping)
AMI의 블록 디바이스 매핑에서 EBS 볼륨을 쉽게 열거할 수 있어요.
콘솔 (Console)
AMI의 EBS 볼륨을 보려면
- Amazon EC2 콘솔을 엽니다.
- 탐색 창에서 AMIs를 선택합니다.
- Filter 목록에서 EBS images를 선택해 EBS 기반 AMI 목록을 가져옵니다.
- 원하는 AMI를 선택하고 Details 탭을 봅니다. 최소한 루트 볼륨(여기서 "root device"라는 용어는 "root volume"과 동일)에 대해 다음 정보를 사용할 수 있어요.
- Root Device Type (
ebs) - Root Device Name (예:
/dev/sda1) - Block Devices (예:
/dev/sda1=snap-1234567890abcdef0:8:true)
- Root Device Type (
- 블록 디바이스 매핑을 사용해 AMI를 추가 EBS 볼륨으로 만든 경우, Block Devices 필드에 해당 추가 볼륨의 매핑도 표시됩니다. (이 화면은 인스턴스 스토어 볼륨을 표시하지 않아요.)
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