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

더 알아보기