Adicionar uma política de ajuste de escala automático a um cluster de banco de dados do Amazon Aurora
Você pode adicionar uma política de escalabilidade usando o AWS Management Console, a AWS CLI ou a API do Application Auto Scaling.
nota
Para obter um exemplo que adiciona uma política de escalabilidade usando o AWS CloudFormation, consulte Declaring a scaling policy for an Aurora DB cluster (Declarar uma política de escalabilidade para um cluster de banco de dados Aurora) no Guia do usuário do AWS CloudFormation.
Você pode adicionar uma política de escalabilidade a um cluster de banco de dados Aurora usando o AWS Management Console.
Como adicionar uma política do Auto Scaling a um cluster de banco de dados Aurora
Faça login no AWS Management Console e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/
. -
No painel de navegação, escolha Databases (Bancos de dados).
-
Escolha o cluster de banco de dados Aurora ao qual você deseja adicionar a política.
-
Escolha a guia Logs & events (Logs e eventos).
-
Na seção Auto scaling policies (Políticas do Auto Scaling), selecione Add (Adicionar).
A caixa de diálogo Add Auto Scaling policy (Adicionar política de Auto Scaling) será exibida.
-
Em Policy Name (Nome da política), digite o nome da política.
-
Quanto à métrica de destino, escolha uma das seguintes opções:
-
Average CPU utilization of Aurora Replicas (Utilização média da CPU de réplicas do Aurora) para criar uma política com base na utilização média da CPU.
-
Average connections of Aurora Replicas (Média de conexões de réplicas do Aurora) para criar uma política com base no número médio de conexões com réplicas do Aurora.
-
-
Quanto ao valor de destino, digite uma das seguintes opções:
-
Se você escolheu Average CPU utilization of Aurora Replicas (Utilização média da CPU de réplicas do Aurora) na etapa anterior, digite a porcentagem de utilização da CPU que você deseja manter nas réplicas do Aurora.
-
Se você escolheu Average connections of Aurora Replicas (Média de conexões de réplicas do Aurora) na etapa anterior, digite o número de conexões que você deseja manter.
As réplicas do Aurora serão adicionadas ou removidas por manter a métrica próxima ao valor especificado.
-
-
(Opcional) Expanda Additional Configuration (Configuração adicional) para criar um período de esfriamento de redução ou aumento da escala horizontalmente.
-
Em Minimum capacity (Capacidade mínima), digite o número mínimo de réplicas do Aurora que a política de Auto Scaling do Aurora precisa manter.
-
Em Maximum capacity (Capacidade máxima), digite o número máximo de réplicas do Aurora que a política de Auto Scaling do Aurora precisa manter.
-
Escolha Add policy.
A caixa de diálogo a seguir cria uma política de Auto Scaling com base na utilização média da CPU em 40 por cento. A política especifica um mínimo de 5 réplicas do Aurora e o máximo 15 réplicas do Aurora.
A caixa de diálogo a seguir cria uma política do Auto Scaling com base no número médio de 100 conexões. A política especifica um mínimo de duas réplicas do Aurora e o máximo oito réplicas do Aurora.
Você pode aplicar uma política de escalabilidade com base em uma métrica predefinida ou personalizada. Para fazer isso, você pode usar a AWS CLI ou a API do Application Auto Scaling. A primeira etapa é registrar seu cluster de banco de dados Aurora no Application Auto Scaling.
Registro de um cluster de banco de dados Aurora
Antes de usar o Auto Scaling do Aurora com um cluster de banco de dados Aurora, você deve registrar seu cluster de banco de dados Aurora no Application Auto Scaling. Faça isso para definir a dimensão de escalabilidade e os limites a serem aplicados no cluster. O Application Auto Scaling escala dinamicamente o cluster de banco de dados Aurora ao longo da dimensão escalável rds:cluster:ReadReplicaCount
, que representa o número de réplicas do Aurora.
Para registrar seu cluster de banco de dados Aurora, você pode usar a AWS CLI ou a API do Application Auto Scaling.
AWS CLI
Para registrar seu cluster de banco de dados Aurora, use o comando register-scalable-target
da AWS CLI com os seguintes parâmetros:
-
--service-namespace
– Defina este valor comords
. -
--resource-id
– o identificador do recurso para o cluster de banco de dados Aurora. Para este parâmetro, o tipo de recurso écluster
e o identificador exclusivo é nome do cluster de banco de dados Aurora, por exemplocluster:myscalablecluster
. -
--scalable-dimension
– Defina este valor comords:cluster:ReadReplicaCount
. -
--min-capacity
– o número mínimo de instâncias de banco de dados de leitura a serem gerenciadas pelo Application Auto Scaling. Para obter informações sobre a relação entre--min-capacity
,--max-capacity
e o número de instâncias de banco de dados no cluster, consulte Capacidades mínima e máxima. -
--max-capacity
– o número máximo de instâncias de banco de dados de leitura a serem gerenciadas pelo Application Auto Scaling. Para obter informações sobre a relação entre--min-capacity
,--max-capacity
e o número de instâncias de banco de dados no cluster, consulte Capacidades mínima e máxima.
No exemplo a seguir, registre um cluster de banco de dados Aurora chamado myscalablecluster
. O registro indica que o cluster de banco de dados deve ser escalado dinamicamente para ter de uma a oito réplicas do Aurora.
Para Linux, macOS ou Unix:
aws application-autoscaling register-scalable-target \ --service-namespace rds \ --resource-id cluster:
myscalablecluster
\ --scalable-dimension rds:cluster:ReadReplicaCount \ --min-capacity1
\ --max-capacity8
\
Para Windows:
aws application-autoscaling register-scalable-target ^ --service-namespace rds ^ --resource-id cluster:
myscalablecluster
^ --scalable-dimension rds:cluster:ReadReplicaCount ^ --min-capacity1
^ --max-capacity8
^
API do Application Auto Scaling
Para registrar seu cluster de banco de dados Aurora no Application Auto Scaling, use a operação RegisterScalableTarget
da API do Application Auto Scaling com os seguintes parâmetros:
-
ServiceNamespace
– Defina este valor comords
. -
ResourceID
– o identificador do recurso para o cluster de banco de dados Aurora. Para este parâmetro, o tipo de recurso écluster
e o identificador exclusivo é nome do cluster de banco de dados Aurora, por exemplocluster:myscalablecluster
. -
ScalableDimension
– Defina este valor comords:cluster:ReadReplicaCount
. -
MinCapacity
– o número mínimo de instâncias de banco de dados de leitura a serem gerenciadas pelo Application Auto Scaling. Para obter informações sobre a relação entreMinCapacity
,MaxCapacity
e o número de instâncias de banco de dados no cluster, consulte Capacidades mínima e máxima. -
MaxCapacity
– o número máximo de instâncias de banco de dados de leitura a serem gerenciadas pelo Application Auto Scaling. Para obter informações sobre a relação entreMinCapacity
,MaxCapacity
e o número de instâncias de banco de dados no cluster, consulte Capacidades mínima e máxima.
No exemplo a seguir, registre um cluster de banco de dados Aurora chamado myscalablecluster
na API do Application Auto Scaling. Este registro indica que o cluster de banco de dados deve ser escalado dinamicamente para ter de uma a oito réplicas do Aurora.
POST / HTTP/1.1 Host: autoscaling.us-east-2.amazonaws.com Accept-Encoding: identity Content-Length: 219 X-Amz-Target: AnyScaleFrontendService.RegisterScalableTarget X-Amz-Date: 20160506T182145Z User-Agent: aws-cli/1.10.23 Python/2.7.11 Darwin/15.4.0 botocore/1.4.8 Content-Type: application/x-amz-json-1.1 Authorization: AUTHPARAMS { "ServiceNamespace": "rds", "ResourceId": "cluster:
myscalablecluster
", "ScalableDimension": "rds:cluster:ReadReplicaCount", "MinCapacity":1
, "MaxCapacity":8
}
Definir uma política de escalabilidade para um cluster de banco de dados Aurora
Uma configuração de política de escalabilidade de rastreamento de destino é representada por um bloco JSON no qual as métricas e valores de destino são definidos. Você pode salvar uma configuração de política de escalabilidade como um bloco JSON em um arquivo de texto. Você pode usar esse arquivo de texto ao invocar a AWS CLI ou a API do Application Auto Scaling. Para ter mais informações sobre a sintaxe de configuração de política, consulte TargetTrackingScalingPolicyConfiguration
na Referência de API do Application Auto Scaling.
As seguintes opções estão disponíveis para definir uma configuração de política de escalabilidade de rastreamento de destino.
Tópicos
Uso de uma métrica predefinida
Com o uso de métricas predefinidas, você pode definir rapidamente uma política de escalabilidade de rastreamento de destino para um cluster de banco de dados Aurora que funcione bem com o rastreamento de destino e com a escalabilidade dinâmica no Auto Scaling do Aurora.
Atualmente, o Aurora oferece suporte às seguintes métricas predefinidas no Auto Scaling do Aurora:
-
RDSReaderAverageCPUUtilization – o valor médio da métrica
CPUUtilization
no CloudWatch em todas as réplicas do Aurora no cluster de banco de dados Aurora. -
RDSReaderAverageDatabaseConnections – o valor médio da métrica
DatabaseConnections
no CloudWatch em todas as réplicas do Aurora no cluster de banco de dados Aurora.
Para ter mais informações sobre as métricas CPUUtilization
e DatabaseConnections
, consulte Métricas do Amazon CloudWatch para o Amazon Aurora.
Para usar uma métrica predefinida em sua política de escalabilidade, crie uma configuração de rastreamento de destino para sua política de escalabilidade. Essa configuração deve incluir uma PredefinedMetricSpecification
para a métrica predefinida e um TargetValue
para o valor de destino dessa métrica.
exemplo
O exemplo a seguir descreve uma configuração de política típica para a escalabilidade de rastreamento de destino para um cluster de banco de dados Aurora. Nessa configuração, a métrica predefinida RDSReaderAverageCPUUtilization
é usada para ajustar o cluster de banco de dados Aurora com base em uma utilização média da CPU de 40 por cento em todas as réplicas do Aurora.
{ "TargetValue": 40.0, "PredefinedMetricSpecification": { "PredefinedMetricType": "RDSReaderAverageCPUUtilization" } }
Uso de uma métrica personalizada
Com o uso de métricas personalizadas, você pode definir uma política de escalabilidade de rastreamento de destino que atenda a suas exigências personalizadas. Você pode definir uma métrica personalizada com base em qualquer métrica do Aurora que mude na proporção da escalabilidade.
Nem todas as métricas do Aurora funcionam para o rastreamento de destino. A métrica deve ser de utilização válida e descrever o quão ocupada uma instância está. O valor da métrica deve aumentar ou diminuir na proporção do número de réplicas do Aurora no cluster de banco de dados Aurora. Essa aumento ou redução proporcional é necessário para usar os dados da métrica para expandir ou reduzir proporcionalmente o número de réplicas do Aurora.
exemplo
O exemplo a seguir descreve uma configuração de rastreamento de destino para uma política de escalabilidade. Nessa configuração, uma métrica personalizada ajusta um cluster de banco de dados Aurora com base na utilização média de uma CPU em 50 por centro em todas as réplicas do Aurora, em um cluster de banco de dados Aurora chamado my-db-cluster
.
{ "TargetValue": 50, "CustomizedMetricSpecification": { "MetricName": "CPUUtilization", "Namespace": "AWS/RDS", "Dimensions": [ {"Name": "DBClusterIdentifier","Value": "my-db-cluster"}, {"Name": "Role","Value": "READER"} ], "Statistic": "Average", "Unit": "Percent" } }
Uso de períodos de desaquecimento
Você pode especificar um valor, em segundos, para ScaleOutCooldown
a fim de adicionar um desaquecimento para expandir seu cluster de banco de dados Aurora. De forma similar, você pode adicionar um valor, em segundos, para ScaleInCooldown
a fim de adicionar um desaquecimento para reduzir seu cluster de banco de dados Aurora. Para ter mais informações sobre ScaleInCooldown
e ScaleOutCooldown
, consulte TargetTrackingScalingPolicyConfiguration
na Referência de API do Application Auto Scaling.
O exemplo a seguir descreve uma configuração de rastreamento de destino para uma política de escalabilidade. Nessa configuração, a métrica predefinida RDSReaderAverageCPUUtilization
é usada para ajustar um cluster de banco de dados Aurora com base em uma utilização média da CPU de 40 por cento em todas as réplicas do Aurora nesse cluster de banco de dados Aurora. A configuração fornece um desaquecimento de redução de 10 minutos e em um desaquecimento de expansão de 5 minutos.
{ "TargetValue": 40.0, "PredefinedMetricSpecification": { "PredefinedMetricType": "RDSReaderAverageCPUUtilization" }, "ScaleInCooldown": 600, "ScaleOutCooldown": 300 }
Desabilitar a atividade de redução
Você pode evitar que a configuração da política de escalabilidade de rastreamento de destino reduza seu cluster de banco de dados Aurora desabilitando a atividade de redução. Desabilitar a atividade de redução impede que a política de escalabilidade exclua réplicas do Aurora, enquanto permite ao mesmo tempo que a política de escalabilidade crie réplicas conforme o necessário.
Você pode especificar um valor booliano para DisableScaleIn
a fim de permitir ou evitar a atividade de redução em seu cluster de banco de dados Aurora. Para ter mais informações sobre DisableScaleIn
, consulte TargetTrackingScalingPolicyConfiguration
na Referência de API do Application Auto Scaling.
O exemplo a seguir descreve uma configuração de rastreamento de destino para uma política de escalabilidade. Nessa configuração, a métrica predefinida RDSReaderAverageCPUUtilization
ajusta um cluster de banco de dados Aurora com base em uma utilização média da CPU de 40 por cento em todas as réplicas do Aurora nesse cluster de banco de dados Aurora. A configuração desativa a atividade de redução para a política de escalabilidade.
{ "TargetValue": 40.0, "PredefinedMetricSpecification": { "PredefinedMetricType": "RDSReaderAverageCPUUtilization" }, "DisableScaleIn": true }
Aplicar uma política de escalabilidade a um cluster de banco de dados Aurora
Após registrar seu cluster de banco de dados Aurora no Application Auto Scaling e definir uma política de escalabilidade, aplique a política de escalabilidade ao cluster de banco de dados Aurora. Para aplicar uma política de escalabilidade a um cluster de banco de dados Aurora, você pode usar a AWS CLI ou a API do Application Auto Scaling.
Para aplicar uma política de escalabilidade a seu cluster de banco de dados Aurora, use o comando put-scaling-policy
da AWS CLI com os seguintes parâmetros:
-
--policy-name
– o nome da política de escalabilidade. -
--policy-type
– Defina este valor comoTargetTrackingScaling
. -
--resource-id
– o identificador do recurso para o cluster de banco de dados Aurora. Para este parâmetro, o tipo de recurso écluster
e o identificador exclusivo é nome do cluster de banco de dados Aurora, por exemplocluster:myscalablecluster
. -
--service-namespace
– Defina este valor comords
. -
--scalable-dimension
– Defina este valor comords:cluster:ReadReplicaCount
. -
--target-tracking-scaling-policy-configuration
– a configuração da política de escalabilidade de rastreamento de destino a ser usada para o cluster de banco de dados Aurora.
No exemplo a seguir, aplique a política de escalabilidade de rastreamento de destino chamada myscalablepolicy
a um cluster de banco de dados Aurora chamado myscalablecluster
com o Application Auto Scaling. Para fazer isso, use uma configuração de política salva em um arquivo chamado config.json
.
Para Linux, macOS ou Unix:
aws application-autoscaling put-scaling-policy \ --policy-name
myscalablepolicy
\ --policy-type TargetTrackingScaling \ --resource-id cluster:myscalablecluster
\ --service-namespace rds \ --scalable-dimension rds:cluster:ReadReplicaCount \ --target-tracking-scaling-policy-configurationfile://config.json
Para Windows:
aws application-autoscaling put-scaling-policy ^ --policy-name
myscalablepolicy
^ --policy-type TargetTrackingScaling ^ --resource-id cluster:myscalablecluster
^ --service-namespace rds ^ --scalable-dimension rds:cluster:ReadReplicaCount ^ --target-tracking-scaling-policy-configurationfile://config.json
Para aplicar a política de escalabilidade em seu cluster de banco de dados Aurora com a API do Application Auto Scaling, use a operação PutScalingPolicy
da API do Application Auto Scaling com os seguintes parâmetros:
-
PolicyName
– o nome da política de escalabilidade. -
ServiceNamespace
– Defina este valor comords
. -
ResourceID
– o identificador do recurso para o cluster de banco de dados Aurora. Para este parâmetro, o tipo de recurso écluster
e o identificador exclusivo é nome do cluster de banco de dados Aurora, por exemplocluster:myscalablecluster
. -
ScalableDimension
– Defina este valor comords:cluster:ReadReplicaCount
. -
PolicyType
– Defina este valor comoTargetTrackingScaling
. -
TargetTrackingScalingPolicyConfiguration
– a configuração da política de escalabilidade de rastreamento de destino a ser usada para o cluster de banco de dados Aurora.
No exemplo a seguir, aplique a política de escalabilidade de rastreamento de destino chamada myscalablepolicy
a um cluster de banco de dados do Aurora chamado myscalablecluster
com o Application Auto Scaling. Use uma configuração de política com base na métrica predefinida RDSReaderAverageCPUUtilization
.
POST / HTTP/1.1 Host: autoscaling.us-east-2.amazonaws.com Accept-Encoding: identity Content-Length: 219 X-Amz-Target: AnyScaleFrontendService.PutScalingPolicy X-Amz-Date: 20160506T182145Z User-Agent: aws-cli/1.10.23 Python/2.7.11 Darwin/15.4.0 botocore/1.4.8 Content-Type: application/x-amz-json-1.1 Authorization: AUTHPARAMS { "PolicyName": "
myscalablepolicy
", "ServiceNamespace": "rds", "ResourceId": "cluster:myscalablecluster
", "ScalableDimension": "rds:cluster:ReadReplicaCount", "PolicyType": "TargetTrackingScaling", "TargetTrackingScalingPolicyConfiguration": { "TargetValue":40.0
, "PredefinedMetricSpecification": { "PredefinedMetricType": "RDSReaderAverageCPUUtilization" } } }