

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

# 동기 프로비저닝을 사용하여 인스턴스 시작
<a name="launching-instances-synchronous-provisioning"></a>

LaunchInstances API를 사용하여 Auto Scaling 그룹에서 특정 수의 인스턴스를 동기식으로 시작할 수 있습니다. API는 지정한 가용 영역 또는 서브넷에서 인스턴스를 시작하고 인스턴스 IDs 또는 오류 정보를 즉시 반환합니다.

## 사전 조건
<a name="prerequisites-synchronous-provisioning"></a>

LaunchInstances API를 사용하려면 먼저 다음이 필요합니다.
+ 시작 템플릿을 사용하는 Auto Scaling 그룹(시작 구성은 지원되지 않음)
+ 다음 IAM 작업에 대한 권한이 있어야 합니다.
  + `autoscaling:LaunchInstances`
  + `ec2:CreateFleet`
  + `ec2:DescribeLaunchTemplateVersions`

## 동기 프로비저닝을 사용하여 인스턴스 시작
<a name="launch-instances-cli"></a>

를 통해 동기 프로비저닝으로 인스턴스를 시작할 수 있습니다 AWS CLI.

### AWS CLI
<a name="aws-cli-launch-instances"></a>

동기 프로비저닝을 사용하여 인스턴스를 시작하려면:

```
aws autoscaling launch-instances \
        --auto-scaling-group-name {{group-name}} \
        --requested-capacity {{number}} \
        [--availability-zones {{zone-name}}] \
        [--subnet-ids {{subnet-id}}] \
        [--availability-zone-ids {{zone-id}}] \
        [--retry-strategy {{none}}|{{retry-with-group-configuration}}] \
        [--client-token {{token}}]
```

#### 예제
<a name="examples-launch-instances"></a>

**특정 가용 영역에서 인스턴스 시작**

```
aws autoscaling launch-instances \
        --auto-scaling-group-name {{my-asg}} \
        --requested-capacity {{3}} \
        --availability-zones {{us-east-1a}} \
        --retry-strategy {{retry-with-group-configuration}}
```

**특정 서브넷에서 인스턴스 시작**

```
aws autoscaling launch-instances \
        --auto-scaling-group-name {{my-asg}} \
        --requested-capacity {{2}} \
        --subnet-ids {{subnet-12345678}} \
        --retry-strategy {{none}} \
        --client-token {{my-unique-token-123}}
```

#### 응답 처리
<a name="handling-responses"></a>

**성공적인 응답의 예:**

```
{
    "AutoScalingGroupName": "my-asg",
    "ClientToken": "my-unique-token-123",
    "Instances": [
        {
            "InstanceType": "m5.xlarge",
            "AvailabilityZone": "us-east-1a",
            "AvailabilityZoneId": "use1-az1",
            "SubnetId": "subnet-12345678",
            "MarketType": "OnDemand",
            "InstanceIds": ["i-0123456789abcdef0", "i-0fedcba9876543210"]
        }
    ],
    "Errors": []
}
```

**오류가 있는 응답의 예**

```
{
    "AutoScalingGroupName": "my-asg",
    "ClientToken": "my-unique-token-123",
    "Instances": [],
    "Errors": [
       {
        "InstanceType": "m5.large",
        "AvailabilityZone": "us-east-1a",
        "AvailabilityZoneId": "use1-az1",
        "SubnetId": "subnet-12345678",
        "MarketType": "OnDemand",
        "ErrorCode": "InsufficientInstanceCapacity",
        "ErrorMessage": "There is not enough capacity to fulfill your request for instance type 'm5.large' in 'us-east-1a'"
        }
    ]
}
```

## 시작 실패 및 재시도 처리
<a name="handle-launch-failures-retries"></a>

LaunchInstances API에 장애가 발생하면 멱등성 토큰과 적절한 재시도 정책을 사용하여 재시도 전략을 구현할 수 있습니다.

클라이언트 토큰 파라미터를 사용하여 요청을 재시도할 수 있습니다. 다음 재시도 전략을 사용할 수도 있습니다.
+ `RetryStrategy: none` (기본값) - API 호출이 실패하면 Auto Scaling 그룹의 원하는 용량은 변경되지 않고 자동 재시도가 발생하지 않습니다.
+ `RetryStrategy: retry-with-group-configuration` - API 호출이 실패하면 Auto Scaling 그룹의 원하는 용량이 요청된 양만큼 증가하며 Auto Scaling은 그룹의 표준 구성 및 프로세스를 사용하여 인스턴스 시작을 자동으로 재시도합니다.

에 대한 재시도 동작`RetryStrategy: retry-with-group-configuration`은 실패 유형에 따라 다릅니다.
+ **검증 오류**: 작업을 진행할 수 없으므로 원하는 용량이 증가하지 않습니다. 예를 들어 잘못된 파라미터 또는 지원되지 않는 구성입니다.
+ **용량 오류**: 원하는 용량이 증가하고 Auto Scaling은 그룹의 일반 조정 프로세스를 사용하여 인스턴스 시작을 비동기적으로 재시도합니다.

### 멱등성을 위한 클라이언트 토큰 사용
<a name="client-tokens-sp"></a>

`client-token` 파라미터는 멱등성 작업을 보장하고 시작 요청의 안전한 재시도를 활성화합니다.

주요 동작:
+ 클라이언트 토큰의 수명은 초기 요청부터 8시간입니다.
+ 8시간 이내에 동일한 클라이언트 토큰으로 재시도하면 새 인스턴스를 시작하는 대신 캐시된 응답이 반환됩니다.
+ 8시간 후 동일한 클라이언트 토큰이 새 시작 작업을 시작합니다.