

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 인스턴스 새로 고침 중 루트 볼륨 교체
<a name="replace-root-volume"></a>

**Topics**
+ [작동 방식](#start-instance-refresh-replace-root-volume-how-it-works)
+ [요구 사항](#start-instance-refresh-replace-root-volume-requirements)
+ [루트 볼륨 바꾸기를 사용하여 인스턴스 새로 고침 시작](#start-instance-refresh-replace-root-volume-cli)
+ [제한 사항](#start-instance-refresh-replace-root-volume-limitations)
+ [루트 볼륨 대체와 함께 수명 주기 후크 사용](#replace-root-volume-lifecycle-hooks)

## 작동 방식
<a name="start-instance-refresh-replace-root-volume-how-it-works"></a>

루트 볼륨 교체는 인스턴스를 계속 실행하면서 루트 EBS 볼륨만 교체하여 인스턴스를 업데이트합니다. 이렇게 하면 새 인스턴스를 시작할 필요가 없으며 잠재적인 용량 제약을 피할 수 있습니다. 이 프로세스는 다음을 포함한 다른 모든 인스턴스 리소스를 보존합니다.
+ 네트워크 인터페이스 및 IP 주소 
+ 루트가 아닌 EBS 볼륨 
+ 인스턴스 스토어 볼륨 및 데이터 
+ 보안 그룹 및 IAM 역할 

루트 볼륨을 교체하는 동안 애플리케이션은 기존 인스턴스에서 계속 실행됩니다. 원래 루트 볼륨이 분리되고 지정된 AMI에서 새 루트 볼륨이 생성된 다음 동일한 인스턴스에 연결됩니다. 교체에 성공하면 원래 루트 볼륨이 자동으로 삭제됩니다.

루트 볼륨 교체 전략을 사용하는 경우 인스턴스는 다음과 같은 수명 주기 상태를 거칩니다.

1. `ReplacingRootVolume` - 루트 볼륨 교체 시작

1. `ReplacingRootVolume:Wait` - 수명 주기 후크 완료를 기다립니다(구성된 경우).

1. `ReplacingRootVolume:Proceed` - 교체를 진행합니다.

1. `RootVolumeReplaced` - 교체가 성공적으로 완료되었습니다.

루트 볼륨 교체가 완료되면 Auto Scaling은 업데이트된 인스턴스에 대해 상태 확인을 수행합니다. 인스턴스에 대한 루트 볼륨 교체가 실패하면 Auto Scaling은 해당 인스턴스를 종료 대상으로 표시하고 새 인스턴스로 교체합니다.

## 요구 사항
<a name="start-instance-refresh-replace-root-volume-requirements"></a>
+ Auto Scaling 그룹은 혼합 인스턴스 정책을 사용해야 합니다.
+ 혼합 인스턴스 정책의 모든 재정의는를 지정해야 합니다. `ImageId` 
+ AMIs 단일 루트 볼륨만 포함되어야 합니다.
+ 모든 인스턴스는 그룹의 시작 템플릿 구성과 일치해야 합니다.
+ `ImageId` 재정의를 포함하는 혼합 인스턴스 정책이 있는 원하는 구성으로 인스턴스 새로 고침을 시작해야 합니다.

## 루트 볼륨 바꾸기를 사용하여 인스턴스 새로 고침 시작
<a name="start-instance-refresh-replace-root-volume-cli"></a>

**루트 볼륨 바꾸기를 사용하여 인스턴스 새로 고침을 시작하려면(AWS CLI)**  
다음 [start-instance-refresh ](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/start-instance-refresh.html) 명령을 사용하여에서 인스턴스 새로 고침을 시작합니다 AWS CLI. JSON 구성 파일에서 변경하려는 기본 설정을 지정할 수 있습니다. 구성 파일을 참조할 때 다음 예와 같이 파일 경로와 이름을 제공합니다.

```
aws autoscaling start-instance-refresh --cli-input-json file://config.json
```

`config.json`의 콘텐츠: 

**Example**  

```
{
  "AutoScalingGroupName": "my-asg",
  "Strategy" : "ReplaceRootVolume",
  "DesiredConfiguration":{
    "MixedInstancesPolicy":{
      "LaunchTemplate": {
        "LaunchTemplateSpecification": {
          "LaunchTemplateId":"my-launch-template",
          "Version": "1"
        },
        "Overrides": [
          {
            "InstanceType":"c5.large",
            "ImageId":"ami-1234example"
          },
          {
            "InstanceType":"m5.large",
            "ImageId":"ami-2345example"
          }
        ]
      }
    }
  },
  "Preferences": {
    "InstanceWarmup": 60,
    "MinHealthyPercentage": 90,
    "AutoRollback": true,
    "ScaleInProtectedInstances": Ignore,
    "StandbyInstances": Ignore
  }
}
```

기본 설정이 제공되지 않으면 기본값이 사용됩니다. 자세한 설명은 [인스턴스 새로 고침의 기본값 이해](understand-instance-refresh-default-values.md) 섹션을 참조하세요.

출력 예시:

```
{
    "InstanceRefreshId": "08b91cf7-8fa6-48af-b6a6-d227f40f1b9b"
}
```

## 제한 사항
<a name="start-instance-refresh-replace-root-volume-limitations"></a>
+ EC2 Auto Scaling 그룹 또는 인스턴스 새로 고침 원하는 구성이 `$Latest` 또는 `$Default` 시작 템플릿 버전을 사용하는 경우 루트 볼륨 교체로 인스턴스 새로 고침을 시작할 수 없습니다.
+ 인스턴스 유형이 혼합 인스턴스 정책에 없는 인스턴스가 포함된 경우 Amazon EC2 Auto Scaling 그룹에서 루트 볼륨 교체로 인스턴스 새로 고침을 시작할 수 없습니다.
+ 루트 볼륨 교체를 사용하여 인스턴스를 새로 고치는 동안 원하는 구성의 혼합 인스턴스 정책에 있는 유형의 인스턴스만 연결할 수 있습니다.
+ 웜 풀이 있는 EC2 Auto Scaling 그룹에서 루트 볼륨 교체로 인스턴스 새로 고침을 시작할 수 없습니다.
+ 루트 볼륨 바꾸기를 사용하여 인스턴스 새로 고침이 활성화된 Amazon EC2 Auto Scaling 그룹에 웜 풀을 추가할 수 없습니다.

## 루트 볼륨 대체와 함께 수명 주기 후크 사용
<a name="replace-root-volume-lifecycle-hooks"></a>

루트 볼륨을 교체하는 인스턴스는 자체 수명 주기 전환을 따르므로 교체 전 및/또는 후에 작업(예: Lambda 함수)을 호출할 수 있습니다. 루트 볼륨 교체 중 수명 주기 상태에 대한 자세한 내용은 섹션을 참조하세요[루트 볼륨 교체 중인 인스턴스의 수명 주기 상태 전환](lifecycle-hooks-overview.md#rvr-lifecycle-state-transitions).

수명 주기 후크 추가에 대한 자세한 설명은 [Auto Scaling 그룹에 수명 주기 후크 추가](adding-lifecycle-hooks.md) 섹션을 참조하세요. 수명 주기 작업 완료에 대한 자세한 설명은 [Auto Scaling 그룹에서 수명 주기 작업 완료](completing-lifecycle-hooks.md) 섹션을 참조하세요.

루트 볼륨을 교체하기 전에 수명 주기 후크는 다음 시나리오에서 유용할 수 있습니다.
+ 루트 볼륨이 교체되고 인스턴스가 재부팅되기 전에 애플리케이션을 정상적으로 종료하려고 합니다.
+ 볼륨을 교체하기 전에 루트 볼륨에서 다른 위치로 데이터를 이동하려고 합니다.

루트 볼륨 교체 후 수명 주기 후크는 다음 시나리오에서 유용할 수 있습니다.
+ 인스턴스가 트래픽 수신을 시작하기 전에 새 AMI로 완전히 준비되었는지 확인하려고 합니다.
+ 이전에 루트 볼륨에 존재했던 애플리케이션 데이터를 부트스트랩하려고 합니다.

수명 주기 후크를 추가할 때 다음 사항을 고려하세요.
+ 수명 주기 작업에 대해 `autoscaling:EC2_INSTANCE_TERMINATING` 수명 주기 후크가 구성되면 루트 볼륨 교체를 수행하려는 인스턴스가 일시 중지되어 `ReplacingRootVolume:Wait` 상태에 도달하면 사용자 지정 작업을 수행합니다.
+ 수명 주기 작업에 대해 `autoscaling:EC2_INSTANCE_LAUNCHING` 수명 주기 후크가 구성된 경우 루트 볼륨이 방금 교체된 인스턴스는 `Pending:Wait` 상태에 도달하면 사용자 지정 작업을 수행하기 위해 일시 중지됩니다.

인스턴스가 대기 상태에 도달하면 Amazon EC2 Auto Scaling이 알림을 전송합니다. Auto Scaling 수명 주기 후크 알림에는 인스턴스가 루트 볼륨 교체 중임을 `ReplaceRootVolume` 나타내는 값이 있는 `Action` 필드가 포함되어 있습니다.

이러한 알림의 예는 이 가이드의 EventBridge 섹션에서 확인할 수 있습니다. 자세한 내용은 [인스턴스 새로 고침 루트 볼륨 수명 주기 이벤트 대체](instance-refresh-eventbridge-events.md#instance-refresh-rvr-lifecycle-events)을 참조하세요.