Ir para o conteúdo

How do I optimize performance when I use AWS CLI to upload large files to Amazon S3? (Como otimizo o desempenho quando uso a AWS CLI para fazer upload de arquivos grandes para o Amazon S3?)

4 minuto de leitura
0

Quero otimizar o desempenho ao usar a AWS Command Line Interface (AWS CLI) para fazer upload de arquivos grandes (1 GB ou mais) para o Amazon Simple Storage Service (Amazon S3).

Breve descrição

Se você fizer upload de arquivos grandes para o Amazon S3, é uma prática recomendada aproveitar os uploads de várias partes. Se você estiver usando a AWS CLI, todos os comandos aws s3 de alto nível realizarão automaticamente um upload de várias partes quando o objeto for grande. Esses comandos de alto nível incluem aws s3 cp e aws s3 sync.

Para otimizar o desempenho, escolha um dos seguintes métodos:

Se você precisar de transferências de dados em grande escala ou workloads complexos, use o cliente baseado em AWS CRT para a AWS CLI.
Observação: você deve usar a AWS CLI versão 2 para esse método. Se você receber erros ao executar comandos da AWS CLI, consulte Solucionar erros da AWS CLI.

Resolução

Use o cliente baseado em CRT com a AWS CLI

Ative o cliente baseado em CRT
Para ativar o cliente baseado em CRT, configure a AWS CLI. Para fazer isso, adicione a configuração ao seu arquivo de configuração da AWS CLI (~/.aws/config) ou use a AWS CLI para defini-la.

Adicione preferred_transfer_client ao seu arquivo de configuração da AWS CLI:

[default]
s3 =
preferred_transfer_client = crt

Ou digite o seguinte comando em seu terminal:

aws configure set default.s3.preferred_transfer_client crt

Configure a opção target_bandwidth (opcional)
Essa opção controla a largura de banda de destino que o cliente de transferência tenta alcançar para uploads e downloads do S3. Por padrão, a AWS CLI escolhe uma largura de banda de destino que corresponda à largura de banda máxima da rede do sistema.

Observação: tenha cuidado ao configurar o valor target_bandwidth. Se o valor for maior do que as capacidades dos recursos de seus clientes locais, você poderá sobrecarregar seu cliente. É uma prática recomendada deixar essa opção nula.

Depois de ativar o cliente baseado em CRT, a AWS CLI usa automaticamente o cliente para operações do Amazon S3, incluindo uploads de arquivos. Isso melhora o desempenho e a confiabilidade em comparação com a AWS CLI padrão, especialmente para uploads de arquivos grandes.

Personalize as configurações de upload

Personalize as configurações da AWS CLI para o Amazon S3 com estas configurações:

  • max_concurrent_requests Esse valor define o número de solicitações que podem ser enviadas ao Amazon S3 simultaneamente. O valor padrão é 10.
    Observação: se você executar mais threads, sua máquina consumirá mais recursos. Certifique-se de que sua máquina tenha recursos suficientes para suportar o número máximo de solicitações simultâneas de que você precisa.
  • max_queue_size Esse valor define o número máximo de tarefas na fila. O valor padrão é 1.000.
  • multipart_threshold Esse valor define o limite de tamanho para uploads de várias partes de arquivos individuais. O valor padrão é 8 MB.
  • multipart_chunksize Esse valor define o tamanho de cada parte que a AWS CLI carrega em um upload de várias partes para um arquivo individual. Essa configuração permite dividir um arquivo maior (por exemplo, 300 MB) em partes menores para obter velocidades de upload mais rápidas. O valor padrão é 8 MB.
    Observação: um upload de várias partes exige que um único arquivo seja carregado em menos de 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.
  • max_bandwidth Esse valor define a largura de banda máxima para carregar dados para o Amazon S3. Não há valor padrão.

Ative a Aceleração de Transferências do Amazon S3

A Aceleração de Transferências do Amazon S3 fornece transferências rápidas e seguras em longas distâncias entre seu cliente e o Amazon S3. A Aceleração de Transferências usa os locais de borda distribuídos globalmente do Amazon CloudFront.

A Aceleração de Transferências incorre em cobranças adicionais, portanto, não deixe de conferir os preços. Para determinar se a Aceleração de Transferências melhora as velocidades de transferência para seu caso de uso, consulte a ferramenta de comparação de velocidade de Aceleração de Transferências do Amazon S3.

Observação: a Aceleração de Transferências não oferece suporte a cópias do CopyObject em todas as regiões AWS.

Informações relacionadas

Configuração da AWS CLI S3

O que é a AWS Command Line Interface?

AWS OFICIALAtualizada há um ano