AWS: Serverless sim, limitless não

Neste artigo, vamos dar uma visão geral dos limites de alguns dos componentes da AWS mais comuns.

Quando se trata de projetar soluções na AWS, é importante estar ciente dos limites de recursos dos componentes. Esses limites podem afetar a escalabilidade e os custos da sua solução, e é importante verificar os limites específicos da sua conta e região antes de projetar sua arquitetura. 

AWS Lambda:

  • Execuções concorrentes: 1.000 (com possibilidade de aumento até algumas dezenas de milhares)
  • Armazenamento para funções carregadas (.zip arquivos) e camadas: 75 GB (com possibilidade de aumento até terabytes)
  • Interfaces de rede elásticas por VPC: 250 (com possibilidade de aumento até centenas)
  • Memória de configuração da função: de 128 MB a 10,240 MB, em incrementos de 1 MB
  • Tempo limite da função: 900 segundos (15 minutos)
  • Variáveis de ambiente da função: 4 KB em conjunto
  • Política baseada em recursos da função: 20 KB
  • Camadas da função: 5 camadas
  • Concorrência de picos: 500–3000 (varia por região)
  • Payload de invocação (solicitação e resposta): 6 MB cada para solicitação e resposta (síncrono) 256 KB (assíncrono)
  • Tamanho do pacote de implantação: 50 MB (comprimido, para upload direto), 250 MB (descomprimido)
  • Eventos de teste: 10
  • Armazenamento do diretório /tmp: entre 512 MB e 10,240 MB, em incrementos de 1 MB

Amazon DynamoDB:

  • Tamanho máximo de um item (registro) é de 400 KB
  • Número máximo de índices secundários por tabela é de 5 (com possibilidade de aumento mediante solicitação)
  • Limite de tamanho de 10 GB por valor da chave de partição para índices secundários locais (LSI)
  • Limite de 1 MB de dados retornados por solicitação para operações Scan e Query
  • Limite de partição de capacidade de leitura é de 3.000 RCUs (Unidades de capacidade de leitura) e 1.000 WCUs (Unidades de capacidade de escrita)
  • Limite de capacidade de leitura e escrita default é de 40.000 unidades de capacidade de leitura e 40.000 unidades de capacidade de escrita por tabela
  • Comprimento máximo da chave de partição é de 2048 bytes
  • Comprimento máximo da chave de classificação é de 1024 bytes.

Amazon RDS:

  • Número máximo de autorizações por grupo de segurança do banco de dados: 20
  • Número máximo de versões de motor personalizadas: 40
  • Número máximo de grupos de parâmetros de cluster do banco de dados: 50
  • Número máximo de clusters do Aurora: 40
  • Número máximo de instâncias do banco de dados: 40
  • Número máximo de grupos de sub-rede do banco de dados: 50
  • Tamanho máximo da solicitação de corpo HTTP do Data API: 4 Megabytes
  • Número máximo de pares únicos de clusters Aurora Serverless e segredos em solicitações concorrentes do Data API: 30
  • Número máximo de solicitações simultâneas ao Data API: 500
  • Tamanho máximo do conjunto de resultados de banco de dados retornado pelo Data API: 1 Megabytes
  • Tamanho máximo da string de resposta JSON simplificada retornada pelo RDS Data API: 10 Megabytes
  • Solicitações por segundo ao Data API: 1,000 por segundo
  • Número máximo de assinaturas de eventos: 20
  • Número máximo de papeis IAM por cluster do banco de dados: 5
  • Número máximo de papeis IAM por instância do banco de dados: 5

Amazon VPC:

  • VPCs por região: 5 (ajustável até 100s)
  • Subnets por VPC: 200 (ajustável)
  • Blocos CIDR IPv4 por VPC: 5 (ajustável até 50)
  • Blocos CIDR IPv6 por VPC: 5 (não ajustável)
  • Endereços Elastic IPv4 por região: 5 (ajustável)
  • Gateways de internet: 5 (ajustável)
  • Gateways NAT por Zona de Disponibilidade: 5 (ajustável)
  • Gateways de transportadora por VPC: 1 (não ajustável)
  • Listas de prefixo por região: 100 (ajustáveis)
  • Versões por lista de prefixo: 1000 (ajustáveis)
  • Número máximo de entradas por lista de prefixo: 1000 (ajustáveis)
  • Referências por tipo de recurso: 5000 (ajustáveis)
  • ACLs de rede por VPC: 200 (ajustáveis)
  • Regras por ACL de rede: 20 (ajustáveis)

Amazon SQS:

  • Tempo de atraso na fila: de 0 a 15 minutos
  • Filas listadas: 1.000 por solicitação de ListQueues
  • Tempo de espera de long polling: 20 segundos
  • Grupos de mensagens: não há limite para o número de grupos de mensagens dentro de uma fila FIFO
  • Mensagens por fila (backlog): número ilimitado
  • Mensagens por fila (in flight): 120.000 para filas padrão (com exceção de filas FIFO), 20.000 para filas FIFO
  • Nome da fila: até 80 caracteres, aceita caracteres alfanuméricos, hífens (-) e sublinhados (_)
  • Ações de tag: 30 TPS por conta AWS
  • ID de mensagem em lote: até 80 caracteres, aceita caracteres alfanuméricos, hífens (-) e sublinhados (_)
  • Atributos de mensagem: até 10 metadados por mensagem
  • Mensagem em lote: até 10 mensagens por solicitação
  • Conteúdo da mensagem: somente XML, JSON e texto não formatado, com caracteres Unicode permitidos
  • ID do grupo de mensagens: necessário para filas FIFO, 128 caracteres, valores alfanuméricos e pontuação permitidos
  • Retenção de mensagem: 4 dias por padrão, mínimo de 60 segundos e máximo de 14 dias
  • Throughput de mensagem: quase ilimitado para filas padrão, 300 transações por segundo para filas FIFO, até 6.000 transações por segundo para filas FIFO em alta capacidade, 1.500 (sem lote) ou 15.000 (com lote) para regiões fora as mencionadas
  • Temporizador de mensagem: de 0 a 15 minutos
  • Tamanho da mensagem: de 1 byte a 262.144 bytes (256 KiB)
  • Timeout de visibilidade da mensagem: 30 segundos por padrão, mínimo de 0 segundos e máximo de 12 horas

AWS Glue:

  • Número de machine learning tasks concorrentes por transformação: 3 (padrão), ajustável
  • Tamanho do arquivo de rótulo: 10 megabytes
  • DPUs máximos por dev endpoint: 50
  • Execuções de jobs concorrentes máximas por conta: 200
  • Execuções de jobs concorrentes máximas por job: 1.000
  • Conexões máximas por conta: 1.000
  • Bancos de dados máximos por conta: 10.000
  • Bancos de dados máximos por catálogo: 10.000
  • Dev endpoint máximos por conta: 25
  • Funções máximas por conta: 100
  • Funções máximas por banco de dados: 100
  • Quantidade de jobs por conta: 1.000
  • Quantidade de jobs por trigger: 50
  • Máximo de partições por conta: 20.000.000
  • Máximo de configurações de segurança por conta: 250

Grande parte desses limites podem ser aumentados mediante solicitação, mas isso também pode afetar a escalabilidade e os custos da sua solução. Existem diversos outros limites e é importante tê-los em mente, muitas vezes, os limites de um componente podem inviabilizar o seu uso dentro de determinada arquitetura. Além disso, é importante lembrar que dentro de um design evolutivo e sustentável, os limitadores devem ser analisados tanto a curto quanto longo prazo.

 

Referências:

10 DynamoDB Limits You Need To Know

Amazon constantly proves, that in terms of scalability, DynamoDB has practically no limits. It can easily handle…

dynobase.dev

 

Lambda quotas

New AWS accounts have reduced concurrency and memory quotas. AWS raises these quotas automatically based on your usage…

docs.aws.amazon.com

 

Quotas and constraints for Amazon RDS

Following, you can find a description of the resource quotas and naming constraints for Amazon RDS. Each AWS account…

docs.aws.amazon.com

 

Quotas related to queues

Lists Amazon SQS quotas related to queues.

docs.aws.amazon.com

 

AWS Glue endpoints and quotas

The following are the service endpoints and service quotas for this service. To connect programmatically to an AWS…

docs.aws.amazon.com