← Todas as publicações

Publicação Técnica · Amazon Aurora

Implementando autoscaling de banco de dados com o Amazon Aurora

Nesta post, vamos falar sobre como implementar um processo de autoscaling na camada de banco de dados com o Amazon Aurora.

8 min de leitura1.813 palavrasSeções: 9Imagens: 3Blocos de código: 1307 ago 2022

Palavras-chave

Compartilhar
Comentar

Nesta post, vamos falar sobre como implementar um processo de autoscaling na camada de banco de dados com o Amazon Aurora.

Premissas

Antes de usar o Aurora Auto Scaling com um cluster Aurora DB, você deve primeiro criar um cluster Aurora DB com uma instância primária e pelo menos uma réplica Aurora. Embora o Aurora Auto Scaling gerencie as réplicas do Aurora, o cluster do Aurora DB deve começar com pelo menos uma réplica do Aurora.

O Aurora Auto Scaling somente dimensiona um cluster de banco de dados se todas as réplicas do Aurora em um cluster de banco de dados estiverem no estado disponível. Se qualquer uma das réplicas do Aurora estiver em um estado diferente de disponível, o Aurora Auto Scaling aguarda até que todo o cluster de banco de dados esteja disponível para dimensionamento.

Quando o Aurora Auto Scaling adiciona uma nova réplica Aurora, a nova réplica Aurora tem a mesma classe de instância de banco de dados usada pela instância primária. Além disso, o nível de promoção para novas réplicas Aurora é definido para a última prioridade, que é 15 por padrão. Isso significa que durante um failover, uma réplica com uma prioridade melhor, como uma criada manualmente, seria promovida primeiro.

O Aurora Auto Scaling remove apenas as réplicas do Aurora que ele criou.

Para se beneficiar do Aurora Auto Scaling, seus aplicativos devem oferecer suporte a conexões com novas réplicas Aurora. Para fazer isso, recomendamos o uso do Aurora reader endpoint. Para Aurora MySQL, você pode usar um driver como o utilitário MariaDB Connector/J.

Políticas do Aurora Auto Scaling

O Aurora Auto Scaling usa uma política de escala para ajustar o número de réplicas Aurora em um cluster Aurora DB. Aurora Auto Scaling tem os seguintes componentes:

Função vinculada a serviço

O Aurora Auto Scaling usa a role AWSServiceRoleForApplicationAutoScaling_RDSCluster vinculada ao serviço.

Métrica destino

Nesse tipo de política, uma métrica predefinida ou customizada e um valor de destino para a métrica são especificados em uma configuração de política de escala de rastreamento de destino. Aurora Auto Scaling cria e gerencia alarmes CloudWatch que acionam a política de dimensionamento e calcula o ajuste de dimensionamento com base na métrica e no valor alvo. A política de dimensionamento adiciona ou remove réplicas Aurora conforme necessário para manter a métrica no valor de destino especificado ou próximo a ele. Além de manter a métrica próxima ao valor alvo, uma política de escala de rastreamento de destino também se ajusta às flutuações na métrica devido a uma carga de trabalho em mudança. Essa política também minimiza as flutuações rápidas no número de réplicas Aurora disponíveis para seu cluster de banco de dados.

Por exemplo, considere uma política de escalonamento que usa a métrica de utilização média de CPU predefinida. Essa política pode manter a utilização da CPU em ou perto de uma porcentagem especificada de utilização, como 40 por cento.

Capacidade mínima e máxima

Você pode especificar o número máximo de réplicas Aurora a serem gerenciadas pelo Application Auto Scaling. Este valor deve ser definido como 0–15 e deve ser igual ou maior que o valor especificado para o número mínimo de réplicas Aurora.

Você também pode especificar o número mínimo de réplicas Aurora a serem gerenciadas pelo Application Auto Scaling. Este valor deve ser definido como 0–15 e deve ser igual ou menor que o valor especificado para o número máximo de réplicas Aurora.

Período de espera

Você pode ajustar a capacidade de resposta de uma política de escalonamento de rastreamento de alvo adicionando períodos de resfriamento que afetam o escalonamento de seu cluster Aurora DB. Um período de resfriamento bloqueia as solicitações subsequentes de expansão ou expansão até que o período expire. Esses blocos retardam as exclusões de réplicas do Aurora em seu cluster do Aurora DB para solicitações de escalonamento interno e a criação de réplicas do Aurora para solicitações de escalonamento horizontal.

Adicionando uma política de escalonamento no Amazon Aurora

  • Faça login no AWS Management Console e abra o console Amazon RDS em https://console.aws.amazon.com/rds/.
  • No painel de navegação, escolha Bancos de dados.
  • Escolha o cluster Aurora DB para o qual deseja adicionar uma política.
  • Escolha a guia Logs e eventos.
  • Na seção Políticas de dimensionamento automático, escolha Adicionar.
  • A caixa de diálogo Adicionar política de escala automática é exibida.
  • Em Nome da política, digite o nome da política.
  • Para a métrica desejada, escolha uma das seguintes opções:
  • Utilização média da CPU de Aurora Replicas para criar uma política baseada na utilização média da CPU.
  • Conexões médias de réplicas Aurora para criar uma política baseada no número médio de conexões a réplicas Aurora.
  • Para o valor de destino, digite um dos seguintes:
  • Se você escolheu Utilização média da CPU das réplicas Aurora na etapa anterior, digite a porcentagem de utilização da CPU que deseja manter nas réplicas Aurora.
  • Se você escolheu Average connections of Aurora Replicas na etapa anterior, digite o número de conexões que deseja manter.
  • As réplicas do Aurora são adicionadas ou removidas para manter a métrica próxima ao valor especificado.
  • (Opcional) Abra a configuração adicional para criar um período de resfriamento scale-in ou scale-out.
  • Para capacidade mínima, digite o número mínimo de réplicas do Aurora que a política do Aurora Auto Scaling deve manter.
  • Para capacidade máxima, digite o número máximo de réplicas do Aurora que a política do Aurora Auto Scaling deve manter.
  • Escolha Adicionar política.

A caixa de diálogo a seguir cria uma política de Auto Scaling com base em uma utilização média da CPU de 40 por cento. A política especifica um mínimo de 5 réplicas Aurora e um máximo de 15 réplicas Aurora.

A caixa de diálogo a seguir cria uma política de escalonamento automático com base em um número médio de conexões de 100. A política especifica no mínimo duas réplicas Aurora e no máximo oito réplicas Aurora.

Adicionar uma política de dimensionamento do Amazon Aurora usando o AWS CLI

Você pode aplicar uma política de dimensionamento com base em uma métrica predefinida ou customizada. Para fazer isso, você pode usar o AWS CLI ou o Application Auto Scaling API. A primeira etapa é registrar seu cluster Aurora DB com Application Auto Scaling.

Registrando um cluster Aurora DB

Antes de usar o Aurora Auto Scaling com um cluster Aurora DB, registre seu cluster Aurora DB com Application Auto Scaling. Você faz isso para definir a dimensão de escala e os limites a serem aplicados a esse cluster. O Application Auto Scaling dimensiona dinamicamente o cluster Aurora DB ao longo da rds:cluster:ReadReplicaCountdimensão escalonável, que representa o número de réplicas Aurora.

Para registrar seu cluster Aurora DB, você pode usar o AWS CLI ou o Application Auto Scaling API.

AWS CLI

Para registrar seu cluster Aurora DB, use o comando register-scalable-target AWS CLI com os seguintes parâmetros:

  • — service-namespace — Defina este valor para rds.
  • — resource-id — O identificador de recursos para o cluster Aurora DB. Para este parâmetro, o tipo de recurso é clustere o identificador único é o nome do cluster Aurora DB, por exemplo cluster:myscalablecluster.
  • — scalable-dimension — Defina este valor para rds:cluster:ReadReplicaCount.
  • — min-capacity — O número mínimo de instâncias de banco de dados de leitor a serem gerenciadas pelo Application Auto Scaling. Para obter informações sobre a relação entre — min-capacity, — max-capacitye o número de instâncias de banco de dados em seu cluster, consulte Capacidade mínima e máxima .
  • — max-capacity — O número máximo de instâncias de banco de dados de leitor a serem gerenciadas pelo Application Auto Scaling. Para obter informações sobre a relação entre — min-capacity, — max-capacitye o número de instâncias de banco de dados em seu cluster, consulte Capacidade mínima e máxima .

No exemplo a seguir, você registra um cluster do Aurora DB denominado myscalablecluster. O registro indica que o cluster de banco de dados deve ser dimensionado dinamicamente para ter de uma a oito réplicas 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-capacity 1 \
 — max-capacity 8 \

Para Windows:

aws application-autoscaling register-scalable-target ^
 — service-namespace rds ^
 — resource-id cluster:myscalablecluster ^
 — scalable-dimension rds:cluster:ReadReplicaCount ^
 — min-capacity 1 ^
 — max-capacity 8 ^

Adicionar uma política de dimensionamento do Amazon Aurora usando o Application Scaling API

Você pode aplicar uma política de dimensionamento com base em uma métrica predefinida ou customizada. Para fazer isso, você pode usar o AWS CLI ou o Application Auto Scaling API. A primeira etapa é registrar seu cluster Aurora DB com Application Auto Scaling.

Registrando um cluster Aurora DB

Antes de usar o Aurora Auto Scaling com um cluster Aurora DB, registre seu cluster Aurora DB com Application Auto Scaling. Você faz isso para definir a dimensão de escala e os limites a serem aplicados a esse cluster. O Application Auto Scaling dimensiona dinamicamente o cluster Aurora DB ao longo da rds:cluster:ReadReplicaCountdimensão escalonável, que representa o número de réplicas Aurora.

Para registrar seu cluster Aurora DB, você pode usar o AWS CLI ou o Application Auto Scaling API.

Application Scaling API

Para registrar seu cluster Aurora DB com Application Auto Scaling, use a RegisterScalableTargetoperação da API Application Auto Scaling com os seguintes parâmetros:

  • ServiceNamespace — Defina este valor para rds.
  • ResourceID — O identificador de recursos para o cluster Aurora DB. Para este parâmetro, o tipo de recurso é clustere o identificador único é o nome do cluster Aurora DB, por exemplo cluster:myscalablecluster.
  • ScalableDimension — Defina este valor para rds:cluster:ReadReplicaCount.
  • MinCapacity — O número mínimo de instâncias de banco de dados de leitor a serem gerenciadas pelo Application Auto Scaling. Para obter informações sobre o relacionamento entre MinCapacity, MaxCapacitye o número de instâncias de banco de dados em seu cluster, consulte Capacidade mínima e máxima .
  • MaxCapacity — O número máximo de instâncias de banco de dados de leitor a serem gerenciadas pelo Application Auto Scaling. Para obter informações sobre a relação entre MinCapacity, MaxCapacitye o número de instâncias de banco de dados em seu cluster, consulte Capacidade mínima e máxima.

Exemplo

No exemplo a seguir, você registra um cluster Aurora DB nomeado myscalableclustercom a API Application Auto Scaling. Este registro indica que o cluster de banco de dados deve ser dimensionado dinamicamente para ter de uma a oito réplicas 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
}

Até o próximo post! =)

Comentários

Todo comentário passa por moderação antes de aparecer aqui. Nada é publicado automaticamente.

Carregando…