Aumento da taxa de transferência com o Amazon SES - Amazon Simple Email Service

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Aumento da taxa de transferência com o Amazon SES

Quando você envia e-mails, pode chamar o Amazon SES com a frequência permitida por sua taxa máxima de envio. (Para obter mais informações sobre sua taxa máxima de envio, consulte Gerenciamento de limites do envio do Amazon SES.) No entanto, cada chamada para o Amazon SES leva tempo para ser concluída.

Se você faz várias chamadas para o Amazon SES usando a API do Amazon SES ou a interface SMTP, as seguintes dicas podem ajudar a melhorar sua taxa de transferência:

  • Meça a performance atual para identificar gargalos: um teste de performance possível envolve o envio de vários e-mails de teste o mais rápido possível dentro de ciclo de código em sua aplicação. Meça a latência de ida e volta de cada solicitação SendEmail. Em seguida, de forma incremental execute instâncias adicionais da aplicação na mesma máquina e observe se há impacto na latência da rede. Você também pode executar esse teste em várias máquinas e em diferentes redes para ajudar a identificar qualquer possível gargalo de recursos da máquina ou de rede que possa existir.

  • (Apenas API) Considere o uso de conexões HTTP persistentes: em vez de incorrer na sobrecarga de estabelecer uma nova conexão HTTP separada para cada solicitação de API, use conexões HTTP persistentes. Isto é, reutilize a mesma conexão HTTP para várias solicitações de API.

  • Considere o uso de vários threads: quando uma aplicação usa um único thread, o código da aplicação chama a API do Amazon SES e, em seguida, aguarda de forma síncrona por uma resposta da API. O envio de e-mails geralmente é uma operação com uso intensivo de E/S e fazer o trabalho de vários threads proporciona uma taxa de transferência melhor. Você pode enviar simultaneamente usando o número threads de execução que desejar.

  • Considere o uso de vários processos: o uso de vários processos pode ajudar a aumentar a taxa de transferência, pois você terá mais conexões ativas para o Amazon SES. Por exemplo, você pode segmentar seus e-mails pretendidos em vários buckets e, em seguida, executar várias instâncias do seu script de envio de e-mails simultaneamente.

  • Considere o uso de retransmissão de e-mail local: a aplicação pode transmitir mensagens rapidamente para o seu servidor de e-mail local, o que pode ajudar a armazenar as mensagens em buffer e transmiti-las de forma assíncrona ao Amazon SES. Alguns servidores de e-mail suportam simultaneidade de entrega, o que significa que, mesmo se sua aplicação estiver gerando e-mails para o servidor de e-mail em um thread único, o servidor usará vários threads ao enviá-los para o Amazon SES. Para obter mais informações, consulte Integrando a Amazon SES com seu servidor de e-mail existente.

  • Considere hospedar a sua aplicação mais próximo do endpoint da API do Amazon SES: talvez seja recomendável considerar a hospedagem de sua aplicação em um datacenter próximo do endpoint da API do Amazon SES ou em uma instância do Amazon EC2 na mesma região da AWS que o endpoint da API do seu Amazon SES. Isso pode ajudar a diminuir a latência da rede entre a aplicação e o Amazon SES e melhorar a taxa de transferência. Para obter uma lista das regiões onde o Amazon SES está disponível, consulte Amazon Simple Email Service (Amazon SES) na Referência geral da AWS.

  • Considere o uso de várias máquinas: dependendo da configuração do sistema no seu computador host, pode haver um limite para o número de conexões HTTP simultâneas com um único endereço IP, o que pode limitar os benefícios do paralelismo quando você excede um determinado número de conexões simultâneas em uma única máquina. Se isso for um gargalo, talvez seja útil considerar fazer solicitações simultâneas do Amazon SES usando várias máquinas.

  • Considere usar a API de consulta do Amazon SES em vez do endpoint SMTP: o uso da API de consulta do Amazon SES permite que você envie a solicitação de envio de e-mail usando uma única chamada de rede, enquanto a interface com o endpoint SMTP envolve uma conversa de SMTP, que consiste em várias solicitações de rede (por exemplo, EHLO, MAIL FROM, RCPT TO, DATA, QUIT). Para obter mais informações sobre a API do Amazon SES, consulte Usando a Amazon SES API para enviar e-mails.

  • Use o simulador de caixa postal do Amazon SES para testar sua taxa de transferência máxima: para testar todas as alterações que implementar, você pode usar o simulador de caixa de correio. O simulador de caixa de correio pode ajudar você a determinar a taxa de transferência máxima de seu sistema sem acabar com sua cota de envio diária. Para obter informações sobre o simulador de caixa postal, consulte Uso do simulador de caixa postal manualmente..

Se você estiver acessando o Amazon SES por sua interface SMTP, consulte Problemas de SMTP do Amazon SES para saber os problemas relacionados ao SMTP específicos que podem afetar a taxa de transferência.