Práticas recomendadas da AWS

Nesta seção, resumimos nossas práticas recomendadas e fornecemos recomendações para usar o OPDK com a nuvem da AWS.

O Cassandra é usado como back-end e armazenamento de dados para quase todas as políticas e é uma parte essencial do ambiente de execução do Apigee Edge. Este documento se concentra na otimização do Casssandra para o ambiente da AWS.

Requisitos de armazenamento e E/S

A maior parte da E/S do Cassandra é sequencial, mas há casos em que você precisa de E/S aleatória. Um exemplo é ao ler tabelas de strings classificadas durante operações de leitura. O SSD é o mecanismo de armazenamento recomendado para o Cassandra, porque fornece tempos de resposta de latência extremamente baixa para operações de leitura aleatória, além de fornecer desempenho de gravação sequencial suficiente para operações de compactação. A replicação também é considerada aqui.

Muitas instâncias no AWS EC2 vêm com armazenamento local em que o disco rígido é fisicamente anexado ao hardware em que a instância do EC2 está hospedada. A Apigee recomenda o uso de SSD e armazenamentos de instâncias ao executar o Cassandra em produção. Ao usar um tipo de instância com mais de 1 SSD, é possível usar o RAID0 para ter mais capacidade de armazenamento e capacidade de processamento.

Requisitos de rede

O Cassandra usa o protocolo Gossip para trocar informações com outros nós sobre a topologia de rede. O uso do Gossip e da natureza distribuída do Cassandra, que envolve a comunicação com vários nós para operações de leitura e gravação, resulta em muita transferência de dados pela rede. A Apigee recomenda usar um tipo de instância com uma largura de banda de rede de pelo menos 1 Gbps e mais de 1 Gbps para sistemas de produção.

Use uma VPC com CIDR de /16. Como as sub-redes na AWS não podem abranger mais de uma AZ, a Apigee recomenda o seguinte:

  • Criar uma sub-rede por zona de disponibilidade (AZ)
  • Use três sub-redes privadas para a instalação da Apigee, com um nó do Cassandra em cada AZ. As três sub-redes precisam ter blocos CIDR suficientes para acomodar a expansão horizontal do cluster do Cassandra.
  • Configure três sub-redes públicas com NAT dedicado para que o Cassandra possa se comunicar com a Internet para download de software e atualizações de segurança.

Ao contrário das arquiteturas mestre-escravo legadas, o Cassandra tem uma arquitetura sem mestre em que todos os nós desempenham um papel idêntico, de modo que não há um único ponto de falha. Considere distribuir os nós do Cassandra em várias AZs para permitir alta disponibilidade. Ao distribuir nós entre AZs, é possível manter a disponibilidade e o tempo de atividade em caso de desastre.

Como escolher uma família de instâncias

Ao analisar os requisitos de CPU do Cassandra, é útil observar que as cargas de trabalho com muitas inserções são vinculadas à CPU no Cassandra antes de serem vinculadas à E/S. Em outras palavras, todas as operações de gravação vão para o registro de commit, mas o Cassandra é tão eficiente na gravação que a CPU se torna o fator limitante. O Cassandra é altamente simultâneo e usa o máximo de núcleos de CPU disponíveis.

A Apigee recomenda usar uma família de instâncias, que tem um equilíbrio entre CPU e memória. Especificamente, recomendamos o uso de instâncias da família C5, se disponíveis na sua região da AWS, e C3 como uma opção de substituição. Em alguns casos, 4xlarge é a instância ideal em ambas as famílias que oferece o melhor preço/desempenho.

A Apigee também recomenda o uso de uma locação padrão para instâncias do Cassandra. Quando você escalona para mais de uma instância por AZ, é provável que todas as instâncias do Cassandra sejam colocadas no mesmo hardware subjacente se você definir a locação como dedicada. Portanto, quando o hardware falha, é provável que você perca todas as instâncias nessa AZ.

Resumo das recomendações

A tabela a seguir resume as recomendações da Apigee para usar a AWS com o Apigee Edge para nuvem privada:

Família de instâncias C5d (preferencial) ou C3
Tipo de instância C(x).4xlarge
Armazenamento na instância SSD (armazenamento local) com RAID0
Tipo de locação padrão
Posicionamento de nós 1 nó do Cassandra por AZ
VPC e sub-rede 1 sub-rede por AZ e uma VPC por região

Para mais informações, consulte Tipos de instâncias da Amazon.