A escolha entre Amazon Aurora, Amazon Relational Database Service (Amazon RDS), Amazon DynamoDB, Amazon ElastiCache e Amazon Redshift começa com uma decisão. Precisamos definir como a carga de trabalho lê e grava dados e o que ela deve garantir em termos de consistência, latência, disponibilidade e recuperação. Neste curso, criaremos uma estrutura replicável que transforma esses requisitos em uma escolha de banco de dados que podemos justificar e verificar.
Este curso concentra-se em cinco serviços de dados gerenciados da AWS e nas cargas de trabalho adequadas a eles. O Amazon Aurora e o Amazon RDS destinam-se ao processamento de transações online em mecanismos relacionais. O Amazon DynamoDB é voltado para padrões de acesso chave-valor com desempenho previsível na casa de um dígito de milissegundo em escala. O Amazon ElastiCache é um cache em memória que armazena cópias de dados, em vez de atuar como a fonte primária de registro (sistema de registro). O Amazon Redshift destina-se a cargas de trabalho de análise que examinam e agregam grandes conjuntos de dados.
Também mantemos em mente os limites claros da AWS. Uma Região é uma área geográfica onde a AWS opera vários data centers isolados. Uma Zona de Disponibilidade é um local isolado dentro de uma Região. Muitos recursos de durabilidade e disponibilidade dependem de como um serviço utiliza várias Zonas de Disponibilidade dentro de uma Região.
Vamos analisar como esses cinco serviços se posicionam no espectro de transação, cache e análise.
Utilizaremos o mesmo ciclo de decisão em todas as lições. Primeiro, definimos os padrões de acesso e o modelo de dados. Em seguida, mapeamos essas necessidades para um mecanismo de serviço que as atenda. Depois, identificamos os trade-offs em termos de custo, responsabilidade operacional e comportamento em caso de falha. Por fim, confirmamos a escolha utilizando evidências observáveis, e não suposições.
As evidências devem corresponder ao limite (boundary) que estamos testando. Métricas e logs mostram o que aconteceu durante a execução real. Análises estáticas e revisões de configuração mostram apenas o que poderia acontecer com base em uma determinada configuração. Uma boa decisão inclui pelo menos um sinal de tempo de execução capaz de refutar nossas suposições.
Vamos visualizar o caminho — de requisitos para mecanismos e, então, para evidências — que praticaremos repetidamente.