O desempenho é uma consideração importante ao implantar o MongoDB na AWS. Do ponto de vista do hardware, o desempenho do MongoDB no EC2 é limitado principalmente por dois fatores – RAM e velocidade do disco. Normalmente (sempre há exceções), a CPU não deve ser um problema, nem a memória, pois há muitas opções de tamanho disponíveis (R3, I2, C3/C4) que oferecem uma grande quantidade de RAM. Para mais detalhes sobre como escolher o tipo de instância certo, confira minha outra postagem no blog: Como escolher o tipo de instância do EC2 certo
Historicamente, a velocidade e a latência do disco têm sido um problema constante no Amazon EBS. No entanto, a Amazon Web Services agora oferece algumas opções para ajudar você com o desempenho do disco:
-
Discos IOPS provisionados
No modelo de IOPS provisionado, você pode especificar no momento da criação do disco o número de IOPS que deseja que seu disco suporte. Quanto mais IOPS você provisionar, maior será a taxa de transferência do disco. Você pode ir até 4000 IOPS/disco! No entanto, o IOPS pode ficar caro em US$ 0,065 por mês de IOPS. Por exemplo, se você provisionar 4.000 IOPS para o disco, isso custará US$ 260/mês apenas para o IOPS. Isso pode aumentar rapidamente se você tiver vários servidores.
-
SSD local
Esta é a melhor opção para desempenho de disco na Amazon AWS. Os SSDs locais oferecem o melhor comportamento de taxa de transferência e latência de todas as opções de disco da AWS. No entanto, eles são chamados de "locais" por um motivo. Se, por algum motivo, sua máquina virtual (VM) for interrompida, o armazenamento local alocado será liberado. Portanto, o ônus da confiabilidade dos dados recai diretamente sobre o usuário. Você poderia implantar dois armazenamentos de dados SSD locais em duas zonas de disponibilidade (AZ) diferentes e chamá-lo de resolvido? Não exatamente. Se a AWS tiver uma interrupção em toda a região, como aconteceu no leste dos EUA alguns anos antes, você deve esperar perder seus SSDs locais em todas as suas AZs. Por esses motivos, as instâncias SSD locais não devem ser usadas como armazenamento de dados primário para seus dados.
MongoDB de alto desempenho:conjunto de réplicas de 3 nós
Com esses problemas em mente, estamos apresentando nossa configuração MongoDB de alto desempenho na AWS. Os clusters de alto desempenho usam um híbrido de SSD local e disco IOPS provisionado por EBS para alcançar alto desempenho e alta confiabilidade. Uma configuração típica é implantada usando um conjunto de réplicas de 3 nós.
- O Primário e o Secundário 1 usam discos SSD locais
- O secundário 2 usa IOPS provisionadas pelo EBS
Conjunto de réplicas de 3 nós do MongoDB de alto desempenho
O que isso significa? Como o Primário e o Secundário 1 estão sendo executados no SSD local, você obtém o melhor desempenho de disco possível de suas máquinas AWS. Não há mais EBS baseado em rede, apenas SSD local extremamente rápido. As leituras e gravações no Primário e até mesmo as leituras do Secundário 1 funcionarão na velocidade do SSD. O secundário 2 usa IOPS provisionadas pelo EBS para o disco de dados e você pode configurar a quantidade de IOPS a ser configurada para seu cluster. Essa configuração oferece total segurança para seus dados, mesmo no caso de você usar os discos SSD locais. Atualmente, oferecemos quatro tamanhos – Grande, XLarge, X2XLarge, X4XLarge. Para obter mais detalhes, consulte as seções Bring Your Own Cloud (BYOC) e Dedicated Clusters em nossa página de preços.
Se você tiver uma carga de trabalho de gravação muito alta, é possível que sua instância do EBS não consiga acompanhar suas instâncias SSD. Nesse cenário, há algumas opções disponíveis, e nossa equipe de suporte terá prazer em orientá-lo. Todas as nossas funcionalidades existentes, incluindo backups, restaurações, clones, dimensionamento, compactação etc. continuam funcionando normalmente. Se você tiver mais dúvidas, entre em contato conosco em [email protected].