Bancos de dados relacionais são a base da maioria dos aplicativos. Mas quando se trata de escalabilidade e latência baixa, não há muito o que fazer para melhorar a performance. Mesmo que você adicione réplicas para escalar leituras, existe um limite físico imposto pelo armazenamento baseado em disco. A estratégia mais eficaz para lidar com esse limite é complementar bancos de dados baseados em disco com cache de memória.

Neste tutorial, você saberá como otimizar a performance de aplicativos adicionando uma camada de cache de memória no banco de dados relacional. Você implementará uma estratégia de cache usando o Amazon ElastiCache for Redis sobre um banco de dados MySQL. A estratégia de cache é uma das opções mais conhecidas para otimizar a performance do banco de dados. Quando um aplicativo precisa ler dados de um banco de dados, primeiro ele consulta o cache. Se não encontrar dados, o aplicativo consultará o banco de dados e preencherá o cache com o resultado. Há diversas formas de invalidar o cache se os registros relevantes são modificados no banco de dados subjacente, mas neste tutorial usaremos o recurso de expiração Time To Live (TTL - vida útil) fornecido pelo Redis.

O nó ElastiCache for Redis e o banco de dados MySQL criados neste tutorial estão qualificados para o nível gratuito da AWS.

Implementação do cache com o Amazon ElastiCache for Redis

Tempo: 120 minutos

Custo: qualificado para o nível gratuito

Caso de uso: cache, escalabilidade, alta disponibilidade, aplicativo em tempo real

Produtos: Amazon ElastiCache for Redis, Amazon RDS MySQL, Nível gratuito da AWS

Público: desenvolvedores

Nível: iniciantes a intermediário

Última atualização: 25 de julho de 2019

*Esta estimativa presume que você siga as configurações recomendadas em todo o tutorial e encerre todos os recursos em até 2 horas.

**Pode ser que as contas criadas nas últimas 24 horas ainda não tenham acesso aos recursos exigidos para este projeto.

Aloque 20 minutos para concluir a seção de pré-requisito. 

Este tutorial ilustra alguns mecanismos com exemplos escritos em Python para ilustrar algumas técnicas de cache. Esperamos que seja fácil traduzir o código para o idioma da sua preferência.

Para concluir este tutorial, você precisa acessar uma instância do EC2. Se você ainda não tiver uma em execução, siga estas instruções para provisioná-la.

Depois de obter acesso à instância do EC2, execute os seguintes comandos: 

$ sudo yum install git -y
$ sudo yum install mysql -y
$ sudo yum install python3 -y
$ pip3 install --user virtualenv
$ git clone https://github.com/aws-samples/amazon-elasticache-samples/
$ cd amazon-elasticache-samples/database-caching
$ virtualenv venv
$ source ./venv/bin/activate
$ pip3 install -r requirements.txt

Agora está tudo pronto para começar o tutorial.