

# AWS services that you can use with Application Auto Scaling
<a name="integrated-services-list"></a>

Application Auto Scaling integrates with other AWS services so that you can add scaling capabilities to meet your application's demand. Auto scaling is an optional feature of the service that is disabled by default in almost all cases. 

The following table lists the AWS services that you can use with Application Auto Scaling, including information about supported methods for configuring auto scaling. You can also use Application Auto Scaling with custom resources.
+ **Console access** – You can configure a compatible AWS service to start auto scaling by configuring a scaling policy in the console of the target service.
+ **CLI access** – You can configure a compatible AWS service to start auto scaling using the AWS CLI.
+ **SDK access** – You can configure a compatible AWS service to start auto scaling using the AWS SDKs.
+ **CloudFormation access** – You can configure a compatible AWS service to start auto scaling using an CloudFormation stack template. For more information, see [Configure Application Auto Scaling resources using AWS CloudFormation](creating-resources-with-cloudformation.md).


****  

| AWS service | Console access¹ | CLI access | SDK access | CloudFormation access | 
| --- | --- | --- | --- | --- | 
|   [WorkSpaces Applications](services-that-can-integrate-appstream.md)   |   ![\[Yes\]](http://docs.aws.amazon.com/autoscaling/application/userguide/images/icon-yes.png) Yes   |   ![\[Yes\]](http://docs.aws.amazon.com/autoscaling/application/userguide/images/icon-yes.png) Yes   |   ![\[Yes\]](http://docs.aws.amazon.com/autoscaling/application/userguide/images/icon-yes.png) Yes   |   ![\[Yes\]](http://docs.aws.amazon.com/autoscaling/application/userguide/images/icon-yes.png) Yes   | 
|   [Aurora](services-that-can-integrate-aurora.md)   |   ![\[Yes\]](http://docs.aws.amazon.com/autoscaling/application/userguide/images/icon-yes.png) Yes   |   ![\[Yes\]](http://docs.aws.amazon.com/autoscaling/application/userguide/images/icon-yes.png) Yes   |   ![\[Yes\]](http://docs.aws.amazon.com/autoscaling/application/userguide/images/icon-yes.png) Yes   |   ![\[Yes\]](http://docs.aws.amazon.com/autoscaling/application/userguide/images/icon-yes.png) Yes   | 
|   [Amazon Comprehend](services-that-can-integrate-comprehend.md)   |   ![\[No\]](http://docs.aws.amazon.com/autoscaling/application/userguide/images/icon-no.png) No   |   ![\[Yes\]](http://docs.aws.amazon.com/autoscaling/application/userguide/images/icon-yes.png) Yes   |   ![\[Yes\]](http://docs.aws.amazon.com/autoscaling/application/userguide/images/icon-yes.png) Yes   |   ![\[Yes\]](http://docs.aws.amazon.com/autoscaling/application/userguide/images/icon-yes.png) Yes   | 
|   [Amazon DynamoDB](services-that-can-integrate-dynamodb.md)   |   ![\[Yes\]](http://docs.aws.amazon.com/autoscaling/application/userguide/images/icon-yes.png) Yes   |   ![\[Yes\]](http://docs.aws.amazon.com/autoscaling/application/userguide/images/icon-yes.png) Yes   |   ![\[Yes\]](http://docs.aws.amazon.com/autoscaling/application/userguide/images/icon-yes.png) Yes   |   ![\[Yes\]](http://docs.aws.amazon.com/autoscaling/application/userguide/images/icon-yes.png) Yes   | 
|   [Amazon ECS](services-that-can-integrate-ecs.md)   |   ![\[Yes\]](http://docs.aws.amazon.com/autoscaling/application/userguide/images/icon-yes.png) Yes   |   ![\[Yes\]](http://docs.aws.amazon.com/autoscaling/application/userguide/images/icon-yes.png) Yes   |   ![\[Yes\]](http://docs.aws.amazon.com/autoscaling/application/userguide/images/icon-yes.png) Yes   |   ![\[Yes\]](http://docs.aws.amazon.com/autoscaling/application/userguide/images/icon-yes.png) Yes   | 
|   [Amazon ElastiCache](services-that-can-integrate-elasticache.md)   |   ![\[Yes\]](http://docs.aws.amazon.com/autoscaling/application/userguide/images/icon-yes.png) Yes   |   ![\[Yes\]](http://docs.aws.amazon.com/autoscaling/application/userguide/images/icon-yes.png) Yes   |   ![\[Yes\]](http://docs.aws.amazon.com/autoscaling/application/userguide/images/icon-yes.png) Yes   |   ![\[Yes\]](http://docs.aws.amazon.com/autoscaling/application/userguide/images/icon-yes.png) Yes   | 
|   [Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-automatic-scaling.html)   |   ![\[Yes\]](http://docs.aws.amazon.com/autoscaling/application/userguide/images/icon-yes.png) Yes   |   ![\[Yes\]](http://docs.aws.amazon.com/autoscaling/application/userguide/images/icon-yes.png) Yes   |   ![\[Yes\]](http://docs.aws.amazon.com/autoscaling/application/userguide/images/icon-yes.png) Yes   |   ![\[Yes\]](http://docs.aws.amazon.com/autoscaling/application/userguide/images/icon-yes.png) Yes   | 
|   [Amazon Keyspaces](services-that-can-integrate-keyspaces.md)   |   ![\[Yes\]](http://docs.aws.amazon.com/autoscaling/application/userguide/images/icon-yes.png) Yes   |   ![\[Yes\]](http://docs.aws.amazon.com/autoscaling/application/userguide/images/icon-yes.png) Yes   |   ![\[Yes\]](http://docs.aws.amazon.com/autoscaling/application/userguide/images/icon-yes.png) Yes   |   ![\[Yes\]](http://docs.aws.amazon.com/autoscaling/application/userguide/images/icon-yes.png) Yes   | 
|   [Lambda](services-that-can-integrate-lambda.md)   |   ![\[No\]](http://docs.aws.amazon.com/autoscaling/application/userguide/images/icon-no.png) No   |   ![\[Yes\]](http://docs.aws.amazon.com/autoscaling/application/userguide/images/icon-yes.png) Yes   |   ![\[Yes\]](http://docs.aws.amazon.com/autoscaling/application/userguide/images/icon-yes.png) Yes   |   ![\[Yes\]](http://docs.aws.amazon.com/autoscaling/application/userguide/images/icon-yes.png) Yes   | 
|   [Amazon MSK](services-that-can-integrate-msk.md)   |   ![\[Yes\]](http://docs.aws.amazon.com/autoscaling/application/userguide/images/icon-yes.png) Yes   |   ![\[Yes\]](http://docs.aws.amazon.com/autoscaling/application/userguide/images/icon-yes.png) Yes   |   ![\[Yes\]](http://docs.aws.amazon.com/autoscaling/application/userguide/images/icon-yes.png) Yes   |   ![\[Yes\]](http://docs.aws.amazon.com/autoscaling/application/userguide/images/icon-yes.png) Yes   | 
|   [Amazon Neptune](services-that-can-integrate-neptune.md)   |   ![\[No\]](http://docs.aws.amazon.com/autoscaling/application/userguide/images/icon-no.png) No   |   ![\[Yes\]](http://docs.aws.amazon.com/autoscaling/application/userguide/images/icon-yes.png) Yes   |   ![\[Yes\]](http://docs.aws.amazon.com/autoscaling/application/userguide/images/icon-yes.png) Yes   |   ![\[Yes\]](http://docs.aws.amazon.com/autoscaling/application/userguide/images/icon-yes.png) Yes   | 
|   [SageMaker AI](services-that-can-integrate-sagemaker.md)   |   ![\[Yes\]](http://docs.aws.amazon.com/autoscaling/application/userguide/images/icon-yes.png) Yes   |   ![\[Yes\]](http://docs.aws.amazon.com/autoscaling/application/userguide/images/icon-yes.png) Yes   |   ![\[Yes\]](http://docs.aws.amazon.com/autoscaling/application/userguide/images/icon-yes.png) Yes   |   ![\[Yes\]](http://docs.aws.amazon.com/autoscaling/application/userguide/images/icon-yes.png) Yes   | 
|   [Spot Fleet](services-that-can-integrate-ec2.md)   |   ![\[Yes\]](http://docs.aws.amazon.com/autoscaling/application/userguide/images/icon-yes.png) Yes   |   ![\[Yes\]](http://docs.aws.amazon.com/autoscaling/application/userguide/images/icon-yes.png) Yes   |   ![\[Yes\]](http://docs.aws.amazon.com/autoscaling/application/userguide/images/icon-yes.png) Yes   |   ![\[Yes\]](http://docs.aws.amazon.com/autoscaling/application/userguide/images/icon-yes.png) Yes   | 
|   [WorkSpaces](services-that-can-integrate-workspaces.md)   |   ![\[Yes\]](http://docs.aws.amazon.com/autoscaling/application/userguide/images/icon-yes.png) Yes   |   ![\[Yes\]](http://docs.aws.amazon.com/autoscaling/application/userguide/images/icon-yes.png) Yes   |   ![\[Yes\]](http://docs.aws.amazon.com/autoscaling/application/userguide/images/icon-yes.png) Yes   |   ![\[Yes\]](http://docs.aws.amazon.com/autoscaling/application/userguide/images/icon-yes.png) Yes   | 
|   [Custom resources](services-that-can-integrate-custom.md)   |   ![\[No\]](http://docs.aws.amazon.com/autoscaling/application/userguide/images/icon-no.png) No   |   ![\[Yes\]](http://docs.aws.amazon.com/autoscaling/application/userguide/images/icon-yes.png) Yes   |   ![\[Yes\]](http://docs.aws.amazon.com/autoscaling/application/userguide/images/icon-yes.png) Yes   |   ![\[Yes\]](http://docs.aws.amazon.com/autoscaling/application/userguide/images/icon-yes.png) Yes   | 

¹ Console access for configuring scaling policies. Most services don't support configuring scheduled scaling from the console. Currently, only Amazon WorkSpaces Applications, ElastiCache, and Spot Fleet provide console access for scheduled scaling.

# Amazon WorkSpaces Applications and Application Auto Scaling
<a name="services-that-can-integrate-appstream"></a>

You can scale WorkSpaces Applications fleets using target tracking scaling policies, step scaling policies, and scheduled scaling. 

Use the following information to help you integrate WorkSpaces Applications with Application Auto Scaling. 

## Service-linked role created for WorkSpaces Applications
<a name="integrate-service-linked-role-appstream"></a>

The following service-linked role is automatically created in your AWS account when registering WorkSpaces Applications resources as scalable targets with Application Auto Scaling. This role allows Application Auto Scaling to perform supported operations within your account. For more information, see [Service-linked roles for Application Auto Scaling](application-auto-scaling-service-linked-roles.md).
+ `AWSServiceRoleForApplicationAutoScaling_AppStreamFleet`

## Service principal used by the service-linked role
<a name="integrate-service-principal-appstream"></a>

The service-linked role in the previous section can be assumed only by the service principal authorized by the trust relationships defined for the role. The service-linked role used by Application Auto Scaling grants access to the following service principal: 
+ `appstream.application-autoscaling.amazonaws.com`

## Registering WorkSpaces Applications fleets as scalable targets with Application Auto Scaling
<a name="integrate-register-appstream"></a>

Application Auto Scaling requires a scalable target before you can create scaling policies or scheduled actions for an WorkSpaces Applications fleet. A scalable target is a resource that Application Auto Scaling can scale out and scale in. Scalable targets are uniquely identified by the combination of resource ID, scalable dimension, and namespace. 

If you configure auto scaling using the WorkSpaces Applications console, then WorkSpaces Applications automatically registers a scalable target for you. 

If you want to configure auto scaling using the AWS CLI or one of the AWS SDKs, you can use the following options:
+ AWS CLI: 

  Call the [register-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html) command for an WorkSpaces Applications fleet. The following example registers the desired capacity of a fleet called `sample-fleet`, with a minimum capacity of one fleet instance and a maximum capacity of five fleet instances.

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

  If successful, this command returns the ARN of the scalable target.

  ```
  {
      "ScalableTargetARN": "arn:aws:application-autoscaling:region:account-id:scalable-target/1234abcd56ab78cd901ef1234567890ab123"
  }
  ```
+ AWS SDK: 

  Call the [RegisterScalableTarget](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_RegisterScalableTarget.html) operation and provide `ResourceId`, `ScalableDimension`, `ServiceNamespace`, `MinCapacity`, and `MaxCapacity` as parameters. 

## Related resources
<a name="appstream-related-resources"></a>

For more information, see [Fleet Auto Scaling for Amazon WorkSpaces Applications](https://docs.aws.amazon.com/appstream2/latest/developerguide/autoscaling.html) in the *Amazon WorkSpaces Applications Administration Guide*.

# Amazon Aurora and Application Auto Scaling
<a name="services-that-can-integrate-aurora"></a>

You can scale Aurora DB clusters using target tracking scaling policies, step scaling policies, and scheduled scaling. 

Use the following information to help you integrate Aurora with Application Auto Scaling. 

## Service-linked role created for Aurora
<a name="integrate-service-linked-role-aurora"></a>

The following service-linked role is automatically created in your AWS account when registering Aurora resources as scalable targets with Application Auto Scaling. This role allows Application Auto Scaling to perform supported operations within your account. For more information, see [Service-linked roles for Application Auto Scaling](application-auto-scaling-service-linked-roles.md).
+ `AWSServiceRoleForApplicationAutoScaling_RDSCluster`

## Service principal used by the service-linked role
<a name="integrate-service-principal-aurora"></a>

The service-linked role in the previous section can be assumed only by the service principal authorized by the trust relationships defined for the role. The service-linked role used by Application Auto Scaling grants access to the following service principal: 
+ `rds.application-autoscaling.amazonaws.com`

## Registering Aurora DB clusters as scalable targets with Application Auto Scaling
<a name="integrate-register-aurora"></a>

Application Auto Scaling requires a scalable target before you can create scaling policies or scheduled actions for an Aurora cluster. A scalable target is a resource that Application Auto Scaling can scale out and scale in. Scalable targets are uniquely identified by the combination of resource ID, scalable dimension, and namespace. 

If you configure auto scaling using the Aurora console, then Aurora automatically registers a scalable target for you. 

If you want to configure auto scaling using the AWS CLI or one of the AWS SDKs, you can use the following options:
+ AWS CLI: 

  Call the [register-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html) command for an Aurora cluster. The following example registers the count of Aurora Replicas in a cluster called `my-db-cluster`, with a minimum capacity of one Aurora Replica and a maximum capacity of eight Aurora Replicas.

  ```
  aws application-autoscaling register-scalable-target \
    --service-namespace rds \
    --scalable-dimension rds:cluster:ReadReplicaCount \
    --resource-id cluster:my-db-cluster \
    --min-capacity 1 \
    --max-capacity 8
  ```

  If successful, this command returns the ARN of the scalable target.

  ```
  {
      "ScalableTargetARN": "arn:aws:application-autoscaling:region:account-id:scalable-target/1234abcd56ab78cd901ef1234567890ab123"
  }
  ```
+ AWS SDK: 

  Call the [RegisterScalableTarget](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_RegisterScalableTarget.html) operation and provide `ResourceId`, `ScalableDimension`, `ServiceNamespace`, `MinCapacity`, and `MaxCapacity` as parameters. 

## Related resources
<a name="aurora-related-resources"></a>

For more information, see [Amazon Aurora Auto Scaling with Aurora Replicas](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Integrating.AutoScaling.html) in the *Amazon RDS User Guide for Aurora*.

# Amazon Comprehend and Application Auto Scaling
<a name="services-that-can-integrate-comprehend"></a>

You can scale Amazon Comprehend document classification and entity recognizer endpoints using target tracking scaling policies and scheduled scaling. 

Use the following information to help you integrate Amazon Comprehend with Application Auto Scaling. 

## Service-linked role created for Amazon Comprehend
<a name="integrate-service-linked-role-comprehend"></a>

The following service-linked role is automatically created in your AWS account when registering Amazon Comprehend resources as scalable targets with Application Auto Scaling. This role allows Application Auto Scaling to perform supported operations within your account. For more information, see [Service-linked roles for Application Auto Scaling](application-auto-scaling-service-linked-roles.md).
+ `AWSServiceRoleForApplicationAutoScaling_ComprehendEndpoint `

## Service principal used by the service-linked role
<a name="integrate-service-principal-comprehend"></a>

The service-linked role in the previous section can be assumed only by the service principal authorized by the trust relationships defined for the role. The service-linked role used by Application Auto Scaling grants access to the following service principal: 
+ `comprehend.application-autoscaling.amazonaws.com`

## Registering Amazon Comprehend resources as scalable targets with Application Auto Scaling
<a name="integrate-register-comprehend"></a>

Application Auto Scaling requires a scalable target before you can create scaling policies or scheduled actions for an Amazon Comprehend document classification or entity recognizer endpoint. A scalable target is a resource that Application Auto Scaling can scale out and scale in. Scalable targets are uniquely identified by the combination of resource ID, scalable dimension, and namespace. 

To configure auto scaling using the AWS CLI or one of the AWS SDKs, you can use the following options:
+ AWS CLI: 

  Call the [register-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html) command for a document classification endpoint. The following example registers the desired number of inference units to be used by the model for a document classifier endpoint using the endpoint's ARN, with a minimum capacity of one inference unit and a maximum capacity of three inference units. 

  ```
  aws application-autoscaling register-scalable-target \
    --service-namespace comprehend \
    --scalable-dimension comprehend:document-classifier-endpoint:DesiredInferenceUnits \
    --resource-id arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE \
    --min-capacity 1 \
    --max-capacity 3
  ```

  If successful, this command returns the ARN of the scalable target.

  ```
  {
      "ScalableTargetARN": "arn:aws:application-autoscaling:region:account-id:scalable-target/1234abcd56ab78cd901ef1234567890ab123"
  }
  ```

  Call the [register-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html) command for an entity recognizer endpoint. The following example registers the desired number of inference units to be used by the model for an entity recognizer using the endpoint's ARN, with a minimum capacity of one inference unit and a maximum capacity of three inference units.

  ```
  aws application-autoscaling register-scalable-target \
    --service-namespace comprehend \
    --scalable-dimension comprehend:entity-recognizer-endpoint:DesiredInferenceUnits \
    --resource-id arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE \
    --min-capacity 1 \
    --max-capacity 3
  ```

  If successful, this command returns the ARN of the scalable target.

  ```
  {
      "ScalableTargetARN": "arn:aws:application-autoscaling:region:account-id:scalable-target/1234abcd56ab78cd901ef1234567890ab123"
  }
  ```
+ AWS SDK: 

  Call the [RegisterScalableTarget](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_RegisterScalableTarget.html) operation and provide `ResourceId`, `ScalableDimension`, `ServiceNamespace`, `MinCapacity`, and `MaxCapacity` as parameters. 

## Related resources
<a name="comprehend-related-resources"></a>

For more information, see [Auto scaling with endpoints](https://docs.aws.amazon.com/comprehend/latest/dg/comprehend-autoscaling.html) in the *Amazon Comprehend Developer Guide*.

# Amazon DynamoDB and Application Auto Scaling
<a name="services-that-can-integrate-dynamodb"></a>

You can scale DynamoDB tables and global secondary indexes using target tracking scaling policies and scheduled scaling. 

Use the following information to help you integrate DynamoDB with Application Auto Scaling. 

## Service-linked role created for DynamoDB
<a name="integrate-service-linked-role-dynamodb"></a>

The following service-linked role is automatically created in your AWS account when registering DynamoDB resources as scalable targets with Application Auto Scaling. This role allows Application Auto Scaling to perform supported operations within your account. For more information, see [Service-linked roles for Application Auto Scaling](application-auto-scaling-service-linked-roles.md).
+ `AWSServiceRoleForApplicationAutoScaling_DynamoDBTable`

## Service principal used by the service-linked role
<a name="integrate-service-principal-dynamodb"></a>

The service-linked role in the previous section can be assumed only by the service principal authorized by the trust relationships defined for the role. The service-linked role used by Application Auto Scaling grants access to the following service principal: 
+ `dynamodb.application-autoscaling.amazonaws.com`

## Registering DynamoDB resources as scalable targets with Application Auto Scaling
<a name="integrate-register-dynamodb"></a>

Application Auto Scaling requires a scalable target before you can create scaling policies or scheduled actions for a DynamoDB table or global secondary index. A scalable target is a resource that Application Auto Scaling can scale out and scale in. Scalable targets are uniquely identified by the combination of resource ID, scalable dimension, and namespace. 

If you configure auto scaling using the DynamoDB console, then DynamoDB automatically registers a scalable target for you. 

If you want to configure auto scaling using the AWS CLI or one of the AWS SDKs, you can use the following options:
+ AWS CLI: 

  Call the [register-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html) command for a table's write capacity. The following example registers the provisioned write capacity of a table called `my-table`, with a minimum capacity of five write capacity units and a maximum capacity of 10 write capacity units:

  ```
  aws application-autoscaling register-scalable-target \
    --service-namespace dynamodb \
    --scalable-dimension dynamodb:table:WriteCapacityUnits \
    --resource-id table/my-table \
    --min-capacity 5 \
    --max-capacity 10
  ```

  If successful, this command returns the ARN of the scalable target:

  ```
  {
      "ScalableTargetARN": "arn:aws:application-autoscaling:region:account-id:scalable-target/1234abcd56ab78cd901ef1234567890ab123"
  }
  ```

  Call the [register-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html) command for a table's read capacity. The following example registers the provisioned read capacity of a table called `my-table`, with a minimum capacity of five read capacity units and a maximum capacity of 10 read units:

  ```
  aws application-autoscaling register-scalable-target \
    --service-namespace dynamodb \
    --scalable-dimension dynamodb:table:ReadCapacityUnits \
    --resource-id table/my-table \
    --min-capacity 5 \
    --max-capacity 10
  ```

  If successful, this command returns the ARN of the scalable target:

  ```
  {
      "ScalableTargetARN": "arn:aws:application-autoscaling:region:account-id:scalable-target/1234abcd56ab78cd901ef1234567890ab123"
  }
  ```

  Call the [register-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html) command for the write capacity of a global secondary index. The following example registers the provisioned write capacity of a global secondary index called `my-table-index`, with a minimum capacity of five write capacity units and a maximum capacity of 10 write capacity units:

  ```
  aws application-autoscaling register-scalable-target \
    --service-namespace dynamodb \
    --scalable-dimension dynamodb:index:WriteCapacityUnits \
    --resource-id table/my-table/index/my-table-index \
    --min-capacity 5 \
    --max-capacity 10
  ```

  If successful, this command returns the ARN of the scalable target:

  ```
  {
      "ScalableTargetARN": "arn:aws:application-autoscaling:region:account-id:scalable-target/1234abcd56ab78cd901ef1234567890ab123"
  }
  ```

  Call the [register-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html) command for the read capacity of a global secondary index. The following example registers the provisioned read capacity of a global secondary index called `my-table-index`, with a minimum capacity of five read capacity units and a maximum capacity of 10 read capacity units:

  ```
  aws application-autoscaling register-scalable-target \
    --service-namespace dynamodb \
    --scalable-dimension dynamodb:index:ReadCapacityUnits \
    --resource-id table/my-table/index/my-table-index \
    --min-capacity 5 \
    --max-capacity 10
  ```

  If successful, this command returns the ARN of the scalable target:

  ```
  {
      "ScalableTargetARN": "arn:aws:application-autoscaling:region:account-id:scalable-target/1234abcd56ab78cd901ef1234567890ab123"
  }
  ```
+ AWS SDK:

  Call the [RegisterScalableTarget](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_RegisterScalableTarget.html) operation and provide `ResourceId`, `ScalableDimension`, `ServiceNamespace`, `MinCapacity`, and `MaxCapacity` as parameters. 

## Related resources
<a name="dynamodb-related-resources"></a>

If you are just getting started with Application Auto Scaling, you can find additional useful information about scaling your DynamoDB resources in the following documentation:
+ [Managing throughput capacity with DynamoDB Auto Scaling](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/AutoScaling.html) in the *Amazon DynamoDB Developer Guide*
+ [Evaluate your table's auto scaling settings](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/CostOptimization_AutoScalingSettings.html) in the *Amazon DynamoDB Developer Guide*
+ [How to use CloudFormation to configure auto scaling for DynamoDB tables and indexes](https://aws.amazon.com/blogs/database/how-to-use-aws-cloudformation-to-configure-auto-scaling-for-amazon-dynamodb-tables-and-indexes/) on the AWS Blog

# Amazon ECS and Application Auto Scaling
<a name="services-that-can-integrate-ecs"></a>

You can scale ECS services using target tracking scaling policies, predictive scaling policies, step scaling policies, and scheduled scaling. 

Use the following information to help you integrate Amazon ECS with Application Auto Scaling. 

## Service-linked role created for Amazon ECS
<a name="integrate-service-linked-role-ecs"></a>

The following service-linked role is automatically created in your AWS account when registering Amazon ECS resources as scalable targets with Application Auto Scaling. This role allows Application Auto Scaling to perform supported operations within your account. For more information, see [Service-linked roles for Application Auto Scaling](application-auto-scaling-service-linked-roles.md).
+ `AWSServiceRoleForApplicationAutoScaling_ECSService`

## Service principal used by the service-linked role
<a name="integrate-service-principal-ecs"></a>

The service-linked role in the previous section can be assumed only by the service principal authorized by the trust relationships defined for the role. The service-linked role used by Application Auto Scaling grants access to the following service principal: 
+ `ecs.application-autoscaling.amazonaws.com`

## Registering ECS services as scalable targets with Application Auto Scaling
<a name="integrate-register-ecs"></a>

Application Auto Scaling requires a scalable target before you can create scaling policies or scheduled actions for an Amazon ECS service. A scalable target is a resource that Application Auto Scaling can scale out and scale in. Scalable targets are uniquely identified by the combination of resource ID, scalable dimension, and namespace. 

If you configure auto scaling using the Amazon ECS console, then Amazon ECS automatically registers a scalable target for you. 

If you want to configure auto scaling using the AWS CLI or one of the AWS SDKs, you can use the following options:
+ AWS CLI: 

  Call the [register-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html) command for an Amazon ECS service. The following example registers a scalable target for a service called `sample-app-service`, running on the `default` cluster, with a minimum task count of one task and a maximum task count of 10 tasks.

  ```
  aws application-autoscaling register-scalable-target \
    --service-namespace ecs \
    --scalable-dimension ecs:service:DesiredCount \
    --resource-id service/default/sample-app-service \
    --min-capacity 1 \
    --max-capacity 10
  ```

  If successful, this command returns the ARN of the scalable target.

  ```
  {
      "ScalableTargetARN": "arn:aws:application-autoscaling:region:account-id:scalable-target/1234abcd56ab78cd901ef1234567890ab123"
  }
  ```
+ AWS SDK: 

  Call the [RegisterScalableTarget](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_RegisterScalableTarget.html) operation and provide `ResourceId`, `ScalableDimension`, `ServiceNamespace`, `MinCapacity`, and `MaxCapacity` as parameters. 

## Related resources
<a name="ecs-related-resources"></a>

If you are just getting started with Application Auto Scaling, you can find additional useful information about scaling your Amazon ECS resources in the following documentation:
+ [Service auto scaling](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-auto-scaling.html) in the *Amazon Elastic Container Service Developer Guide*
+ [Optimize Amazon ECS service auto scaling](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/capacity-autoscaling.html) in the *Amazon Elastic Container Service Developer Guide*

**Note**  
For instructions for suspending scale-out processes while Amazon ECS deployments are in progress, see the following documentation:  
[Service auto scaling and deployments](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-auto-scaling.html#service-auto-scaling-deployments) in the *Amazon Elastic Container Service Developer Guide*

# ElastiCache and Application Auto Scaling
<a name="services-that-can-integrate-elasticache"></a>

You can horizontally scale Amazon ElastiCache replication groups (Redis OSS and Valkey) and Memcached self-designed clusters using target tracking scaling policies and scheduled scaling. 

To integrate ElastiCache with Application Auto Scaling, use the following information. 

## Service-linked role created for ElastiCache
<a name="integrate-service-linked-role-elasticache"></a>

The following service-linked role is automatically created in your AWS account when registering ElastiCache resources as scalable targets with Application Auto Scaling. This role allows Application Auto Scaling to perform supported operations within your account. For more information, see [Service-linked roles for Application Auto Scaling](application-auto-scaling-service-linked-roles.md).
+ `AWSServiceRoleForApplicationAutoScaling_ElastiCacheRG`

## Service principal used by the service-linked role
<a name="integrate-service-principal-elasticache"></a>

The service-linked role in the previous section can be assumed only by the service principal authorized by the trust relationships defined for the role. The service-linked role used by Application Auto Scaling grants access to the following service principal: 
+ `elasticache.application-autoscaling.amazonaws.com`

## Registering ElastiCache resources as scalable targets with Application Auto Scaling
<a name="integrate-register-elasticache"></a>

Application Auto Scaling requires a scalable target before you can create scaling policies or scheduled actions for an ElastiCache replication group, cluster, or node. A scalable target is a resource that Application Auto Scaling can scale out and scale in. Scalable targets are uniquely identified by the combination of resource ID, scalable dimension, and namespace. 

If you configure auto scaling using the ElastiCache console, then ElastiCache automatically registers a scalable target for you. 

If you want to configure auto scaling using the AWS CLI or one of the AWS SDKs, you can use the following options:
+ AWS CLI: 

  Call the [register-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html) command for an ElastiCache replication group. The following example registers the desired number of node groups for a replication group called `mycluster1`, with a minimum capacity of one and a maximum capacity of five.

  ```
  aws application-autoscaling register-scalable-target \
     --service-namespace elasticache \
     --scalable-dimension elasticache:replication-group:NodeGroups \
     --resource-id replication-group/mycluster1 \
     --min-capacity 1 \
     --max-capacity 5
  ```

  If successful, this command returns the ARN of the scalable target.

  ```
  {
      "ScalableTargetARN": "arn:aws:application-autoscaling:region:account-id:scalable-target/1234abcd56ab78cd901ef1234567890ab123"
  }
  ```

  The following example registers the desired number of replicas per node group for a replication group called `mycluster2`, with a minimum capacity of one and a maximum capacity of five.

  ```
  aws application-autoscaling register-scalable-target \
     --service-namespace elasticache \
     --scalable-dimension elasticache:replication-group:Replicas \
     --resource-id replication-group/mycluster2 \
     --min-capacity 1 \
     --max-capacity 5
  ```

  If successful, this command returns the ARN of the scalable target.

  ```
  {
      "ScalableTargetARN": "arn:aws:application-autoscaling:region:account-id:scalable-target/234abcd56ab78cd901ef1234567890ab1234"
  }
  ```

  The following example registers the desired number of nodes for a cluster called `mynode1`, with a minimum capacity of 20 and a maximum capacity of 50.

  ```
  aws application-autoscaling register-scalable-target \
     --service-namespace elasticache \
     --scalable-dimension elasticache:cache-cluster:Nodes \
     --resource-id cache-cluster/mynode1 \
     --min-capacity 20 \
     --max-capacity 50
  ```

  If successful, this command returns the ARN of the scalable target.

  ```
  {
      "ScalableTargetARN": "arn:aws:application-autoscaling:region:account-id:scalable-target/01234abcd56ab78cd901ef1234567890ab12"
  }
  ```
+ AWS SDK: 

  Call the [RegisterScalableTarget](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_RegisterScalableTarget.html) operation and provide `ResourceId`, `ScalableDimension`, `ServiceNamespace`, `MinCapacity`, and `MaxCapacity` as parameters. 

## Related resources
<a name="elasticache-related-resources"></a>

For more information, see [Auto Scaling Valkey and Redis OSS clusters](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/AutoScaling.html) and [Scaling clusters for Memcached](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/Scaling-self-designed.mem-heading.html) in the *Amazon ElastiCache User Guide*.

# Amazon Keyspaces (for Apache Cassandra) and Application Auto Scaling
<a name="services-that-can-integrate-keyspaces"></a>

You can scale Amazon Keyspaces tables using target tracking scaling policies and scheduled scaling. 

Use the following information to help you integrate Amazon Keyspaces with Application Auto Scaling. 

## Service-linked role created for Amazon Keyspaces
<a name="integrate-service-linked-role-keyspaces"></a>

The following service-linked role is automatically created in your AWS account when registering Amazon Keyspaces resources as scalable targets with Application Auto Scaling. This role allows Application Auto Scaling to perform supported operations within your account. For more information, see [Service-linked roles for Application Auto Scaling](application-auto-scaling-service-linked-roles.md).
+ `AWSServiceRoleForApplicationAutoScaling_CassandraTable`

## Service principal used by the service-linked role
<a name="integrate-service-principal-keyspaces"></a>

The service-linked role in the previous section can be assumed only by the service principal authorized by the trust relationships defined for the role. The service-linked role used by Application Auto Scaling grants access to the following service principal: 
+ `cassandra.application-autoscaling.amazonaws.com`

## Registering Amazon Keyspaces tables as scalable targets with Application Auto Scaling
<a name="integrate-register-keyspaces"></a>

Application Auto Scaling requires a scalable target before you can create scaling policies or scheduled actions for an Amazon Keyspaces table. A scalable target is a resource that Application Auto Scaling can scale out and scale in. Scalable targets are uniquely identified by the combination of resource ID, scalable dimension, and namespace. 

If you configure auto scaling using the Amazon Keyspaces console, then Amazon Keyspaces automatically registers a scalable target for you. 

If you want to configure auto scaling using the AWS CLI or one of the AWS SDKs, you can use the following options:
+ AWS CLI: 

  Call the [register-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html) command for an Amazon Keyspaces table. The following example registers the provisioned write capacity of a table called `mytable`, with a minimum capacity of five write capacity units and a maximum capacity of 10 write capacity units.

  ```
  aws application-autoscaling register-scalable-target \
    --service-namespace cassandra \
    --scalable-dimension cassandra:table:WriteCapacityUnits \
    --resource-id keyspace/mykeyspace/table/mytable \
    --min-capacity 5 \
    --max-capacity 10
  ```

  If successful, this command returns the ARN of the scalable target.

  ```
  {
      "ScalableTargetARN": "arn:aws:application-autoscaling:region:account-id:scalable-target/1234abcd56ab78cd901ef1234567890ab123"
  }
  ```

  The following example registers the provisioned read capacity of a table called `mytable`, with a minimum capacity of five read capacity units and a maximum capacity of 10 read capacity units.

  ```
  aws application-autoscaling register-scalable-target \
    --service-namespace cassandra \
    --scalable-dimension cassandra:table:ReadCapacityUnits \
    --resource-id keyspace/mykeyspace/table/mytable \
    --min-capacity 5 \
    --max-capacity 10
  ```

  If successful, this command returns the ARN of the scalable target.

  ```
  {
      "ScalableTargetARN": "arn:aws:application-autoscaling:region:account-id:scalable-target/1234abcd56ab78cd901ef1234567890ab123"
  }
  ```
+ AWS SDK: 

  Call the [RegisterScalableTarget](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_RegisterScalableTarget.html) operation and provide `ResourceId`, `ScalableDimension`, `ServiceNamespace`, `MinCapacity`, and `MaxCapacity` as parameters. 

## Related resources
<a name="keyspaces-related-resources"></a>

For more information, see [Manage throughput capacity automatically with Amazon Keyspaces auto scaling](https://docs.aws.amazon.com/keyspaces/latest/devguide/autoscaling.html) in the *Amazon Keyspaces Developer Guide*.

# AWS Lambda and Application Auto Scaling
<a name="services-that-can-integrate-lambda"></a>

You can scale AWS Lambda provisioned concurrency using target tracking scaling policies and scheduled scaling. 

Use the following information to help you integrate Lambda with Application Auto Scaling.

## Service-linked role created for Lambda
<a name="integrate-service-linked-role-lambda"></a>

The following service-linked role is automatically created in your AWS account when registering Lambda resources as scalable targets with Application Auto Scaling. This role allows Application Auto Scaling to perform supported operations within your account. For more information, see [Service-linked roles for Application Auto Scaling](application-auto-scaling-service-linked-roles.md).
+ `AWSServiceRoleForApplicationAutoScaling_LambdaConcurrency`

## Service principal used by the service-linked role
<a name="integrate-service-principal-lambda"></a>

The service-linked role in the previous section can be assumed only by the service principal authorized by the trust relationships defined for the role. The service-linked role used by Application Auto Scaling grants access to the following service principal: 
+ `lambda.application-autoscaling.amazonaws.com`

## Registering Lambda functions as scalable targets with Application Auto Scaling
<a name="integrate-register-lambda"></a>

Application Auto Scaling requires a scalable target before you can create scaling policies or scheduled actions for a Lambda function. A scalable target is a resource that Application Auto Scaling can scale out and scale in. Scalable targets are uniquely identified by the combination of resource ID, scalable dimension, and namespace. 

To configure auto scaling using the AWS CLI or one of the AWS SDKs, you can use the following options:
+ AWS CLI: 

  Call the [register-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html) command for a Lambda function. The following example registers the provisioned concurrency for an alias called `BLUE` for a function called `my-function`, with a minimum capacity of 0 and a maximum capacity of 100.

  ```
  aws application-autoscaling register-scalable-target \
    --service-namespace lambda \
    --scalable-dimension lambda:function:ProvisionedConcurrency \
    --resource-id function:my-function:BLUE \
    --min-capacity 0 \
    --max-capacity 100
  ```

  If successful, this command returns the ARN of the scalable target.

  ```
  {
      "ScalableTargetARN": "arn:aws:application-autoscaling:region:account-id:scalable-target/1234abcd56ab78cd901ef1234567890ab123"
  }
  ```
+ AWS SDK: 

  Call the [RegisterScalableTarget](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_RegisterScalableTarget.html) operation and provide `ResourceId`, `ScalableDimension`, `ServiceNamespace`, `MinCapacity`, and `MaxCapacity` as parameters. 

## Related resources
<a name="lambda-related-resources"></a>

If you are just getting started with Application Auto Scaling, you can find additional useful information about scaling your Lambda functions in the following documentation:
+ [Configuring provisioned concurrency](https://docs.aws.amazon.com/lambda/latest/dg/provisioned-concurrency.html) in the *AWS Lambda Developer Guide*
+ [Scheduling Lambda Provisioned Concurrency for recurring peak usage](https://aws.amazon.com/blogs/compute/scheduling-aws-lambda-provisioned-concurrency-for-recurring-peak-usage/) on the AWS Blog

# Amazon Managed Streaming for Apache Kafka (MSK) and Application Auto Scaling
<a name="services-that-can-integrate-msk"></a>

You can scale out Amazon MSK cluster storage using target tracking scaling policies. Scale in by the target tracking policy is disabled. 

Use the following information to help you integrate Amazon MSK with Application Auto Scaling. 

## Service-linked role created for Amazon MSK
<a name="integrate-service-linked-role-msk"></a>

The following service-linked role is automatically created in your AWS account when registering Amazon MSK resources as scalable targets with Application Auto Scaling. This role allows Application Auto Scaling to perform supported operations within your account. For more information, see [Service-linked roles for Application Auto Scaling](application-auto-scaling-service-linked-roles.md).
+ `AWSServiceRoleForApplicationAutoScaling_KafkaCluster`

## Service principal used by the service-linked role
<a name="integrate-service-principal-msk"></a>

The service-linked role in the previous section can be assumed only by the service principal authorized by the trust relationships defined for the role. The service-linked role used by Application Auto Scaling grants access to the following service principal: 
+ `kafka.application-autoscaling.amazonaws.com`

## Registering Amazon MSK cluster storage as scalable targets with Application Auto Scaling
<a name="integrate-register-msk"></a>

Application Auto Scaling requires a scalable target before you can create a scaling policy for the storage volume size per broker of an Amazon MSK cluster. A scalable target is a resource that Application Auto Scaling can scale. Scalable targets are uniquely identified by the combination of resource ID, scalable dimension, and namespace. 

If you configure auto scaling using the Amazon MSK console, then Amazon MSK automatically registers a scalable target for you. 

If you want to configure auto scaling using the AWS CLI or one of the AWS SDKs, you can use the following options:
+ AWS CLI: 

  Call the [register-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html) command for an Amazon MSK cluster. The following example registers the storage volume size per broker of an Amazon MSK cluster, with a minimum capacity of 100 GiB and a maximum capacity of 800 GiB. 

  ```
  aws application-autoscaling register-scalable-target \
     --service-namespace kafka \
     --scalable-dimension kafka:broker-storage:VolumeSize \
     --resource-id arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5 \
     --min-capacity 100 \
     --max-capacity 800
  ```

  If successful, this command returns the ARN of the scalable target.

  ```
  {
      "ScalableTargetARN": "arn:aws:application-autoscaling:region:account-id:scalable-target/1234abcd56ab78cd901ef1234567890ab123"
  }
  ```
+ AWS SDK: 

  Call the [RegisterScalableTarget](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_RegisterScalableTarget.html) operation and provide `ResourceId`, `ScalableDimension`, `ServiceNamespace`, `MinCapacity`, and `MaxCapacity` as parameters. 

**Note**  
When an Amazon MSK cluster is the scalable target, scale in is disabled and cannot be enabled. 

## Related resources
<a name="msk-related-resources"></a>

For more information, see [Automatic scaling for Amazon MSK clusters](https://docs.aws.amazon.com/msk/latest/developerguide/msk-autoexpand.html) in the *Amazon Managed Streaming for Apache Kafka Developer Guide*.

# Amazon Neptune and Application Auto Scaling
<a name="services-that-can-integrate-neptune"></a>

You can scale Neptune clusters using target tracking scaling policies and scheduled scaling. 

Use the following information to help you integrate Neptune with Application Auto Scaling. 

## Service-linked role created for Neptune
<a name="integrate-service-linked-role-neptune"></a>

The following service-linked role is automatically created in your AWS account when registering Neptune resources as scalable targets with Application Auto Scaling. This role allows Application Auto Scaling to perform supported operations within your account. For more information, see [Service-linked roles for Application Auto Scaling](application-auto-scaling-service-linked-roles.md).
+ `AWSServiceRoleForApplicationAutoScaling_NeptuneCluster`

## Service principal used by the service-linked role
<a name="integrate-service-principal-neptune"></a>

The service-linked role in the previous section can be assumed only by the service principal authorized by the trust relationships defined for the role. The service-linked role used by Application Auto Scaling grants access to the following service principal: 
+ `neptune.application-autoscaling.amazonaws.com`

## Registering Neptune clusters as scalable targets with Application Auto Scaling
<a name="integrate-register-neptune"></a>

Application Auto Scaling requires a scalable target before you can create scaling policies or scheduled actions for a Neptune cluster. A scalable target is a resource that Application Auto Scaling can scale out and scale in. Scalable targets are uniquely identified by the combination of resource ID, scalable dimension, and namespace. 

To configure auto scaling using the AWS CLI or one of the AWS SDKs, you can use the following options:
+ AWS CLI: 

  Call the [register-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html) command for a Neptune cluster. The following example registers the desired capacity of a cluster called `mycluster`, with a minimum capacity of one and a maximum capacity of eight.

  ```
  aws application-autoscaling register-scalable-target \
    --service-namespace neptune \
    --scalable-dimension neptune:cluster:ReadReplicaCount \
    --resource-id cluster:mycluster \
    --min-capacity 1 \
    --max-capacity 8
  ```

  If successful, this command returns the ARN of the scalable target.

  ```
  {
      "ScalableTargetARN": "arn:aws:application-autoscaling:region:account-id:scalable-target/1234abcd56ab78cd901ef1234567890ab123"
  }
  ```
+ AWS SDK: 

  Call the [RegisterScalableTarget](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_RegisterScalableTarget.html) operation and provide `ResourceId`, `ScalableDimension`, `ServiceNamespace`, `MinCapacity`, and `MaxCapacity` as parameters. 

## Related resources
<a name="neptune-related-resources"></a>

For more information, see [Auto scaling the number of replicas in an Amazon Neptune DB cluster](https://docs.aws.amazon.com/neptune/latest/userguide/manage-console-autoscaling.html) in the *Neptune User Guide*.

# Amazon SageMaker AI and Application Auto Scaling
<a name="services-that-can-integrate-sagemaker"></a>

You can scale SageMaker AI endpoint variants, provisioned concurrency for serverless endpoints, and inference components using target tracking scaling policies, step scaling policies, and scheduled scaling. 

Use the following information to help you integrate SageMaker AI with Application Auto Scaling. 

## Service-linked role created for SageMaker AI
<a name="integrate-service-linked-role-sagemaker"></a>

The following service-linked role is automatically created in your AWS account when registering SageMaker AI resources as scalable targets with Application Auto Scaling. This role allows Application Auto Scaling to perform supported operations within your account. For more information, see [Service-linked roles for Application Auto Scaling](application-auto-scaling-service-linked-roles.md).
+ `AWSServiceRoleForApplicationAutoScaling_SageMakerEndpoint`

## Service principal used by the service-linked role
<a name="integrate-service-principal-sagemaker"></a>

The service-linked role in the previous section can be assumed only by the service principal authorized by the trust relationships defined for the role. The service-linked role used by Application Auto Scaling grants access to the following service principal: 
+ `sagemaker.application-autoscaling.amazonaws.com`

## Registering SageMaker AI endpoint variants as scalable targets with Application Auto Scaling
<a name="integrate-register-sagemaker"></a>

Application Auto Scaling requires a scalable target before you can create scaling policies or scheduled actions for a SageMaker AI model (variant). A scalable target is a resource that Application Auto Scaling can scale out and scale in. Scalable targets are uniquely identified by the combination of resource ID, scalable dimension, and namespace. 

If you configure auto scaling using the SageMaker AI console, then SageMaker AI automatically registers a scalable target for you. 

If you want to configure auto scaling using the AWS CLI or one of the AWS SDKs, you can use the following options:
+ AWS CLI: 

  Call the [register-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html) command for a product variant. The following example registers the desired instance count for a product variant called `my-variant`, running on the `my-endpoint` endpoint, with a minimum capacity of one instance and a maximum capacity of eight instances.

  ```
  aws application-autoscaling register-scalable-target \
    --service-namespace sagemaker \
    --scalable-dimension sagemaker:variant:DesiredInstanceCount \
    --resource-id endpoint/my-endpoint/variant/my-variant \
    --min-capacity 1 \
    --max-capacity 8
  ```

  If successful, this command returns the ARN of the scalable target.

  ```
  {
      "ScalableTargetARN": "arn:aws:application-autoscaling:region:account-id:scalable-target/1234abcd56ab78cd901ef1234567890ab123"
  }
  ```
+ AWS SDK: 

  Call the [RegisterScalableTarget](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_RegisterScalableTarget.html) operation and provide `ResourceId`, `ScalableDimension`, `ServiceNamespace`, `MinCapacity`, and `MaxCapacity` as parameters. 

## Registering the provisioned concurrency of serverless endpoints as scalable targets with Application Auto Scaling
<a name="integrate-register-provisioned-concurrency"></a>

Application Auto Scaling also requires a scalable target before you can create scaling policies or scheduled actions for the provisioned concurrency of serverless endpoints.

If you configure auto scaling using the SageMaker AI console, then SageMaker AI automatically registers a scalable target for you. 

Otherwise, use one of the following methods to register the scalable target:
+ AWS CLI: 

  Call the [register-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html) command for a product variant. The following example registers the provisioned concurrency for a product variant called `my-variant`, running on the `my-endpoint` endpoint, with a minimum capacity of one and a maximum capacity of ten.

  ```
  aws application-autoscaling register-scalable-target \
    --service-namespace sagemaker \
    --scalable-dimension sagemaker:variant:DesiredProvisionedConcurrency \
    --resource-id endpoint/my-endpoint/variant/my-variant \
    --min-capacity 1 \
    --max-capacity 10
  ```

  If successful, this command returns the ARN of the scalable target.

  ```
  {
      "ScalableTargetARN": "arn:aws:application-autoscaling:region:account-id:scalable-target/1234abcd56ab78cd901ef1234567890ab123"
  }
  ```
+ AWS SDK: 

  Call the [RegisterScalableTarget](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_RegisterScalableTarget.html) operation and provide `ResourceId`, `ScalableDimension`, `ServiceNamespace`, `MinCapacity`, and `MaxCapacity` as parameters. 

## Registering inference components as scalable targets with Application Auto Scaling
<a name="integrate-register-inference-components"></a>

Application Auto Scaling also requires a scalable target before you can create scaling policies or scheduled actions for inference components.
+ AWS CLI: 

  Call the [register-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html) command for an inference component. The following example registers the desired copy count for an inference component called `my-inference-component`, with a minimum capacity of zero copies and a maximum capacity of three copies.

  ```
  aws application-autoscaling register-scalable-target \
    --service-namespace sagemaker \
    --scalable-dimension sagemaker:inference-component:DesiredCopyCount \
    --resource-id inference-component/my-inference-component \
    --min-capacity 0 \
    --max-capacity 3
  ```

  If successful, this command returns the ARN of the scalable target.

  ```
  {
      "ScalableTargetARN": "arn:aws:application-autoscaling:region:account-id:scalable-target/1234abcd56ab78cd901ef1234567890ab123"
  }
  ```
+ AWS SDK: 

  Call the [RegisterScalableTarget](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_RegisterScalableTarget.html) operation and provide `ResourceId`, `ScalableDimension`, `ServiceNamespace`, `MinCapacity`, and `MaxCapacity` as parameters. 

## Related resources
<a name="sagemaker-related-resources"></a>

If you are just getting started with Application Auto Scaling, you can find additional useful information about scaling your SageMaker AI resources in the *Amazon SageMaker AI Developer Guide*:
+ [Automatically scale Amazon SageMaker AI models](https://docs.aws.amazon.com/sagemaker/latest/dg/endpoint-auto-scaling.html)
+ [Automatically scale Provisioned Concurrency for a serverless endpoint](https://docs.aws.amazon.com/sagemaker/latest/dg/serverless-endpoints-autoscale.html)
+ [Set auto scaling policies for multi-model endpoint deployments](https://docs.aws.amazon.com/sagemaker/latest/dg/multi-model-endpoints-autoscaling.html)
+ [Autoscale an asynchronous endpoint](https://docs.aws.amazon.com/sagemaker/latest/dg/async-inference-autoscale.html)

**Note**  
In 2023, SageMaker AI introduced new inference capabilities built on real-time inference endpoints. You create a SageMaker AI endpoint with an endpoint configuration that defines the instance type and initial instance count for the endpoint. Then, create an inference component, which is a SageMaker AI hosting object that you can use to deploy a model to an endpoint. For information about scaling inference components, see [Amazon SageMaker AI adds new inference capabilities to help reduce foundation model deployment costs and latency](https://aws.amazon.com/blogs/aws/amazon-sagemaker-adds-new-inference-capabilities-to-help-reduce-foundation-model-deployment-costs-and-latency/) and [Reduce model deployment costs by 50% on average using the latest features of Amazon SageMaker AI](https://aws.amazon.com/blogs/machine-learning/reduce-model-deployment-costs-by-50-on-average-using-sagemakers-latest-features/) on the AWS Blog.

# Amazon EC2 Spot Fleet and Application Auto Scaling
<a name="services-that-can-integrate-ec2"></a>

You can scale Spot Fleets using target tracking scaling policies, step scaling policies, and scheduled scaling. 

Use the following information to help you integrate Spot Fleet with Application Auto Scaling. 

## Service-linked role created for Spot Fleet
<a name="integrate-service-linked-role-ec2"></a>

The following service-linked role is automatically created in your AWS account when registering Spot Fleet resources as scalable targets with Application Auto Scaling. This role allows Application Auto Scaling to perform supported operations within your account. For more information, see [Service-linked roles for Application Auto Scaling](application-auto-scaling-service-linked-roles.md).
+ `AWSServiceRoleForApplicationAutoScaling_EC2SpotFleetRequest`

## Service principal used by the service-linked role
<a name="integrate-service-principal-ec2"></a>

The service-linked role in the previous section can be assumed only by the service principal authorized by the trust relationships defined for the role. The service-linked role used by Application Auto Scaling grants access to the following service principal: 
+ `ec2.application-autoscaling.amazonaws.com`

## Registering Spot Fleets as scalable targets with Application Auto Scaling
<a name="integrate-register-ec2"></a>

Application Auto Scaling requires a scalable target before you can create scaling policies or scheduled actions for a Spot Fleet. A scalable target is a resource that Application Auto Scaling can scale out and scale in. Scalable targets are uniquely identified by the combination of resource ID, scalable dimension, and namespace. 

If you configure auto scaling using the Spot Fleet console, then Spot Fleet automatically registers a scalable target for you. 

If you want to configure auto scaling using the AWS CLI or one of the AWS SDKs, you can use the following options:
+ AWS CLI: 

  Call the [register-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html) command for a Spot Fleet. The following example registers the target capacity of a Spot Fleet using its request ID, with a minimum capacity of two instances and a maximum capacity of 10 instances.

  ```
  aws application-autoscaling register-scalable-target \
    --service-namespace ec2 \
    --scalable-dimension ec2:spot-fleet-request:TargetCapacity \
    --resource-id spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE \
    --min-capacity 2 \
    --max-capacity 10
  ```

  If successful, this command returns the ARN of the scalable target.

  ```
  {
      "ScalableTargetARN": "arn:aws:application-autoscaling:region:account-id:scalable-target/1234abcd56ab78cd901ef1234567890ab123"
  }
  ```
+ AWS SDK: 

  Call the [RegisterScalableTarget](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_RegisterScalableTarget.html) operation and provide `ResourceId`, `ScalableDimension`, `ServiceNamespace`, `MinCapacity`, and `MaxCapacity` as parameters. 

## Related resources
<a name="ec2-related-resources"></a>

For more information, see [Understand automatic scaling for Spot Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-automatic-scaling.html) in the *Amazon EC2 User Guide*.

# Amazon WorkSpaces and Application Auto Scaling
<a name="services-that-can-integrate-workspaces"></a>

You can scale a pool of WorkSpaces using target tracking scaling policies, step scaling policies, and scheduled scaling. 

Use the following information to help you integrate WorkSpaces with Application Auto Scaling. 

## Service-linked role created for WorkSpaces
<a name="integrate-service-linked-role-workspaces"></a>

Application Auto Scaling automatically creates the service-linked role named AWSServiceRoleForApplicationAutoScaling\$1WorkSpacesPool in your AWS account when you register WorkSpaces resources as scalable targets with Application Auto Scaling. For more information, see [Service-linked roles for Application Auto Scaling](application-auto-scaling-service-linked-roles.md).

This service-linked role uses the managed policy AWSApplicationAutoscalingWorkSpacesPoolPolicy. This policy grants Application Auto Scaling permissions to call Amazon WorkSpaces on your behalf. For more information, see [AWSApplicationAutoscalingWorkSpacesPoolPolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSApplicationAutoscalingWorkSpacesPoolPolicy.html) in the *AWS Managed Policy Reference*.

## Service principal used by the service-linked role
<a name="integrate-service-principal-workspaces"></a>

The service-linked role trusts the following service principal to assume the role:
+ `workspaces.application-autoscaling.amazonaws.com`

## Registering WorkSpaces pools as scalable targets with Application Auto Scaling
<a name="integrate-register-workspaces"></a>

Application Auto Scaling requires a scalable target before you can create scaling policies or scheduled actions for WorkSpaces. A scalable target is a resource that Application Auto Scaling can scale out and scale in. Scalable targets are uniquely identified by the combination of resource ID, scalable dimension, and namespace. 

If you configure auto scaling using the WorkSpaces console, then WorkSpaces automatically registers a scalable target for you. 

If you want to configure auto scaling using the AWS CLI or one of the AWS SDKs, you can use the following options:
+ AWS CLI: 

  Call the [register-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html) command for a pool of WorkSpaces. The following example registers the target capacity of a pool of WorkSpaces using its request ID, with a minimum capacity of two virtual desktops and a maximum capacity of ten virtual desktops.

  ```
  aws application-autoscaling register-scalable-target \
    --service-namespace workspaces \
    --resource-id workspacespool/wspool-abcdef012 \
    --scalable-dimension workspaces:workspacespool:DesiredUserSessions \        
    --min-capacity 2 \
    --max-capacity 10
  ```

  If successful, this command returns the ARN of the scalable target.

  ```
  {
      "ScalableTargetARN": "arn:aws:application-autoscaling:region:account-id:scalable-target/1234abcd56ab78cd901ef1234567890ab123"
  }
  ```
+ AWS SDK: 

  Call the [RegisterScalableTarget](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_RegisterScalableTarget.html) operation and provide `ResourceId`, `ScalableDimension`, `ServiceNamespace`, `MinCapacity`, and `MaxCapacity` as parameters. 

## Related resources
<a name="workspaces-related-resources"></a>

For more information, see [Auto Scaling for WorkSpaces Pools](https://docs.aws.amazon.com/workspaces/latest/adminguide/autoscaling.html) in the *Amazon WorkSpaces Administration Guide*. 

# Custom resources and Application Auto Scaling
<a name="services-that-can-integrate-custom"></a>

You can scale custom resources using target tracking scaling policies, step scaling policies, and scheduled scaling. 

Use the following information to help you integrate custom resources with Application Auto Scaling. 

## Service-linked role created for custom resources
<a name="integrate-service-linked-role-custom"></a>

The following service-linked role is automatically created in your AWS account when registering custom resources as scalable targets with Application Auto Scaling. This role allows Application Auto Scaling to perform supported operations within your account. For more information, see [Service-linked roles for Application Auto Scaling](application-auto-scaling-service-linked-roles.md).
+ `AWSServiceRoleForApplicationAutoScaling_CustomResource`

## Service principal used by the service-linked role
<a name="integrate-service-principal-custom"></a>

The service-linked role in the previous section can be assumed only by the service principal authorized by the trust relationships defined for the role. The service-linked role used by Application Auto Scaling grants access to the following service principal: 
+ `custom-resource.application-autoscaling.amazonaws.com`

## Registering custom resources as scalable targets with Application Auto Scaling
<a name="integrate-register-custom"></a>

Application Auto Scaling requires a scalable target before you can create scaling policies or scheduled actions for a custom resource. A scalable target is a resource that Application Auto Scaling can scale out and scale in. Scalable targets are uniquely identified by the combination of resource ID, scalable dimension, and namespace. 

To configure auto scaling using the AWS CLI or one of the AWS SDKs, you can use the following options:
+ AWS CLI: 

  Call the [register-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html) command for a custom resource. The following example registers a custom resource as a scalable target, with a minimum desired count of one capacity unit and a maximum desired count of 10 capacity units. The `custom-resource-id.txt` file contains a string that identifies the resource ID, which represents the path to the custom resource through your Amazon API Gateway endpoint.

  ```
  aws application-autoscaling register-scalable-target \
    --service-namespace custom-resource \
    --scalable-dimension custom-resource:ResourceType:Property \
    --resource-id file://~/custom-resource-id.txt \
    --min-capacity 1 \
    --max-capacity 10
  ```

  Contents of `custom-resource-id.txt`:

  ```
  https://example.execute-api.us-west-2.amazonaws.com/prod/scalableTargetDimensions/1-23456789
  ```

  If successful, this command returns the ARN of the scalable target.

  ```
  {
      "ScalableTargetARN": "arn:aws:application-autoscaling:region:account-id:scalable-target/1234abcd56ab78cd901ef1234567890ab123"
  }
  ```
+ AWS SDK: 

  Call the [RegisterScalableTarget](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_RegisterScalableTarget.html) operation and provide `ResourceId`, `ScalableDimension`, `ServiceNamespace`, `MinCapacity`, and `MaxCapacity` as parameters. 

## Related resources
<a name="custom-related-resources"></a>

If you are just getting started with Application Auto Scaling, you can find additional useful information about scaling your custom resources in the following documentation:

[GitHub repository](https://github.com/aws/aws-auto-scaling-custom-resource)