

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

# Amazon WorkSpaces アプリケーションのフリートAuto Scaling
<a name="autoscaling"></a>

Fleet Auto Scaling を使用すると、WorkSpaces Applications Always-On フリートまたはオンデマンドフリートのサイズを自動的に変更して、利用可能なインスタンスをユーザーの需要に合わせることができます。フリートのサイズによって、同時にストリーミングできるユーザーの数が決まります。マルチセッションフリートでは、複数のユーザーが単一のインスタンスを使用できます。非マルチセッションフリートでは、ユーザーセッションごとに 1 つのインスタンスが必要です。フリートの容量は、インスタンス数 (シングルセッションフリートの場合) とユーザーセッション数 (マルチセッションフリートの場合) で指定できます。フリート設定と自動スケーリングポリシーに基づいて、必要な数のインスタンスが利用可能になります。さまざまな使用状況メトリクスに基づいてフリートのサイズを自動的に調整するスケーリングポリシーを定義し、使用可能なインスタンスの数を最適化してユーザーの需要に合わせることができます。自動スケーリングを無効にして、固定されたフリートサイズで実行することもできます。

**注記**  
Elastic フリート容量は WorkSpaces アプリケーションによって自動的に管理されます。Elastic フリート用に利用できるフリートストリーミングインスタンスの数を管理するためにオートスケーリングルールを作成する必要はありません。

**注記**  
WorkSpaces Applications フリートスケーリングの計画を立てるときは、ネットワーク設定が要件を満たしていることを確認してください。

Fleet Auto Scaling を使用する前に、Application Auto Scaling には Amazon CloudWatch アラームと WorkSpaces Applications フリートにアクセスするためのアクセス許可が必要です。詳細については、「[AWS マネージドポリシーとリンクされたロールを使用して WorkSpaces アプリケーションリソースへの管理者アクセスを管理する](controlling-administrator-access-with-policies-roles.md)」および「[IAM ポリシーを使用して Application Auto Scaling への管理者アクセスを管理する](autoscaling-iam-policy.md)」を参照してください。

**注記**  
スケーリングを使用する場合は、Application Auto Scaling API を使用します。Fleet Auto Scaling が WorkSpaces アプリケーションで正しく機能するには、Application Auto Scaling に WorkSpaces アプリケーションフリートを記述および更新し、Amazon CloudWatch アラームを記述するアクセス許可と、ユーザーに代わってフリート容量を変更するアクセス許可が必要です。詳細については、「[WorkSpaces アプリケーション、Application Auto Scaling、および AWS Certificate Manager プライベート CA に必要なロール](roles-required-for-appstream.md)」および「[IAM ポリシーを使用して Application Auto Scaling への管理者アクセスを管理する](autoscaling-iam-policy.md)」を参照してください。

以下のトピックでは、WorkSpaces Applications Fleet Auto Scaling の理解と使用に役立つ情報を提供します。

**Topics**
+ [Amazon WorkSpaces アプリケーションのスケーリングの概念](autoscaling-concepts.md)
+ [Amazon WorkSpaces アプリケーションコンソールを使用したフリートスケーリングの管理](autoscaling-console.md)
+ [Amazon WorkSpaces アプリケーションの AWS CLI を使用したフリートスケーリングの管理](autoscaling-cli.md)
+ [Amazon WorkSpaces アプリケーションの Auto Scaling の追加リソース](autoscaling-additional-resources.md)

# Amazon WorkSpaces アプリケーションのスケーリングの概念
<a name="autoscaling-concepts"></a>

WorkSpaces アプリケーションのスケーリングは、Application Auto Scaling によって提供されます。詳細については、[Application Auto Scaling API リファレンス](https://docs.aws.amazon.com/autoscaling/application/APIReference/) を参照してください。

WorkSpaces Applications Fleet Auto Scaling を使用するstep-by-stepについては、*AWS コンピューティングブログ*の[Amazon AppStream 2.0を使用したデスクトップアプリケーションストリームのスケーリング](https://aws.amazon.com/blogs/compute/scaling-your-desktop-application-streams-with-amazon-appstream-2-0/)」を参照してください。

Fleet Auto Scaling を効果的に使用するには、以下の用語と概念を理解する必要があります。

**マルチセッションとシングルセッション**  
シングルセッションのシナリオでは、ユーザーセッションごとに専有インスタンスがあります。マルチセッションモードでは、1 つのインスタンスで複数のユーザーセッションをプロビジョニングできます。フリート容量と自動スケーリングポリシーは、ユーザーセッション数で設定する必要があります。これにより、サービスは必要な数のインスタンスを計算して起動します。

**フリートの最小容量/最小ユーザーセッション数**  
インスタンス (シングルセッションフリートの場合) またはユーザーセッション (マルチセッションフリートの場合) の最小数。インスタンス数 (シングルセッションフリートの場合) またはユーザーセッション数 (マルチセッションフリートの場合) がこの値を下回ることはできません。また、スケーリングポリシーがこの値未満にフリートをスケールすることはありません。例えば、シングルセッションシナリオの場合、フリートの最小容量を 2 に設定した場合、フリートのインスタンス数が 2 を下回ることはありません。同様に、マルチセッションシナリオの場合、インスタンスの最大セッション数を 5 に設定し、フリートの最小容量を 12 に設定すると、フリートのインスタンス数が切り上げ数 (12/5) = 3 未満になることはありません。

**フリートの最大容量/最大ユーザーセッション数**  
インスタンス (シングルセッションフリートの場合) またはユーザーセッション (マルチセッションフリートの場合) の最大数。インスタンス数 (シングルセッションフリートの場合) またはユーザーセッション数 (マルチセッションフリートの場合) がこの値を上回ることはできません。また、スケーリングポリシーがこの値を超えてフリートをスケールすることはありません。例えば、シングルセッションシナリオの場合、フリートの最大容量を 10 に設定すると、フリートのインスタンス数が 10 を上回ることはありません。同様に、マルチセッションシナリオの場合、インスタンスの最大セッション数を 5 に設定し、フリートの最大容量を 52 に設定すると、フリートのインスタンス数が切り上げ数 (52/5) = 11 を超えることはありません。

**希望する容量**  
実行中または保留中のインスタンス (シングルセッションフリートの場合) またはユーザーセッション (マルチセッションフリートの場合) の合計数。この値は、フリートが一定の状態でサポートできる同時ストリーミングセッションの合計数を表します。[**希望する容量**] の値を設定するには、[**フリートの詳細**] を編集します。**[Scaling Policies]** (スケーリングポリシー) を使用する場合、**[Desired Capacity]** (希望する容量) の値を手動で変更することはお勧めしません。  
**[希望するキャパシティ]** の値が **[最低キャパシティ]** 未満の値に設定されている状態でスケールアウトアクティビティがトリガーされた場合、Application Auto Scaling は **[希望するキャパシティ]** を **[最低キャパシティ]** の値までスケールアップしてから、スケーリングポリシーに基づいたスケールアウトを必要に応じて続行します。ただし、この場合は、すでに [**最低容量**] の値を下回っているため、スケールインアクティビティは [**希望する容量**] を調整しません。  
**[希望するキャパシティ]** が **[最大キャパシティ]** を超える値に設定されている状態でスケールインアクティビティがトリガーされた場合、Application Auto Scaling は **[希望するキャパシティ]** を **[最大キャパシティ]** の値までスケールダウンしてから、スケーリングポリシーに基づいたスケールインを必要に応じて続行します。ただし、この場合は、すでに [**最大容量**] の値を上回っているため、スケールアウトアクティビティは [**希望する容量**] を調整しません。

**スケーリングポリシーのアクション**  
[**Scaling Policy Condition**] が満たされると、フリートでスケーリングポリシーがアクションを実行します。**[% 容量]** または **[インスタンス数]** (シングルセッションフリートの場合) と **[ユーザーセッション数]** (マルチセッションフリートの場合) のいずれかに基づいてアクションを選択できます。例えば、**[現在の容量]** が 4 の場合に **[スケーリングポリシーアクション]** が「容量を 25% 追加」に設定されていると、**[スケーリングポリシー条件]** が満たされるときに **[希望する容量]** は 5 に設定されます。

**スケーリングポリシーの条件**  
[**Scaling Policy Action**] で設定されたアクションをトリガーする条件。この条件は、スケーリングポリシーのメトリクス、比較演算子、しきい値を含みます。たとえば、フリートの使用率が 50% 以上のときにフリートをスケーリングする場合は、スケーリングポリシーの条件を「Capacity Utilization > 50%」にする必要があります。

**スケーリングポリシーのメトリクス**  
お客様のスケーリングポリシーはこのメトリクスに基づいています。スケーリングポリシーには、次のメトリクスを使用できます。    
**容量使用率**  
フリートで使用されているインスタンスの割合。このメトリクスを使用すると、フリートの使用量に基づいてフリートをスケールできます。たとえば、[**Scaling Policy Condition**]: 「容量使用率 < 25%」の場合、[**Scaling Policy Action**]: 「25% の容量を削除」を実行します。  
**使用可能な容量**  
ユーザーが利用できるフリート内のインスタンス数 (シングルセッションフリートの場合) またはユーザーセッション数 (マルチセッションフリートの場合)。このメトリクスを使用して、ユーザーがストリーミングセッションを開始するための、使用可能なメモリ容量のバッファを維持できます。例として、**[スケーリングポリシー条件]** が「使用可能な容量が 5 未満の場合」では、**[スケーリングポリシーアクション]**として「インスタンス (シングルセッションフリートの場合) またはユーザーセッション (マルチセッションフリートの場合) を 5 つ追加」を実行します。  
**容量不足エラー**  
容量不足により拒否されたセッションリクエストの数。このメトリクスを使用して、容量不足のためにストリーミングセッションを開始できないユーザーの新しいインスタンスをプロビジョニングできます。例えば、**[スケーリングポリシー条件]** が「容量不足エラー > 0 である場合」では、**[スケーリングポリシーアクション]** として「インスタンス (シングルセッションフリートの場合) またはユーザーセッション (マルチセッションフリートの場合) を 1 つ追加」を実行します。

# Amazon WorkSpaces アプリケーションコンソールを使用したフリートスケーリングの管理
<a name="autoscaling-console"></a>

WorkSpaces アプリケーションコンソールを使用してフリートスケーリングを設定および管理するには、フリートの作成中、または**フリート**タブを使用していつでも 2 つの方法を使用できます。起動後に新しく作成されたフリートには 2 つのデフォルトのスケーリングポリシーが関連付けられます。これらのポリシーは、WorkSpaces アプリケーションコンソール**のスケーリングポリシー**タブで編集できます。詳細については、「[Amazon WorkSpaces アプリケーションでフリートを作成する](set-up-stacks-fleets-create.md)」を参照してください。

ユーザーの環境はさまざまに異なるため、需要に応じてスケーリングを制御するようにスケーリングポリシーを定義します。一定数のユーザーが予想される場合やスケーリングを無効にする他の理由がある場合には、一定数のインスタンスやユーザーセッションを使用してフリートを設定できます。

**コンソールを使用してフリートのスケーリングポリシーを設定するには**

1. [https://console.aws.amazon.com/appstream2/home](https://console.aws.amazon.com/appstream2/home) で WorkSpaces アプリケーションコンソールを開きます。

1. ナビゲーションペインの [**Fleets**] を選択します。

1. スケーリングポリシーを設定するフリートを選択して、[**Scaling Policies**] を選択します。

1. 各値の横にある編集アイコンを選択して既存のポリシーを編集します。編集フィールドで目的の値を設定して、[**Update**] を選択します。ポリシーの変更は数分以内で有効になります。

1. [**Add Policy**] リンクを使用して新しいポリシーを追加 (作成) します。編集フィールドで目的の値を設定して、[**Create**] を選択します。数分以内に新しいポリシーが適用されます。

[**Fleet Usage**] タブを使用して、スケーリングポリシーの変更の影響をモニタリングできます。次の例は、5 人のユーザーがフリートに接続して切断する場合のスケーリングアクティビティの使用状況グラフです。この例では、フリートは次のスケーリングポリシーを使用します。
+ 最小容量 = 10
+ 最大容量 = 50
+ スケールアウト = 容量使用率が 75% を超える場合は、5 つのインスタンス (シングルセッションフリートの場合) またはユーザーセッション (マルチセッションフリートの場合) を追加
+ スケールイン = 容量使用率が 25% 未満の場合は、6 つのインスタンス (シングルセッションフリートの場合) またはユーザーセッション (マルチセッションフリートの場合) を削除
**注記**  
上記のポリシーは、シングルセッションシナリオとマルチセッションシナリオの両方に適用されます。シングルセッションシナリオでは、スケールアウトイベント中に 5 つの新しいインスタンスが起動され、スケールダウンイベント中に 4 つのインスタンスが再利用されます。マルチセッションシナリオの場合、インスタンスあたりの最大セッション数が 4 では、スケールアウトイベントによって切り上げ数 (ユーザーセッションの追加数 5/インスタンスあたりの最大セッション数 4) = 2 のインスタンスの起動がトリガーされます。スケールインイベント中、サービスは切り上げ数 (ユーザーセッションの削除数 6/インスタンスあたりの最大セッション数 4) = 2 のインスタンスを再利用します。ユーザーセッションが実行中であるインスタンスは再利用されません。実行中のユーザーセッションがないインスタンスのみが再利用されます。

**コンソールを使用してフリートを固定容量に設定するには**

1. [https://console.aws.amazon.com/appstream2/home](https://console.aws.amazon.com/appstream2/home) で WorkSpaces アプリケーションコンソールを開きます。

1. ナビゲーションペインの [**Fleets**] を選択します。

1. フリートを選択します。

1. [**Scaling Policies**] で、フリートに関連付けられているすべてのポリシーを削除します。

1. [**Fleet Details**] で、[**Desired Capacity**] を設定するフリートを編集します。

固定されたフリートは [**Desired Capacity**] で指定した値に基づく一定の容量となります。固定されたフリートで常に希望する数のインスタンスが利用可能で、および、そのフリートのコストの課金を停止するには、フリートを停止する必要があることに注意してください。

# Amazon WorkSpaces アプリケーションの AWS CLI を使用したフリートスケーリングの管理
<a name="autoscaling-cli"></a>

 AWS Command Line Interface (AWS CLI) を使用してフリートスケーリングを設定および管理できます。複数のスケーリングポリシーの設定やスケールインおよびスケールアウトのクールダウン時間の設定など、より高度な機能については、 AWS CLI を使用します。スケーリングポリシーコマンドを実行する前に、フリートをスケーラブルなターゲットとして登録する必要があります。これを行うには、以下の [register-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html) コマンドを使用します。

```
aws application-autoscaling register-scalable-target
  --service-namespace appstream \
  --resource-id fleet/fleetname \
  --scalable-dimension appstream:fleet:DesiredCapacity \
  --min-capacity 1 --max-capacity 5
```

**Topics**
+ [例 1: 容量使用率に基づくスケーリングポリシーの適用](#autoscaling-cli-utilization)
+ [例 2: 容量不足エラーに基づくスケーリングポリシーの適用](#autoscaling-cli-capacity)
+ [例 3: 低容量使用率に基づくスケーリングポリシーの適用](#autoscaling-cli-scale-in)
+ [例 4: スケジュールに基づくフリートの容量の変更](#autoscaling-cli-schedule)
+ [例 5: ターゲット追跡スケーリングポリシーの適用](#autoscaling-target-tracking)

## 例 1: 容量使用率に基づくスケーリングポリシーの適用
<a name="autoscaling-cli-utilization"></a>

この AWS CLI の例では、使用率 >= 75% の場合、フリートを 25% スケールアウトするスケーリングポリシーを設定します。

次の [put-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scaling-policy.html) コマンドは使用率ベースのスケーリングポリシーを定義します。

```
aws application-autoscaling put-scaling-policy --cli-input-json file://scale-out-utilization.json
```

`scale-out-utilization.json` ファイルの内容は以下のようになります。

```
{
    "PolicyName": "policyname",
    "ServiceNamespace": "appstream",
    "ResourceId": "fleet/fleetname",
    "ScalableDimension": "appstream:fleet:DesiredCapacity",
    "PolicyType": "StepScaling",
    "StepScalingPolicyConfiguration": {
        "AdjustmentType": "PercentChangeInCapacity",
        "StepAdjustments": [
            {
                "MetricIntervalLowerBound": 0,
                "ScalingAdjustment": 25
            }
        ],
        "Cooldown": 120
    }
}
```

コマンドが成功した場合、一部の詳細はアカウントおよびリージョンで固有ですが、出力は次のようになります。この例では、ポリシー識別子は `e3425d21-16f0-d701-89fb-12f98dac64af` です。

```
{"PolicyARN": "arn:aws:autoscaling:us-west-2:123456789012:scalingPolicy:e3425d21-16f0-d701-89fb-12f98dac64af:resource/appstream/fleet/SampleFleetName:policyName/scale-out-utilization-policy"}
```

ここで、このポリシーの CloudWatch アラームを設定します。該当する名前、リージョン、アカウント番号、およびポリシー識別子を使用します。前のコマンドで返されたポリシー ARN を `--alarm-actions` パラメータに使用できます。

```
aws cloudwatch put-metric-alarm 
--alarm-name alarmname \
--alarm-description "Alarm when Capacity Utilization exceeds 75 percent" \
--metric-name CapacityUtilization \
--namespace AWS/AppStream \
--statistic Average \
--period 300 \
--threshold 75 \
--comparison-operator GreaterThanOrEqualToThreshold \
--dimensions "Name=Fleet,Value=fleetname" \
--evaluation-periods 1 --unit Percent \
--alarm-actions "arn:aws:autoscaling:your-region-code:account-number-without-hyphens:scalingPolicy:policyid:resource/appstream/fleet/fleetname:policyName/policyname"
```

## 例 2: 容量不足エラーに基づくスケーリングポリシーの適用
<a name="autoscaling-cli-capacity"></a>

この AWS CLI の例では、フリートが`InsufficientCapacityError`エラーを返した場合、フリートを 1 ずつスケールアウトするスケーリングポリシーを設定します。

次のコマンドは、容量不足に基づくスケーリングポリシーを定義します。

```
aws application-autoscaling put-scaling-policy --cli-input-json file://scale-out-capacity.json
```

`scale-out-capacity.json` ファイルの内容は以下のようになります。

```
{
    "PolicyName": "policyname",
    "ServiceNamespace": "appstream",
    "ResourceId": "fleet/fleetname",
    "ScalableDimension": "appstream:fleet:DesiredCapacity",
    "PolicyType": "StepScaling",
    "StepScalingPolicyConfiguration": {
        "AdjustmentType": "ChangeInCapacity",
        "StepAdjustments": [
            {
                "MetricIntervalLowerBound": 0,
                "ScalingAdjustment": 1
            }
        ],
        "Cooldown": 120
    }
}
```

コマンドが成功した場合、一部の詳細はアカウントおよびリージョンで固有ですが、出力は次のようになります。この例では、ポリシー識別子は `f4495f21-0650-470c-88e6-0f393adb64fc` です。

```
{"PolicyARN": "arn:aws:autoscaling:us-west-2:123456789012:scalingPolicy:f4495f21-0650-470c-88e6-0f393adb64fc:resource/appstream/fleet/SampleFleetName:policyName/scale-out-insufficient-capacity-policy"}
```

ここで、このポリシーの CloudWatch アラームを設定します。該当する名前、リージョン、アカウント番号、およびポリシー識別子を使用します。前のコマンドで返されたポリシー ARN を `--alarm-actions` パラメータに使用できます。

```
aws cloudwatch put-metric-alarm 
--alarm-name alarmname \
--alarm-description "Alarm when out of capacity is > 0" \
--metric-name InsufficientCapacityError \
--namespace AWS/AppStream \
--statistic Maximum \
--period 300 \
--threshold 0 \
--comparison-operator GreaterThanThreshold \
--dimensions "Name=Fleet,Value=fleetname" \
--evaluation-periods 1 --unit Count \
--alarm-actions "arn:aws:autoscaling:your-region-code:account-number-without-hyphens:scalingPolicy:policyid:resource/appstream/fleet/fleetname:policyName/policyname"
```

## 例 3: 低容量使用率に基づくスケーリングポリシーの適用
<a name="autoscaling-cli-scale-in"></a>

 AWS CLI この例では、 `CapacityUtilization` が低い場合に実際の容量を減らすためにフリートをスケールインするスケーリングポリシーを設定します。

以下のコマンドは、容量超過に基づくスケーリングポリシーを定義します。

```
aws application-autoscaling put-scaling-policy --cli-input-json file://scale-in-capacity.json
```

`scale-in-capacity.json` ファイルの内容は以下のようになります。

```
{
    "PolicyName": "policyname",
    "ServiceNamespace": "appstream",
    "ResourceId": "fleet/fleetname",
    "ScalableDimension": "appstream:fleet:DesiredCapacity",
    "PolicyType": "StepScaling",
    "StepScalingPolicyConfiguration": {
        "AdjustmentType": "PercentChangeInCapacity",
        "StepAdjustments": [
            {
                "MetricIntervalUpperBound": 0,
                "ScalingAdjustment": -25
            }
        ],
        "Cooldown": 360
    }
}
```

コマンドが成功した場合、一部の詳細はアカウントおよびリージョンで固有ですが、出力は次のようになります。この例では、ポリシー識別子は `12ab3c4d-56789-0ef1-2345-6ghi7jk8lm90` です。

```
{"PolicyARN": "arn:aws:autoscaling:us-west-2:123456789012:scalingPolicy:12ab3c4d-56789-0ef1-2345-6ghi7jk8lm90:resource/appstream/fleet/SampleFleetName:policyName/scale-in-utilization-policy"}
```

ここで、このポリシーの CloudWatch アラームを設定します。該当する名前、リージョン、アカウント番号、およびポリシー識別子を使用します。前のコマンドで返されたポリシー ARN を `--alarm-actions` パラメータに使用できます。

```
aws cloudwatch put-metric-alarm 
--alarm-name alarmname \
--alarm-description "Alarm when Capacity Utilization is less than or equal to 25 percent" \
--metric-name CapacityUtilization \
--namespace AWS/AppStream \
--statistic Average \
--period 120 \
--threshold 25 \
--comparison-operator LessThanOrEqualToThreshold \
--dimensions "Name=Fleet,Value=fleetname" \
--evaluation-periods 10 --unit Percent \
--alarm-actions "arn:aws:autoscaling:your-region-code:account-number-without-hyphens:scalingPolicy:policyid:resource/appstream/fleet/fleetname:policyName/policyname"
```

## 例 4: スケジュールに基づくフリートの容量の変更
<a name="autoscaling-cli-schedule"></a>

スケジュールに基づいてフリートの容量を変更すると、需要の予測可能な変更に応じてフリートの容量をスケールすることができます。たとえば、稼働日の最初に、特定の数のユーザーが同時にストリーミング接続をリクエストすることが予期されます。スケジュールに基づいてフリート容量を変更するには、Application Auto Scaling [PutScheduledAction](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_PutScheduledAction.html) API アクションまたは [put-scheduled-action](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scheduled-action.html) AWS CLI コマンドを使用できます。

フリート容量を変更する前に、WorkSpaces Applications [describe-fleets](https://docs.aws.amazon.com/cli/latest/reference/appstream/describe-fleets.html) AWS CLI コマンドを使用して、現在のフリート容量を一覧表示できます。

```
aws appstream describe-fleets --name fleetname
```

現在のフリートの容量は、次の出力のように表示されます (JSON 形式で表示)。

```
{
    {
            "ComputeCapacityStatus": {
                "Available": 1,
                "Desired": 1,
                "Running": 1,
                "InUse": 0
            },
}
```

次に、`put-scheduled-action` コマンドを使用してフリートの容量を変更するスケジュールされたアクションを作成します。たとえば、次のコマンドでは、毎日午前 9:00 時 (UTC) に最小容量を 3 に変更し、最大容量を 5 に変更します。

**注記**  
cron 式の場合は、アクションを実行するタイミングを UTC で指定します。詳細については、「[Cron 式](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html#CronExpressions)」を参照してください。

```
aws application-autoscaling put-scheduled-action --service-namespace appstream \
--resource-id fleet/fleetname \
--schedule="cron(0 9 * * ? *)" \
--scalable-target-action MinCapacity=3,MaxCapacity=5 \
--scheduled-action-name ExampleScheduledAction \
--scalable-dimension appstream:fleet:DesiredCapacity
```

フリートの容量を変更するスケジュールされたアクションが正しく作成されたことを確認するには、[describe-scheduled-actions](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/describe-scheduled-actions.html) コマンドを実行します。

```
aws application-autoscaling describe-scheduled-actions --service-namespace appstream --resource-id fleet/fleetname
```

スケジュールされたアクションが正常に作成された場合、出力は次のようになります。

```
{
    "ScheduledActions": [
        {
            "ScalableDimension": "appstream:fleet:DesiredCapacity",
            "Schedule": "cron(0 9 * * ? *)",
            "ResourceId": "fleet/ExampleFleet",
            "CreationTime": 1518651232.886,
            "ScheduledActionARN": "<arn>",
            "ScalableTargetAction": {
                "MinCapacity": 3,
                "MaxCapacity": 5
            },
            "ScheduledActionName": "ExampleScheduledAction",
            "ServiceNamespace": "appstream"
        }
    ]
}
```

詳細については、「*Application Auto Scaling ユーザーガイド*」の「[スケジュールされたスケーリング](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-scheduled-scaling.html)」を参照してください。

## 例 5: ターゲット追跡スケーリングポリシーの適用
<a name="autoscaling-target-tracking"></a>

ターゲット追跡スケーリングでは、フリートの容量使用率レベルを指定できます。

ターゲット追跡スケーリングポリシーを作成すると、Application Auto Scaling は、スケーリングポリシーをトリガーする CloudWatch アラームを自動的に作成および管理します。スケーリングポリシーは、指定されたターゲット値、またはそれに近い値に容量使用率を維持するため、必要に応じて容量を追加または削除します。アプリケーションの可用性を高めるために、フリートのスケールアウトはメトリクスに比例して可能な限り高速に行われますが、スケールインはより緩やかです。

次の [put-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scaling-policy.html) コマンドは、WorkSpaces アプリケーションフリートの容量使用率を 75% に維持しようとするターゲット追跡スケーリングポリシーを定義します。

```
aws application-autoscaling put-scaling-policy --cli-input-json file://config.json
```

`config.json` ファイルの内容は以下のようになります。

```
{
  "PolicyName":"target-tracking-scaling-policy",
  "ServiceNamespace":"appstream",
  "ResourceId":"fleet/fleetname",
  "ScalableDimension":"appstream:fleet:DesiredCapacity",
  "PolicyType":"TargetTrackingScaling",
  "TargetTrackingScalingPolicyConfiguration":{
    "TargetValue":75.0,
    "PredefinedMetricSpecification":{
      "PredefinedMetricType":"AppStreamAverageCapacityUtilization"
    },
    "ScaleOutCooldown":300,
    "ScaleInCooldown":300
  }
}
```

コマンドが成功した場合、一部の詳細はアカウントおよびリージョンで固有ですが、出力は次のようになります。この例では、ポリシー識別子は 6d8972f3-efc8-437c-92d1-6270f29a66e7 です。

```
{
    "PolicyARN": "arn:aws:autoscaling:us-west-2:123456789012:scalingPolicy:6d8972f3-efc8-437c-92d1-6270f29a66e7:resource/appstream/fleet/fleetname:policyName/target-tracking-scaling-policy",
    "Alarms": [
        {
            "AlarmARN": "arn:aws:cloudwatch:us-west-2:123456789012:alarm:TargetTracking-fleet/fleetname-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca",
            "AlarmName": "TargetTracking-fleet/fleetname-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca"
        },
        {
            "AlarmARN": "arn:aws:cloudwatch:us-west-2:123456789012:alarm:TargetTracking-fleet/fleetname-AlarmLow-1b437334-d19b-4a63-a812-6c67aaf2910d",
            "AlarmName": "TargetTracking-fleet/fleetname-AlarmLow-1b437334-d19b-4a63-a812-6c67aaf2910d"
        }
    ]
}
```

詳細については、*Application Auto Scaling ユーザーガイド*の「[ターゲット追跡スケーリングポリシー](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html)」を参照してください。

# Amazon WorkSpaces アプリケーションの Auto Scaling の追加リソース
<a name="autoscaling-additional-resources"></a>

WorkSpaces Applications Fleet Auto Scaling を使用するstep-by-stepガイダンスについては、*AWS コンピューティングブログ*の[Amazon AppStream 2.0 を使用したデスクトップアプリケーションストリームのスケーリング](https://aws.amazon.com/blogs/compute/scaling-your-desktop-application-streams-with-amazon-appstream-2-0/)」を参照してください。

Application Auto Scaling AWS CLI コマンドまたは API アクションの使用の詳細については、次のリソースを参照してください。
+ AWS CLI コマンドリファレンスの [application-autoscaling](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling) セクション
+ Application Auto Scaling API リファレンス[https://docs.aws.amazon.com/autoscaling/application/APIReference/](https://docs.aws.amazon.com/autoscaling/application/APIReference/)
+ アプリケーション Auto Scaling ユーザーガイド[https://docs.aws.amazon.com/autoscaling/application/userguide/](https://docs.aws.amazon.com/autoscaling/application/userguide/)