Armazenamento de instâncias de banco de dados do Amazon RDS - Amazon Relational Database Service

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Armazenamento de instâncias de banco de dados do Amazon RDS

As instâncias de banco de dados do Amazon RDS para MySQL, MariaDB, PostgreSQL, Oracle e Microsoft SQL Server utilizam volumes do Amazon Elastic Block Store (Amazon EBS) para armazenamento em log e banco de dados. Dependendo da quantidade de armazenamento solicitada, o Amazon RDS cruza automaticamente múltiplos volumes de Amazon EBS para aprimorar o desempenho.

Tipos de armazenamento do Amazon RDS

O Amazon RDS oferece três tipos de armazenamento: SSD de uso geral (também conhecido como gp2), SSD de IOPS provisionadas (também conhecido como io1) e magnético (também conhecido como padrão). Eles diferem em características de desempenho e preço, o que significa que você pode adaptar o custo e o desempenho de armazenamento às necessidades da carga de trabalho do banco de dados. É possível criar instâncias de banco de dados MySQL, MariaDB, Oracle e PostgreSQL do RDS com até 64 tebibytes (TiB) de armazenamento. Crie instâncias de banco de dados SQL Server RDS com até 16 TiB de armazenamento. Para essa quantidade de armazenamento, use os tipos de armazenamento SSD de IOPS provisionadas e SSD de uso geral.

A lista a seguir descreve resumidamente os três tipos de armazenamento:

  • SSD de uso geral – os volumes de SSD de uso geral oferecem armazenamento econômico ideal para uma ampla variedade de cargas de trabalho. Esses volumes fornecem latências de milissegundo com único dígito e capacidade de intermitência a 3.000 IOPS por períodos de tempo prolongados. O desempenho basal para esses volumes é determinado pelo tamanho do volume.

    Para obter mais informações sobre o armazenamento SSD de uso geral, incluindo os intervalos de tamanho de armazenamento, consulte Armazenamento SSD de uso geral.

  • IOPS provisionadas – O armazenamento de IOPS provisionadas foi projetado para atender às necessidades de cargas de trabalho intensivas de E/S, em especial cargas de trabalho de banco de dados que exigem baixa latência de E/S e taxa de transferência de E/S consistente.

    Para obter mais informações sobre o armazenamento de IOPS provisionadas, incluindo os intervalos de tamanho de armazenamento, consulte Armazenamento SSD de IOPS provisionadas.

  • Magnético – o Amazon RDS também oferece suporte ao armazenamento magnético para retrocompatibilidade. Recomendamos que você use SSD de uso geral ou IOPS provisionadas para toda e qualquer nova necessidade de armazenamento. A quantidade máxima de armazenamento permitida para instâncias de banco de dados no armazenamento magnético é menor que a dos outros tipos de armazenamento. Para obter mais informações, consulte Armazenamento magnético.

Vários fatores podem afetar o desempenho dos volumes do Amazon EBS, como a configuração da instância, as características de E/S e a demanda da carga de trabalho. Para obter mais informações sobre como aproveitar ao máximo os volumes de IOPS provisionadas, consulte Performance de volume do Amazon EBS.

Armazenamento SSD de uso geral

O armazenamento SSD de uso geral é econômico e aceitável para a maioria das cargas de trabalho de banco de dados. Veja a seguir os intervalos de tamanho de armazenamento para instâncias de banco de dados de SSD de uso geral:

  • Instâncias de banco de dados MariaDB, MySQL, Oracle e PostgreSQL: 20 GiB–64 TiB

  • SQL Server para edições Enterprise, Standard, Web e Express: 20 GiB–16 TiB

O desempenho de E/S de referência para o armazenamento SSD de uso geral é de 3 IOPS para cada GiB, com no mínimo 100 IOPS. Esse relacionamento significa que volumes maiores têm melhor desempenho. Por exemplo, o desempenho basal para um volume de 100 GiB é 300 IOPS. O desempenho basal para um volume de 1 TiB é de 3.000 IOPS. E o desempenho basal para um volume de 5,34 TiB é de 16.000 IOPS.

Os volumes abaixo de 1 TiB em tamanho também têm a capacidade de intermitência até 3.000 IOPS durante períodos prolongados. A intermitência não é relevante para volumes acima de 1 TiB. O saldo de créditos E/S de instância determina o desempenho de intermitência. Para obter mais informações sobre os créditos de E/S da instância, consulte Créditos de E/S e performance de intermitência.

Muitas cargas de trabalho nunca esgotam o saldo de intermitência, tornando o SSD de uso geral uma opção de armazenamento ideal para cargas de trabalho. No entanto, algumas cargas de trabalho podem esgotar o saldo de créditos de armazenamento de intermitência de 3.000 IOPS, portanto você deve planejar sua capacidade de armazenamento para atender às necessidades das cargas de trabalho.

Créditos de E/S e performance de intermitência

O desempenho de armazenamento do SSD de uso geral é regido pelo tamanho do volume, que determina o nível de desempenho base do volume e a velocidade com que ele acumula créditos de E/S. Os volumes maiores apresentam níveis mais altos de desempenho base e acumulam créditos de E/S mais rápido. Os créditos de E/S representam a largura de banda disponível que seu armazenamento SSD de uso geral pode usar para liberar grandes quantidades de E/S quando for necessário mais do que o nível básico de desempenho. Quanto mais créditos de E/S seu armazenamento tiver para E/S, mais tempo ele poderá ter além de seu nível básico de desempenho e melhor será o desempenho quando a carga de trabalho exigir mais desempenho.

Ao usar o armazenamento SSD de uso geral, a instância de banco de dados recebe um saldo de créditos de E/S inicial de 5,4 milhões de créditos de E/S. Esse saldo de créditos inicial é suficiente para manter um desempenho de intermitência de 3.000 IOPS durante 30 minutos. Esse saldo é projetado para fornecer um ciclo de inicialização inicial rápido para volumes de inicialização e fornecer uma boa experiência de bootstrapping para outros aplicativos. Os volumes ganham créditos de E/S na taxa de desempenho basal de 3 IOPS para cada GiB de tamanho do volume. Por exemplo, um volume de SSD de 100 GiB tem um desempenho basal de 300 IOPS.

Quando seu armazenamento exigir mais que o nível de E/S de desempenho de base, ele usará créditos de E/S no saldo de créditos para atingir o nível de desempenho desejado. Tal intermitência alcança um máximo de 3.000 IOPS. O armazenamento maior que 1.000 GiB tem um desempenho base que é igual ou superior ao desempenho de intermitência máximo. Quando seu armazenamento usar menos créditos de E/S do que ganha em um segundo, os créditos não utilizados de E/S serão adicionados ao saldo de crédito de E/S. O saldo de créditos de E/S máximo para uma instância de banco de dados usando armazenamento SSD de uso geral é igual ao saldo de créditos inicial (5,4 milhões de créditos de E/S).

Digamos que o armazenamento usa todo o saldo de créditos de E/S. Se esse for o caso, o desempenho máximo permanecerá no nível de desempenho de base até que a demanda de E/S desça abaixo do nível de base e os créditos de E/S não utilizados sejam adicionados ao saldo de crédito de E/S. (O nível de desempenho de base é a taxa na qual seu armazenamento ganha créditos de E/S.) Quanto maior o armazenamento, maior o desempenho de base e mais rapidamente o saldo de créditos de E/S é reabastecido.

nota

As conversões de armazenamento entre armazenamento magnético e armazenamento SSD de uso geral podem esgotar o saldo de créditos de E/S, resultando em tempos de conversão mais longos. Para obter mais informações sobre a escalabilidade de armazenamento, consulte Trabalhar com armazenamento para instâncias de banco de dados do Amazon RDS.

A tabela a seguir lista vários tipos de armazenamento. Para cada tamanho de armazenamento, ele enumera o desempenho de base associado do armazenamento, que também é a taxa na qual ele acumula créditos de E/S. A tabela também enumera a duração máxima da intermitência a 3.000 IOPS, quando começa com um saldo de créditos de E/S total. Além disso, a tabela lista o tempo em segundos que o armazenamento leva para completar um saldo de créditos de E/S vazio.

nota

O valor de IOPS atinge seu valor máximo em um tamanho de armazenamento de volume de 5.334 GiB.

Tamanho de armazenamento (GiB) Performance de base (IOPS) Duração máxima da intermitência a 3.000 IOPS (segundos) Segundos para encher o saldo de créditos de E/S vazio
1 100 1,862 54,000
100 300 2.000 18.000
250 750 2.400 7,200
500 1.500 3.600 3.600
750 2.250 7.200 2.400
1.000 3,000 Infinito N/D
5.334 16.000 N/D N/D

A duração da intermitência de seu armazenamento depende do tamanho do armazenamento, do IOPS de intermitência necessário e do saldo de créditos de E/S quando a intermitência inicia. Essa relação é mostrada na equação abaixo.

(Credit balance) Burst duration =  -------------------------------------- (Burst IOPS) - 3*(Storage size in GiB)

Talvez você perceba que o desempenho de armazenamento normalmente está limitado ao nível base devido a um saldo de créditos de E/S vazio. Se esse for o caso, considere alocar mais armazenamento SSD de uso geral com um nível de desempenho base maior. Como alternativa, você pode mudar para o armazenamento de IOPS provisionadas para cargas de trabalho que exigem desempenho de IOPS sustentado.

Para as cargas de trabalho com requisitos de E/S em condição estável, o provisionamento de menos de 100 GiB de armazenamento SSD de uso geral pode resultar em latências mais altas se você esgotar o saldo de créditos de E/S.

nota

Geralmente, a maioria das cargas de trabalho nunca ultrapassa o saldo de créditos de E/S.

Para obter uma descrição mais detalhada de como a performance basal e o saldo de créditos de E/S afetam a performance, consulte Conceitos básicos da intermitência com relação à performance com o Amazon RDS e o GP2.

Armazenamento SSD de IOPS provisionadas

Para um aplicativo de produção que exija um desempenho de E/S rápido e consistente, recomendamos o armazenamento de IOPS provisionadas (operações de entrada/saída por segundo). O armazenamento de IOPS provisionadas é um tipo de armazenamento que oferece desempenho previsível e latência consistentemente baixa. O armazenamento de IOPS provisionadas é otimizado para cargas de trabalho de processamento de transações online (OLTP) que apresentam requisitos de desempenho consistentes. As IOPS provisionadas ajudam a ajustar o desempenho dessas cargas de trabalho.

nota

A carga de trabalho do banco de dados pode não conseguir alcançar 100% das IOPS provisionadas. Para obter mais informações, consulte Fatores que afetam a performance de armazenamento.

Ao criar uma instância de banco de dados, você especifica a taxa de IOPS e o tamanho do volume. A proporção de IOPS com relação ao armazenamento alocado (em GiB) deve ser de pelo menos 0,5. O Amazon RDS fornece essa taxa de IOPS para a instância de banco de dados até que você a altere.

A tabela a seguir mostra o intervalo de IOPS provisionadas e o intervalo de tamanho do armazenamento para cada mecanismo de banco de dados.

Mecanismo do banco de dados Intervalo de IOPS provisionadas Intervalo de armazenamento

MariaDB

1.000–80.000 IOPS 100 GiB–64 TiB
SQL Server Enterprise, Standard e Web Editions 1.000 a 64.000 IOPS* 20 GiB – 16 TiB
SQL Server Express Edition 1.000 a 64.000 IOPS* 100 GiB – 16 TiB
MySQL 1.000–80.000 IOPS 100 GiB–64 TiB
Oracle 1.000–80.000 IOPS 100 GiB–64 TiB
PostgreSQL 1.000–80.000 IOPS 100 GiB–64 TiB

* O IOPS máximo de 64.000 é garantido apenas em instâncias baseadas em Nitro que estejam em tipos de instância m5, r5 e z1d. Outras famílias de instâncias garantem desempenho de até 32.000 IOPS. Para obter mais informações sobre a performance de IOPS da instância de banco de dados, consulte Instâncias otimizadas para Amazon EBS.

Combinação de armazenamento de IOPS provisionadas com implantações Multi-AZ ou réplicas de leitura

Para casos de uso de OLTP de produção, recomendamos o uso de implantações Multi-AZ para tolerância a falhas aprimorada com armazenamento de IOPS provisionadas para desempenho rápido e previsível.

Também é possível usar o armazenamento SSD de IOPS provisionadas com réplicas de leitura para MySQL, MariaDB ou PostgreSQL. O tipo de armazenamento para uma réplica de leitura é independente daquele da instância de banco de dados primária. Por exemplo, você pode usar o SSD de uso geral para réplicas de leitura com uma instância do banco de dados primária que usa armazenamento SSD de IOPS provisionadas para reduzir custos. No entanto, a performance da réplica de leitura nesse caso pode ser diferente daquela de uma configuração em que a instância de banco de dados primária e as réplicas de leitura usam o armazenamento SSD de IOPS provisionadas.

Custos do armazenamento de IOPS provisionadas

Com o armazenamento de IOPS provisionadas, você é cobrado pelos recursos provisionados se usá-los ou não durante um certo mês.

Para obter mais informações sobre a definição de preço, consulte Definição de preço do Amazon RDS.

Obter a melhor performance do armazenamento SSD de IOPS provisionadas do Amazon RDS

Se a sua carga de trabalho for limitado à E/S, usar o armazenamento SSD de IOPS provisionadas pode aumentar o número de solicitações de E/S que o sistema pode processar simultaneamente. O aumento da simultaneidade permite a diminuição da latência pois as solicitações de E/S passam menos tempo em uma fila. A latência menor permite compromissos de banco de dados mais rápidos, o que melhora o tempo de resposta e permite uma maior taxa de transferência de banco de dados.

O armazenamento SSD de IOPS provisionadas permitem reservar a capacidade de E/S especificando o IOPS. No entanto, como qualquer outro atributo de capacidade do sistema, a taxa de transferência máxima sob carga será restringida pelo recurso que for consumido primeiro. Esse recurso pode ser largura de banda da rede, CPU, memória ou recursos internos do banco de dados.

Armazenamento magnético

O Amazon RDS também suporta armazenamento magnético para retrocompatibilidade. Recomendamos que você use SSD de uso geral ou SSD de IOPS provisionadas para toda e qualquer nova necessidade de armazenamento. A seguir estão algumas limitações para o armazenamento magnético:

  • Não permite escalar o armazenamento ao usar o mecanismo de banco de dados do SQL Server.

  • Não é compatível com a escalabilidade automática de armazenamento.

  • Não oferece suporte aos volumes elásticos.

  • Limitado a um tamanho máximo de 3 TiB.

  • Limitado a um máximo de 1.000 IOPS.

Monitoramento do desempenho de armazenamento

O Amazon RDS fornece várias métricas que você pode usar para avaliar o desempenho de sua instância de banco de dados. Você pode visualizar as métricas na página de resumo da sua instância no Console de gerenciamento do Amazon RDS. Você também pode usar o Amazon CloudWatch para monitorar essas métricas. Para obter mais informações, consulte Exibir métricas de instância de banco de dados. O Monitoramento aprimorado fornece métricas de E/S mais detalhadas; para obter mais informações, consulte Monitoramento avançado.

As métricas a seguir são úteis para monitorar o armazenamento da sua instância de banco de dados:

  • IOPS – o número de operações de E/S concluídas por segundo. Esta métrica é relatada como a IOPS média para um determinado intervalo de tempo. O Amazon RDS relata a IOPS de leitura e gravação separadamente em intervalos de um minuto. A IOPS total é a soma da IOPS de leitura e gravação. Os valores típicos da IOPS variam de zero a dezenas de milhares por segundo.

  • Latência – o tempo decorrido entre o envio de uma solicitação de E/S e a sua conclusão. Esta métrica é relatada como a latência média para um determinado intervalo de tempo. O Amazon RDS relata a latência de leitura e gravação separadamente em intervalos de um minuto em unidades de segundos. Os valores típicos de latência estão em milissegundos (ms). Por exemplo, o Amazon RDS relata 2 ms como 0,002 segundos.

  • Taxa de transferência – o número de bytes por segundo transferidos para ou a partir do disco. Esta métrica é relatada como a taxa de transferência média para um determinado intervalo de tempo. O Amazon RDS relata a taxa de transferência de leitura e gravação separadamente em intervalos de um minuto usando unidades de megabytes por segundo (MB/s). Os valores típicos da taxa de transferência variam de zero à largura de banda máxima do canal de E/S.

  • Comprimento da fila – o número de solicitações de E/S na fila aguardando por ser atendidas. Essas são solicitações de E/S que foram enviadas pelo aplicativo, mas não foram enviadas ao dispositivo porque o mesmo está ocupado atendendo a outras solicitações de E/S. O tempo gasto esperando na fila é um componente de latência e tempo de serviço (não disponível como uma métrica). Esta métrica é relatada como o comprimento da fila médio para um determinado intervalo de tempo. O Amazon RDS relata o comprimento da fila em intervalos de um minuto. Os valores típicos de comprimento da fila variam de zero a várias centenas.

Os valores de IOPS medidos são independentes do tamanho da operação de E/S individual. Isso significa que ao medir o desempenho de E/S, você deve observar a taxa de transferência da instância, não apenas o número de operações de E/S.

Fatores que afetam a performance de armazenamento

As atividades do sistema e a carga de trabalho do banco de dados podem afetar o desempenho de armazenamento.

Atividades do sistema

As seguintes atividades relacionadas ao sistema consomem capacidade de E/S e podem reduzir o desempenho da instância de banco de dados em andamento:

  • Criação da espera Multi-AZ

  • Criação de réplica de leitura

  • Alteração dos tipos de armazenamento

Carga de trabalho do banco de dados

Em alguns casos o design do banco de dados ou aplicativo resulta em problemas de simultaneidade, travamento ou outras formas de contenção do banco de dados. Nesses casos, talvez não seja possível usar toda a largura de banda provisionada diretamente. Além disso, você pode encontrar as seguintes situações relacionadas à carga de trabalho:

  • O limite da taxa de transferência do tipo de instância subjacente é acessado.

  • A profundidade da fila é consistente menor que 1 pois o aplicativo não está conduzindo operações de E/S suficientes.

  • Você vivencia contenção de consulta no banco de dados mesmo que haja capacidade de E/S não usada.

Se não houver pelo menos um recurso de sistema que esteja dentro ou próximo de um limite, e a adição de threads não aumentar a taxa de transação do banco de dados, o gargalo provavelmente será de contenção no banco de dados. As formas mais comuns são bloqueio de linha e contenção de bloqueio de página de índice, mas existem muitas outras possibilidades. Se esta for a sua situação, você deve procurar a orientação de um especialista em ajuste de desempenho de banco de dados.

DB instance class

Para obter o desempenho máximo da instância de banco de dados do Amazon RDS, selecione um tipo de instância da geração atual com largura de banda suficiente para oferecer suporte ao seu tipo de armazenamento. Por exemplo, você pode escolher instâncias otimizadas para EBS e instâncias com conectividade de rede de 10 gigabit.

Para obter a lista completa de tipos de instância do Amazon EC2 compatíveis com a otimização para EBS, consulte Tipos de instância compatíveis com a otimização para EBS.

Recomendamos usar a geração mais recente das instâncias para obter o melhor desempenho. As instâncias de banco de dados de geração anteriores têm um limite de armazenamento de instâncias menor. A tabela a seguir mostra o armazenamento máximo no que cada classe de instância de banco de dados pode ser dimensionada em cada mecanismo de banco de dados. Todos os valores estão em tibibytes (TiB).

Classe de instância MariaDB Microsoft SQL Server MySQL Oracle PostgreSQL
db.m5 – classes de instância padrão da última geração
db.m5.24xlarge 64 16 64 64 64
db.m5.16xlarge 64 16 64 64 64
db.m5.12xlarge 64 16 64 64 64
db.m5.8xlarge 64 16 64 64 64
db.m5.4xlarge 64 16 64 64 64
db.m5.2xlarge 64 16 64 64 64
db.m5.xlarge 64 16 64 64 64
db.m5.large 64 16 64 64 64
db.m4 – classes de instância padrão da geração atual
db.m4.16xlarge 64 16 64 64 64
db.m4.10xlarge 64 16 64 64 64
db.m4.4xlarge 64 16 64 64 64
db.m4.2xlarge 64 16 64 64 64
db.m4.xlarge 64 16 64 64 64
db.m4.large 64 16 64 64 64
db.m3 – classes de instância padrão da geração anterior
db.m3.2xlarge 6 16 6 6 6
db.m3.xlarge 6 16 6 6 6
db.m3.large 6 16 6 6 6
db.m3.medium 32 16 32 32 32
db.r5 – Classes de instância da última geração otimizadas para memória
db.r5.24xlarge 64 16 64 64 64
db.r5.16xlarge 64 16 64 64 64
db.r5.12xlarge 64 16 64 64 64
db.r5.8xlarge 64 16 64 64 64
db.r5.4xlarge 64 16 64 64 64
db.r5.2xlarge 64 16 64 64 64
db.r5.xlarge 64 16 64 64 64
db.r5.large 64 16 64 64 64
db.r4 – classes de instância da geração atual otimizadas para memória
db.r4.16xlarge 64 16 64 64 64
db.r4.8xlarge 64 16 64 64 64
db.r4.4xlarge 64 16 64 64 64
db.r4.2xlarge 64 16 64 64 64
db.r4.xlarge 64 16 64 64 64
db.r4.large 64 16 64 64 64
db.r3 – classes de instância da geração anterior otimizadas para memória
db.r3.8xlarge 64 16 64 64 64
db.r3.4xlarge 64 16 64 64 64
db.r3.2xlarge 64 16 64 64 64
db.r3.xlarge 64 16 64 64 64
db.r3.large 64 16 64 64 64
db.t3 – classes de instância de última geração com ampliação de desempenho
db.t3.2xlarge 16 16 16 64 64
db.t3.xlarge 16 16 16 64 64
db.t3.large 16 16 16 64 64
db.t3.medium 16 16 16 32 32
db.t3.small 16 16 16 32 16
db.t3.micro 16 16 16 32 16
db.t2 – classes de instância da geração atual com ampliação de desempenho
db.t2.2xlarge 64 16 64 64 64
db.t2.xlarge 64 16 64 64 64
db.t2.large 64 16 64 64 64
db.t2.medium 32 16 32 32 32
db.t2.small 16 16 16 16 16
db.t2.micro 16 16 16 16 16
db.x1e – classes de instância da última geração otimizadas para memória
db.x1e.32xlarge 16 64
db.x1e.16xlarge 16 64
db.x1e.8xlarge 16 64
db.x1e.4xlarge 16 64
db.x1e.2xlarge 16 64
db.x1e.xlarge 16 64
db.x1 – classes de instância da geração atual otimizadas para memória
db.x1.32xlarge 16 64
db.x1.16xlarge 16 64

Para o Oracle, a expansão de até 80.000 IOPS tem suporte apenas nas seguintes classes de instância.

  • db.m5.24xlarge

  • db.r5.24xlarge

  • db.x1.32xlarge

  • db.x1e.32xlarge

Para obter mais detalhes sobre todas as classes de instância com suporte, consulte Instâncias de banco de dados de gerações anteriores.