Atributos do Amazon MemoryDB

Por que usar o MemoryDB?

O Amazon MemoryDB é um serviço de banco de dados em memória compatível com o Valkey e o Redis OSS que é durável e oferece performance ultrarrápida. Foi desenvolvido especificamente para aplicações modernas com arquiteturas de microsserviços.

O MemoryDB é compatível com o Valkey e o Redis OSS, permitindo que os clientes criem aplicações rapidamente usando os mesmos comandos, estruturas de dados e APIs flexíveis e descomplicados do Redis OSS que já usam hoje. Com o MemoryDB, todos os dados são armazenados na memória, o que permite obter latência de leitura de microssegundos, latência de gravação inferior a dez milissegundos e alto throughput. O MemoryDB também armazena dados de forma durável em várias zonas de disponibilidade (AZs) usando um log transacional distribuído para permitir failover rápido, recuperação de banco de dados e reinicializações de nós. Oferecendo performance na memória e durabilidade Multi-AZ, o MemoryDB pode ser usado como um banco de dados primário de alta performance para aplicações de microsserviços, eliminando a necessidade de gerenciar separadamente um cache e um banco de dados durável.

Compatibilidade com Valkey e Redis OSS

O Valkey e o Redis OSS são armazenamentos de dados de chave-valor rápidos, de código aberto e na memória. Os desenvolvedores usam o Valkey e o Redis OSS para obter tempos de resposta inferiores a um milissegundo, permitindo milhões de solicitações por segundo para aplicações em tempo real em setores como jogos, tecnologia de anúncios, serviços financeiros, saúde e IoT. 

O Valkey e o Redis OSS oferecem APIs, comandos e estruturas de dados flexíveis, como fluxos, conjuntos e listas, para criar aplicações ágeis e versáteis. O MemoryDB mantém a compatibilidade com o Valkey e o Redis OSS e oferece suporte ao mesmo conjunto de tipos de dados, parâmetros e comandos do Valkey e do Redis OSS que você conhece. Isso significa que o código, as aplicações, os drivers e as ferramentas que você já utiliza com o Valkey e o Redis OSS podem ser usados com o MemoryDB para criar rapidamente aplicações.

Performance ultrarrápida

O MemoryDB armazena todo o seu conjunto de dados na memória para fornecer latência de leitura de microssegundos, latência de gravação de milissegundos de um dígito e alto throughput. Ele consegue processar mais de 13 trilhões de solicitações por dia e oferece suporte a picos de 160 milhões de solicitações por segundo. Desenvolvedores que criam arquiteturas de microsserviços precisam de altíssima performance, pois essas aplicações podem envolver interações com muitos componentes de serviço por interação do usuário ou chamada de API. Com o MemoryDB, você pode permitir a latência extremamente baixa para fornecer performance em tempo real para usuários finais.

O MemoryDB inclui multiplexação aprimorada de entrada/saída (E/S), que oferece melhorias significativas no throughput e na latência em grande escala. A multiplexação de entrada/saída (E/S) aprimorada é ideal para workloads limitadas por throughput com várias conexões de clientes. Os benefícios aumentam de acordo com o nível de simultaneidade da workload. Por exemplo, usando o nó r6g.4xlarge e executando 5.200 clientes simultâneos, você pode obter até 46% de aumento de throughput (operações de leitura e gravação por segundo) e até 21% de redução na latência do P99, em comparação com o MemoryDB versão 6 compatível com Redis OSS. Para esses tipos de workloads, o processamento de entrada/saída (E/S) de rede de um nó pode se tornar um fator limitante na escalabilidade.

Com a multiplexação aprimorada de entrada/saída (E/S), cada thread de E/S de rede dedicado encaminha comandos de vários clientes para os mecanismos Valkey e Redis OSS, aproveitando a capacidade do Valkey e do Redis OSS de processar comandos em lotes.

Durabilidade multi-AZ

Além de armazenar todo o conjunto de dados na memória, o MemoryDB usa um log transacional distribuído para fornecer durabilidade, consistência e chances de recuperação de dados. O MemoryDB armazena dados em várias AZs, permitindo recuperação e reinicialização rápidas do banco de dados. Utilize o MemoryDB como um único serviço de banco de dados primário para suas workloads que exigem baixa latência e alto throughput, em vez de gerenciar separadamente um cache para velocidade e outro banco de dados relacional ou não relacional para confiabilidade.

Escalabilidade

Você pode escalar o cluster do MemoryDB para atender às demandas variáveis de aplicações: horizontalmente, adicionando ou removendo nós, ou verticalmente, movendo para tipos de nós maiores ou menores. O MemoryDB é compatível com escalabilidade de gravação com fragmentação e escalabilidade de leitura por meio da adição de réplicas. Seu cluster permanece online e oferece suporte a operações de leitura e gravação durante as operações de redimensionamento.

Totalmente gerenciado

É simples começar a usar o MemoryDB. Basta iniciar um novo cluster MemoryDB usando o Console de Gerenciamento da AWS, ou utilize a AWS CLI ou o SDK. As instâncias de banco de dados do MemoryDB são pré-configuradas com definições e parâmetros adequados para o tipo de nó selecionado. Você pode iniciar um cluster e conectar sua aplicação em minutos, sem necessidade de configuração adicional.

O MemoryDB gera métricas do Amazon CloudWatch para instâncias de banco de dados. É possível usar o console para visualizar mais de 35 das principais métricas operacionais de clusters, inclusive computação, memória, armazenamento, throughput, conexões ativas e mais.

O MemoryDB mantém automaticamente seus clusters em dia com as novas atualizações, e você pode atualizar facilmente seus clusters para as versões mais recentes do Valkey e do Redis OSS.

Segurança

O MemoryDB é executado na Amazon Virtual Private Cloud (Amazon VPC), que permite que você isole o banco de dados em sua própria rede virtual e se conecte à infraestrutura de TI on-premises usando VPNs IPsec criptografadas padrão do setor. Além disso, ao usar a configuração da VPC no MemoryDB, é possível configurar as definições do firewall e controlar o acesso de rede às suas instâncias de banco de dados.

Com o MemoryDB, os dados em repouso são criptografados usando chaves criadas e controladas pelo AWS Key Management Service (AWS KMS). Os clusters criados com os tipos de nó AWS Graviton2 contam com criptografia DRAM de 256 bits sempre ativa. O MemoryDB oferece suporte a criptografia em trânsito usando Transport Layer Security (TLS).

Ao usar os atributos do AWS Identity and Access Management (IAM) integrados ao MemoryDB, você poderá controlar as ações que os usuários e os grupos do IAM poderão executar nos recursos do MemoryDB. Por exemplo, você poderá configurar suas regras do IAM para ajudar a garantir que determinados usuários tenham acesso somente para leitura. Ao mesmo tempo, um administrador poderá criar, modificar e excluir recursos. Para mais informações sobre permissões em nível de API, consulte Using IAM Policies for MemoryDB (Como usar políticas do IAM para o MemoryDB).

O MemoryDB usa listas de controle de acesso (ACLs) do Redis OSS para controlar a autenticação e a autorização do cluster. Com as ACLs, é possível definir permissões diferentes para usuários distintos no mesmo cluster.

Integração com o Kubernetes

O AWS Controllers para Kubernetes (ACK) para MemoryDB permite definir e usar recursos do MemoryDB diretamente do cluster do Kubernetes. Isso permite que você aproveite o MemoryDB para oferecer suporte a aplicações de Kubernetes sem precisar definir recursos do MemoryDB fora do cluster ou executar e gerenciar recursos de banco de dados na memória dentro do cluster. Baixe a imagem do contêiner do MemoryDB ACK do Amazon Elastic Container Registry (Amazon ECR) e consulte a documentação para obter orientações sobre a instalação. Você também pode acessar o blog para informações mais detalhadas.

Observação: o ACK para MemoryDB agora está disponível ao público em geral. Envie seus comentários em nossa página do GitHub.

 

Suporte para JSON

O MemoryDB oferece suporte nativo para documentos JavaScript Object Notation (JSON), além das estruturas de dados incluídas no Redis OSS, sem custo adicional. Simplifique o desenvolvimento de aplicações usando os comandos internos criados e otimizados para documentos JSON. O MemoryDB oferece suporte a atualizações parciais de documentos JSON, bem como pesquisa e filtros eficazes usando a linguagem de consulta JSONPath. O suporte a JSON está disponível para uso do Valkey e do Redis OSS 6.2 e versões superiores. Para mais informações, consulte a documentação do MemoryDB.

Otimização de custos

O MemoryDB oferece camadas de dados como uma forma escalar seus clusters até centenas de terabytes de capacidade com menor custo. Os níveis de dados oferecem uma opção de preço/performance para MemoryDB usando unidades de estado sólido (SSDs) de baixo custo em cada nó de cluster, além de armazenar dados na memória. É ideal para workloads que acessam até 20% do conjunto de dados geral regularmente e para aplicativos que podem tolerar latência adicional ao acessar dados em SSDs.

Ao utilizar clusters com camadas de dados, o MemoryDB é projetado para mover automaticamente e de forma transparente os itens menos usados da memória para SSDs NVMe conectados localmente quando a capacidade de memória disponível é consumida. Ao acessar um item armazenado no SSD, o MemoryDB o move de volta à memória antes de atender ao pedido. A classificação de dados do MemoryDB está disponível nos nós R6gd baseados em Graviton2. Os nós R6gd têm quase 5x mais capacidade total (memória + SSD) e podem ajudar você a obter mais de 60% de economia nos custos de armazenamento ao executar com utilização máxima, em comparação com os nós R6g (somente memória). Assumindo valores de string de 500 bytes, você normalmente pode esperar uma latência adicional de 450 µs para solicitações de leitura para dados armazenados em SSD em comparação com solicitações de leitura para dados na memória.

O MemoryDB oferece nós reservados que permitem economizar até 55% sobre os preços dos nós sob demanda em troca de um compromisso de uso por um período de um ou três anos. Os nós reservados são complementares aos nós sob demanda do MemoryDB e oferecem flexibilidade às empresas para ajudar a reduzir custos. O MemoryDB disponibiliza três opções de pagamento de nós reservados (sem pagamento adiantado, pagamento adiantado parcial e pagamento adiantado integral) que permitem estabelecer um equilíbrio entre o valor pago adiantado e o preço por hora efetivo.

Os nós reservados do MemoryDB oferecem flexibilidade de tamanho dentro de uma família de nós e na região da AWS. Isso significa que a taxa de nós reservados com desconto será aplicada automaticamente ao uso de todos os tamanhos na mesma família de nós. O recurso de flexibilidade de tamanho reduz o tempo necessário para gerenciar seus nós reservados e, como você não está mais vinculado a um tamanho específico de nó de banco de dados, pode aproveitar ao máximo seu desconto, mesmo que seu banco de dados precise de atualizações.