Amazon EC2 인스턴스 종료 후 Amazon EBS 루트 볼륨 유지하기
Amazon EC2 인스턴스 종료 후 Amazon EBS 루트 볼륨 유지하기
기본적으로 인스턴스의 Amazon EBS 루트 볼륨은 인스턴스가 종료될 때 삭제돼요. 기본 동작을 변경해 인스턴스 종료 후에도 Amazon EBS 루트 볼륨이 유지되도록 할 수 있어요. 이 절에서 그 방법을 살펴볼게요.
출처: 문서
본문
기본적으로 인스턴스의 Amazon EBS 루트 볼륨은 인스턴스가 종료될 때 삭제돼요. 기본 동작을 변경해 인스턴스 종료 후에도 Amazon EBS 루트 볼륨이 유지되도록 할 수 있어요. 기본 동작을 변경하려면 DeleteOnTermination 속성을 false로 설정하세요. 인스턴스 시작 시 또는 나중에 이렇게 할 수 있어요.
인스턴스 시작 중에 루트 볼륨이 유지되도록 구성
인스턴스를 시작할 때 루트 볼륨이 유지되도록 구성할 수 있어요.
Console(콘솔) —
인스턴스를 시작할 때 루트 볼륨이 유지되도록 구성하려면
- Amazon EC2 콘솔을 https://console.aws.amazon.com/ec2/에서 엽니다.
- 탐색 창에서 Instances를 선택한 다음 Launch instances를 선택합니다.
- AMI(Amazon Machine Image)를 선택하고, 인스턴스 유형을 선택하고, 키 페어를 선택하고, 네트워크 설정을 구성합니다.
- Configure storage에서 Advanced를 선택합니다.
- 루트 볼륨을 펼칩니다.
- Delete on termination에서 No를 선택합니다.
- 인스턴스 구성을 마치면 Launch instance를 선택합니다.
AWS CLI —
인스턴스를 시작할 때 루트 볼륨이 유지되도록 구성하려면
run-instances 명령을 사용하고 다음 옵션을 포함합니다.
--block-device-mappings file://mapping.json
mapping.json에서 DeleteOnTermination 속성을 false로 설정하는 블록 디바이스 매핑을 지정합니다.
[
{
"DeviceName": "/dev/sda1",
"Ebs": {
"DeleteOnTermination": false
}
}
]
PowerShell —
인스턴스를 시작할 때 루트 볼륨이 유지되도록 구성하려면
New-EC2Instance cmdlet을 사용하고 다음 매개 변수를 포함합니다.
-BlockDeviceMapping $bdm
DeleteOnTermination 속성을 $false로 설정하는 블록 디바이스 매핑을 만듭니다.
$ebs = New-Object Amazon.EC2.Model.EbsBlockDevice
$ebs.DeleteOnTermination = $false
$bdm = New-Object Amazon.EC2.Model.BlockDeviceMapping
$bdm.DeviceName = "dev/xvda"
$bdm.Ebs = $ebs
기존 인스턴스에 대해 루트 볼륨이 유지되도록 구성
실행 중인 인스턴스에 대해 루트 볼륨이 유지되도록 구성할 수 있어요. 참고로 이 작업은 Amazon EC2 콘솔로는 완료할 수 없어요.
AWS CLI —
기존 인스턴스에 대해 루트 볼륨이 유지되도록 구성하려면
modify-instance-attribute 명령을 DeleteOnTermination 속성을 false로 설정하는 블록 디바이스 매핑과 함께 사용합니다.
aws ec2 modify-instance-attribute \
--instance-id i-1234567890abcdef0 \
--block-device-mappings file://mapping.json
mapping.json에 다음을 지정합니다.
[
{
"DeviceName": "/dev/xvda",
"Ebs": {
"DeleteOnTermination": false
}
}
]
PowerShell —
기존 인스턴스에 대해 루트 볼륨이 유지되도록 구성하려면
Edit-EC2InstanceAttribute cmdlet을 DeleteOnTermination 속성을 $false로 설정하는 블록 디바이스 매핑과 함께 사용합니다.
$ebs = New-Object Amazon.EC2.Model.EbsInstanceBlockDeviceSpecification
$ebs.DeleteOnTermination = $false
$bdm = New-Object Amazon.EC2.Model.InstanceBlockDeviceMappingSpecification
$bdm.DeviceName = "/dev/xvda"
$bdm.Ebs = $ebs
Edit-EC2InstanceAttribute `
-InstanceId i-1234567890abcdef0 `
-BlockDeviceMapping $bdm
루트 볼륨이 유지되도록 구성되었는지 확인
루트 볼륨이 유지되도록 구성되었는지 확인할 수 있어요.
Console(콘솔) —
루트 볼륨이 유지되도록 구성되었는지 확인하려면
- Amazon EC2 콘솔을 https://console.aws.amazon.com/ec2/에서 엽니다.
- 탐색 창에서 Instances를 선택한 다음 인스턴스를 선택합니다.
- Storage 탭의 Block devices 아래에서 루트 볼륨 항목을 찾습니다. Delete on termination이
No이면 볼륨이 유지되도록 구성된 거예요.
AWS CLI —
루트 볼륨이 유지되도록 구성되었는지 확인하려면
describe-instances 명령을 사용하고 DeleteOnTermination 속성이 false로 설정되었는지 확인합니다.
aws ec2 describe-instances \
--instance-id i-1234567890abcdef0 \
--query "Reservations[].Instances[].BlockDeviceMappings"
다음은 출력 예시예요.
[
[
{
"DeviceName": "/dev/xvda",
"Ebs": {
"AttachTime": "2024-07-12T04:05:33.000Z",
"DeleteOnTermination": false,
"Status": "attached",
"VolumeId": "vol-1234567890abcdef0"
}
}
]
]
PowerShell —
루트 볼륨이 유지되도록 구성되었는지 확인하려면
Get-EC2Instance cmdlet을 사용하고 DeleteOnTermination 속성이 False로 설정되었는지 확인합니다.
(Get-EC2Instance -InstanceId i-i-1234567890abcdef0).Instances.BlockDeviceMappings.Ebs
다음은 출력 예시예요.
AssociatedResource :
AttachTime : 7/12/2024 4:05:33 AM
DeleteOnTermination : False
Operator :
Status : attached
VolumeId : vol-1234567890abcdef0