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
AWS oferece o Babelfish for Aurora PostgreSQL
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
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 |
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
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:
-
Usando bancos de dados NoSQL do Amazon DynamoDB (documentação)AWS SDK para .NET
-
MongoDB C# Driver
(documentação do MongoDB) -
.NET (documentação do Timestream)
-
Using a Cassandra .NET Core client driver to access Amazon Keyspaces programmatically (documentação do Amazon Keyspaces)
-
Using .NET to connect to a Neptune DB instance (documentação do Neptune)
Se você migrar para bancos de dados criados especificamente, poderá usar essas ferramentas AWS para ajudar no processo de migração:
-
O AWS Schema Conversion Tool (AWS SCT)
pode ajudar a transformar os esquemas do SQL Server para o Amazon Aurora e no Amazon DynamoDB. -
O AWS Database Migration Service (AWS DMS)
pode ajudar a migrar dados, uma vez ou continuamente, do SQL Server para o Aurora ou o DynamoDB. -
O Babelfish Compass
pode ajudar a verificar a compatibilidade do seu banco de dados SQL Server para uso com o Babelfish para Aurora PostgreSQL.
Recursos adicionais do
-
Guidance for migrating SQL Server to Amazon Aurora PostgreSQL
(blog AWS Database) -
Dia de Imersão na Modernização do Babelfish APP
(Workshop Studio)AWS -
Dia de imersão do.NET
(AWS Workshop Studio) -
Introdução ao Amazon Timestream com
o.NET () GitHub -
Bancos de dados específicos para aplicativos.NET modernos em AWS
(apresentação)AWS