Considere bancos de dados criados especificamente - 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á.

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, 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 específicos, como o Timestream, não têm servidor e são escalados automaticamente para atender à demanda sem nenhum pré-provisionamento.

AWS oferece o Babelfish para Aurora Postgre SQL se você quiser usar um banco de dados relacional de código aberto e 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 ao SQL servidor existente, quase sem alterações.

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 no Diretório de tutoriais. AWS

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 (. ADO NET(SQLbiblioteca Postgre compatível) 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 não requer nenhuma codificação especial para se conectar. No entanto, todo código deve ser exaustivamente testado antes de ser usado.

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:

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

Recursos adicionais