

# Escolha da classe de instância de banco de dados adequada
<a name="aurora-analytics-instance-class"></a>

A classe de instância adequada depende de como as consultas a tabelas estrangeiras usam memória, armazenamento e CPU. Consulte detalhes sobre cada um desses recursos em [Gerenciamento de recursos](aurora-analytics-resource-management.md).
+ **Memória:** uma consulta a uma tabela estrangeira mantém os dados de trabalho, como classificações, agregações e tabelas de hash para junções, na memória, dentro do limite definido pela configuração `aurora_analytics.query_mem` (abreviada como `query_mem`). O valor padrão de `query_mem` varia de acordo com o tamanho da instância. Assim, uma instância maior disponibiliza automaticamente mais memória para cada consulta. Quando uma consulta excede `query_mem`, os dados são transferidos para o armazenamento local, que é mais lento. Para obter mais informações, consulte [Ajuste de query\_mem para a workload](aurora-analytics-tuning-query-mem.md).
+ **Concorrência:** cada consulta simultânea a uma tabela estrangeira aloca memória de até `query_mem`, mas o uso real depende da consulta, e consultas simples podem usar muito menos. Ao dimensionar a instância para atender à concorrência, reserve capacidade para o pico de uso de memória, em vez de presumir que todas as consultas usam o valor total de `query_mem`. Para obter mais informações, consulte [Ajuste de escala da simultaneidade](aurora-analytics-concurrency-sizing.md).
+ **Cache e transferência para o armazenamento:** o cache em disco dos dados do Amazon S3 e os arquivos temporários para os quais as consultas transferem dados quando excedem a memória usam o armazenamento local da instância. O armazenamento NVMe local, disponível em instâncias da classe d, como `db.r8gd`, é mais rápido que o Amazon EBS para ambas as finalidades. Por isso, escolha uma classe com armazenamento NVMe local para workloads de produção que consultam tabelas estrangeiras.
+ **Isolamento de workloads:** as consultas a tabelas estrangeiras compartilham os recursos de CPU e memória da instância com o restante do tráfego. Para workloads que consultam tabelas estrangeiras intensivamente, execute essas consultas em uma instância de leitura dedicada. Para obter mais informações, consulte [Uso de uma instância leitora dedicada para analytics](aurora-analytics-dedicated-reader.md).

Comece com uma classe que atenda às necessidades da workload e faça ajustes com base nos seguintes sinais.
+ O aumento de `AuroraAnalyticsMemoryUsage` indica que a pressão geral sobre a memória está crescendo. Mude para uma classe de instância maior ou reduza `query_mem` para reservar espaço para a concorrência.
+ O aumento de `AuroraAnalyticsDiskSpillSize` indica que consultas individuais estão excedendo `query_mem` e transferindo dados para o armazenamento local. Mude para uma classe maior ou aumente `query_mem` para disponibilizar mais espaço para cada consulta.
+ A queda de `AuroraAnalyticsCacheHitRatio` indica que uma quantidade maior dos dados de trabalho está sendo lida novamente do Amazon S3. Uma classe de instância maior armazena mais desses dados em cache localmente.
+ O uso elevado de CPU durante consultas a tabelas estrangeiras indica que as consultas precisam de mais vCPUs.

Para processar mais consultas simultâneas, aumente a escala verticalmente para ampliar a margem de memória disponível ou adicione uma instância de leitura para distribuir a carga.

Consulte essas métricas e saiba como monitorá-las em [Monitoramento e solução de problemas](aurora-analytics-monitoring-troubleshooting.md).

## Quando usar instâncias que utilizam apenas EBS
<a name="aurora-analytics-ebs-only"></a>

Instâncias sem armazenamento NVMe local, como `db.r8g` e `db.r8i`, usam o Amazon EBS para o cache. Use-as nos casos a seguir.
+ Workloads em que o custo é mais importante que o desempenho.
+ Consultas leves ou ocasionais a tabelas estrangeiras.
+ Ambientes de desenvolvimento e teste.