Práticas recomendadas do S3 Files
Esta página descreve as práticas recomendadas para trabalhar com sistemas de arquivos do S3.
Desempenho e otimização de custos
Paralelize suas workloads: o S3 Files foi projetado para comportar workloads altamente paralelas. A distribuição de leituras em vários arquivos e em várias instâncias de computação ajuda a maximizar o throughput agregado. Também é possível criar vários sistemas de arquivos com escopo para diferentes prefixos específicos no mesmo bucket (em vez de criar um sistema de arquivos em todo o bucket) para escalar horizontalmente e melhorar o throughput agregado.
Defina o escopo do sistema de arquivos com o menor prefixo do qual a workload precisa para minimizar o impacto das renomeações: o S3 não tem um conceito nativo de diretórios. Quando um diretório é renomeado ou movido, o S3 Files precisa gravar os dados em um novo objeto com a chave atualizada e excluir o original para cada arquivo nesse diretório. A renomeação de diretórios com dezenas de milhões de arquivos pode aumentar significativamente os custos de solicitação do S3 e o tempo de sincronização. Defina o escopo do sistema de arquivos para o conjunto de dados ativo ou estruture os dados para que os diretórios que você pretende renomear contenham menos arquivos. Para ter mais informações, consulte Noções básicas sobre o impacto das operações de renomeação e movimentação.
Use tamanhos grandes de E/S: o S3 Files mede cada operação de leitura e gravação usando o limite mínimo de 32 KB. Usar tamanhos maiores de E/S (1 MB ou mais) amortiza os custos indiretos de E/S e é mais econômico do que usar muitas leituras ou gravações pequenas. Ao usar o auxiliar de montagem, os tamanhos padrão de buffer de leitura e gravação do NFS são definidos como 1 MB para oferecer um desempenho ideal.
Ajuste o valor de sizeLessThan na configuração de importação para que corresponda ao tamanho dos arquivos: por padrão, o S3 Files armazena em cache dados de arquivos com menos de 128 KB quando um diretório é acessado pela primeira vez. Arquivos acima desse limite são lidos diretamente do S3. Se a workload realizar leituras pequenas e sensíveis à latência em arquivos maiores, aumente o limite de sizeLessThan para que corresponda aos tamanhos de arquivo necessários no armazenamento de alta performance do sistema de arquivos para oferecer acesso de baixa latência. Para ter mais informações, consulte Personalizar a sincronização para o S3 Files.
Defina janelas de expiração de acordo com o ciclo de vida da workload: os dados que não são lidos dentro da janela de expiração são automaticamente removidos do sistema de arquivos. Para workloads de curta duração, como trabalhos em lote ou execuções de treinamento, use uma expiração mais curta (de um a sete dias) para minimizar os custos de armazenamento. Para workloads que revisitam os mesmos dados ao longo de semanas, use uma expiração mais longa (de trinta a noventa dias) para continuar se beneficiando da baixa latência. Para ter mais informações, consulte Personalizar a sincronização para o S3 Files.
Use regras com escopo para prefixo para workloads mistas: se o bucket contiver dados acessados com frequência e dados acessados com pouca frequência, crie regras de importação distintas para cada prefixo. Isso permite importar dados de forma agressiva para prefixos ativos, mantendo prefixos frios apenas para metadados. Para ter mais informações, consulte Personalizar a sincronização para o S3 Files.
Crie um destino de montagem em cada zona de disponibilidade: recomendamos criar um destino de montagem em cada zona de disponibilidade em que você opera, para que possa reduzir os custos de transferência de dados entre AZs e melhorar o desempenho. Isso garante que seus recursos computacionais sempre tenham um caminho de rede local para o sistema de arquivos, melhorando a disponibilidade e a latência. Quando um sistema de arquivos do S3 é criado com o Console de Gerenciamento da AWS, o S3 Files cria automaticamente um destino de montagem em cada zona de disponibilidade na VPC selecionada.
Sincronização
Entenda o modelo de consistência do S3 Files: quando um arquivo no sistema de arquivos é modificado ao mesmo tempo que o objeto correspondente no bucket do S3, o S3 Files trata o bucket do S3 como a fonte de referência e move o arquivo para o diretório de achados e perdidos. Para evitar conflitos, designe um caminho (sistema de arquivos ou S3) como gravador principal.
Monitore a integridade da sincronização: use métricas do CloudWatch para rastrear o status da sincronização entre o sistema de arquivos e o bucket do S3. Um
PendingExportscrescente indica que a workload está gerando alterações a uma velocidade acima da taxa de sincronização, o que significa que a sincronização levará mais tempo para ser concluída. Quando a métricaExportFailuresdo CloudWatch é diferente de zero, isso indica que não foi possível exportar determinados arquivos e que uma ação é necessária. Para ter mais informações, consulte Solução de problemas do S3 Files.
Controle de acesso
Respeite o princípio do privilégio mínimo: conceda somente as permissões mínimas necessárias para cada perfil do IAM e política do sistema de arquivos. Por exemplo, se um recurso de computação precisar apenas ler dados do sistema de arquivos, anexe a política gerenciada
AmazonS3FilesClientReadOnlyAccessem vez deAmazonS3FilesClientFullAccess. Além disso, considere a possibilidade de criar o sistema de arquivos com escopo para um prefixo específico em vez de para todo o bucket, para que os clientes somente possam acessar dados dentro desse prefixo.Não modifique o perfil do IAM do S3 Files: não modifique nem exclua um perfil do IAM que o S3 Files assume para realizar a sincronização com o bucket do S3. A alteração ou remoção desse perfil pode interromper a sincronização entre o sistema de arquivos e o bucket do S3.
Não modifique a regra do EventBridge para o S3 Files: o S3 Files cria uma regra do EventBridge (prefixada com DO-NOT-DELETE-S3-Files) para detectar alterações no bucket do S3. Não desabilite, modifique ou exclua essa regra. A remoção dessa regra impede que o S3 Files detecte objetos novos ou alterados no bucket, fazendo com que o sistema de arquivos fique obsoleto.
Considere a possibilidade de restringir o acesso aos logs gravados pelo
efs-utils: oefs-utilsgrava nomes de chave de objeto do S3 diretamente nos logs que ele armazena no diretório/var/log/amazon/efs. Se os nomes de chave do S3 contiverem informações sensíveis, será necessário restringir o acesso a esse diretório por meio de permissões POSIX. Por exemplo, é possível restringir o acesso por meio do comandosudo chmod 700 /var/log/amazon/efs.
Monitoramento
Defina alarmes para falhas de sincronização: crie alarmes do CloudWatch e
ImportFailureseExportFailurespara receber notificação quando a sincronização de arquivos falhar. Exportações com falha podem indicar problemas de permissão, problemas de chave de criptografia ou limites de tamanho de caminho. Para ter mais informações, consulte Solução de problemas do S3 Files.