Ir para o conteúdo

Como posso melhorar as velocidades de transferência ao copiar dados entre meu bucket do Amazon S3 e a instância do Amazon EC2?

5 minuto de leitura
0

Quero melhorar a velocidade ao transferir dados da minha instância do Amazon Elastic Compute Cloud (Amazon EC2) para meu bucket do Amazon Simple Storage Service (Amazon S3).

Resolução

Observação: se você receber mensagens de erro ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solução de problemas da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.

Use redes aprimoradas na instância do Amazon EC2

Pré-requisito: se você usa o Enhanced Network Adapter (ENA), preencha os pré-requisitos da sua instância para redes aprimoradas. Se você usa a interface Intel 82599 VF, prepare sua instância para redes aprimoradas.

Analise as métricas da sua instância com o Amazon CloudWatch. Se o valor de NetworkPacketsOut da sua instância for maior do que o valor esperado, ative a rede aprimorada.

Use workloads paralelos na transferência de dados

Para melhorar o tempo total necessário para concluir a transferência de dados, divida a transferência em várias operações mutuamente exclusivas. Por exemplo, se você usa a AWS CLI, execute vários comandos cp, mv ou sync da AWS CLI ao mesmo tempo.

Se você distribuir dados em vários prefixos, execute várias operações da AWS CLI que realizam sincronizações separadas ao mesmo tempo. Para obter instruções, consulte a seção Execute várias operações da AWS CLI de Como faço para melhorar o desempenho da transferência de dados com o comando sync da AWS CLI para o Amazon S3?

Personalize as configurações de upload na AWS CLI

Para acelerar a transferência de dados, personalize os seguintes valores de configuração da AWS CLI para o Amazon S3:

  • O valor multipart_chunksize define o tamanho de cada parte que a AWS CLI carrega em um upload multiparte para um arquivo individual. Otimize esse valor para separar arquivos maiores em partes menores para obter velocidades de upload mais rápidas.
    Observação: um upload multiparte exige que você carregue um único arquivo em no máximo 10.000 partes distintas. Certifique-se de que o tamanho do bloco definido concilia o tamanho do arquivo da parte e o número de partes.
  • Altere o valor max_concurrent_requests para aumentar o número de solicitações que é possível enviar ao Amazon S3 por vez. O valor padrão é 10. Depois de aumentar esse valor, é possível obter uma resposta estagnada. Combine um valor de max_concurrent_requests mais alto com workloads paralelos para obter melhores velocidades de transferência em geral. Por padrão, a AWS CLI é compatível com multithreading.
    Observação: certifique-se de que sua máquina tenha recursos suficientes para suportar o número máximo de solicitações simultâneas.

Use um endpoint da VPC no Amazon S3

Se sua instância estiver na mesma região da AWS que seu bucket do Amazon S3, use um endpoint de gateway da Amazon Virtual Private Cloud (Amazon VPC).

Além disso, é possível se conectar de forma privada a uma VPC sem um gateway da internet, dispositivo NAT ou conexão VPN. As instâncias em uma VPC não exigem endereços IP públicos para se comunicarem com seu bucket do Amazon S3. Quando você usa um endpoint da Amazon VPC, o tráfego de dados entre sua VPC e o Amazon S3 é roteado na rede da AWS.

Observação: os endpoints da Amazon VPC para o Amazon S3 não oferecem suporte a solicitações em diferentes regiões da AWS.

Use a Aceleração de transferências do Amazon S3 entre regiões geograficamente distantes

As velocidades de transferência de dados podem aumentar quando sua instância e o bucket do Amazon S3 estão em regiões geograficamente próximas. Se a instância e o bucket estiverem em regiões geograficamente distantes, ative a Aceleração de transferências do Amazon S3. Antes de ativar a Aceleração de transferências do Amazon S3, consulte os Preços do Amazon S3.

Para saber se a Aceleração de transferências melhora as velocidades de transferência de dados para sua instância, use a ferramenta de comparação de velocidade de Aceleração de transferências do Amazon S3.

Observação: ao usar a Aceleração de transferências do S3, não é possível usar a chamada de API CopyObject entre regiões.

Faça upgrade do seu tipo de instância do Amazon EC2

A alta utilização da CPU da instância do Amazon EC2 pode afetar as velocidades de transferência de dados. É possível alterar sua instância para um tipo de instância que oferece maior desempenho de memória e rede.

Observação: para garantir uma conexão de rede confiável entre suas instâncias do Amazon EC2 e o Amazon S3, escolha um tipo de instância com pelo menos 10 GiBps de conectividade.

Use transferências em blocos

Se você estiver transferindo arquivos grandes, use uploads de várias partes e solicitações HTTP de várias partes com intervalo.

Informações relacionadas

Padrões de design de melhores práticas: otimizar a performance do Amazon S3

AWS OFICIALAtualizada há 10 meses