

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 同期プロビジョニングを使用したインスタンスの起動
<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 で障害が発生した場合は、べき等性トークンと適切な再試行ポリシーを使用して再試行戦略を実装できます。

client-token パラメータを使用してリクエストを再試行できます。次の再試行戦略を使用することもできます。
+ `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 時間後、同じクライアントトークンが新しい起動オペレーションを開始します