Considerar bancos de dados com propósito específico - AWS Orientação prescritiva

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á.

Considerar bancos de dados com propósito específico

Visão geral do

Um dos aspectos mais caros da execução de workloads baseadas na Microsoft é o licenciamento de bancos de dados comerciais, como o SQL Server. As empresas geralmente padronizam o SQL Server como a plataforma de banco de dados preferencial, e ele passa a fazer parte da cultura de desenvolvimento da organização. Os desenvolvedores geralmente escolhem um modelo relacional baseado no SQL Server, independentemente do caso de uso. Os motivos para isso incluem:

  • A empresa já tem and/or licenças de instâncias do SQL Server disponíveis.

  • As equipes se habituaram ao modelo de programação SQL por meio do uso de bibliotecas compartilhadas e lógica de negócios. ORMs

  • A gerência não está ciente das alternativas.

  • Os desenvolvedores não estão cientes das alternativas.

Bancos de dados com propósito específico podem acomodar os padrões de acesso aos dados do seu caso de uso. Esses bancos de dados são cada vez mais adotados pelas empresas à medida que adotam arquiteturas mais modernas (como microsserviços) e que o escopo de aplicações individuais é reduzido.

Um banco de dados com propósito específico não inviabiliza um modelo relacional nem exige um modelo NoSQL (não relacional). Na verdade, um banco de dados relacional é considerado como propósito específico quando selecionado em resposta às necessidades específicas de uma workload. O uso de banco de dados com propósito específico pode ajudar as equipes a reduzir os custos de banco de dados associados às suas aplicações .NET, além de obter as vantagens padrão da nuvem, como escalabilidade, resiliência e redução esforço indiferenciado e pesado.

A tabela a seguir mostra os bancos de dados desenvolvidos especificamente oferecidos pelo. AWS

Banco de dados Tipo Características
Amazon Aurora PostgreSQL ou Amazon Aurora MySQL Relacional

Casos de uso em que os dados têm uma estrutura fixa

Os bancos de dados relacionais mantêm naturalmente a consistência de dados por meio de transações ACID

Amazon DynamoDB Par de chave/valor

Banco de dados NoSQL que armazena dados usando uma estrutura de dados de tabela hash

Armazenamento e recuperação de dados não estruturados de alta performance

Os casos de uso incluem perfis de usuário, estado da sessão e dados do carrinho de compras

Amazon ElastiCache Na memória

Banco de dados NoSQL de alta performance que armazena dados não estruturados na memória com tempo de acesso inferior a um milissegundo

Usado para dados efêmeros acessados com frequência, como sessões de usuário e como uma camada de cache na frente de outros armazenamentos de dados mais lentos

Inclui suporte para ElastiCache (Redis OSS) e ElastiCache (Memcached)

Amazon MemoryDB Em memória durável Banco de dados com propósito específico compatível com Redis com armazenamento durável
Amazon Timestream Séries temporais

Banco de dados projetado para ingestão de dados de throughput em ordem temporal

Os casos de uso incluem aplicações de Internet das Coisas (IoT) e armazenamento de dados de telemetria ou métricas.

Amazon DocumentDB Documento

Banco de dados NoSQL que armazena dados sem uma estrutura prescrita ou relações forçadas com outros dados

Geralmente usado para workloads intensivas em leitura, como catálogos de produtos

Amazon Neptune Gráfico

Banco de dados NoSQL que contém dados e uma representação das conexões entre itens de dados

Os casos de uso incluem detecção de fraudes, mecanismos de recomendações e aplicações sociais

Amazon Keyspaces Coluna larga

Banco de dados distribuído de alta performance baseado no Apache Cassandra

Os casos de uso incluem aplicações de IoT, processamento de eventos e aplicações de jogos

Um fator significativo para a adoção de bancos de dados com propósito específico pode ser atribuído à remoção da necessidade do licenciamento comercial. No entanto, a capacidade de ajuste de escala automático de bancos de dados como o DynamoDB (incluindo o modo sob demanda), Aurora, Amazon Neptune e Amazon Keyspaces permite que você provisione capacidade para o caso médio, em vez de para o uso de pico. Bancos de dados com propósito específico, como o Timestream, usam tecnologia sem servidor e são escalados automaticamente para atender à demanda sem nenhum pré-provisionamento.

AWS oferece o Babelfish for Aurora PostgreSQL se você quiser usar um banco de dados relacional de código aberto compatível com um propósito específico, mas não puder ou não quiser fazer alterações significativas no código do seu aplicativo. Em alguns casos, o Babelfish permite que você use um código de acesso existente do SQL Server, quase sem alterações.

Ao escolher um banco de dados relacional com propósito específico para aplicações, é importante manter os mesmos recursos (ou funcionalmente equivalentes) de que você precisa para suas aplicações. Essa recomendação aborda bancos de dados com propósito específico como um armazenamento de dados primário para aplicações. Aplicações específicas (como armazenamento em cache) são abordadas em outras recomendações.

Impacto do custo

A adoção de bancos de dados específicos para cargas de trabalho do.NET, embora seja improvável que afete diretamente a computação, pode influenciar consumption/cost diretamente o custo dos serviços de banco de dados consumidos pelos aplicativos.NET. Na verdade, a economia de custos pode ser uma meta secundária, quando comparada aos benefícios adicionais de agilidade, escalabilidade, resiliência e durabilidade dos dados.

Está fora do escopo deste guia explicar o processo completo de escolha de um banco de dados com propósito específico para aplicações e a redefinição da arquitetura de uma estratégia de dados para usá-los de forma eficaz. Para obter mais informações, consulte Purpose-built databases no diretório de tutoriais da AWS .

As tabelas a seguir mostram vários exemplos de como a substituição do SQL Server por um banco de dados com propósito específico pode alterar os custos da aplicação. Observe que estas são apenas estimativas aproximadas. São necessárias avaliações comparativas e otimização das workloads reais para calcular o custo exato de produção.

Estas são algumas estimativas comumente usadas para bancos de dados com propósito específico, que incluem computação sob demanda e SSD de 100 GB e bancos de dados de instância única em us-east-1. Os custos de licença incluem a licença do SQL Server e a garantia de software.

A tabela a seguir mostra os custos estimados para exemplos de bancos de dados comerciais.

mecanismo de banco de dados Modelo de licenciamento Tipo/espec. da instância AWS custo de computação + armazenamento Custo da licença Custo mensal total
Edição SQL Server Standard na Amazon EC2 Licença incluída r6i.2xlarge (8 CPU/64 GB de RAM) $1.345,36 $0,00 $1.345,36
Edição SQL Server Enterprise na Amazon EC2 Licença incluída r6i.2xlarge (8 CPU/64 GB de RAM) $2.834,56 $0,00 $2.834,56
Edição SQL Server Standard na Amazon EC2 BYOL r6i.2xlarge (8 CPU/64 GB de RAM) $644,56 $456,00 $1.100,56
Edição SQL Server Enterprise na Amazon EC2 BYOL r6i.2xlarge (8 CPU/64 GB de RAM) $644,56 $1.750,00 $2.394,56
Edição SQL Server Standard no Amazon RDS   db.r6i.2xlarge (8 CPU/64 GB de RAM) $2.318,30 $0,00 $2.318,30
Edição SQL Server Enterprise no Amazon RDS   db.r6i.2xlarge (8 CPU/64 GB de RAM) $3.750,56 $0,00 $3.750,56

A tabela a seguir mostra os custos estimados para exemplos com propósito específico.

mecanismo de banco de dados Tipo/espec. da instância AWS custo de computação + armazenamento Custo da licença Custo mensal total
Amazon Aurora PostgreSQL r6g.2xlarge (8 CPU/64 GB de RAM) $855,87 $0,00 $855,87
DynamoDB Base provisionada de 100 WCU/400 RCU $72,00   $72,00
Amazon DocumentDB db.r6i.2xlarge (8 CPU/64 GB de RAM) $778.60   $778.60
Importante

A tabela é baseada nos custos estimados de licenciamento do SQL Server com o Software Assurance, durante os primeiros três anos da compra. Para a edição SQL Server Standard: USD 4.100, pacote de 2 núcleos, 3 anos. Para a edição SQL Server Enterprise: USD 15.700, pacote de 2 núcleos, 3 anos.

Recomendamos considerar as implicações de custos antes de adotar bancos de dados com propósito específico. Por exemplo, o custo de atualizar aplicações para usar um banco de dados com propósito específico está relacionado à complexidade da aplicação e do banco de dados de origem. Certifique-se de considerar o custo total de propriedade ao planejar essa mudança de arquitetura. Isso inclui refatorar suas aplicações, requalificar a equipe em novas tecnologias e planejar cuidadosamente a performance e o consumo previstos para cada workload. Com base nisso, você pode determinar se o investimento vale a redução de custos. Na maioria dos casos, manter um end-of-support produto é um risco de segurança e conformidade, e o custo de remediá-lo vale o esforço e o investimento inicial.

Recomendações de otimização de custos

Para aplicações .NET que acessam o SQL Server, existem bibliotecas substitutas para bancos de dados relacionais com propósito específico. Você pode implementar essas bibliotecas em sua aplicação para substituir funcionalidades de aplicação semelhantes às do SQL Server.

A tabela a seguir destaca algumas bibliotecas que podem ser usadas em muitos cenários comuns.

Biblioteca Banco de dados Substituição para Compatibilidade do Framework
Npgsql Entity Framework Core Provider Amazon Aurora PostgreSQL Entity Framework Core SQL Server Provider Modern .NET
Npgsql Entity Framework 6 Provider Amazon Aurora PostgreSQL Entity Framework 6.0 SQL Server Provider NET Framework
Npgsql (biblioteca PostgreSQL compatível com ADO.NET) Amazon Aurora PostgreSQL ADO.NET Framework/Modern .NET
MySQL Entity Framework Core Provider Amazon Aurora MySQL Entity Framework Core SQL Server Provider Modern .NET
Pomelo. EntityFrameworkCore. MySql Amazon Aurora MySQL Entity Framework Core SQL Server Provider Modern .NET

Conectar-se ao Amazon Aurora PostgreSQL usando o Babelfish não requer nenhuma codificação especial. No entanto, todo código deve ser exaustivamente testado antes de ser usado.

Outros bancos de dados com propósito específico têm bibliotecas para acessar bibliotecas compatíveis com o .NET que permitem acessar bancos de dados com propósito específico. Os exemplos incluem:

Se você migrar para bancos de dados criados especificamente, poderá usar essas ferramentas AWS para ajudar no processo de migração:

Recursos adicionais do