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á.
Considere bancos de dados criados especificamente
Visão geral
Um dos aspectos mais caros da execução de cargas de trabalho baseadas na Microsoft vem do licenciamento de bancos de dados comerciais, como o Server. SQL As empresas geralmente padronizam o SQL Server como a plataforma de banco de dados preferida e isso se torna arraigado na cultura de desenvolvimento da organização. Os desenvolvedores geralmente escolhem um modelo relacional SQL baseado em servidor, independentemente do caso de uso. Os motivos para isso incluem:
-
A empresa já tem instâncias e/ou licenças de SQL servidor disponíveis.
-
As equipes se habituaram ao modelo de SQL programação 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 criados especificamente 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 à medida que o escopo de aplicativos individuais é reduzido.
Um banco de dados criado especificamente não exclui um modelo relacional nem exige um modelo Não (não relacional). SQL Na verdade, um banco de dados relacional é considerado criado especificamente quando selecionado em resposta às necessidades específicas de uma carga de trabalho. O uso de bancos de dados criados especificamente pode ajudar as equipes a reduzir os custos de banco de dados associados aos seus. NETaplicativos, além de obter benefícios padrão de nuvem, como escalabilidade, resiliência e redução do trabalho pesado indiferenciado.
A tabela a seguir mostra os bancos de dados desenvolvidos especificamente oferecidos pelo. AWS
Banco de dados | Tipo | Características |
---|---|---|
Amazon Aurora Postgre ou Amazon SQL Aurora My SQL | Relacional | Casos de uso em que os dados têm uma estrutura fixa Os bancos de dados relacionais naturalmente mantêm a consistência dos dados por meio de transações ACID |
Amazon DynamoDB |
Par de valores-chave | Nenhum SQL banco de dados que armazene dados usando uma estrutura de dados de tabela de hash Armazenamento e recuperação de dados não estruturados de alto desempenho Os casos de uso incluem perfis de usuário, estado da sessão e dados do carrinho de compras |
Amazon ElastiCache |
Na memória | Alto desempenho Nenhum SQL banco de dados que armazene 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 (RedisOSS) e ElastiCache (Memcached) |
Amazon MemoryDB |
Durável na memória | Banco de dados 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 alto rendimento em ordem temporal Os casos de uso incluem aplicativos de Internet das Coisas (IoT) e armazenamento de métricas ou dados de telemetria |
Amazon DocumentDB |
Documento | Nenhum SQL banco de dados que armazene dados sem uma estrutura prescrita ou relações impostas com outros dados Geralmente usado para cargas de trabalho de leitura intensiva, como catálogos de produtos |
Amazon Neptune |
Gráfico | Nenhum SQL banco de dados que contenha dados e uma representação das conexões entre os itens de dados Os casos de uso incluem detecção de fraudes, mecanismos de recomendação e aplicativos sociais |
Amazon Keyspaces |
Coluna larga | Banco de dados distribuído de alto desempenho baseado no Apache Cassandra Os casos de uso incluem aplicativos de IoT, processamento de eventos e aplicativos de jogos |
Um fator significativo para a adoção de bancos de dados criados especificamente pode ser atribuído à eliminação do licenciamento comercial. No entanto, a capacidade de escalabilidade automática de bancos de dados como o DynamoDB (incluindo o modo sob demanda), Aurora,
AWS oferece o Babelfish para Aurora Postgre SQL
Ao escolher um banco de dados relacional específico para aplicativos, é importante manter os mesmos recursos (ou funcionalmente equivalentes) que você precisa para seus aplicativos. Essa recomendação aborda bancos de dados criados especificamente como um armazenamento de dados primário para aplicativos. Aplicativos específicos (como armazenamento em cache) são abordados em outras recomendações.
Impacto nos custos
Adotando bancos de dados criados especificamente para. NETembora seja improvável que as cargas de trabalho afetem diretamente o consumo/custo de computação, podem influenciar diretamente o custo dos serviços de banco de dados consumidos pelo. NETaplicações. 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 específico para aplicativos e a rearquitetura de uma estratégia de dados para usá-los de forma eficaz. Para obter mais informações, consulte Bancos de dados criados especificamente
As tabelas a seguir mostram vários exemplos de como a substituição do SQL Server por um banco de dados específico pode alterar os custos do aplicativo. Observe que essas são simplesmente estimativas aproximadas. São necessários benchmarks e otimização das cargas de trabalho reais para calcular o custo exato de produção.
Essas são algumas estimativas de banco de dados comumente usadas para fins específicos que incluem computação sob demanda e bancos de dados de instância única de 100 GB SSD em. us-east-1
Os custos da licença incluem licença de SQL servidor e garantia de software.
A tabela a seguir mostra os custos estimados para exemplos de bancos de dados comerciais.
Mecanismo do banco de dados | Modelo de licenciamento | Tipo/especificações da instância | AWS custo de computação + armazenamento | Custo da licença | Custo mensal total |
---|---|---|---|---|---|
SQLEdição Server Standard na Amazon EC2 | Licença incluída | r6i.2xlarge (8/64 GB) CPU RAM | $1.345,36 | $0,00 | $1.345,36 |
SQLEdição Server Enterprise na Amazon EC2 | Licença incluída | r6i.2xlarge (8/64 GB) CPU RAM | $2.834,56 | $0,00 | $2.834,56 |
SQLEdição Server Standard na Amazon EC2 | BYOL | r6i.2xlarge (8/64 GB) CPU RAM | $644,56 | $456,00 | $1.100,56 |
SQLEdição Server Enterprise na Amazon EC2 | BYOL | r6i.2xlarge (8/64 GB) CPU RAM | $644,56 | $1.750,00 | $2.394,56 |
SQLEdição Server Standard na Amazon RDS | db.r6i.2xlarge (8/64 GB) CPU RAM | $2.318,30 | $0,00 | $2.318,30 | |
SQLEdição Server Enterprise na Amazon RDS | db.r6i.2xlarge (8/64 GB) CPU RAM | $3.750,56 | $0,00 | $3.750,56 |
A tabela a seguir mostra os custos estimados para exemplos específicos.
Mecanismo do banco de dados | Tipo/especificações da instância | AWS custo de computação + armazenamento | Custo da licença | Custo mensal total |
---|---|---|---|---|
Amazon Aurora Postger SQL | r6g.2xlarge (8/64 GB) CPU RAM | $855,87 | $0,00 | $855,87 |
DynamoDB | Base provisionada 100/400 WCU RCU | $72,00 | $72,00 | |
Amazon DocumentDB | db.r6i.2xlarge (8/64 GB) CPU RAM | $778.60 | $778.60 |
Importante
A tabela é baseada nos custos estimados de licenciamento SQL do Server with Software Assurance, durante os primeiros três anos da compra. Para a edição SQL Server Standard: $4.100, pacote de 2 núcleos, 3 anos. Para a edição SQL Server Enterprise: $15.700, pacote de 2 núcleos, 3 anos.
Recomendamos que você considere as implicações de custo antes de adotar bancos de dados específicos. Por exemplo, o custo de atualizar aplicativos para usar um banco de dados específico está relacionado à complexidade do aplicativo 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 seus aplicativos, aprimorar a equipe em novas tecnologias e planejar cuidadosamente o desempenho e o consumo previstos para cada carga de trabalho. A partir daí, 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. NETPara aplicativos que acessam o SQL Server, existem bibliotecas substitutas para bancos de dados relacionais criados especificamente. Você pode implementar essas bibliotecas em seu aplicativo para substituir uma funcionalidade similar SQL do aplicativo Server.
A tabela a seguir destaca algumas bibliotecas que podem ser usadas em muitos cenários comuns.
Ferramentas | Banco de dados | Substituto para | Compatibilidade de estrutura |
---|---|---|---|
Provedor principal do Npgsql Entity Framework |
Amazon Aurora Postger SQL | Provedor de SQL servidor principal do Entity Fram | Moderno. NET |
Provedor Npgsql Entity Framework 6 |
Amazon Aurora Postger SQL | Provedor de SQL servidor Entity Framework 6.0 | . NETEstrutura |
Npgsql ( |
Amazon Aurora Postger SQL | ADO.NET | . NETEstrutura/Moderna. NET |
Meu provedor principal do SQL Entity Framework |
Amazon Aurora My SQL | Provedor de SQL servidor principal do Entity Fram | Moderno. NET |
Pomelo. EntityFrameworkCore. MySql |
Amazon Aurora My SQL | Provedor de SQL servidor principal do Entity Fram | Moderno. NET |
Conectar-se ao Amazon Aurora Postgre SQL usando o Babelfish
Outros bancos de dados criados especificamente têm bibliotecas para acesso. NETbibliotecas compatíveis que permitem acessar bancos de dados criados especificamente. Os exemplos incluem:
-
Usando o Amazon DynamoDB SQL Sem bancos de dados (documentação)AWS SDK for .NET
-
Driver MongoDB C# (documentação do
MongoDB) -
. NET(Documentação do Timestream)
-
Usando uma Cassandra. NETDriver principal do cliente para acessar o Amazon Keyspaces programaticamente (documentação do Amazon Keyspaces)
-
Usando. NETpara se conectar a uma instância de banco de dados Neptune (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:
-
AWS Schema Conversion Tool (AWS SCT)
pode ajudá-lo a transformar esquemas de SQL servidor no Amazon Aurora e no Amazon DynamoDB. -
AWS Database Migration Service (AWS DMS)
podem ajudá-lo a migrar dados, uma vez ou continuamente, do SQL Server para o Aurora ou o DynamoDB. -
O Babelfish Compass
pode ajudá-lo a verificar a compatibilidade do banco de dados do seu SQL servidor para uso com o Babelfish para Aurora Postgre. SQL
Recursos adicionais
-
Orientação para migrar o SQL servidor para o Amazon Aurora SQL
Postgre AWS (blog do banco de dados) -
Dia de Imersão na APP Modernização do Babelfish
(Workshop Studio)AWS -
. NETDia de imersão
(estúdio de AWS oficina) -
Bancos de dados personalizados para uso moderno. NETinscrições em AWS
(AWS apresentação)