O que é o Amazon Relational Database Service (Amazon RDS)? - Amazon Relational Database Service

O que é o Amazon Relational Database Service (Amazon RDS)?

O Amazon Relational Database Service (Amazon RDS) é um serviço da Web que facilita a configuração, a operação e escalabilidade de um banco de dados relacional na Nuvem AWS. Ele fornece capacidade econômica e redimensionável para um banco de dados relacional padrão do setor e gerencia tarefas comuns de administração de banco de dados.

nota

Este guia abrange mecanismos de banco de dados do Amazon RDS diferentes do Amazon Aurora. Para obter informações sobre o Amazon Aurora, consulte o Guia do usuário do Amazon Aurora.

Caso esteja começando a usar os produtos e serviços AWS, passe a saber mais com os seguintes recursos:

Vantagens do Amazon RDS

O Amazon RDS é um serviço de banco de dados gerenciado. Ele é responsável pela maioria das tarefas de gerenciamento. Ao eliminar tarefas manuais tediosas, o Amazon RDS libera você para se concentrar na aplicação e nos usuários.

O Amazon RDS oferece as seguintes principais vantagens em relação às implantações de banco de dados que não são totalmente gerenciadas:

  • É possível usar os mecanismos de banco de dados já conhecidos: IBM Db2, MariaDB, Microsoft SQL Server, MySQL, Oracle Database e PostgreSQL.

  • O Amazon RDS gerencia backups, patches de software, detecção automática de falhas e recuperação.

  • Você pode ativar backups automatizados ou pode criar manualmente seus próprios snapshots de backup. Você pode usar esses backups para restaurar um banco de dados. O processo de restauração do Amazon RDS funciona de maneira confiável e eficiente.

  • É possível ter alta disponibilidade com uma instância de banco de dados primária e uma instância de banco de dados secundária síncrona que pode ser usada para failover em caso de problemas. Também é possível usar réplicas de leitura para aumentar a escalabilidade de leitura.

  • Além da segurança no seu pacote de banco de dados, é possível controlar o acesso usando o AWS Identity and Access Management (IAM) para definir usuários e permissões. Você também pode ajudar a proteger seus bancos de dados colocando-os em uma nuvem privada virtual (VPC).

Comparação de responsabilidades com o Amazon EC2 e implantações on-premises

Recomendamos o Amazon RDS como opção padrão para a maioria das implantações de banco de dados relacional. As seguintes alternativas têm a desvantagem de fazer com que você passe mais tempo gerenciando software e hardware:

Implantação on-premises

Quando você compra um servidor on-premises, recebe CPU, memória, armazenamento e IOPS, todos no mesmo pacote. Você assume total responsabilidade pelo servidor, sistema operacional e software de banco de dados.

Amazon EC2

O Amazon Elastic Compute Cloud (Amazon EC2) oferece uma capacidade de computação escalável na Nuvem AWS. Ao contrário de um servidor on-premises, CPU, memória, armazenamento e IOPS são separados para que você possa escalá-los de forma independente. A AWS gerencia as camadas de hardware, o que elimina parte do trabalho de gerenciar um servidor de banco de dados on-premises.

A desvantagem de executar um banco de dados no Amazon EC2 é a maior propensão a erros do usuário. Por exemplo, quando você atualiza o sistema operacional ou o software do banco de dados manualmente, pode acabar causando acidentalmente tempo de inatividade da aplicação. Você pode perder horas verificando todas as alterações para identificar e corrigir um problema.

A tabela a seguir compara os modelos de gerenciamento para bancos de dados on-premises, o Amazon EC2 e o Amazon RDS.

Atributo

Gerenciamento on-premises

Gerenciamento do Amazon EC2

Gerenciamento do Amazon RDS

Otimização de aplicações

Cliente

Cliente

Cliente

Escalabilidade

Cliente

Cliente

AWS

Alta disponibilidade

Cliente

Cliente

AWS

Backups de banco de dados

Cliente

Cliente

AWS

Aplicação de patches de softwares para banco de dados

Cliente

Cliente

AWS

Instalação de softwares para banco de dados

Cliente

Cliente

AWS

Aplicação de patches de sistema operacional (SO)

Cliente

Cliente

AWS

Instalação do sistema operacional

Cliente

Cliente

AWS

Manutenção do servidor

Cliente

AWS

AWS

Ciclo de vida do hardware

Cliente

AWS

AWS

Energia, rede e desaquecimento

Cliente

AWS

AWS

Modelo de responsabilidade compartilhada do Amazon RDS

O Amazon RDS é responsável por hospedar os componentes de software e a infraestrutura de instâncias de banco de dados e clusters de banco de dados. Você é responsável pelo ajuste das consultas, que é o processo de ajustar as consultas SQL para melhorar a performance. A performance de consulta é altamente dependente do design do banco de dados, do tamanho dos dados, da distribuição dos dados, da workload da aplicação e dos padrões de consulta, que podem variar muito. Monitoramento e ajuste são processos altamente individualizados que você controla para seus bancos de dados do RDS. É possível usar o recurso Insights de Performance do Amazon RDS e outras ferramentas para identificar consultas problemáticas.

Instâncias de banco de dados do Amazon RDS

Uma instância de banco de dados é um ambiente isolado de banco de dados na Nuvem AWS. O bloco de construção básico do Amazon RDS é a instância do banco de dados. Sua instância de banco de dados pode conter um ou mais bancos de dados criados pelo usuário. O diagrama a seguir mostra uma nuvem privada virtual (VPC) que contém duas zonas de disponibilidade, com cada AZ contendo duas instâncias de banco de dados.

Mostra uma VPC que abrange duas zonas de disponibilidade. Cada AZ hospeda duas instâncias de banco de dados.

É possível acessar as instâncias de banco de dados usando as mesmas ferramentas e aplicações usadas com uma instância de banco de dados independente. Crie e modifique uma instância de banco de dados usando a AWS Command Line Interface (AWS CLI), a API do Amazon RDS ou o AWS Management Console.

Arquitetura da aplicação do Amazon RDS: exemplo

A imagem a seguir mostra um caso de uso típico de um site dinâmico que usa instâncias de banco de dados do Amazon RDS para armazenamento de banco de dados:

Mostra uma região com uma VPC que contém duas zonas de disponibilidade. Cada AZ contém um servidor de aplicações e uma instância de banco de dados. Um Elastic Load Balancer encaminha as solicitações do usuário aos servidores de aplicações.

Os principais componentes da arquitetura anterior são os seguintes:

Elastic Load Balancing

A AWS direciona o tráfego do usuário por meio do Elastic Load Balancing. Um load balancer distribui cargas de trabalho para vários recursos computacionais, como servidores virtuais. Neste exemplo de caso de uso, o Elastic Load Balancer encaminha solicitações do cliente para servidores de aplicações.

Servidores de aplicações

Os servidores de aplicações interagem com instâncias de banco de dados do RDS. Na AWS, um servidor de aplicações geralmente é hospedado em instâncias do EC2, que oferecem capacidade de computação escalável. Os servidores de aplicações residem em sub-redes públicas com diferentes zonas de disponibilidade (AZs) dentro da mesma nuvem privada virtual (VPC).

Instâncias de banco de dados do RDS

Os servidores de aplicações do EC2 interagem com instâncias de banco de dados do RDS. As instâncias de banco de dados residem em sub-redes privadas em diferentes zonas de disponibilidade (AZs) dentro da mesma nuvem privada virtual (VPC). Como as sub-redes são privadas, nenhuma solicitação da internet é permitida.

A instância de banco de dados primária é replicada para outra instância de banco de dados, chamada de réplica de leitura. Ambas as instâncias de banco de dados estão em sub-redes privadas dentro da VPC, o que significa que os usuários da internet não podem acessá-las diretamente.

Mecanismos de banco de dados

Um mecanismo de banco de dados é o software de banco de dados relacional específico que é executado na sua instância de banco de dados. O Amazon RDS é compatível com os seguintes mecanismos de banco de dados:

Cada mecanismo de banco de dados tem seus próprios recursos compatíveis, e cada versão de um mecanismo de banco de dados pode incluir recursos específicos. O suporte para recursos do Amazon RDS varia entre Regiões da AWS e versões específicas de cada mecanismo de banco de dados. Para conferir o suporte a recursos em diferentes versões do mecanismo e regiões, consulte Recursos compatíveis com o Amazon RDS por Região da AWS e com o mecanismo de banco de dados.

Além disso, cada mecanismo de banco de dados tem um conjunto de parâmetros em um grupo de parâmetros de banco de dados que controlam o comportamento dos bancos de dados que ele gerencia. Para ter mais informações sobre parameter groups, consulte Grupos de parâmetros para Amazon RDS.

Classes da instância de banco de dados

A classe de instância de banco de dados determina a capacidade de computação e de memória de uma instância de banco de dados. Uma classe de instância de banco de dados consiste no tipo de classe e no tamanho de instância de banco de dados. O Amazon RDS é compatível com os seguintes tipos de classe de instância, em que o asterisco (*) representa a geração, o atributo opcional e o tamanho:

  • Uso geral: db.m*

  • Memória otimizada: db.z*, db.x*, db.r*

  • Otimizada para computação: db.c*

  • Desempenho expansível: db.t*

Cada classe de instância oferece diferentes recursos de computação, memória e armazenamento. Por exemplo, db.m7g é um tipo de classe de instância de banco de dados de uso geral de 7ª geração com a tecnologia de processadores Graviton3 da AWS. Ao criar uma instância de banco de dados, você especifica uma classe de instância de banco de dados, como db.m7g.2xlarge, em que 2xlarge é o tamanho. Para ter mais informações sobre as especificações de hardware das diferentes classes de instância, consulte Especificações de hardware para classes de instância de banco de dados .

É possível selecionar a instância de banco de dados mais adequada às suas necessidades. Se os seus requisitos mudarem com o passar do tempo, você poderá alterar a classe de instância de banco de dados. Por exemplo, você pode aumentar a escala verticalmente de sua instância db.m7g.2xlarge para db.m7g.4xlarge. Para ter mais informações, consulte Classes de instância de banco de dados do .

nota

Para obter informações sobre a definição de preço de classes de instâncias de banco de dados, consulte a seção Definição de preço da página de produto do Amazon RDS.

Armazenamento da instância de banco de dados

O Amazon EBS fornece volumes de armazenamento em bloco duráveis que podem ser anexados a uma instância em execução. O armazenamento de instâncias de banco de dados é fornecido nos seguintes tipos:

  • Finalidade geral (SSD)

    Esse tipo de armazenamento econômico é ideal para uma série de workloads em execução em instâncias de banco de dados de médio porte. O armazenamento de uso geral é mais adequado para ambientes de desenvolvimento e teste.

  • IOPS provisionadas (PIOPS)

    Esse tipo de armazenamento foi projetado para atender às necessidades de workloads de uso intenso de E/S, em especial workloads de banco de dados que exigem baixa latência de E/S e throughput de E/S consistente. O armazenamento de IOPS provisionadas é mais adequado para ambientes de produção.

  • Magnético

    O Amazon RDS comporta armazenamento magnético para compatibilidade com versões anteriores. Recomendamos que você use SSD de uso geral ou SSD de IOPS provisionadas para toda e qualquer nova necessidade de armazenamento.

Os tipos de armazenamento diferem em características de performance e preços. É possível adaptar o custo e a performance de armazenamento às necessidades do banco de dados.

Cada instância de banco de dados tem requisitos mínimos e máximos de armazenamento, de acordo com o tipo de armazenamento e o mecanismo de banco de dados compatíveis. É importante ter armazenamento suficiente para que os bancos de dados tenham espaço para se expandir. Além disso, armazenamento suficiente garante que os recursos do mecanismo de banco de dados tenha espaço para escrever conteúdo ou entradas de log. Para ter mais informações, consulte Armazenamento de instâncias de banco de dados do Amazon RDS.

As instâncias de banco de dados em uma Amazon Virtual Private Cloud (Amazon VPC)

É possível executar uma instância de banco de dados em uma nuvem privada virtual (VPC) usando o serviço Amazon Virtual Private Cloud (Amazon VPC). Ao usar uma VPC, você tem controle sobre o ambiente de rede virtual. É possível escolher seu próprio intervalo de endereços IP, criar sub-redes e configurar o roteamento e listas de controle de acesso.

A funcionalidade básica do Amazon RDS é a mesma, não importa se ela está sendo executada ou não em uma VPC. O Amazon RDS gerencia backups, patches de software, detecção automática de falhas e recuperação. Não há custos adicionais para executar a instância de banco de dados em uma VPC. Para obter mais informações sobre como usar a Amazon VPC com o RDS, consulte Amazon VPC e Amazon RDS.

O Amazon RDS usa o Network Time Protocol (NTP) para sincronizar o tempo em instâncias de banco de dados.

Regiões da AWS e zonas de disponibilidade

Os recursos de computação em nuvem da Amazon estão alojados em instalações de datacenter altamente disponíveis em diferentes áreas do mundo (por exemplo, América do Norte, Europa ou Ásia). Cada localização de data center é chamada de Região da AWS. Com o Amazon RDS, é possível criar as instâncias de banco de dados em várias regiões.

O cenário a seguir mostra uma instância de banco de dados do RDS em uma região que se replica de forma assíncrona para uma instância de banco de dados em espera em uma região diferente. Se uma região ficar indisponível, a instância na outra região ainda estará disponível.

Configuração de réplica de leitura entre regiões

Zonas de disponibilidade

Cada região da AWS contém vários locais distintos, chamados de zonas de disponibilidade, ou AZs. Cada zona de disponibilidade é projetada para ser isolada de falhas em outras zonas de disponibilidade. Cada uma é projetada para fornecer conectividade de rede de baixa latência e custo reduzido para outras zonas de disponibilidade na mesma região da AWS. Ao iniciar as instâncias de banco de dados em zonas de disponibilidade separadas, é possível proteger suas aplicações de falhas de um único local. Para ter mais informações, consulte Regiões, zonas de disponibilidade e Local Zones.

Implantações multi-AZ

Você pode executar sua instância de banco de dados em várias zonas de disponibilidade, uma opção chamada de implantação multi-AZ. Quando você escolhe essa opção, a Amazon automaticamente provisiona e mantém uma ou mais instâncias de banco de dados secundárias em espera em uma AZ diferente. A instância de banco de dados primária é replicada ao longo das zonas de disponibilidade em todas as instâncias de banco de dados secundárias.

Uma implantação multi-AZ oferece as seguintes vantagens:

  • Oferece redundância de dados e suporte a failover.

  • Elimina congelamentos de E/S.

  • Minimiza os picos de latência durante backups do sistema.

  • Fornece tráfego de leitura em instâncias de banco de dados secundárias (somente implantação de clusters de banco de dados multi-AZ).

O diagrama a seguir exibe uma implantação de instância de banco de dados multi-AZ, em que o Amazon RDS provisiona e mantém automaticamente uma réplica em espera síncrona em outra zona de disponibilidade. O banco de dados de réplica não oferece tráfego de leitura.

Cenário de alta disponibilidade para a implantação de uma instância multi-AZ

O diagrama a seguir exibe uma implantação de cluster de banco de dados multi-AZ, que tem uma instância de banco de dados do gravador e duas instâncias de banco de dados do leitor em três zonas de disponibilidade diferentes na mesma Região da AWS. Todas as três instâncias de banco de dados podem fornecer tráfego de leitura.

Cenário de alta disponibilidade para uma implantação de cluster multi-AZ

Para ter mais informações, consulte Configurar e gerenciar uma implantação multi-AZ para o Amazon RDS.

Controle de acesso com grupos de segurança.

Um grupo de segurança controla o acesso a uma instância de banco de dados por meio da permissão de acesso aos intervalos de endereços IP ou instâncias do Amazon EC2 que você especificar. É possível aplicar um grupo de segurança a uma ou mais instâncias de banco de dados.

Um uso comum de uma instância de banco de dados em uma VPC é compartilhar dados com um servidor de aplicações na mesma VPC. O exemplo a seguir usa o grupo de segurança ec2-rds-x de VPC para definir as regras de entrada que utilizam os endereços IP da aplicação cliente como a origem. O servidor de aplicações pertence a esse grupo de segurança. Um segundo grupo de segurança (chamado rds-ec2-x) especifica ec2-rds-x como a origem e é anexado a uma instância de banco de dados do RDS. De acordo com as regras do grupo de segurança, as aplicações cliente não podem acessar diretamente a instância de banco de dados, mas a instância do EC2 pode acessar a instância de banco de dados.

Instância de banco de dados e instância do EC2 em uma VPC

Para obter mais informações sobre grupo de seguranças, consulte Segurança no Amazon RDS.

Monitoramento do Amazon RDS

O monitoramento é uma parte importante para manter a confiabilidade, a disponibilidade e a performance do Amazon RDS e suas outras soluções da AWS. A AWS fornece várias ferramentas de monitoramento para observar o Amazon RDS, gerar relatórios quando algo estiver errado e realizar ações automáticas quando for apropriado.

É possível controlar a performance e a integridade das instâncias de banco de dados usando várias ferramentas automatizadas e manuais:

Recomendações e status da instância de banco de dados do Amazon RDS

Visualize os detalhes sobre o status atual de sua instância utilizando o console do Amazon RDS, a AWS CLI ou a API do RDS. Também é possível reagir a recomendações automatizadas para recursos de banco de dados, como instâncias de banco de dados, réplicas de leitura e grupo de parâmetros de banco de dados. Para ter mais informações, consulte Recomendações do Amazon RDS.

Métricas do Amazon CloudWatch para o Amazon RDS

Você pode usar o serviço gratuito do Amazon CloudWatch para monitorar a performance e a integridade de uma instância. Os gráficos de performance do CloudWatch são exibidos no console do Amazon RDS. O Amazon RDS envia métricas automaticamente ao CloudWatch a cada minuto para cada banco de dados ativo. Você não recebe cobranças adicionais para métricas do Amazon RDS no CloudWatch.

Usando alarmes do Amazon CloudWatch, é possível observar uma única métrica do Amazon RDS em um período específico. Depois, você pode realizar uma ou mais ações com base no valor da métrica em relação a um limite definido. Para ter mais informações, consulte Monitorar métricas do Amazon RDS com o Amazon CloudWatch.

Insights de Performance do Amazon RDS e monitoramento do sistema operacional

O Insights de Performance avalia a carga no banco de dados e determina quando e onde tomar medidas. Para ter mais informações, consulte Monitorar a carga de banco de dados com o Performance Insights no Amazon RDS. O Monitoramento avançado do Amazon RDS observa as métricas em tempo real para o sistema operacional. Para ter mais informações, consulte Monitorar métricas do SO com o monitoramento avançado.

Serviços da AWS integrados

O Amazon RDS é integrado ao Amazon EventBridge, ao Amazon CloudWatch Logs e ao Amazon DevOps Guru. Para ter mais informações, consulte Métricas de monitoramento em uma instância do Amazon RDS.

Interfaces de usuário para o Amazon RDS

É possível interagir com o Amazon RDS de várias maneiras.

AWS Management Console

O AWS Management Console é uma interface de usuário simples e baseada na Web. Você pode gerenciar suas instâncias de banco de dados a partir do console sem necessidade de programação. Para acessar o console do Amazon RDS, faça login no AWS Management Console e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/.

Página inicial do console do RDS. O painel esquerdo inclui links para Painel, Bancos de dados etc. O painel central lista recursos, como instâncias de banco de dados.

Interface da linha de comando

Você pode usar a AWS Command Line Interface (AWS CLI) para acessar interativamente a API do Amazon RDS. Para instalar a AWS CLI, consulte Instalação da AWSinterface da linha de comando. Para começar a usar a AWS CLI para o RDS, consulte a referência da AWS Command Line Interface para o Amazon RDS.

APIs do Amazon RDS

Se você for desenvolvedor, poderá acessar o Amazon RDS de forma programática usando APIs. Para ter mais informações, consulte Referência da API do Amazon RDS.

Para desenvolvimento de aplicativos, recomendamos usar um dos Kits de desenvolvimento de software (SDKs) da AWS. Os SDKs AWS contêm detalhes de nível baixo, como autenticação, lógica de nova tentativa e gerenciamento de erros, para que você possa se concentrar na lógica da aplicação. AWS Os SDKs estão disponíveis para uma ampla variedade de linguagens. Para obter mais informações, consulte Ferramentas para a Amazon Web Services .

AWSA também fornece bibliotecas, código de exemplo, tutoriais e outros recursos para ajudar você a começar de maneira mais fácil. Para obter mais informações, consulte Código de exemplo e bibliotecas.

Como você é cobrado pelo Amazon RDS

Quando você usa o Amazon RDS, você pode optar por usar instâncias de banco de dados sob demanda ou instâncias de banco de dados reservadas. Para obter mais informações, consulte Faturamento da instância de banco de dados para Amazon RDS.

Para obter informações sobre a definição de preço do Amazon RDS, consulte a página de produto do Amazon RDS.

Próximas etapas

Na seção anterior, você conheceu os componentes de infraestrutura básicos que o RDS oferece. O que você deve fazer em seguida?

Conceitos básicos

Criar uma instância de banco de dados usando as instruções em Conceitos básicos do Amazon RDS.

Tópicos específicos para mecanismos de banco de dados

Você pode rever informações específicas para um determinado mecanismo de banco de dados nas seções a seguir: