Configuração de banco de dados, backup e failover
Muitas aplicações Web contêm alguma forma de persistência, geralmente na forma de um banco de dados
Tabela 1 — Soluções de bancos de dados relacionais e não relacionais
Soluções de banco de dados relacional | Soluções NoSQL | |
---|---|---|
Serviço de banco de dados gerenciado |
Amazon RDS for MySQL |
Amazon DynamoDB |
Autogerenciado | Hospedar um sistema de gerenciamento de banco de dados relacional (DBMS) em uma instância do Amazon EC2 |
Hospedar uma solução de banco de dados não relacional em uma instância do EC2 |
Amazon RDS
O Amazon Relational Database Service
As implantações multi-AZ do Amazon RDS aumentam a disponibilidade do banco de dados e protegem seu banco de dados contra interrupções não planejadas. As réplicas de leitura do Amazon RDS fornecem réplicas somente leitura do banco de dados, para que você possa aumentar a escala na horizontal além da capacidade de uma única implantação de banco de dados para workloads de banco de dados com uso intenso de leitura. Como em todos os serviços da AWS, nenhum investimento inicial é necessário e você paga apenas pelos recursos que usa.
Hospedar um sistema de gerenciamento de banco de dados relacional (RDBMS) em uma instância do Amazon EC2
Além da oferta gerenciada do Amazon RDS, você pode instalar o RDBMS de sua preferência (como MySQL, Oracle, SQL Server ou DB2) em uma instância do EC2 e gerenciá-lo por conta própria. Os clientes da AWS que hospedam um banco de dados no Amazon EC2 usam uma variedade de modelos primários/em espera e de replicação, incluindo espelhamento para cópias somente leitura e envio de logs para escravos passivos sempre prontos.
Ao gerenciar seu próprio software de banco de dados diretamente no Amazon EC2, você também deve considerar a disponibilidade de armazenamento persistente e tolerante a falhas. Para isso, recomendamos que os bancos de dados executados no Amazon EC2 usem volumes do Amazon Elastic Block Store
Para instâncias do EC2 que executam um banco de dados, você deve colocar todos os dados e logs do banco de dados nos volumes do EBS. Eles permanecerão disponíveis mesmo se o host do banco de dados falhar. Essa configuração permite um cenário de failover simples, no qual uma nova instância do EC2 poderá ser executada se um host falhar, e os volumes existentes do EBS podem ser anexados à nova instância. O banco de dados pode continuar de onde parou.
Os volumes do EBS fornecem redundância automaticamente dentro da zona de disponibilidade. Se a performance de um único volume do EBS não for suficiente para as necessidades dos bancos de dados, os volumes poderão ser removidos para aumentar a performance das operações de entrada/saída por segundo (IOPS) do banco de dados.
Para workloads exigentes, também é possível usar IOPS provisionadas do EBS, onde você especifica as IOPS necessárias. Se usar o Amazon RDS, o serviço gerenciará seu próprio armazenamento para que você possa se concentrar no gerenciamento de seus dados.
Bancos de dados não relacionais
Além do suporte a bancos de dados relacionais, a AWS também oferece vários bancos de dados não relacionais gerenciados:
-
O Amazon DynamoDB
é um serviço de banco de dados NoSQL totalmente gerenciado que fornece performance rápida e previsível com escalabilidade integrada. Usando o AWS Management Console ou a API do DynamoDB, você pode aumentar ou diminuir a capacidade sem tempo de inatividade ou degradação da performance. Como o DynamoDB transfere os encargos administrativos de operação e escalabilidade de bancos de dados distribuídos para a AWS, você não precisará se preocupar com provisionamento, instalação e configuração de hardware, replicação, correção de software nem escalabilidade de cluster. -
O Amazon DocumentDB
(compatível com MongoDB ) é um serviço de banco de dados de propósito específico para o gerenciamento em grande escala de dados JSON, totalmente gerenciado e executado na AWS, e pronto para uso empresarial com alta durabilidade. -
O Amazon Keyspaces
(para Apache Cassandra ) é um serviço de banco de dados compatível com o Apache Cassandra escalável, altamente disponível e gerenciado. Com o Amazon Keyspaces, é possível executar suas workloads do Cassandra na AWS usando o mesmo código de aplicação e as mesmas ferramentas do desenvolvedor do Cassandra que você usa hoje. -
O Amazon Neptune
é um serviço de banco de dados de grafos rápido, confiável e totalmente gerenciado que facilita a criação e a execução de aplicativos que trabalham com conjuntos de dados altamente conectados. O núcleo do Amazon Neptune é um mecanismo de banco de dados de grafos de alta performance e propósito específico, otimizado para armazenar bilhões de relacionamentos e consultar os gráficos com latência de milissegundos. -
O Amazon Quantum Ledger Database (Amazon QLDB)
(QLDB) é um banco de dados ledger totalmente gerenciado que fornece um log de transação transparente, imutável e verificável criptograficamente pertencente a uma autoridade central confiável. O QLDB pode ser usado para monitorar toda e qualquer alteração de dados do aplicativo e mantém um histórico completo e verificável das alterações no decorrer do tempo. -
O Amazon Timestream
é um serviço de banco de dados de séries temporais rápido, escalável e sem servidor para aplicações operacionais e de IoT. O serviço facilita o armazenamento e a análise de trilhões de eventos por dia com velocidade até mil vezes maior e um décimo do custo dos bancos de dados relacionais.
Além disso, você pode usar o Amazon EC2 para hospedar outras tecnologias de banco de dados não relacional com as quais talvez esteja trabalhando.