Managing App Runner automatic scaling
AWS App Runner automatically scales compute resources, specifically instances, up or down for your App Runner application. Automatic scaling provides adequate
request handling when traffic is heavy, and reduces your cost when traffic slows down.
Auto scaling configuration
You can configure a few parameters to adjust auto scaling behavior for your service. App Runner maintains auto scaling settings in a sharable resource
that's called AutoScalingConfiguration. You can create and maintain stand-alone auto scaling configurations, before you assign them
to services. After they've been associated to a service, you can continue to maintain the configurations. You can also choose to create a new auto scaling
configuration while you're in the process of creating a new service or configuring an existing one. Once the new auto scaling configuration is created,
you can associate it to the service and continue on with the process of creating or configuring your service.
Naming and revisions
An auto scaling configuration has a name and a numeric revision. Multiple revisions of a configuration have
the same name and different revision numbers. You can use different configuration names for different auto scaling scenarios, such as high availability or low cost. For each name, you can add multiple revisions to fine-tune
the settings for a specific scenario. You can have up to 10 unique auto scaling configuration names and up to 5
revisions for each configuration. If you reach the limit and need to create more, you can delete one and then create another one. App Runner will not allow you
to delete a configuration that's set as the default or in use by an active service. For more information about quotas, see App Runner resource quotas.
Setting a default configuration
When you create or update an App Runner service, you can provide an auto scaling configuration resource.
Providing an auto scaling configuration is optional. If you don't provide one, App Runner provides a default auto scaling
configuration with recommended values. The auto scaling configuration feature provides you the option to set your own default auto scaling configuration
instead of using the default that App Runner provides. Once you specify another auto scaling configuration as a default, that configuration is automatically
assigned as the default to the new services you create in the future. The new default designation doesn't affect the associations that were previously set
for existing services.
Configuring services with auto scaling
You can share a single auto scaling configuration across multiple App Runner services to ensure the services have the same auto scaling behavior. For more
information about configuring auto scaling configurations with the App Runner console or the App Runner API, see the sections that follow in this topic.
For more general information about shareable resources, see Configuring service settings using sharable resources.
Configurable settings
You can configure the following auto scaling settings:
-
Max concurrency – The maximum number of concurrent requests that an instance
processes. When the number of concurrent requests exceeds this quota, App Runner scales up the service.
-
Max size – The maximum number of instances that your service can scale up to. This is
the highest number of instances that can concurrently handle your service's traffic.
-
Min size – The minimum number of instances that App Runner can provision for your service.
The service always has at least this number of provisioned instances. Some of these instances actively handle traffic. The remainder of them are part of
the cost-effective compute capacity reserve, which is ready to be quickly activated. You pay for the memory usage of all the provisioned instances. You
pay for the CPU usage of only the active subset.
The vCPU resource count determines the number of instances that App Runner can provide to your service. This is an adjustable quota value for the
Fargate On-Demand vCPU resource count that resides in the AWS Fargate service. To view the vCPU quota settings for your account or
to request a quota increase, use the Service Quotas console in the AWS Management Console. For more information, see AWS Fargate service quotas in the
Amazon Elastic Container Service Developer Guide.
Manage auto scaling for a service
Manage auto scaling for your App Runner services using one of the following methods:
- App Runner console
-
When you create a service using the App Runner console or update a service
configuration, you can specify an auto scaling configuration.
When you change the auto scaling configuration or revision that's associated to a service, your service is re-deployed.
The Auto scaling configuration page offers several options to configure auto scaling for your service.
-
To assign an existing configuration and revision – Choose a value from the Existing
configurations drop-down. The latest revision version will default in the adjacent drop-down. If a different revision exists that
you would prefer to select, do so from the revision drop-down. The configuration values for the revision version display.
-
To create and assign a new auto scaling configuration – Select Create new ASC from
the Create menu. This launches the Add custom auto scaling configuration page. Enter a
Configuration name and values for the auto scaling parameters. Then select Add. App Runner creates the new
auto scaling configuration resource for you and returns you to Auto scaling section with the new configuration selected and
displayed.
-
To create and assign a new revision – First select the configuration name from the Existing
configurations drop-down. Then select Create ASC revision from the Create menu. This
launches the Add custom auto scaling configuration page. Enter values for the auto scaling parameters. Then select
Add. App Runner creates a new auto scaling configuration revision for you and returns you to Auto scaling
section with the new revision selected and displayed.
- App Runner API or AWS CLI
-
When you call the CreateService or UpdateService App Runner API actions, you can use the AutoScalingConfigurationArn
parameter to specify an auto scaling
configuration resource for your service.
The next section provides guidance to manage your auto scaling configuration resources.
Manage auto scaling configurations resources
Manage the App Runner auto scaling configurations and revisions for your account using one of the following methods:
- App Runner console
-
Manage auto scaling configurations
The Auto scaling configurations page lists the auto scaling configurations that you have set up in your account. You
can create and manage your auto scaling configurations on this page and then later assign them to one or more App Runner services.
You can do any of the following from this page:
-
Create a new auto scaling configuration.
-
Create a new revision for an existing auto scaling configuration.
-
Delete an auto scaling configuration.
-
Set an auto scaling configuration as the default.
To manage auto scaling configurations in your account
-
Open the App Runner console, and in the Regions list, select your AWS Region.
-
In the navigation pane, choose Auto scaling configurations. The console displays a list of auto scaling
configurations in your account.
You can now do any of the following.
-
To create a new auto scaling configuration, follow these steps.
-
On the Auto scaling configurations page, select Create.
The Create auto scaling configuration page displays.
-
Enter values for Configuration name, Concurrency, Minimum size,
and Maximum size.
-
(Optional) If you'd like to add tags, select Auto new tag. Then on the fields that appear enter a
Name and a Value (optional).
-
Select Create.
-
To create a new revision for an existing auto scaling configuration, follow these steps.
-
On the Auto scaling configurations page, select the radio button next to the configuration that needs the
new revision. Then select Create revision from the Actions menu.
The Create revision page displays.
-
On , enter values for Concurrency, Minimum size, and Maximum
size.
-
(Optional) If you'd like to add tags, select Auto new tag. Then on the fields that appear enter a
Name and a Value (optional).
-
Select Create.
-
To delete an auto scaling configuration, follow these steps.
-
On the Auto scaling configurations page, select the radio button next to the configuration that you need to
delete.
-
Select Delete from the Actions menu.
-
To proceed with the deletion, select Delete on the confirmation dialogue. Otherwise, select
Cancel.
App Runner validates that your deletion choice is not set as a default or is currently in use by any active services.
-
To set an auto scaling configuration as the default, follow these steps.
-
On the Auto scaling configurations page, select the radio button next to the configuration that you need to
set as the default.
-
Select Set as default from the Actions menu.
-
A dialogue displays informing you that App Runner will use the latest revision as the default configuration for all the new
services you create. Select Confirm to proceed. Otherwise select Cancel.
-
When you set an auto scaling configuration as default, it automatically gets assigned as the default configuration to the
new services you create in future.
-
The new default designation doesn't affect the associations that were previously set for existing services.
-
If the designated default auto scaling configuration has revisions, App Runner assigns its latest revision as the
default.
Manage revisions
The console also has a page for creating and managing your existing auto scaling revisions called Auto scaling
revisions. Access this page by selecting the name of a configuration on the Auto scaling configurations
page.
You can do any of the following from the Auto scaling revisions page:
-
Create a new auto scaling revision.
-
Set an auto scaling configuration revision as the default.
-
Delete a revision.
-
Delete the whole auto scaling configuration, including all of the associated revisions.
-
View the configuration details for a revision.
-
View a list of the services associated to a revision.
-
Change the revision for a listed service.
To manage auto scaling revisions in your account
-
Open the App Runner console, and in the Regions list, select your AWS Region.
-
In the navigation pane, choose Auto scaling configurations. The console displays a list of auto scaling
configurations in your account. The prior set of procedures in the Manage auto scaling configurations section includes a screen image of this page.
-
Now you can drill down into a specific auto scaling configuration to view and manage all of its revisions. In the Auto scaling
configurations pane, under the Configuration name column, choose an auto scaling configurations name.
Select the actual name, rather than the radio button. This will navigate you to a list of all the revisions for that configuration on the
Auto scaling revisions page.
-
You can now do any of the following.
-
To create a new revision for an existing auto scaling configuration, follow these steps.
-
On the Auto scaling revisions page, select Create revision.
The Create revision page displays.
-
Enter values for Concurrency, Minimum size, and Maximum
size.
-
(Optional) If you'd like to add tags, select Auto new tag. Then on the fields that appear enter a
Name and a Value (optional).
-
Select Create.
-
To delete the whole auto scaling configuration, including all of the associated revisions, follow
these steps.
-
Select Delete configuration on the top right of the page.
-
To proceed with the deletion, select Delete on the confirmation dialogue. Otherwise, select
Cancel.
App Runner validates that your deletion choice is not set as a default or is currently in use by any active services.
-
To set an auto scaling revision as the default, follow these steps.
-
Select the radio button next to the revision that you need to set as the default.
-
Select Set as default from the Actions menu.
-
When you set an auto scaling configuration as default, it automatically gets assigned as the default configuration to the
new services you create in future.
-
The new default designation doesn't affect the associations that were previously set for existing services.
-
To view the configuration details for a revision, follow these steps.
-
Select the radio button next to the revision.
The configuration details for the revision, including the ARN, displays in the lower split panel. Refer to the screen image
at the end of this procedure.
-
To view a list of the services associated to a revision, follow these steps.
-
Select the radio button next to the revision.
The Services panel, displays in the lower split panel, beneath the revision configuration details. The
panel lists all of the services that use this auto scaling configuration revision. Refer to the screen image at the end of this
procedure.
-
To change the revision for a listed service, follow these steps.
-
Select the radio button next to the revision, if you haven't done so already.
The Services panel, displays in the lower split panel, beneath the revision configuration details. The
panel lists all of the services that use this auto scaling configuration revision. Refer to the screen image at the end of this
procedure.
-
On the Services panel, select the radio button next to the service that you want to modify. Then select
Change revisions.
-
The Change ASC revision panel displays. Choose from the available revisions in the drop-down. Only the
revisions of the auto scaling configuration you chose earlier are available. If you need to change to a different auto scaling
configuration, follow the procedures under the prior section Manage auto scaling for a service.
Select Update to proceed with the change. Otherwise select Cancel.
When you change a revision that's associated to a service, your service is re-deployed.
You must select refresh on this panel to see the updated associations.
To see the ongoing activity and the status for the service redeployment, use the panel breadcrumbs to navigate to App Runner
>
Services, select the service, then view the Logs tab from the
Service overview panel.
- App Runner API or AWS CLI
-
Use the following App Runner API actions to manage your auto scaling configuration resources.
-
CreateAutoScalingConfiguration – Creates a new auto scaling
configuration or a revision to an existing one.
-
UpdateDefaultAutoScalingConfiguration –Sets an auto scaling
configuration to be the default. The existing default auto scaling configuration will be set to non-default automatically.
-
ListAutoScalingConfigurations – Returns a list of the auto
scaling configurations that are associated with your AWS account, with summary information.
-
ListServicesForAutoScalingConfiguration – Returns a list
of the associated App Runner services using an auto scaling configuration.
-
DescribeAutoScalingConfiguration – Returns a full
description of an auto scaling configuration.
-
DeleteAutoScalingConfiguration – Deletes an auto scaling
configuration. You can delete a top level auto scaling configuration, a specific revision of one, or all revisions associated with the top level
configuration. Use the optional DeleteAllRevisions
parameter to delete all of the revisions. If you reach the auto scaling
configuration resource quota for your AWS account, you might need to delete unnecessary auto
scaling configurations.