

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Mengelola Penskalaan Armada Menggunakan AWS CLI untuk Aplikasi Amazon WorkSpaces
<a name="autoscaling-cli"></a>

Anda dapat mengatur dan mengelola penskalaan armada dengan menggunakan AWS Command Line Interface (AWS CLI). Untuk fitur yang lebih canggih seperti menyiapkan beberapa kebijakan penskalaan atau menyetel waktu cooldown scale-in dan scale-out, gunakan CLI. AWS Sebelum menjalankan perintah kebijakan penskalaan, Anda harus mendaftarkan armada Anda sebagai target yang dapat diskalakan. Untuk melakukannya, gunakan [register-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html)perintah berikut:

```
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**
+ [Contoh 1: Menerapkan Kebijakan Penskalaan Berdasarkan Pemanfaatan Kapasitas](#autoscaling-cli-utilization)
+ [Contoh 2: Menerapkan Kebijakan Penskalaan Berdasarkan Kesalahan Kapasitas yang Tidak Cukup](#autoscaling-cli-capacity)
+ [Contoh 3: Menerapkan Kebijakan Penskalaan Berdasarkan Pemanfaatan Kapasitas Rendah](#autoscaling-cli-scale-in)
+ [Contoh 4: Ubah Kapasitas Armada Berdasarkan Jadwal](#autoscaling-cli-schedule)
+ [Contoh 5: Menerapkan Kebijakan Penskalaan Pelacakan Target](#autoscaling-target-tracking)

## Contoh 1: Menerapkan Kebijakan Penskalaan Berdasarkan Pemanfaatan Kapasitas
<a name="autoscaling-cli-utilization"></a>

Contoh AWS CLI ini menetapkan kebijakan penskalaan yang menskalakan armada sebesar 25% jika Pemanfaatan >= 75%.

[put-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scaling-policy.html)Perintah berikut mendefinisikan kebijakan penskalaan berbasis pemanfaatan:

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

Isi file `scale-out-utilization.json` adalah sebagai berikut:

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

Jika perintah berhasil, outputnya mirip dengan yang berikut ini, meskipun beberapa detail unik untuk akun dan Wilayah Anda. Dalam contoh ini, pengidentifikasi kebijakan adalah`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"}
```

Sekarang, siapkan CloudWatch alarm untuk kebijakan ini. Gunakan nama, Wilayah, nomor akun, dan pengenal kebijakan yang berlaku untuk Anda. Anda dapat menggunakan kebijakan ARN yang dikembalikan oleh perintah sebelumnya untuk parameter. `--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"
```

## Contoh 2: Menerapkan Kebijakan Penskalaan Berdasarkan Kesalahan Kapasitas yang Tidak Cukup
<a name="autoscaling-cli-capacity"></a>

Contoh AWS CLI ini menetapkan kebijakan penskalaan yang menskalakan armada sebanyak 1 jika armada mengembalikan kesalahan. `InsufficientCapacityError`

Perintah berikut mendefinisikan kebijakan penskalaan berbasis kapasitas yang tidak memadai:

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

Isi file `scale-out-capacity.json` adalah sebagai berikut:

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

Jika perintah berhasil, outputnya mirip dengan yang berikut ini, meskipun beberapa detail unik untuk akun dan Wilayah Anda. Dalam contoh ini, pengidentifikasi kebijakan adalah`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"}
```

Sekarang, siapkan CloudWatch alarm untuk kebijakan ini. Gunakan nama, Wilayah, nomor akun, dan pengenal kebijakan yang berlaku untuk Anda. Anda dapat menggunakan kebijakan ARN yang dikembalikan oleh perintah sebelumnya untuk parameter. `--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"
```

## Contoh 3: Menerapkan Kebijakan Penskalaan Berdasarkan Pemanfaatan Kapasitas Rendah
<a name="autoscaling-cli-scale-in"></a>

 AWS CLI Contoh ini menetapkan kebijakan penskalaan yang menskalakan armada untuk mengurangi kapasitas aktual saat `CapacityUtilization` rendah.

Perintah berikut mendefinisikan kebijakan penskalaan berbasis kapasitas berlebih:

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

Isi file `scale-in-capacity.json` adalah sebagai berikut:

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

Jika perintah berhasil, outputnya mirip dengan yang berikut ini, meskipun beberapa detail unik untuk akun dan Wilayah Anda. Dalam contoh ini, pengidentifikasi kebijakan adalah`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"}
```

Sekarang, siapkan CloudWatch alarm untuk kebijakan ini. Gunakan nama, Wilayah, nomor akun, dan pengenal kebijakan yang berlaku untuk Anda. Anda dapat menggunakan kebijakan ARN yang dikembalikan oleh perintah sebelumnya untuk parameter. `--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"
```

## Contoh 4: Ubah Kapasitas Armada Berdasarkan Jadwal
<a name="autoscaling-cli-schedule"></a>

Mengubah kapasitas armada berdasarkan jadwal memungkinkan Anda menskalakan kapasitas armada Anda sebagai respons terhadap perubahan permintaan yang dapat diprediksi. Misalnya, pada awal hari kerja, Anda mungkin mengharapkan sejumlah pengguna untuk meminta koneksi streaming pada satu waktu. Untuk mengubah kapasitas armada berdasarkan jadwal, Anda dapat menggunakan tindakan Application Auto Scaling [PutScheduledAction](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_PutScheduledAction.html)API atau perintah CLI [put-scheduled-action](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scheduled-action.html) AWS .

Sebelum mengubah kapasitas armada Anda, Anda dapat membuat daftar kapasitas armada Anda saat ini dengan menggunakan perintah WorkSpaces Applications [describe-fleet CLI](https://docs.aws.amazon.com/cli/latest/reference/appstream/describe-fleets.html) AWS .

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

Kapasitas armada saat ini akan tampak mirip dengan output berikut (ditunjukkan dalam format JSON):

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

Kemudian, gunakan `put-scheduled-action` perintah untuk membuat tindakan terjadwal untuk mengubah kapasitas armada Anda. Misalnya, perintah berikut mengubah kapasitas minimum menjadi 3 dan kapasitas maksimum menjadi 5 setiap hari pada pukul 9:00 UTC.

**catatan**  
Untuk ekspresi cron, tentukan kapan harus melakukan tindakan di UTC. Untuk informasi selengkapnya, lihat [Ekspresi 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
```

Untuk mengonfirmasi bahwa tindakan terjadwal untuk mengubah kapasitas armada Anda berhasil dibuat, jalankan [describe-scheduled-actions](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/describe-scheduled-actions.html)perintah.

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

Jika tindakan terjadwal berhasil dibuat, output muncul mirip dengan berikut ini.

```
{
    "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"
        }
    ]
}
```

Untuk informasi selengkapnya, lihat [Penskalaan Terjadwal](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-scheduled-scaling.html) di Panduan Pengguna *Application Auto Scaling.*

## Contoh 5: Menerapkan Kebijakan Penskalaan Pelacakan Target
<a name="autoscaling-target-tracking"></a>

Dengan penskalaan pelacakan target, Anda dapat menentukan tingkat pemanfaatan kapasitas untuk armada Anda. 

Saat Anda membuat kebijakan penskalaan pelacakan target, Application Auto Scaling secara otomatis membuat dan CloudWatch mengelola alarm yang memicu kebijakan penskalaan. Kebijakan penskalaan menambah atau menghapus kapasitas yang diperlukan untuk menjaga pemanfaatan kapasitas pada, atau mendekati, nilai target yang ditentukan. Untuk memastikan ketersediaan aplikasi, armada Anda menskalakan secara proporsional dengan metrik secepat mungkin, tetapi skala lebih bertahap.

[put-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scaling-policy.html)Perintah berikut mendefinisikan kebijakan penskalaan pelacakan target yang mencoba mempertahankan pemanfaatan kapasitas 75% untuk armada Aplikasi WorkSpaces .

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

Isi file `config.json` adalah sebagai berikut:

```
{
  "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
  }
}
```

Jika perintah berhasil, outputnya mirip dengan yang berikut ini, meskipun beberapa detail unik untuk akun dan Wilayah Anda. Dalam contoh ini, pengidentifikasi kebijakan adalah 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"
        }
    ]
}
```

Untuk informasi selengkapnya, lihat [Kebijakan Penskalaan Pelacakan Target](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html) di Panduan Pengguna *Application Auto Scaling.*