Como funciona o Aurora Serverless v2 - Amazon Aurora

Como funciona o Aurora Serverless v2

A visão geral a seguir descreve como Aurora Serverless v2 funciona.

Visão geral do Aurora Serverless v2

O Amazon Aurora Serverless v2 é adequado para as workloads mais exigentes e altamente variáveis. Por exemplo, o uso do banco de dados pode ser pesado por um curto período de tempo, seguido por longos períodos de atividade leve ou nenhuma atividade. Alguns exemplos são sites de varejo, jogos ou esportes com eventos promocionais periódicos e bancos de dados que produzem relatórios quando necessário. Outros são ambientes de desenvolvimento e teste e novas aplicações em que o uso pode aumentar rapidamente. Para casos como esses e muitos outros, configurar a capacidade corretamente antecipadamente nem sempre é possível com o modelo provisionado. Também pode resultar em custos mais elevados se você provisionar em excesso e tem capacidade que você não usa.

Em contrapartida, os clusters provisionados do Aurora são adequados para workloads estáveis. Com clusters provisionados, você escolhe uma classe de instância de banco de dados que tenha uma quantidade predefinida de memória, potência da CPU, largura de banda de E/S, etc. Se sua workload for alterada, modifique manualmente a classe da instância do gravador e dos leitores. O modelo provisionado funciona bem quando você pode ajustar a capacidade antes dos padrões de consumo esperados e é aceitável ter breves interrupções enquanto você altera a classe da instância do gravador e dos leitores do cluster.

O Aurora Serverless v2 é projetado desde o início para oferecer compatibilidade com clusters de banco de dados sem servidor que são instantaneamente escaláveis. O Aurora Serverless v2 foi projetado para fornecer o mesmo grau de segurança e isolamento que com gravadores e leitores provisionados. Esses aspectos são cruciais em ambientes de nuvem sem servidor multilocatário. O mecanismo de escalabilidade dinâmica tem muito pouca sobrecarga para que ele possa responder rapidamente às alterações na workload do banco de dados. Também é poderoso o suficiente para atender a aumentos dramáticos na demanda de processamento.

Usando o Aurora Serverless v2, é possível criar um cluster de banco de dados do Aurora sem ficar limitado a uma capacidade de banco de dados específica para cada gravador e leitor. Você especifica apenas o intervalo mínimo e máximo de capacidade. O Aurora escala cada gravador ou leitor do Aurora Serverless v2 no cluster dentro desse intervalo de capacidade. Ao usar um cluster multi-AZ no qual cada gravador ou leitor possa ser escalado dinamicamente, você pode aproveitar a escalabilidade dinâmica e a alta disponibilidade.

O Aurora Serverless v2 escala os recursos do banco de dados automaticamente com base nas especificações da capacidade mínima e máxima. A escalabilidade é rápida porque a maioria das operações de eventos de escalabilidade mantém o gravador ou o leitor no mesmo host. Nos raros casos em que um gravador ou leitor do Aurora Serverless v2 é movido de um host para outro, o Aurora Serverless v2 gerencia as conexões automaticamente. Você não precisa alterar o código da aplicação cliente do seu banco de dados nem suas strings de conexão do banco de dados.

Com o Aurora Serverless v2, como acontece com os clusters provisionados, a capacidade de armazenamento e a capacidade computacional são separadas. Quando nos referimos à capacidade e à escalabilidade do Aurora Serverless v2, é sempre a capacidade computacional que está sendo aumentada ou reduzida. Assim, seu cluster pode conter muitos terabytes de dados, mesmo quando a capacidade da CPU e da memória são reduzidas para níveis baixos.

Em vez de provisionar e gerenciar servidores, você especifica a capacidade do banco de dados. Para obter detalhes sobre a capacidade do Aurora Serverless v2, consulte Capacidade do Aurora Serverless v2. A capacidade real de cada gravador ou leitor do Aurora Serverless v2 varia com o tempo, dependendo da workload. Para obter detalhes sobre esse mecanismo, consulte Escalabilidade do Aurora Serverless v2.

Importante

Com o Aurora Serverless v1, seu cluster tem uma única medida de capacidade computacional que pode ser escalada entre os valores de capacidade mínima e máxima. Com o Aurora Serverless v2, seu cluster pode conter leitores além do gravador. Todos os gravadores e leitores do Aurora Serverless v2 podem escalar entre os valores mínimo e máximo de capacidade. Dessa forma, a capacidade total de seu cluster do Aurora Serverless v2 depende do intervalo de capacidade definido para o cluster de banco de dados e do número de gravadores e leitores no cluster. Em algum momento específico, você será cobrado somente pela capacidade de Aurora Serverless v2 que está sendo usada ativamente em seu cluster de banco de dados do Aurora.

Configurações para clusters de banco de dados do Aurora

Para cada um dos clusters de banco de dados do Aurora, você pode escolher qualquer combinação de capacidade do Aurora Serverless v2, capacidade provisionada ou ambas.

É possível configurar um cluster que contenha a capacidade do Aurora Serverless v2e a capacidade provisionada, denominada cluster de configuração mista. Por exemplo, suponha que você precise de mais capacidade de leitura/gravação do que está disponível para um gravador do Aurora Serverless v2. Nesse caso, é possível configurar o cluster com um gravador provisionado muito grande. Nesse caso, você ainda pode usar o Aurora Serverless v2 para os leitores. Ou suponha que a workload de gravação do cluster varie, mas a workload de leitura permaneça estável. Nesse caso, você pode configurar o cluster com um gravador do Aurora Serverless v2 e um ou mais leitores provisionados.

Você também pode configurar um cluster de banco de dados no qual toda a capacidade seja gerenciada pelo Aurora Serverless v2. Para fazer isso, é possível criar um cluster e usar o Aurora Serverless v2 desde o início. Ou você pode substituir toda a capacidade provisionada em um cluster existente por Aurora Serverless v2. Por exemplo, alguns dos caminhos de atualização de versões mais antigas do mecanismo exigem começar com um gravador provisionado e substituí-lo por um gravador do Aurora Serverless v2. Para saber os procedimentos para criar um cluster de banco de dados com o Aurora Serverless v2 ou para alternar um cluster de banco de dados existente para o Aurora Serverless v2, consulte Criar um cluster de banco de dados do Aurora Serverless v2 e Alternar de um cluster provisionado para o Aurora Serverless v2.

Se você nunca usa o Aurora Serverless v2 em um cluster de banco de dados, todos os gravadores e leitores no cluster de banco de dados são provisionados. Esse é o tipo mais antigo e mais comum de cluster de banco de dados que a maioria dos usuários conhece. De fato, antes do Aurora Serverless, não havia um nome especial para esse tipo de cluster de banco de dados do Aurora. A capacidade provisionada é constante. As cobranças são relativamente fáceis de prever. No entanto, você precisa prever antecipadamente de quanta capacidade precisa. Em alguns casos, suas previsões podem ser imprecisas ou suas necessidades de capacidade podem mudar. Nesses casos, seu cluster de banco de dados pode ficar subprovisionado (mais lento do que o desejável) ou superprovisionado (mais caro do que o desejável).

Capacidade do Aurora Serverless v2

A unidade de medida para Aurora Serverless v2 é a Unidade de capacidade do Aurora (ACU). A capacidade do Aurora Serverless v2 não está vinculada às classes de instância de banco de dados que você usa para clusters provisionados.

Cada ACU é uma combinação de aproximadamente 2 gigabytes (GB) de memória, CPU correspondente e rede. Você deve especificar o intervalo de capacidade do banco de dados usando essa unidade de medida. As métricas ServerlessDatabaseCapacity e ACUUtilization ajudam você a determinar quanta capacidade o banco de dados está realmente usando e em que ponto está essa capacidade no intervalo especificado.

A qualquer momento, cada gravador do Aurora Serverless v2 ou leitor de banco de dados tem uma capacidade. A capacidade é representada como um número de ponto flutuante representando ACUs. A capacidade aumenta ou diminui sempre que o gravador ou o leitor é escalado. Esse valor é medido a cada segundo. Para cada cluster de banco de dados em que você pretende usar o Aurora Serverless v2, é necessário definir um intervalo de capacidade: os valores mínimo e máximo de capacidade que cada escritor ou leitor do Aurora Serverless v2 pode escalar entre eles. O intervalo de capacidade é a mesma para cada gravador ou leitor do Aurora Serverless v2 em um cluster de banco de dados. Cada gravador ou leitor do Aurora Serverless v2 tem sua própria capacidade, inserindo-se em algum ponto desse intervalo.

A maior capacidade do Aurora Serverless v2 que você pode definir é 128 ACUs. Para saber todas as considerações ao escolher o valor da capacidade máxima, consulte Escolher a configuração de capacidade máxima do Aurora Serverless v2 para um cluster.

A menor capacidade do Aurora Serverless v2 que você pode definir é 0,5 ACUs. É possível especificar um número maior se for menor ou igual ao valor máximo da capacidade. Definir a capacidade mínima para um número pequeno permite que clusters de banco de dados levemente carregados consumam recursos de computação mínimos. Ao mesmo tempo, eles ficam prontos para aceitar conexões imediatamente e aumentam a escala na vertical quando ficam ocupados.

Recomendamos definir o mínimo como um valor que permita que cada gravador ou leitor de banco de dados mantenha o conjunto de trabalho da aplicação no grupo de buffer. Dessa forma, o conteúdo do grupo de buffer não é descartado durante períodos ociosos. Para saber todas as considerações ao escolher o valor da capacidade mínima, consulte Escolher a configuração de capacidade mínima do Aurora Serverless v2 para um cluster.

Dependendo de como você configura os gravadores em um cluster de banco de dados multi-AZ, suas capacidades podem ser vinculadas à capacidade do gravador ou de forma independente. Para obter detalhes sobre como fazer isso, consulte Escalabilidade do Aurora Serverless v2.

O monitoramento do Aurora Serverless v2 envolve medir os valores de capacidade para o gravador e os leitores em seu cluster de banco de dados ao longo do tempo. Se a escala do banco de dados não for reduzida na vertical para a capacidade mínima, você poderá realizar ações como ajustar o mínimo e otimizar sua aplicação de banco de dados. Se o banco de dados atingir consistentemente a capacidade máxima, você poderá realizar ações como aumentar o máximo. Também é possível otimizar sua aplicação de banco de dados e distribuir a carga de consulta por mais leitores.

As cobranças pela capacidade do Aurora Serverless v2 são medidas em termos de ACU-horas. Para obter informações sobre como as cobranças do Aurora Serverless v2 são calculadas, consulte a página Definição de preços do Aurora.

Suponha que o número total de gravadores e leitores em seu cluster seja N. Nesse caso, o cluster consome aproximadamente n x minimum ACUs quando você não está realizando nenhuma operação de banco de dados. O próprio Aurora pode realizar operações de monitoramento ou manutenção que causem uma pequena quantidade de carga. Esse cluster não consome mais do que n x maximum ACUs quando o banco de dados está sendo executado na capacidade total.

Para obter mais detalhes sobre como escolher valores mínimo e máximo apropriados de ACU, consulte escolher o intervalo de capacidade do Aurora Serverless v2 para um cluster do Aurora. Os valores mínimo e máximo de ACU especificados também afetam a forma como funcionam alguns parâmetros de configuração do Aurora para Aurora Serverless v2. Para obter detalhes sobre a interação entre o intervalo de capacidade e os parâmetros de configuração, consulte Trabalhar com grupos de parâmetros para o Aurora Serverless v2.

Escalabilidade do Aurora Serverless v2

Para cada gravador ou leitor do Aurora Serverless v2, o Aurora monitora continuamente a utilização de recursos, como CPU, memória e rede. Essas medições são coletivamente denominadas carga. A carga inclui as operações de banco de dados realizadas pela aplicação. Também inclui processamento em segundo plano para o servidor de banco de dados e tarefas administrativas do Aurora. Quando a capacidade é limitada por qualquer um desses fatores, a escala do Aurora Serverless v2 é aumentada na vertical. A escala do Aurora Serverless v2 também é aumentada na vertical quando ele detecta problemas de performance que podem ser resolvidos ao fazê-lo. Você pode monitorar a utilização de recursos e como isso afeta a escalabilidade do Aurora Serverless v2 seguindo os procedimentos em Métricas importantes do Amazon CloudWatch para o Aurora Serverless v2 e Monitorar a performance do Aurora Serverless v2 com o Performance Insights.

A carga pode variar entre o gravador e os leitores em seu cluster de banco de dados. O gravador lida com todas as instruções DDL (Data Definition Language), como CREATE TABLE, ALTER TABLE e DROP TABLE. O gravador também lida com todas as instruções de linguagem de manipulação de dados (DML), como INSERT e UPDATE. Os leitores podem processar instruções somente leitura, como consultas do SELECT.

Escalabilidade é a operação que aumenta ou diminui a capacidade do Aurora Serverless v2 para seu banco de dados. Com o Aurora Serverless v2, cada gravador e leitor têm seu próprio valor de capacidade atual, medido em ACUs. O Aurora Serverless v2 escala um gravador ou um leitor para uma capacidade maior quando sua capacidade atual é muito baixa para lidar com a carga. Ele dimensiona o gravador ou o leitor para uma capacidade menor quando sua capacidade atual é maior do que a necessária.

Ao contrário do Aurora Serverless v1, que é escalado dobrando a capacidade sempre que o cluster de banco de dados atinge um limite, o Aurora Serverless v2 pode aumentar a capacidade incrementalmente. Quando a demanda de sua workload começa a atingir a capacidade atual do banco de dados de um gravador ou um leitor,o Aurora Serverless v2 aumenta o número de ACUs para esse gravador ou leitor. O Aurora Serverless v2 escala a capacidade nos incrementos necessários para oferecer a melhor performance para os recursos consumidos. A escalabilidade ocorre em incrementos tão pequenos quanto 0,5 ACUs. Quanto maior a capacidade atual, maior o incremento de escalabilidade e, portanto, com maior rapidez a escalabilidade poderá acontecer.

Como a escalabilidade do Aurora Serverless v2 é tão frequente, granular e não disruptiva, ela não causa eventos pontuais no AWS Management Console como o Aurora Serverless v1. Em vez disso, você pode medir as métricas do Amazon CloudWatch, como ServerlessDatabaseCapacity e ACUUtilization e monitorar seus valores mínimo, máximo e médio ao longo do tempo. Para saber mais sobre as métricas do Aurora, consulte Monitorar métricas em um cluster do Amazon Aurora. Para obter dicas sobre como monitorar o Aurora Serverless v2, consulte Métricas importantes do Amazon CloudWatch para o Aurora Serverless v2.

É possível optar por fazer uma escala do leitor ao mesmo tempo que o gravador associado ou independentemente do gravador. Faça isso especificando o nível de promoção para esse leitor.

  • Leitores em níveis de promoção 0 e 1 são escalados ao mesmo tempo que o gravador. Esse comportamento de escalabilidade torna os leitores nos níveis prioritários 0 e 1 ideais para disponibilidade. O motivo disso é que eles são sempre dimensionados para a capacidade certa a fim de assumir a workload do gravador em caso de failover.

  • Os leitores em níveis de promoção 2 a 15 são escalados independentemente do gravador. Cada leitor permanece dentro dos valores mínimo e máximo da ACU especificados para o cluster. Quando um leitor é escalado independentemente do banco de dados do gravador associado, ele pode ficar ocioso e diminuir a escala na vertical enquanto o gravador continua processando um alto volume de transações. Ele ainda estará disponível como destino de failover, se nenhum outro leitor estiver disponível em níveis de promoção mais baixos. No entanto, se for promovido para ser o gravador, talvez seja necessário aumentar a escala na vertical para lidar com toda a workload do gravador.

Para obter detalhes sobre os níveis de promoção, consulte Escolher o nível de promoção para um leitor do Aurora Serverless v2.

As noções de pontos de escalabilidade e tempos limite associados do Aurora Serverless v1 não se aplicam ao Aurora Serverless v2. A escalabilidade do Aurora Serverless v2 pode ocorrer enquanto as conexões de banco de dados estão abertas, as transações SQL estão em andamento, as tabelas estão bloqueadas e as tabelas temporárias estão em uso. O Aurora Serverless v2 não espera que um ponto silencioso comece a ser escalado. A escalabilidade não interrompe nenhuma operação de banco de dados em andamento.

Se sua workload exigir mais capacidade de leitura do que está disponível com um único gravador e um único leitor, você poderá adicionar vários leitores do Aurora Serverless v2 ao cluster. Cada leitor do Aurora Serverless v2 pode ser escalado dentro dos valores de capacidade mínimo e máximo especificados para o seu cluster de banco de dados. É possível usar o endpoint leitor do cluster para direcionar sessões somente leitura para os leitores e reduzir a carga no gravador.

Se o Aurora Serverless v2 realiza ou não a escalabilidade e com que rapidez ela ocorre assim que é iniciada também dependem das configurações mínima e máxima de ACU para o cluster. Além disso, depende do fato de um leitor estar ou não configurado para ser escalado junto com o gravador ou independentemente dele. Para obter detalhes sobre os fatores que afetam a escalabilidade do Aurora Serverless v2, consulte Performance e escalabilidade no Aurora Serverless v2.

nota

Atualmente, os gravadores e leitores do Aurora Serverless v2 não são escalados até zero ACUs. Gravadores e leitores ociosos do Aurora Serverless v2 podem ter a escala reduzida na vertical para o valor mínimo de ACU especificado para o cluster.

Esse comportamento é diferente do Aurora Serverless v1, que pode pausar após um período de ociosidade, mas leva algum tempo para retomar quando você abre uma nova conexão. Quando o cluster de banco de dados com a capacidade Aurora Serverless v2não é necessária por algum tempo, você pode parar e iniciar clusters como acontece com clusters de banco de dados provisionados. Para obter informações sobre como interromper e iniciar clusters, consulte Interromper e iniciar um cluster de banco de dados do Amazon Aurora.

Aurora Serverless v2 e alta disponibilidade

A maneira de estabelecer alta disponibilidade para um cluster de banco de dados do Aurora é torná-lo um cluster de banco de dados multi-AZ. Um cluster de banco de dados do Aurora multi-AZ tem capacidade computacional disponível em todos os momentos em mais de uma zona de disponibilidade (AZ). Essa configuração mantém seu banco de dados em funcionamento mesmo em caso de uma interrupção significativa. O Aurora realiza um failover automático em caso de um problema que afete o gravador ou até mesmo a AZ inteira. Com o Aurora Serverless v2, você pode escolher a capacidade computacional em espera para aumentar e reduzir a escala na vertical junto com a capacidade do gravador. Dessa forma, a capacidade computacional na segunda AZ está pronta para assumir a workload atual a qualquer momento. Ao mesmo tempo, a capacidade computacional em todas as AZs pode reduzir a escala na vertical quando o banco de dados fica ocioso. Para obter detalhes sobre como o Aurora funciona com o Regiões da AWS e zonas de disponibilidade, consulte Alta disponibilidade de instâncias de banco de dados do Aurora.

O recurso multi-AZ do Aurora Serverless v2 usa leitores além do gravador. O suporte para leitores é novo para o Aurora Serverless v2 em comparação com o Aurora Serverless v1. É possível adicionar até 15 leitores do Aurora Serverless v2 distribuídos por três AZs para um cluster de banco de dados do Aurora.

Para aplicações essenciais aos negócios que devem permanecer disponíveis mesmo em caso de um problema que afete todo o cluster ou o toda a região da AWS, você pode configurar um banco de dados global do Aurora. É possível usar a capacidade de Aurora Serverless v2 nos clusters secundários para que eles estejam prontos para assumir o controle durante a recuperação de desastres. Eles também podem diminuir a escala na vertical quando o banco de dados não está ocupado. Para obter detalhes sobre os bancos de dados globais do Aurora, consulte Usar bancos de dados globais do Amazon Aurora.

O Aurora Serverless v2 funciona como provisionado para failover e outros recursos de alta disponibilidade. Para obter mais informações, consulte Alta disponibilidade do Amazon Aurora.

Vamos supor que você queira garantir a máxima disponibilidade do cluster do Aurora Serverless v2. Você pode criar um leitor além do gravador. Se você atribuir o leitor ao nível 0 ou 1 de promoção, qualquer escalabilidade que ocorra para o gravador também acontecerá para o leitor. Dessa forma, um leitor com capacidade idêntica está sempre pronto para assumir o controle do gravador em caso de failover.

Suponha que você queira executar relatórios trimestrais para sua empresa ao mesmo tempo que o cluster continua processando transações. Se você adicionar um leitor do Aurora Serverless v2 ao cluster e atribuí-lo a um nível de promoção de 2 a 15, poderá se conectar diretamente a esse leitor para executar os relatórios. Dependendo de quão intenso for o uso da memória e da CPU por parte das consultas de relatórios, esse leitor poderá aumentar a escala na vertical para acomodar a workload. Depois, ele pode diminuir a escala na vertical novamente quando os relatórios forem concluídos.

Aurora Serverless v2 e armazenamento

O armazenamento de cada cluster de banco de dados do Aurora consiste em seis cópias de todos os seus dados, distribuídos por três AZs. Essa replicação de dados integrada se aplica independentemente de seu cluster de banco de dados incluir leitores além do gravador. Dessa forma, seus dados estão seguros, mesmo quanto a problemas que afetem a capacidade computacional do cluster.

O armazenamento do Aurora Serverless v2 tem as mesmas características de confiabilidade e durabilidade descritas em Armazenamento e confiabilidade do Amazon Aurora. Isso ocorre porque o armazenamento para clusters de banco de dados do Aurora funcionará da mesma forma se a capacidade de computação usar o Aurora Serverless v2 ou provisionado.

Parâmetros de configuração para clusters do Aurora

Você pode ajustar todos os mesmos parâmetros de configuração de cluster e banco de dados para clusters com capacidade de Aurora Serverless v2quanto aos clusters de banco de dados provisionados. No entanto, alguns parâmetros relacionados à capacidade são tratados de forma diferente para o Aurora Serverless v2. Em um cluster de configuração mista, os valores de parâmetros especificados para esses parâmetros relacionados à capacidade ainda se aplicam a todos os gravadores e leitores provisionados.

Quase todos os parâmetros funcionam da mesma maneira para gravadores e leitores do Aurora Serverless v2 quanto aos provisionados. As exceções são alguns parâmetros que o Aurora ajusta automaticamente durante a escalabilidade e alguns parâmetros que o Aurora mantém em valores fixos que dependem da configuração de capacidade máxima.

Por exemplo, a quantidade de memória reservada para o cache de buffer aumenta à medida que um gravador ou um leitor aumenta a escala na vertical e diminui à medida que a escala é reduzida na vertical. Dessa forma, a memória poderá ser liberada quando seu banco de dados não estiver ocupado. Por outro lado, o Aurora define automaticamente o número máximo de conexões para um valor apropriado com base na configuração de capacidade máxima. Dessa forma, as conexões ativas não serão descartadas se a carga cair e o Aurora Serverless v2 reduzir a escala na vertical. Para obter informações sobre como o Aurora Serverless v2 lida com parâmetros específicos, consulte Trabalhar com grupos de parâmetros para o Aurora Serverless v2.